AI Agent 记忆四层架构:工程落地视角的拆解
工作记忆、短期记忆、长期记忆、元认知——四层各自解决什么问题、由谁来承担、什么时候可以省掉一层。附每一层的技术选型与常见坑。
工作记忆、短期记忆、长期记忆、元认知——四层各自解决什么问题、由谁来承担、什么时候可以省掉一层。附每一层的技术选型与常见坑。
「Agent 记忆」在实践中并不是一个单一组件。把不同时间尺度、不同用途的记忆混在一层里做,是多数团队踩的第一个坑。
业界逐渐收敛出一个四层划分。它不需要照搬实现,但值得用来检查自己的记忆设计是否有缺口。
要点速览:四层不是四个数据库,而是四种生命周期——工作记忆请求结束即销毁,短期记忆会话失效,长期记忆要管事实更新,元认知管策略。按业务做减法:单次任务型 Agent 只需 L1/L2,长期陪伴型四层都要。每层的「常见坑」见正文。
| 层级 | 名称 | 时间尺度 | 存什么 | 类比 | 通常由谁承担 |
|---|---|---|---|---|---|
| L1 | 工作记忆 | 单次请求 | 当前任务状态、中间结果 | CPU 寄存器 | 应用内存 / Agent 状态对象 |
| L2 | 短期记忆 | 单次会话 | 会话消息、临时摘要 | 内存 | 上下文窗口 + 滚动摘要 |
| L3 | 长期记忆 | 跨会话/跨月 | 用户事实、偏好、知识 | 磁盘 | 记忆引擎 / 向量库 + 图谱 |
| L4 | 元认知 | 跨周期 | 记忆的策略、置信度、来源 | 元数据 | 检索编排层 / 策略模块 |
关键点:四层不是四个数据库,而是四种不同的生命周期。 L1 请求结束即销毁,L2 会话结束即失效,L3 需要持久化并处理事实更新,L4 管理前三层的策略。
这一层就是「模型此刻能看到的东西」:当前指令、任务状态、工具返回结果。它的特征是极短生命周期、极高读写频率。
常见坑:把工具调用的原始输出全量累积在 L1 导致窗口爆掉。正确做法是工具输出在回到 L1 前先做裁剪或摘要。
会话内对话历史的管理,主流做法有两种:固定窗口截断与滚动摘要。
固定截断的问题是丢的是「最早的信息」,而那往往包含任务设定与用户身份。更好的做法是结合两者:保留开头的指令与关键设定,中间的对话滚动摘要,最近若干轮保留原文。
常见坑:摘要用同一个模型且不加约束,多次摘要后信息逐层失真。建议要求摘要必须保留「实体、数字、承诺、否定」四类内容。
跨会话持久化的记忆层,需要处理三个别处没有的问题:
这也是各类记忆引擎差异最大的地方:有的用图谱做关系推理(Mem0、Zep),有的用层级做 token 压缩(TiMem、OpenViking),有的用文件系统做可审计存储(ReMe)。
常见坑:不做事实失效机制。用户换了工作、搬了家之后,旧事实还在库里被召回,系统会自信地说错话。这是记忆系统最典型的线上事故。
元认知是「关于记忆的记忆」:这条记忆从哪来?置信度多少?是不是过时了?该用哪种检索策略?
它通常不是独立的存储层,而是一组策略逻辑。实现形式包括:
常见坑:完全省略这一层,把所有记忆平等对待。结果是一条三年前的推测和一条昨天的明确陈述拥有同等权重。
四层是参照系,不是必答题。按业务规模做减法:
| 你的情况 | 可以省掉 |
|---|---|
| 单次任务型 Agent(问答、生成) | L3、L4 |
| 单会话长对话(文档分析) | L3、L4(用好 L1/L2 即可) |
| 跨会话但有明确事实域(订单、日程) | L4 可简化,用规则替代 |
| 长期陪伴型 / 个性化推荐 | 四层都需要 |
最低成本的起步路径:先把 L1/L2 做扎实(这是立刻见效的部分),再引入 L3 处理跨会话事实,最后按需补 L4。
评估任何记忆引擎或自研方案时,逐层问四个问题:
能清楚回答这四个问题的方案,基本都能落地;含糊其辞的地方,往往就是上线后会出问题的地方。
本文为架构方法论文。四层划分是业界实践中的常用参照系,并非某一产品的官方架构;各层由谁承担与具体技术选型取决于业务规模。