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 在真实任务里可控、可查、可恢复。