外部记忆:从 MemGPT 的操作系统隐喻到生产记忆层
上下文窗口保真高但贵而健忘,模型权重更新慢又不透明,外部工件是 agent 唯一可检查、可编辑、可检索、可移植的更新位置。这条线从 MemGPT 的「上下文当内存」思想实验出发,两年内长成 Mem0、Zep 这样的生产记忆层,还带出 Reflexion 与轨迹检索这类经验记忆,以及 LongMemEval 这张统一考卷。五篇论文一条线,值得连起来读。
记忆要不要搬出上下文窗口?Mem0 报过一个数:放进外部库、按需检索,token 花费比全上下文方案省 90% 以上。
给 agent 沉淀经验,能下手的位置只有三个(L4 p.3):上下文窗口、外部工件、模型权重。窗口保真高,但按 token 计价、噪声不筛选,一满就丢。权重更新慢,过程也不透明。
每一步解决了前一步的什么毛病,连起来读才看得清。
一、三个可更新的位置:为什么是外部工件
| 更新位置 | 优点 | 代价 |
|---|---|---|
| 上下文窗口 | 保真高,写进去就在注意力里 | 贵、噪声不筛选,窗口一满就挤出去 |
| 外部工件 | 可检查、可编辑、可检索、可移植 | 读写策略要自己设计 |
| 模型权重 | 学进去就是自己的 | 更新慢,过程不透明 |
- 可检查。出了错,打开文件就能看见它记错了什么。
- 可编辑。用户可以亲手改。
- 可检索。按需取回,不占窗口。
- 可移植。换模型、换应用都带着走。
代价是读写策略全成了设计题。什么时候写、写什么、怎么读,都要自己定。这道题,后面几节逐个拆。
二、MemGPT:把上下文当内存管理
MemGPT(UC Berkeley,2023;L4 p.17 配图)的隐喻一句话讲完:主上下文是内存,外部上下文是磁盘。
外部那一侧分两层:召回存储 recall storage 放先前对话,归档存储 archival storage 放长期笔记与资料。
妙在换页不靠外部调度器代劳,LLM 自己发函数调用,主动决定把什么换出、把什么换入,中断机制在旁边协调控制流。整套设计就是把操作系统的虚拟内存管理搬进对话系统,后来商业化成了 Letta。
记忆管理从 harness 替模型做的杂务,变成模型的一项工具能力。管理自己的记忆,就是 tool use。
代价也随之而来。自我编辑的每一步都依赖模型的判断,写错了就一路错下去,伴读对 MemGPT 局限的批评就落在这里。生产化要解决的,是给这个自由的写入端加上工序。
三、生产化三条路线:隐喻、管线、图谱
记忆综述 2404.13501 把整个领域摆进三维坐标系:操作是写入、管理、读取;形式是文本、参数化;类型是指令、知识、经验。本篇三条路线都在文本这一格。参数化对应第一节里的模型权重位置,第四节的 Reflexion 与轨迹检索存的则是经验类型。
| 路线 | 代表 | 核心思想 | 代表数字 |
|---|---|---|---|
| OS 隐喻 | MemGPT → Letta | 主上下文当内存、外部存储当磁盘,模型函数调用自主换页 | 奠定框架(L4 p.17) |
| 抽取管线 | Mem0(2025) | 抽取→比对→四操作(L4 p.18) | LOCOMO 相对 OpenAI 记忆方案准确率 +26%;相对全上下文 p95 延迟 -91%、token 花费 -90%+ |
| 时序图谱 | Zep(2025) | 时间感知知识图谱(Graphiti),融合对话与业务数据、保留历史关系 | DMR(Deep Memory Retrieval,MemGPT 团队设立的基准)94.8%(MemGPT 93.4%);LongMemEval 最高 +18.5%,延迟 -90% |
Mem0 给写什么定了工序:新对话先抽候选记忆,与既有库比对,然后由四操作定夺。
- ADD。库里没有相似条目。
- UPDATE。新信息改变了既有条目。
- DELETE。新事实与旧记忆矛盾,否定既有。
- NOOP。已存过,或与库无关。
注意 NOOP 是一个主动决策,不写也是写入策略的一部分。伴读为遗忘正名的那句话,在四操作里落到工程:记忆库也需要垃圾回收,干的就是 DELETE 和 NOOP 这两步。
Zep 则换掉存储结构本身:图上的边带时间线,旧关系不被覆盖,保留为历史。知识更新与时间推理,因此有了着落。
三条路线并不互斥。换页管怎么读,四操作管怎么写,时序图谱管存成什么形状。
四、经验的记忆:Reflexion 与轨迹检索
存知识之外,还能存经验。Reflexion(NeurIPS 2023;L4 p.19)的循环是:attempt 作答 → evaluator 预测 reward → 不合格则 reflection 生成一条文字反馈 → 同任务重试。
反馈就是记忆:它不改变权重,却在下一次尝试的上下文里生效。
轨迹检索(L4 p.20)再往外走一步:把成功与失败的整条轨迹入库,来新任务时用文本嵌入检索最相似的一条,当作 few-shot 示范注入。
失败轨迹也入库,它标记了哪里会翻车。ExpeL(AAAI 24)、Synapse(ICLR 24)、ICAL(NeurIPS 24)、Agent S(ICLR 25)走的都是这条路。对照第一节的三个位置,这也是外部工件,只不过存的是经验而非事实。
五、考卷与分界:LongMemEval 与压缩的边界
系统各说各话,考卷只有一张。LongMemEval(ICLR 2025)出 500 道题,专考信息抽取、多会话推理、时间推理、知识更新、拒答五种能力。
五种能力里,知识更新一项就是 Mem0 的 DELETE/UPDATE 战场;拒答考的是知道没记住时,别硬编造答案。
商业助手与长上下文 LLM 在持续交互的记忆任务上,准确率落差约 30%。窗口再长,也替代不了记忆层。
LongMemEval 给出的设计框架是索引 — 检索 — 阅读三阶段:先建索引、再按问题检索相关记忆、最后带着检索结果作答,而不是把全部历史塞回窗口。
最后划一条容易混淆的分界线:
窗口内的状态估计:旧对话塞不下时总结成状态笔记,以笔记为新起点继续。服务的是「这一轮还记得什么」—— 产物活在本次任务里,会话结束随窗口消失。
跨会话的外部工件:完整历史与沉淀事实放进外部存储,可检索、可检查、可编辑。服务的是「下次还记得什么」—— 会话结束它还在,下一个会话接着用。
与本讲的连接
本篇下钻讲次页管理三条路里的检索一路与「技能与记忆」一节,读取端有 Generative Agents 按相似、新近、重要打分的经典答案,写入端由 Mem0 四操作补上,认知四层在这里各归其位:
- 会话日志与总结,是情节记忆。
- Mem0 与 Zep,管语义记忆的写入与形状。
- Reflexion 与轨迹库,存经验。
- SKILL.md,是程序性记忆。
回看 microAction 那道题,一段对话里被忘掉的早期事实,该进状态文件、外部记忆还是技能?判断依据就是本文的两张表:三个可更新的位置,与三维地图上的类型格子。
本节论文与规范
本节资料
- LongMemEval: 长期交互记忆的五能力基准 论文2410.10813前沿
500 道题嵌入可扩展的聊天历史,专考五种能力:信息抽取、多会话推理、时间推理、知识更新、拒答。结论之一:商业助手在持续记忆任务上比理想全上下文基线低约 30%。设计上采用「索引-检索-阅读」三阶段,可直接当作长记忆系统的评测模板用。
- Mem0: 用于可扩展长期记忆的抽取-整合管线 论文2504.19413进阶
把记忆做成抽取-整合-检索管线:从对话中抽取候选记忆,由 LLM 在 ADD/UPDATE/DELETE/NOOP 四个操作里决策后写入,检索时按相关性取回,另有图记忆变体。LOCOMO 基准上相对 OpenAI Memory 全上下文方案,准确率提升约 26%,p95 延迟降 91%,token 消耗降 90% 以上。对话式记忆的工程代表。
- MemGPT: Towards LLMs as Operating Systems 论文2310.08560进阶官方指定
官方指定读物。把 LLM 当操作系统:主上下文是内存,外部存储是磁盘,用函数调用做「换页」,靠自编辑内存的指令让模型自己管理内存层级,中断机制负责协调。这是上下文窗口不够用时的经典解法,后来演化为商业产品 Letta。本讲记忆管理板块的谱系源头。
- A Survey on Memory Mechanisms of LLM-based Agents 论文2404.13501进阶
39 页系统综述:把 agent 记忆沿三个维度展开——写入/管理/读取等记忆操作,文本/嵌入/结构化等记忆形式,情景/语义/程序性等记忆类型,再串起感知、规划、反思的完整循环。本讲记忆板块的术语骨架与地图基本取自这里。适合当字典用:读任何记忆论文前先来这里对坐标。
- Zep: Temporal Knowledge Graph Memory for Agent Memory 论文2501.13956前沿
记忆的第三条路线:把对话增量构建成时间感知的知识图谱,实体与事实带生效区间,检索时用图遍历加时间推理。LongMemEval 上准确率比全上下文基线最高提升 18.5%,延迟降低约 90%。图谱派与摘要派、原文派三足鼎立,这一派目前最强的证据。本讲记忆板块的三路线对照之一。
AI 生成 · 仅供参考,与课程方无关。选中正文里的任何一段也能直接问我(解释一下 / 举个例子)。
本详解以 CMU 11-768 AI Agents (Fall 2026) 课程大纲为参考框架独立撰写,AI 辅助起草、人工抽审。 涉及的官方课件、论文与课程材料版权归原所有方,讲义为站内镜像、其余外链原文出处; 观点与文字(除标注引用外)为作者原创。