第4章:经典论文精读 —— 7 篇里程碑读透
MemGPT / Generative Agents / HippoRAG / MemoryBank / ReadAgent / A-MEM / Zep 七篇里程碑论文逐篇精读
理论再多,不如把 7 篇里程碑论文读透。本章按时间线串起从 2023 年的 MemGPT 到 2025 年的 A-MEM、Zep,把每篇的”动机 → 核心创新 → 算法 → 实验 → 工业启示”一次讲清。读完这 7 篇,你能对话任何 Agent Memory 工程师都不发怯,也能在团队设计 Memory 系统时引经据典。
📑 目录
- 0. 时间线概览
- 1. MemGPT(2023-10)— LLM as OS
- 2. Generative Agents(2023-04)— Memory Stream + Reflection
- 3. HippoRAG(2024-05)— 海马体启发的图 + PageRank
- 4. MemoryBank(2023-10)— Ebbinghaus 曲线驱动 decay
- 5. ReadAgent(2024-02)— Gist + Lookup
- 6. A-MEM(2025,NeurIPS)— Zettelkasten 自动连接
- 7. Zep / Graphiti(2025-01)— Bi-temporal KG
- 跨论文对比与工业启示
- 自我检验清单
- 参考资料
0. 时间线概览
2023-04 Generative Agents 最早把 Memory + Reflection + Planning 系统化
2023-09 CoALA 分类法奠基(第 2 章已讲)
2023-10 MemGPT LLM-as-OS,把上下文管理"OS 化"
2023-10 MemoryBank 把 Ebbinghaus 曲线引入 vector decay
2024-02 ReadAgent "看摘要 + 按需找原文"的 gist 思想
2024-05 HippoRAG 海马体启发,图 + Personalized PageRank
2025-01 Zep + Graphiti Bi-temporal KG,工业级时间一致性
2025-02 A-MEM Zettelkasten,memory 自演化
🌟 阅读顺序建议:Generative Agents → MemGPT → MemoryBank → A-MEM → Zep → HippoRAG → ReadAgent。前 5 篇按”启发 → 系统 → 演化”递进,后 2 篇是专题。
1. MemGPT(2023-10)— LLM as OS
Packer et al., “MemGPT: Towards LLMs as Operating Systems”, arXiv 2310.08560
1.1 动机
LLM 上下文窗口太小(2023 年大多 4K-32K),装不下整本书 / 长会话。但操作系统早就解决过类似问题——RAM 装不下所有数据,通过虚拟内存把数据在 RAM 和 disk 之间换页。
1.2 核心创新:虚拟上下文管理
把 LLM 的 context window 类比为 RAM,引入外部存储 + 自动调度:
┌─────────────────────────────────────────────┐
│ Main Context (LLM context window) │
│ ┌──────────┬──────────┬──────────────┐ │
│ │ System │ Working │ Conversation│ │
│ │ Prompt │ Context │ History │ │
│ └──────────┴──────────┴──────────────┘ │
└─────────────────────────────────────────────┘
↑↓ paging via function calls
┌─────────────────────────────────────────────┐
│ External Context (disk) │
│ ┌────────────────┬────────────────────┐ │
│ │ Recall Memory │ Archival Memory │ │
│ │ (旧对话历史) │ (向量化文档库) │ │
│ └────────────────┴────────────────────┘ │
└─────────────────────────────────────────────┘
LLM 通过自调用工具实现 paging:
# LLM 自己生成的 tool call
core_memory_append(name="human", content="用户偏好深色咖啡")
recall_memory_search(query="上次讨论的方案")
archival_memory_insert(content="...long doc...")
archival_memory_search(query="...")
1.3 算法关键点
- Heartbeat events:LLM 每 N 秒被强制”唤醒”,决定是否要换页
- Interrupt mechanism:用户消息抢占 LLM 的”思考”,类似中断
- System prompt 含 memory pressure 信号:context 用了 70%+ 时,prompt 会提示 LLM 主动 evict
1.4 实验
- Document QA:能在 OPT-13B 上回答远超 context 的长文档问题
- Multi-Session Chat:跨多周对话保持一致性,DMR(Deep Memory Retrieval)benchmark 上显著超基线
1.5 工业启示 🍎
- MemGPT 是 Letta 的前身:作者 Charles Packer 等创办了 Letta 公司,把 MemGPT 工程化
- “LLM 自调用 tool 管 memory”成为行业范式:Mem0、Zep 都借鉴了这个模式
- 核心思想:不要让 LLM 操心 memory 物理在哪,而是给它一组”语义 API”(
recall_memory_search等)
2. Generative Agents(2023-04)— Memory Stream + Reflection
Park et al., “Generative Agents: Interactive Simulacra of Human Behavior”, UIST’23, arXiv 2304.03442
2.1 动机
让 25 个 NPC 在虚拟小镇 Smallville 中自主生活——醒来、煮早餐、上班、聊天、记得彼此、规划周末。需要的不只是 LLM,而是一套完整的”心智架构”。
2.2 核心创新:三层架构
┌─────────────────────────────────────────┐
│ Memory Stream │
│ 按时间戳记录所有观察、对话、行动 │
└─────────────────────────────────────────┘
↓ retrieval (recency + importance + relevance)
┌─────────────────────────────────────────┐
│ Reflection │
│ 周期性产生高层抽象总结 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Planning │
│ 生成今日计划,递归分解到 5-15 分钟粒度 │
└─────────────────────────────────────────┘
2.3 关键算法
Memory retrieval scoring:
其中:
- recency: —— 越久越衰减
- importance: 入库时由 LLM 打 0-10 分
- relevance: 与当前 query 的 cosine similarity
Reflection 触发:近期 importance 总和超阈值时,LLM 自问 “What 5 high-level questions can I answer about subjects in these statements?“,然后逐题生成 reflection,并把 reflection 也写回 memory stream(可被未来 reflection 再次抽取)。
Planning:粗→细递归,先生成今日大纲(15 项),再每项细化到小时,再到 5-15 分钟,带 reactivity(被打断后重新规划)。
2.4 实验
- 25 个 agent 在 Smallville 自主生活 2 天
- 涌现行为:自发组织情人节派对(从 Isabella 一句”想办派对”,传播给 12 个人,7 个最终参加)
- 用户研究:Generative Agents 比 ablation(无 reflection / 无 planning)显著更”可信”
2.5 工业启示 🍎
- Memory retrieval 的三因子打分几乎成为行业标配——Mem0 / Letta 内部都有变体
- Reflection 是把 episodic 转 semantic 的关键算子(第 6 章会展开)
- Smallville 代码开源:github.com/joonspk-research/generative_agents,工业级模板
3. HippoRAG(2024-05)— 海马体启发的图 + PageRank
Gutiérrez et al., “HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models”
3.1 动机
传统 RAG 是”扁平”的——每条文本独立 embed,检索时各算各的相似度。但人脑的海马体是关联式的——通过 pattern separation(区分相似事件)+ pattern completion(从局部线索补全完整记忆)实现高效检索。
3.2 核心创新:KG + Personalized PageRank
1. 离线索引阶段:
每条文档 → LLM 抽取 (entity, relation, entity) 三元组
构建知识图(节点 = entity,边 = relation)
每个 entity 也同时 embed 进 vector store
2. 在线检索阶段:
query → LLM 抽取 query 中的 entities
每个 query entity → vector 召回最相似的 KG nodes(种子节点)
以种子节点启动 Personalized PageRank
按 PageRank 分数排序,返回 top-K 节点对应的原文档
3.3 为什么 PageRank?
PageRank 模拟”随机游走”——从种子节点出发沿着关系边乱走,走到的节点说明它们与种子语义相关。比纯 vector 检索强在:能跨多跳关联起远距离信息。
3.4 实验
- MultiHop QA(MuSiQue / 2WikiMultiHopQA / HotpotQA):HippoRAG 比 RAPTOR、Iter-RetGen 等强基线提升 3-20%
- 特别擅长跨段落多跳:vanilla RAG 召回不到的”两段之间需要桥接”的信息,HippoRAG 能找到
3.5 工业启示 🍎
- 多跳查询的天敌:vanilla RAG 撑不起来,HippoRAG 风格(Graph + PageRank)是标准解
- A-MEM 的灵感部分来自 HippoRAG(自动建立连接、走图算法)
- 缺点:LLM 抽三元组贵且慢,适合离线/批量索引而非高频写入
4. MemoryBank(2023-10)— Ebbinghaus 曲线驱动 decay
Zhong et al., “MemoryBank: Enhancing Large Language Models with Long-Term Memory”
4.1 动机
人类记忆会随时间衰减(Ebbinghaus 1885 年的经典曲线 ),不重要的事情会被遗忘——但被重复回忆的事情会”巩固”。Agent Memory 也应该有类似机制,否则会无限膨胀。
4.2 核心创新
把 Ebbinghaus 曲线直接搬到检索 scoring:
其中 是该条 memory 的”巩固强度”——每次被检索时增大(记得越牢)。
最终 score:
低 retention 的 memory 排序靠后,自然被”遗忘”;高频访问的会越来越牢。
4.3 实验
在自建的多会话对话数据集上,MemoryBank 比无 decay 的 baseline 在长期会话一致性、个性化表现上显著更好。
4.4 工业启示 🍎
- Decay 是 Memory 系统必须有的算子——否则 vector store 会无限膨胀
- FadeMem(2025) 把这个思想做到极致:双层 store(LML 慢衰、SML 快衰),存储省 45%
- 对应 LangMem / Letta 的 importance score 字段:每条 memory 入库都要打一个 importance 分
5. ReadAgent(2024-02)— Gist + Lookup
Lee et al., “A Human-Inspired Reading Agent with Gist Memory of Very Long Contexts”
5.1 动机
人类读长文档时不是字字记忆,而是”先扫一遍记 gist(要点),需要细节时再回原文查”。LLM 处理超长文档(几十万 token)时也应该这么做。
5.2 核心算法
1. Pagination:把长文档切成"页"(论文 5-7 段一页)
2. Gisting:每页用 LLM 生成 50 token 的 gist(摘要)
3. Look up:回答问题时,先把所有 gist 拼成 short context 发给 LLM
LLM 决定哪几页需要看原文,然后定向 fetch
4. Final answer:把原文 + gist 给 LLM,生成答案
5.3 实验
- 在 NarrativeQA(平均 60K token 小说)上,ReadAgent 显著超过纯长 context 和 vanilla RAG
- 上下文有效长度扩展到原模型的 3-20×
5.4 工业启示 🍎
- Gist memory 是处理超长 conversational history 的好思路:Letta / Zep 的”对话总结”机制都是它的变体
- 核心思想:让 LLM 自己决定何时去看原文,而不是全塞 / 全摘
- 对应今天的 “context distillation” 一类技术
6. A-MEM(2025,NeurIPS)— Zettelkasten 自动连接
Xu et al., “A-MEM: Agentic Memory for LLM Agents”, arXiv 2502.12110, NeurIPS 2025
6.1 动机
现有 Memory 系统结构是死的——加一条就放一条,顶多 vector 索引一下。但人类的笔记法 Zettelkasten(德国社会学家 Niklas Luhmann 用一辈子积累 9 万张卡片的方法)不是这样:每张卡片建立时,都要主动给它和已有卡片之间画连接;新卡片可能反过来修改老卡片(更新备注、补充上下文)。
6.2 核心创新
每条新 memory 入库时,LLM 做三件事:
- 生成结构化属性:contextual description、keywords、tags
- 链接(Link):在 vector store 中找 top-K 最相关的已有 memory,LLM 判断是否要建连接、什么类型的连接
- 演化(Evolve):如果新 memory 让某些老 memory 的”上下文”或”关键词”应该更新,LLM 主动改写老 memory
New memory N 来:
N → embed → 找 top-K 邻居 [M1, M2, M3]
↓
LLM(N, M1, M2, M3) → 决定:
- 要不要加 link?(N → M1 类型 supports / N → M2 类型 contradicts)
- 要不要改写 M1 的 keywords / context?(M1 已有"咖啡偏好",N 是"咖啡机故障",可以补充)
↓
写入 N + 更新 link + 更新部分老 memory
6.3 实验
在 LongMemEval、LoCoMo 等基准上,A-MEM 比 Mem0、MemGPT、GraphRAG 等 SOTA 平均提升 5-15%。6 个不同 foundation model 上都有提升——证明是架构层面的胜出而非模型选择。
6.4 工业启示 🍎
- Memory 不是只读 —— 老 memory 应该能被新 memory 演化
- Link 让 vector 检索增强为”图 + 向量”:类似 HippoRAG 但更轻量
- 缺点:每次写入都要 LLM 调用,写成本高——适合离线批量或低频写入场景
7. Zep / Graphiti(2025-01)— Bi-temporal KG
Rasmussen et al., “Zep: A Temporal Knowledge Graph Architecture for Agent Memory”, arXiv 2501.13956
7.1 动机
MemGPT 等不区分”事实何时为真”和”系统何时知道”——用户搬家、改口味、换工作时,Memory 容易给出过期或矛盾的信息。需要严格的时间一致性。
7.2 核心创新
(第 3 章已详解,这里精炼)
- 每条 edge 4 个时间戳:t_valid / t_invalid / t_created / t_expired
- 自动事实抽取:LLM 从对话中提取实体和关系
- 自动 invalidation:新事实进来,自动检测并 invalidate 过期老事实
- 混合检索:KG 遍历 + node embedding 向量相似 + BM25,三路召回融合
7.3 实验
在 DMR(Deep Memory Retrieval)benchmark 上:
- 准确率 +18.5% vs MemGPT
- 延迟 -90%(单次查询不再需要 LLM 二次推理”哪条是当前的”)
7.4 工业启示 🍎
- Bi-temporal 是企业级 Memory 的必选项——任何对审计、合规有要求的场景都需要
- Graphiti 已成为 Zep 商业产品和开源版的核心,被 Neo4j 官方推广
- 对比 Mem0:Zep 一致性强、查询能力强,但写入慢、对 LLM 依赖重(每条都要 LLM 抽实体)
跨论文对比与工业启示
总览表
| 论文 | 核心创新 | 适合场景 | 工业落地 |
|---|---|---|---|
| MemGPT | LLM-as-OS,虚拟上下文 | 长会话 chat | Letta |
| Generative Agents | Memory Stream + Reflection | 角色 / 游戏 NPC | LangMem 借鉴 |
| HippoRAG | KG + PageRank,海马体启发 | 多跳 QA | 部分 RAG 系统 |
| MemoryBank | Ebbinghaus decay | 通用 chat | Mem0 / FadeMem 借鉴 |
| ReadAgent | Gist + Lookup | 长文档 | Letta 摘要机制 |
| A-MEM | Zettelkasten 自演化 | 知识管理 agent | NeurIPS 2025,工业刚开始落地 |
| Zep / Graphiti | Bi-temporal KG | 企业级、需审计 | Zep 商业产品 |
工业落地的”组合拳”
实际生产 Agent 几乎都是多篇论文思想的组合:
基础检索 ← Generative Agents 的 recency + importance + relevance 三因子
存储层 ← Mem0 multi-store(vector + graph + KV)
事实演化 ← Zep 的 bi-temporal + 自动 invalidation
长会话 ← MemGPT 的"LLM 自调度 memory tool"
长文档 ← ReadAgent 的 gist + lookup
反思巩固 ← Generative Agents 的 Reflection
遗忘机制 ← MemoryBank 的 Ebbinghaus decay
关系推理 ← HippoRAG 的 PPR(可选)
自动连接 ← A-MEM 的 link/evolve(2025+)
🌟 这就是为什么 Mem0 / Letta / Zep 等框架的设计文档常常引用这些论文——它们是站在巨人肩膀上,不是一夜从零搭起来的。
✅ 自我检验清单
- MemGPT 类比:能用”操作系统虚拟内存”向小白解释 MemGPT 的核心设计
- Generative Agents 三因子打分:能默写 score 公式和每一项的含义
- Reflection 算法:能描述”importance 累积超阈值 → LLM 自问 5 个 high-level 问题 → 写回 memory”的完整流程
- HippoRAG:能解释为什么”图 + Personalized PageRank”对多跳 QA 有效
- MemoryBank:能写出 Ebbinghaus 衰减公式,并解释 S(m) 是什么
- ReadAgent:能向同事解释”gist + lookup”和”vanilla RAG”的区别
- A-MEM 三步:能描述新 memory 入库时 link / evolve 的完整流程
- Zep bi-temporal:能解释 4 时间戳如何回答”用户当前住址”和”系统昨天认为他住哪”
- 组合拳:能为某个具体业务设计一个”借鉴 3-5 篇论文思想”的 Memory 系统
- 辨识能力:看到一篇新 Memory 论文,能立刻判断它和这 7 篇里哪几篇思想接近
📚 参考资料
论文(按章节顺序)
- MemGPT (Packer et al., 2023):arXiv 2310.08560 | 项目主页
- Generative Agents (Park et al., 2023):arXiv 2304.03442 | 代码
- HippoRAG (Gutiérrez et al., NeurIPS 2024):OpenReview
- MemoryBank (Zhong et al., 2023)
- ReadAgent (Lee et al., 2024)
- A-MEM (Xu et al., NeurIPS 2025):arXiv 2502.12110 | 代码
- Zep (Rasmussen et al., 2025):arXiv 2501.13956 | Graphiti
中文解读 / 二次资料
- MemGPT 中文图解(Leonie Monigatti):博文
- A-Mem 解读:Medium
- 方佳瑞:深入理解 LLM Agent Memory —— 知乎专栏
- 猛猿:Memory in LLM Agents 系列
综述
- Memory in the Age of AI Agents (2025):arXiv 2512.13564
- Awesome-Memory-for-Agents:github.com/TsinghuaC3I/Awesome-Memory-for-Agents
- Agent-Memory-Paper-List:github.com/Shichun-Liu/Agent-Memory-Paper-List