返回文章列表
架构分析

AI Agent 记忆四层架构:工程落地视角的拆解

工作记忆、短期记忆、长期记忆、元认知——四层各自解决什么问题、由谁来承担、什么时候可以省掉一层。附每一层的技术选型与常见坑。

2026-06-1613分钟

「Agent 记忆」在实践中并不是一个单一组件。把不同时间尺度、不同用途的记忆混在一层里做,是多数团队踩的第一个坑。

业界逐渐收敛出一个四层划分。它不需要照搬实现,但值得用来检查自己的记忆设计是否有缺口。

要点速览:四层不是四个数据库,而是四种生命周期——工作记忆请求结束即销毁,短期记忆会话失效,长期记忆要管事实更新,元认知管策略。按业务做减法:单次任务型 Agent 只需 L1/L2,长期陪伴型四层都要。每层的「常见坑」见正文。

一、四层各自的职责

层级名称时间尺度存什么类比通常由谁承担
L1工作记忆单次请求当前任务状态、中间结果CPU 寄存器应用内存 / Agent 状态对象
L2短期记忆单次会话会话消息、临时摘要内存上下文窗口 + 滚动摘要
L3长期记忆跨会话/跨月用户事实、偏好、知识磁盘记忆引擎 / 向量库 + 图谱
L4元认知跨周期记忆的策略、置信度、来源元数据检索编排层 / 策略模块

关键点:四层不是四个数据库,而是四种不同的生命周期。 L1 请求结束即销毁,L2 会话结束即失效,L3 需要持久化并处理事实更新,L4 管理前三层的策略。

二、逐层拆解与常见坑

L1 工作记忆:别把它做成数据库

这一层就是「模型此刻能看到的东西」:当前指令、任务状态、工具返回结果。它的特征是极短生命周期、极高读写频率。

常见坑:把工具调用的原始输出全量累积在 L1 导致窗口爆掉。正确做法是工具输出在回到 L1 前先做裁剪或摘要。

L2 短期记忆:滚动摘要优于固定截断

会话内对话历史的管理,主流做法有两种:固定窗口截断与滚动摘要。

固定截断的问题是丢的是「最早的信息」,而那往往包含任务设定与用户身份。更好的做法是结合两者:保留开头的指令与关键设定,中间的对话滚动摘要,最近若干轮保留原文。

常见坑:摘要用同一个模型且不加约束,多次摘要后信息逐层失真。建议要求摘要必须保留「实体、数字、承诺、否定」四类内容。

L3 长期记忆:这一层最难,也最值钱

跨会话持久化的记忆层,需要处理三个别处没有的问题:

  • 事实抽取:从对话里判断哪些值得长期记住
  • 冲突消解:新事实与旧事实矛盾时怎么办(标记失效 / 覆盖 / 共存)
  • 召回精度:跨用户、跨时间地精准找到相关记忆

这也是各类记忆引擎差异最大的地方:有的用图谱做关系推理(Mem0、Zep),有的用层级做 token 压缩(TiMem、OpenViking),有的用文件系统做可审计存储(ReMe)。

常见坑:不做事实失效机制。用户换了工作、搬了家之后,旧事实还在库里被召回,系统会自信地说错话。这是记忆系统最典型的线上事故。

L4 元认知:最少被实现,收益却很高

元认知是「关于记忆的记忆」:这条记忆从哪来?置信度多少?是不是过时了?该用哪种检索策略?

它通常不是独立的存储层,而是一组策略逻辑。实现形式包括:

  • 为每条记忆附带来源、时间、置信度元数据
  • 根据问题类型切换检索策略(事实查询走向量、关系查询走图、时间查询带时间过滤)
  • 检索结果之间的冲突检测与优先级排序
  • 主动遗忘与降权策略

常见坑:完全省略这一层,把所有记忆平等对待。结果是一条三年前的推测和一条昨天的明确陈述拥有同等权重。

三、什么时候可以省掉某一层

四层是参照系,不是必答题。按业务规模做减法:

你的情况可以省掉
单次任务型 Agent(问答、生成)L3、L4
单会话长对话(文档分析)L3、L4(用好 L1/L2 即可)
跨会话但有明确事实域(订单、日程)L4 可简化,用规则替代
长期陪伴型 / 个性化推荐四层都需要

最低成本的起步路径:先把 L1/L2 做扎实(这是立刻见效的部分),再引入 L3 处理跨会话事实,最后按需补 L4。

四、选型时用四层做检查表

评估任何记忆引擎或自研方案时,逐层问四个问题:

  1. L1/L2:提供了会话内上下文的管理能力吗?还是完全交给应用层?
  2. L3:支持事实抽取与冲突消解吗?更新的旧事实如何处理?
  3. L3:能按用户/租户隔离吗?导出与迁移路径是什么?
  4. L4:记忆条目是否携带来源、时间、置信度?检索策略可否按查询类型切换?

能清楚回答这四个问题的方案,基本都能落地;含糊其辞的地方,往往就是上线后会出问题的地方。

参考来源

本文为架构方法论文。四层划分是业界实践中的常用参照系,并非某一产品的官方架构;各层由谁承担与具体技术选型取决于业务规模。