Agent 的记忆系统:三层架构、踩坑实录与正确用法

你有没有遇到过这种情况——跟一个 AI Agent 聊了半天,第二天它全忘了?

或者更惨的:它记是记住了,但记的全是错的。

这不是 AI 的智商问题,是记忆系统的工程问题。

今天这篇文章,我把自己踩过的坑、建过的架构、拆过的系统,全摊开讲。没有管线,没有花活,就是一篇硬核的技术复盘。


一、为什么 AI Agent 需要记忆系统?

先问一个灵魂问题:GPT-4、Claude、MiniMax 这些模型,每次对话都是从零开始的。

这意味着什么?

• 你告诉它「以后不要用表格格式」→ 下次它照用不误

• 你纠正过「封面图不要加署名」→ 它下次继续加

• 你说「我偏好仙人的风格」→ 它一脸懵逼

单次对话的记忆,就像鱼的七秒记忆。

要让一个 AI Agent 真正「进化」,你必须给它一套记忆系统——让它能记住你的偏好、你的规矩、你踩过的坑,并且在未来的每次对话中自动调用。


二、三层架构:不是堆记忆,是分层管理

经过反复踩坑和重构,我最终把记忆系统拆成了三层:

第一层:MEMORY.md — 执行纪律

这是「铁律」层。存放的是 Agent 必须遵守的硬规则,每次对话开始时直接注入系统提示词。

举几个例子:

• 「draft_create 前必须检查 thumb_media_id 参数」

• 「信息图一律不加署名」

• 「配图文字乱码时不简化 prompt,必须用三级修复策略」

特点:短小精悍、条目式、5000 字符上限。 不是数据库,是 Agent 的「军规手册」。

第二层:Hindsight 记忆库 — 语义向量存储

这是「百科全书」层。基于向量数据库(pgvector),自动从对话中提取事实,支持语义搜索。

比如你说过「我偏好报纸编辑风」,它会被自动提取为一条记忆,下次你问「信息图用什么风格」时,语义搜索能精准召回。

特点:自动提取、语义检索、支持 recall/reflect 两种调用方式。 recall 是精确查,reflect 是综合分析。

第三层:Mental Model — 心智模型

这是「专家经验」层。对某一领域知识的持续性总结,由定时任务自动刷新。

比如「Hindsight 运维知识」这个 Mental Model,每周一凌晨 3 点自动用最新记忆重建内容,确保知识不过时。

特点:领域聚焦、定时刷新、解决「增量记忆漂移」问题。


三、最关键的认知:什么信息放哪层?

这是最容易搞混的地方。

很多人(包括我一开始)犯的错误是:把所有东西都往 MEMORY.md 里塞。

结果是什么?MEMORY.md 从 500 字膨胀到 5000 字,塞满了运维知识、技术细节、API 用法……Agent 每次对话都要读一遍,效率极低,关键规则反而被淹没。

正确的分类方法是问自己一个问题:这条信息属于哪种类型?

1. Agent 执行纪律

📍 存放位置:MEMORY.md

💡 必须每次都遵守,注入系统提示词

2. 引擎检索行为

📍 存放位置:Hindsight Directive

💡 影响 recall 返回什么、怎么排序

3. 长期行为模式

📍 存放位置:Mental Model

💡 需要跨时间积累和刷新

4. 单次任务过程

📍 存放位置:不存

💡 用完即弃,存了是噪音

举个实际例子:

我曾经把「psycopg2 连接 Hindsight 的方式」写进了 MEMORY.md。这完全错了——这是一条技术知识,不是执行纪律,应该放在 Mental Model 里。

结果:MEMORY.md 从 31 条精简到 28 条,释放了 370 字符,信息架构瞬间清晰。


四、五个致命踩坑

踩坑 1:记了不该记的东西

Agent 跑了一次测试、写了一段调试日志、执行了一次临时操作——这些「一次性过程」被自动存进了记忆库。

后果:recall 时返回一堆噪音,真正重要的偏好和规则被挤到后面。

正确做法:只存「跨会话有价值的事实」。 「我偏好仙人风格」值得存,「今天测试了某个 API 的返回格式」不值得。

踩坑 2:MEMORY.md 和 Hindsight 重复存储

同一条规则在 MEMORY.md 里写了一遍,又在 Hindsight 里存了一遍。

后果:修改时只改了一处,另一处还是旧版。两套系统对同一事实有不同说法,Agent 开始「精神分裂」。

正确做法:每个事实只在一个地方存。 MEMORY.md 存执行纪律,Hindsight 存可搜索的事实,职责不重叠。

踩坑 3:Directive 放错了位置

Hindsight Directive 能提升 recall/reflect 的质量,但不能强制 Agent 行为。

比如「每次生成封面图前必须回忆规则」——这条放在 Directive 里没用,因为 Directive 只影响引擎检索,不影响 Agent 是否执行 recall。

正确做法:强制执行纪律放 MEMORY.md,引擎行为优化放 Directive。

踩坑 4:不信任 Agent,手动管理一切

有人觉得 AI 不靠谱,所有记忆都自己手动维护。

后果:工作量爆炸,记忆系统形同虚设。

正确做法:信任自动提取,只做顶层架构设计和定期审计。 发现问题再修正,而不是从一开始就不放手。

踩坑 5:没有定期清理

记忆只进不出,时间长了必然臃肿。

正确做法:设置定期任务清理过期记忆。 我现在有 4 个 cron job:素材清理、日报、环境清理、Mental Model 刷新。不需要的定时任务及时删除。


五、实践指南:三步搭建你的记忆系统

第一步:写好你的 MEMORY.md

这是地基。问自己:「如果 Agent 只能记住 30 条规则,哪些是最重要的?」

我的 28 条规则涵盖:

• 红线规则(数据不编造、参数必检查)

• 公众号规范(主题映射、配图标准、发布流程)

• 用户偏好(威胁向风格、报纸编辑风配色)

• 执行纪律(recall 铁律、强制检查点)

原则:每条规则必须是「Agent 必须做/不做」的指令,不是「知道就好」的知识。

第二步:配置 Hindsight 语义记忆

• 选择合适的 LLM 做 consolidation(MiniMax M3 是个好选择)

• 设置 Directive 来优化检索行为

• 关闭自动刷新 Mental Model(防止引擎 bug 覆盖手动内容)

第三步:建立 Mental Model 体系

按领域拆分:

• 「公众号运营知识」

• 「配图设计规范」

• 「Hindsight 运维经验」

每个 Mental Model 有自己的 source_query,由 cron job 定期重建。


六、终极检验:你的记忆系统是否合格?

用这三个问题检验:

1. Agent 能否在新会话中自动回忆起你的偏好? 如果不能,说明 MEMORY.md 没有正确注入,或者 Hindsight 的 recall 没有被触发。

2. 修改一条规则后,所有地方是否同步更新? 如果 MEMORY.md 改了但 Hindsight 还是旧版,说明有重复存储。

3. Agent 能否区分「必须遵守的纪律」和「参考性的知识」? 如果 Agent 把技术文档当军规执行,说明分层有误。


写在最后

记忆系统不是「越多越好」,是「越准越好」。

一个好的记忆系统,应该让 Agent 像一个跟了你三年的老员工——知道你的脾气、你的规矩、你的雷区,不用你每次都重复。

但它也不该是一个「全知全能的神」——什么都记、什么都存、什么都往里塞,最后连自己都搞不清哪条是纪律、哪条是建议。

记住这三个字:分层、精简、验证。

这就是 AI Agent 记忆系统的全部秘密。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐