构建生产级 Agent Memory 系统架构
By Vincent. @2026.5.15 • 47

推荐阅读
一、传统记忆方案的不足
很多人会直接用向量数据库存储历史对话,用户提问时通过 RAG(检索增强生成)捞取相关内容拼到 prompt 里喂给大模型。但这种做法缺乏真实工程经验,只是照搬开源 Demo,在实际业务中存在致命缺陷。
二、向量数据库的致命局限
若将向量数据库作为 Agent 唯一的记忆中枢,会面临两大问题:
- 模糊匹配 vs 精确调用的冲突:比如在帮用户买车的场景中,系统只需确认用户最终预算这一关键信息,若用向量检索做模糊匹配,会召回大量无关讨论,效率低下且易出错;而业务开发更需要精确调用(如直接查询用户预算字段)。
- 时间状态的系统性困境(时间盲区与状态覆写):仍以买车为例,用户预算从 5 万涨到 8 万,若用向量数据库存储,系统会同时保留这两条信息,大模型无法区分时间先后,导致逻辑混乱。而实际业务需要 “状态覆写”,即系统内永远只保留最新的真实状态(Single Source of Truth)。
三、ChatGPT 的四层分层记忆架构
ChatGPT 采用了极为克制的四层架构,完全没有向量数据库参与:
- 会话元数据(Metadata):记录时区、设备类型等环境信息,用完即弃,不进长期记忆。
- 用户结构化档案卡(Profile):以 JSON 格式存储用户明确属性(如职业、饮食偏好),随时更新、随时覆盖,追求 100% 精确读取,绝不模糊。
- 近期对话摘要(Summar):将长篇聊天记录浓缩成清晰的主题清单,类似美剧的 “前情提要”,让 Agent 能快速衔接对话。
- 滑动窗口(Sliding Window):处理当前上下文,超过 Token 上限时,直接丢弃最老的信息。
这种架构的核心是把明确的业务属性和模糊的对话上下文彻底分开处理,提升系统可控性。
四、Agentic Memory 的三大命题
- 记忆不是 “存储区”,而是影响决策的外部状态:Agent 的记忆价值不在于存了多少数据,而在于能否将历史数据转化为当前决策的有效证据。
- 系统三件套:Ledger、Views、Policy
- Ledger(原始账本):类似银行流水,只追加不修改,记录所有读写操作,用于溯源排错。
- Views(派生视图):将底层数据加工成大模型能理解的格式(如知识图谱、用户时间线小传)。
- Policy(控制策略):是记忆系统的 “大脑”,决定何时读写、何时主动遗忘,避免系统变成数据垃圾场。
- 显式的 “系统 2” 回路:大模型本身是 “直觉系统(System 1)”,而真正的 Agentic Memory 要成为其可主动调用的 “慢思考工具(System 2)”。当遇到复杂任务时,Agent 会触发这个回路,主动检索记忆中的证据再做决策。
五、时间约束与程序性记忆
- 时间约束(双时态机制):为解决大模型的 “时间盲区”,需给数据打上两个时间戳 ——“现实世界生效时间” 和 “系统写入时间”,明确告知大模型数据的时间属性,避免混淆过去与现在的状态。
- 程序性记忆(从陈述性事实到可执行技能):传统 RAG 做的是 “陈述性记忆”(捞取事实),而高级记忆系统要将多次交互的有效轨迹固化成 “程序性记忆(Skill)”。比如 Agent 修复代码 Bug 时,会把成功的操作流程浓缩成可执行的宏指令,下次遇到同类问题可直接调用,减少 Token 消耗和重复试错。
简言之,构建生产级 Agent Memory 不是简单买个向量数据库加几句 Prompt 就能实现的,而是需要一套完整的系统工程,让历史数据能顺利转化为当前决策的有效支撑。
