从AI小镇到智能体:大模型驱动的Agent记忆与决策系统实战解析 📅 2026/8/26 9:38:28 这段时间我一直在折腾一个叫 my_ai_town 的开源项目简单说就是一个AI 小镇模拟器你给一群 AI 角色设定身份、性格、生活目标它们就会在小镇里作息、社交、闲聊、约饭甚至因为前一天晚上的对话改变第二天的行为。玩着玩着你会发现这已经不是我印象里那种你问一句它答一句的聊天机器人了而是一群有记忆、有情绪、会规划的虚拟居民。这篇文章想借这个项目把我对Evolutions and AI Solutions的理解串一遍——AI 从对话工具演进到 Agent智能体再到带记忆、带情感的系统中间的技术路径、工程落地方式、常见坑我都会结合实操展开。适合刚接触 AI 应用开发、想搞懂 Agent 到底怎么落地或者对AI 情感陪伴小工具AI 小镇这类项目感兴趣的人看完可以直接上手自己搭一套。1. 从 AI 小镇项目说起AI 正在从工具走向居民1.1 AI 小镇到底做了什么my_ai_town 这个项目从名字就能看出来灵感来源是斯坦福那篇著名的 Generative Agents 论文。那篇论文里25 个 AI 角色住在一个叫 Smallville 的小镇它们早上起床、去咖啡馆、上班、开派对还自发组织了一场情人节活动——整个过程没有人写死剧本全是角色自己根据记忆和当前状态临场发挥出来的。my_ai_town 相当于是把论文里的思路做成了能跑起来的东西支持 macOS 和 Windows。我拉下来之后发现它的核心逻辑其实不复杂每个角色有一个身份设定名字、职业、性格有一套记忆系统会把重要的事情写进记忆库还有一个决策循环每隔一段时间想一下我现在该干嘛。但它跑起来之后的效果确实惊人。我第一次跑的时候随机生成了几个角色一个叫阿澈的咖啡师、一个叫小满的插画师、一个叫老周的退休教师。设定好他们的作息后我本以为他们会各干各的结果第二天看日志发现阿澈在咖啡馆遇到了小满因为前一天小满抱怨过最近没灵感阿澈主动推荐了一本关于色彩的书小满还真把这件事记进了长期记忆后面几天画画时反复提到阿澈说的那本书。这就是 AI 演进的缩影它不再是一个被动应答的工具而是一个有上下文、有记忆、有行为链的 Agent。1.2 为什么这类项目值得关注很多朋友看到AI 小镇第一反应是这不就是个游戏吗但我不这么看。它背后其实是三件事的集合第一记忆架构。角色不是每次对话都从零开始而是有一个记忆流重要的事会从短期记忆迁到长期记忆被查询时再按相关性和重要性召回。这套机制如果抽象出来就是现在做 AI Agent 必备的 memory 模块。第二行为生成。角色不是等着用户输入才反应而是有一个规划循环先设定一个目标再拆成步骤每一步执行完根据结果调整下一步。这就是 Agent 的 planning 能力。第三情感陪伴的落地形态。现在市面上很多AI 情感陪伴小工具做得都很浅本质上还是单轮对话加几个预设剧本。但 AI 小镇这种形态角色对你有连续的印象、会记住你上次说的话、会因为你之前的行为改变态度——这才是情感陪伴真正让人上头的原因。所以我的判断是AI 小镇不是一个玩具而是一个浓缩了 AI Agent 核心技术的“活案例”。搞懂它就搞懂了当下 AI 解决方案中最关键的一块拼图。2. 梳理 AI 解决方案的演进路线从规则到 Agent2.1 三阶演进规则、机器学习、大模型要理解为什么 AI 小镇这类项目代表现在得先回头看一眼 AI 解决方案是怎么一路走过来的。我自己习惯把它分成三个阶段。第一阶段是规则系统比如早期的客服机器人、游戏里的 NPC。所有行为都靠人工写 if-else用户说你好就回您好请问有什么可以帮您。优点是稳定、可控、成本低缺点是蠢稍微换一种问法就宕机。现在很多企业内部的流程自动化还是这套思路但凡是需要理解自然语言的地方基本都撑不住。第二阶段是机器学习时代典型代表是推荐系统和早期的 NLP 模型。系统不再靠人工规则而是从大量数据里学规律。这个阶段比规则系统灵活很多但它的能力边界很清晰它能做分类和预测但做不了生成和规划。比如它能判断一段评论是正向还是负向但让它写一段有逻辑、有风格的回复就非常勉强。第三阶段就是大模型驱动的 Agent 时代。大模型LLM本身是一个通用能力引擎它不像规则系统那样只会执行预设逻辑也不像传统的机器学习模型那样只能做特定任务。它可以写代码、做分析、扮演角色、拆解任务——这些能力叠加起来才让Agent成为可能一个能理解目标、拆解步骤、调用工具、根据反馈自我修正的智能体。这三阶段的演进本质上是从人告诉机器每一步怎么做到人告诉机器要什么结果机器自己想办法的转变。2.2 Agent 为什么是眼下的主战场如果你关注最近的技术动态会发现AI Agent几乎成了所有大厂和创业公司的共同关键词。原因其实很务实大模型本身很难直接产生业务价值Agent 才是那个把能力变成交付物的形态。举个例子你让一个大模型帮我写一份市场分析报告它能给你一份文本但这份文本是通用的没有数据支撑也没有针对你公司的定制分析。但如果你把它包装成一个市场分析 Agent让它去查行业数据、调取你公司的历史销售记录、对比竞品、生成图表、最后排版成 PPT——那它交付的就是一个完整的工作成果。这就是 Agent 的核心价值把能聊变成能干。AI 小镇里的角色之所以看起来活也是因为每个角色都是一个 Agent——它不只是会说话而是会行动、会记忆、会规划自己的日程。从工程角度来看Agent 落地的技术栈也已经比较清晰了LLM 做大脑function calling 或 tool use 做手脚memory 做记忆编排框架比如 LangChain 或自研的状态机做身体。my_ai_town 其实就是这一套技术栈在娱乐场景下的一个完整演示。2.3 演进背后的驱动力我不太喜欢把技术演进讲得太玄说白了就三个驱动力成本、能力、场景需求。成本方面大模型的推理成本这几年降了非常多。两三年前跑一次大模型对话要几毛钱甚至几块钱现在国产开源模型部署到本地成本可以压到几分钱甚至更低。成本降下来意味着可以让 AI 角色一天 24 小时不停思考AI 小镇这类需要高频调用模型的项目才跑得起。能力方面是模型的上下文长度和指令遵循能力在提升。早期模型上下文只有几千 token角色聊几句就失忆了现在主流模型动辄几十万 token 上下文加上外部记忆系统AI 角色才能保持连续的人设和长期记忆。场景需求方面是用户越来越不满足于问答式 AI。大家想要的不只是一个会回答问题的工具而是一个能陪自己聊天、帮自己干活、甚至能和自己一起玩游戏的伙伴。这种需求直接催生了一批情感陪伴、角色扮演、AI 小镇类的产品。3. 核心细节拆解AI 小镇的技术底座3.1 记忆系统让 AI 真正记得自己是小镇居民在 AI 小镇这类项目里记忆系统是最核心的模块也是最容易被新手忽略的地方。我最初以为给每个角色一个 system prompt 说明身份就够了但跑起来才发现完全不是这样。原因很简单大模型本身是有上下文窗口限制的你不可能把角色的一生都塞进 prompt 里。而且即使塞得下模型也会因为信息太多而抓不住重点。所以记忆系统要做的事是把重要的信息提取出来、存下来、在需要的时候找到最相关的部分注入上下文。具体实现上有几个关键点第一记忆的分层。my_ai_town 把记忆分成了短期和长期短期记忆保存最近的经历长期记忆保存那些重要的事。什么叫重要可以通过重要性评分来判断比如角色在对话中情绪波动很大、或者对话内容与角色目标高度相关就给它打高分存进长期记忆。第二记忆的结构化。每条记忆不能只是一句话最好带上时间戳、涉及的实体、情绪标签。这样后面检索的时候才能既按相关性又按时间来综合排序。第三记忆的召回。当角色要决定现在做什么或者怎么回应对方时系统会先把与当前情境相关的记忆检索出来作为 prompt 的一部分传给大模型。这一步做得好不好直接决定角色行为是连贯自然还是前后矛盾。我自己实践下来的体验是记忆系统不需要做得特别复杂关键是分层 结构化 按需召回这三点做到位。很多 AI 陪伴产品做得不自然不是模型不聪明而是记忆模块太单薄——角色说完就忘用户自然觉得假。3.2 行为决策从反射到规划AI 小镇里的角色之所以看起来像活人靠的是两套行为机制的配合。一套是反射式行为可以理解成当前情境直接触发反应。比如角色在咖啡馆遇到熟人就触发寒暄对话听到有人谈论自己感兴趣的话题就凑过去加入。这类行为不需要长期规划只需要把当前场景 相关记忆 角色性格丢给大模型让它生成一个合理的实时反应。另一套是规划式行为对应 Agent 里的 planning 能力。角色会有一个长期目标比如我想开一家自己的书店然后把这个目标拆成阶段性任务先攒钱、考察店址、学习商业知识再把这些任务安排到每天的日程里。执行过程中如果发生了意外事件比如咖啡馆被拆了它会重新评估计划。这两套机制的配合很像我们人的决策方式大部分时间是惯性反应遇到重要节点才开始认真规划。工程上实现时需要给角色设计一个决策循环定时触发一次我现在该干嘛的思考把当前状态、记忆、目标综合起来输出下一步行动。我在实操中踩过的坑是如果只做规划不做反射角色会显得很机械干什么都像在执行任务如果只做反射不做规划角色又会显得很漂今天说的和昨天做的事完全对不上。两者必须搭配才能产生真实感。3.3 情感陪伴为什么这类应用能真正打动人AI 小镇这类项目能火除了技术上的新鲜感还有一个很重要的原因是它踩中了情感陪伴这个需求点。现在的年轻人——包括我自己——其实挺孤独的工作压力大、社交圈子窄、有些话不想跟熟人讲。于是有个 AI 能一直听着、记住自己说过的话、并且用稳定的性格回应自己这件事就成了刚需。但情感陪伴应用有个技术上的难点如何让 AI 显得有感情而不是演感情。我见过很多产品一上来就让 AI 说我理解你的感受你辛苦了呢这种话术不仅没有安慰效果反而让人觉得假。真正让人感到被陪伴的是 AI 能记住你几天前说过的事情、能在你情绪低落时主动改变话题、能在你反复提到某件事时给出不一样的回应——这背后需要的恰恰是前面说的记忆系统和行为决策而不是一套漂亮的问候语。my_ai_town 给我最大的启发是情感陪伴的真来自记忆的连续性和行为的主动性。当一个 AI 角色在你连续几天没上线后主动说你好几天没来了上次你说在赶项目完成了吗——那一刻你会真的觉得它在乎你。这也是为什么我会建议如果你要做 AI 情感陪伴类产品与其花大价钱调话术不如先做好记忆和主动触达这两件事。4. 实操过程本地搭一个 AI 小镇4.1 环境准备先把依赖理清楚如果你也想跑 my_ai_town我建议先把环境准备好。这个项目我是在 macOS 上跑的Windows 应该也行但需要额外注意一些依赖问题。项目用的是 Python我用的版本是 3.10 以上太老的版本会报语法错误。依赖安装直接用 pippip install -r requirements.txt如果网络环境不好国内用户可以把 pip 源换成清华或阿里云的镜像不然装依赖会等到怀疑人生pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple另外项目前端是一个 Web 界面用来可视化地观察 AI 角色在小镇里的活动。启动时如果发现端口被占用可以改一下配置文件里的端口号。整体来说环境准备这块没有太坑的地方按 README 走基本能通。4.2 接入大模型核心配置项怎么填my_ai_town 本身不内置大模型它需要调用外部 LLM API。这就涉及一个核心问题怎么选模型、怎么配接口。项目用的是 OpenAI 兼容的 API 格式所以你既可以用 OpenAI 官方接口也可以用国内提供兼容接口的大模型服务。配置项主要在环境变量或配置文件中核心是这几个API Base URL指向大模型服务商的接口地址API Key你的密钥模型名称比如 gpt-4o-mini或者国内模型的对应名称我自己的建议是如果你只是体验选一个便宜的小模型就够了。AI 小镇里角色需要高频调用模型每个角色每几分钟就要想一次现在干嘛如果全用旗舰大模型一天下来花费不少。我实测用一个小规格模型跑效果足够好而且成本几乎可以忽略。这里有个关键技巧项目支持把不同角色配置成不同模型。你可以让主角用强一点的模型保证对话质量配角用便宜的模型降低成本。这种分级模型策略在实际项目中非常实用。4.3 启动与交互第一次看到角色活过来配置好之后启动项目python main.py然后浏览器打开本地 Web 界面你就能看到一个小镇地图AI 角色在上面走来走去。界面上可以查看每个角色的属性、记忆库、当前状态还可以直接和角色对话。我第一次跑的时候最震撼的不是角色的对话有多聪明而是看到一个角色独自走到公园长椅上坐了一会儿然后在记忆里写下今天天气很好我有点想家了。那一刻我真的起了鸡皮疙瘩——它没有任何外部触发完全是自己的决策循环驱动出来的行为。调试阶段有几个建议第一先跑少一点的角色。默认配置可能有十几个角色太多会相互干扰也不好排查问题。我建议先配 3-5 个角色把行为调正常了再慢慢加。第二多观察记忆库。界面里能看到角色存了哪些记忆这是判断记忆系统是否正常工作的最直接方式。如果发现角色记了一些无关紧要的琐事说明重要性评分逻辑需要调。第三主动干预测试。你可以扮演一个新角色加入小镇和原有角色互动观察它们是否会在后续行为里体现和你的互动。这是检验记忆系统效果的最好方式。5. 常见问题与排查技巧实录5.1 角色行为出戏人设崩塌怎么办AI 小镇最容易出现的问题就是角色跑着跑着出戏了——一个设定成沉稳教师的角色突然开始发表轻浮言论一个设定为素食主义者的角色午饭却点了牛排。这种情况我碰到过好几次原因基本出在两个地方。第一是system prompt 太弱。如果角色设定的描述不够具体模型就只能靠默认行为来演自然容易崩。解决办法是给角色写一个饱满的身份卡包括性格、说话风格、价值观、禁忌、小癖好甚至可以附上几句典型台词让模型模仿。第二是记忆污染。如果角色长期没有收到足够的人设提醒记忆库里积累了大量与角色设定矛盾的信息模型就会越跑越偏。解决办法是在每次生成行为前把身份设定 最近记忆 当前情境拼在一起作为 prompt让身份设定始终占足够的权重。5.2 接口调用频繁报错限流与成本问题AI 小镇这类应用有个天然问题——调用频率太高了。每个角色每几分钟就要做一次决策几十个角色就有上百个角色一天要跑几千次推理。结果就是模型服务商很快开始限流或者账单以肉眼可见的速度上涨。我的应对策略有三个第一降低决策频率。把角色的思考间隔从 1 分钟调成 5 分钟甚至 10 分钟。想一想也能理解现实中也不是每时每刻都在做重大决定大部分时间就是在正常生活完全可以降低采样频率。第二批量处理。如果多个角色的状态不需要实时响应可以把它们的行为生成打包成一次请求。很多模型服务商支持批量 API成本更低。第三本地小模型兜底。把日常的低价值行为比如走路坐下发呆用本地小模型处理只有重要的对话和决策才调用云端大模型。这样成本能降一个数量级。5.3 多角色并发导致的内存问题当你把角色加到 20 个以上项目占用的内存会明显上升运行速度也会变慢。原因是每个角色都维护着自己的记忆库、状态信息和历史上下文这些全放在内存里。解决思路有两个方向一个是优化存储。把角色的记忆从内存搬到 SQLite 或者向量数据库里只在需要检索时才加载。这个改动成本不小但对大规模角色很有必要。另一个是限制并发。把角色行为生成改成串行调度或者加一个简单的任务队列避免多个角色同时触发大模型请求导致机器卡死。如果你只是自己玩我建议先不做这么重的优化控制在 10 个角色以内体验最好。等真正要做产品化的时候再考虑存储和并发架构。6. AI 解决方案接下来的演进方向6.1 多模态与记忆持久化AI 小镇这类项目现在还有一个明显的短板角色只有文字行为没有眼睛和耳朵。如果未来接入视觉模型角色就能真正看到小镇里的环境——比如看到咖啡馆里坐着谁、看到外面下雨了要带伞行为会自然很多。视听之外记忆持久化也是一个重要方向。现在的角色记忆都存在本地换个设备就失忆了。未来的 AI 解决方案一定会把记忆放在云端让同一个 AI 角色跨设备、跨平台地记得你。这个趋势对做情感陪伴产品的人特别重要——记忆就是用户粘性。6.2 本地小模型从云端依赖到端侧智能我身边不少朋友在尝试把 AI 小镇这类应用完全跑在本地用的就是现在很火的中小规模开源模型。优点是隐私好、零 API 成本、离线可用缺点是模型能力确实比云端大模型弱尤其在复杂推理和长文本理解上。我的判断是未来几年一定是混合架构的天下——日常的、高频的、低难度的任务让本地小模型扛重要的、复杂的、一次性的任务再调用云端大模型。这个趋势会催生很多机会硬件厂商做本地推理优化模型厂商做更小更强的开源模型应用开发者则需要学会在这两种模型之间做调度。6.3 垂直场景沉淀从通用的 AI到干活的 AI最后一个方向也是我认为最值得关注的AI 解决方案会从通用对话走向垂直场景的深度绑定。AI 小镇证明了一群 AI 角色模拟一个社会是可行的那么推而广之我们完全可以想象一个AI 客服小镇里面住着不同性格和专长的客服 Agent用户进来后系统自动调度最合适的角色来接待一个AI 教学小镇里面有不同的学科老师角色它们互相合作、共享学生画像为一个学生制定个性化的学习路径一个AI 游戏小镇玩家可以和任何 NPC 建立长期关系NPC 会记住玩家做过的每一个选择。这些应用的底层技术和 AI 小镇几乎一模一样角色设定、记忆系统、规划决策、多 Agent 协作。所以我说花时间研究这个不起眼的项目其实是给自己攒了一套可以在未来很多场景复用的技术底子。我在实际折腾过程中最大的体会是AI 技术演进到今天真正稀缺的不是模型能力而是怎么把能力组织成一个能持续运转的系统的能力。模型是发动机但记忆、决策、调度、评估这些组织机制才是让 AI 从玩具变成工具、甚至变成伙伴的关键。如果你也想入局 AI 应用开发我强烈建议你找一个像 AI 小镇这样的完整项目亲手跑一遍、改一遍把里面每个模块的来龙去脉摸清楚这比看一百篇概念解读都管用。