AI Agent Memory 架构:不要把记忆只理解成聊天记录
AI Agent Memory 架构:不要把“记忆”只理解成聊天记录
很多人第一次做 AI Agent 时,会把 Memory 简单理解成“把历史对话塞回上下文”。这在 Demo 阶段可以工作,但一到真实业务里,很快会遇到几个问题:
- 上下文越来越长,成本和延迟越来越高;
- 旧信息和新信息混在一起,模型不知道该信谁;
- 用户画像、任务状态、工具结果、业务证据没有分层;
- Agent 做错了事,很难追溯当时它看到了什么;
- 一次成功经验无法沉淀成可复用能力。
所以,Agent Memory 不是一个“保存聊天记录”的功能,而是一套围绕上下文、状态、证据和经验沉淀的工程系统。
说明:本文基于 AI全书相关笔记整理,并使用 AI 辅助成文,发布前已人工核对结构和链接。
1. 先分清几种记忆
在 Agent 系统里,至少要区分下面几类信息:
| 类型 | 作用 | 示例 |
|---|---|---|
| 会话记忆 | 保持当前对话连续性 | 用户刚才说了什么、当前任务做到哪一步 |
| 用户画像 | 支持个性化偏好 | 用户常用语言、角色、输出偏好、禁忌 |
| 任务状态 | 支持多步执行 | 待办列表、已完成步骤、失败步骤、下一步动作 |
| 证据记忆 | 支持可追溯回答 | 检索到的文档、工具调用结果、引用来源 |
| 反思记忆 | 支持经验改进 | 哪类计划失败、哪些工具参数更有效 |
| 技能记忆 | 支持能力复用 | 可复用工作流、模板、检查清单、操作步骤 |
这些信息如果都放进同一个历史消息数组里,系统会很快失控。
更合理的方式是:不同类型的记忆放在不同层级,用不同的写入规则、读取规则和过期规则管理。
2. 短期记忆:不要无限保留上下文
短期记忆主要服务当前任务。
它适合保存:
- 当前用户目标;
- 已确认的约束;
- 最近几轮对话;
- 当前计划;
- 工具调用结果摘要;
- 还没有完成的待办事项。
短期记忆最大的问题是膨胀。很多 Agent 在连续执行任务时,会把所有观察、工具输出、失败日志都塞进上下文,结果模型反而更容易混乱。
实践中可以做几件事:
- 对工具输出做摘要,而不是全文保留;
- 对已完成步骤只保留结果,不保留全部过程;
- 对冲突信息打标,例如“用户最新确认优先”;
- 给当前任务单独维护结构化状态,而不是只依赖自然语言历史;
- 超过一定长度后做阶段总结。
短期记忆的目标不是“越全越好”,而是让模型在当前步骤看到足够的关键信息。
3. 长期记忆:写入要谨慎
长期记忆更像数据库,不应该随便写。
适合进入长期记忆的内容通常包括:
- 用户长期偏好;
- 项目固定规则;
- 可复用业务知识;
- 反复验证有效的工作流;
- 失败案例和修正策略;
- 重要的人工反馈。
不适合进入长期记忆的内容包括:
- 一次性对话噪声;
- 未验证的模型猜测;
- 过期业务状态;
- 含糊的用户情绪判断;
- 没有来源的工具结果。
长期记忆最怕的是污染。一旦把错误信息写进去,后续每次召回都会强化错误。所以长期记忆最好有写入门槛:需要用户确认、需要工具结果或文档证据支持、需要多次出现,或者需要设置有效期。
4. 证据记忆:Agent 必须知道自己依据什么行动
做企业 Agent 时,证据记忆非常重要。
比如 Agent 回答一个政策问题,它不能只说“根据知识库”,而应该能追溯到:
- 哪个文档;
- 哪个版本;
- 哪个段落;
- 检索时间;
- 相关片段;
- 是否被重排命中;
- 最终回答引用了哪些证据。
这部分其实和 RAG 很接近。RAG 提供外部知识接入,Agent Memory 则要把这次接入的证据和后续行动关联起来。
如果没有证据记忆,Agent 做错了事以后,只能看到最终输出,很难知道错误来自检索、重排、Prompt、工具调用,还是模型推理。
5. 反思记忆:不是让模型自言自语
很多 Agent 框架会提到 reflection。这里要注意,反思不是让模型在每次执行后写一段“我下次会更努力”。
有价值的反思应该是可操作的:
- 哪个步骤失败;
- 失败原因是什么;
- 下次遇到同类任务应避免什么;
- 哪个工具参数应该调整;
- 哪个检查项应该前置;
- 是否需要人工确认。
比如:
任务类型:生成 SQL 失败原因:没有先确认字段含义,直接使用了相似字段 修正策略:执行 SQL 前必须列出字段映射,并要求用户确认关键字段 适用范围:涉及收入、订单、用户数等核心指标查询这种反思才有可能变成可复用规则。
6. 技能记忆:把成功路径沉淀成流程
当 Agent 多次完成同类任务后,系统可以把稳定步骤沉淀成技能。
例如:
- 代码审查流程;
- RAG 质量排查流程;
- 内容发布检查清单;
- 数据分析报告模板;
- 客服工单处理 SOP;
- 多工具协作工作流。
技能记忆和普通记忆的区别在于:它不只是“过去发生了什么”,而是“下次可以怎么做”。
一个成熟 Agent 系统,不能每次都从零规划。它应该逐步形成可复用的操作模式。
7. Memory 和 MCP 的关系
MCP 主要解决工具和数据源如何接入的问题,Memory 解决上下文和状态如何管理的问题。
它们经常配合出现:
- MCP Server 提供文档、数据库、工单、仓库等外部能力;
- Agent 调用 MCP 工具获取信息;
- Memory 保存关键证据、任务状态和用户反馈;
- 后续步骤根据 Memory 决定是否继续调用工具、是否需要人工确认。
也就是说,MCP 让 Agent 能访问外部世界,Memory 让 Agent 不至于每一步都失忆。
8. 上线前检查
做 Agent Memory 时,可以用下面这组问题自查:
- 哪些信息可以写入长期记忆?
- 谁有权限写入、修改和删除?
- 记忆是否有来源和时间戳?
- 用户能否查看和清除自己的记忆?
- 错误记忆如何纠正?
- 不同用户、租户、项目之间是否隔离?
- 记忆召回是否可解释?
- 敏感信息是否会被写入?
- 记忆是否会影响权限判断?
- 线上问题能否回放当时上下文?
这些问题如果没有答案,就不要急着把 Memory 做成自动写入。
9. 扩展阅读
我在 AI全书里整理了几类相关内容:
- AI Agent 专题
- AI Agent 核心概念
- MCP 入门课程
- RAG 进阶优化实践
- Prompt 工程专题
一句话总结:Agent Memory 的核心不是保存更多历史,而是把上下文、状态、证据和经验分层管理,让 Agent 在真实任务里可控、可查、可恢复。