跳到主要内容
Agent Memory

第4章:经典论文精读 —— 7 篇里程碑读透

MemGPT / Generative Agents / HippoRAG / MemoryBank / ReadAgent / A-MEM / Zep 七篇里程碑论文逐篇精读

MemGPT Generative Agents HippoRAG MemoryBank ReadAgent A-MEM Zep

理论再多,不如把 7 篇里程碑论文读透。本章按时间线串起从 2023 年的 MemGPT 到 2025 年的 A-MEM、Zep,把每篇的”动机 → 核心创新 → 算法 → 实验 → 工业启示”一次讲清。读完这 7 篇,你能对话任何 Agent Memory 工程师都不发怯,也能在团队设计 Memory 系统时引经据典。

📑 目录


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:

score(m)=αrecency(m)+βimportance(m)+γrelevance(m,q)\text{score}(m) = \alpha \cdot \text{recency}(m) + \beta \cdot \text{importance}(m) + \gamma \cdot \text{relevance}(m, q)

其中:

  • recency: exp(λΔt)\exp(-\lambda \cdot \Delta t) —— 越久越衰减
  • 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 年的经典曲线 R=et/SR = e^{-t/S}),不重要的事情会被遗忘——但被重复回忆的事情会”巩固”。Agent Memory 也应该有类似机制,否则会无限膨胀。

4.2 核心创新

把 Ebbinghaus 曲线直接搬到检索 scoring:

retention(m,t)=e(ttlast access)/S(m)\text{retention}(m, t) = e^{-(t - t_{\text{last access}}) / S(m)}

其中 S(m)S(m) 是该条 memory 的”巩固强度”——每次被检索时增大(记得越牢)。

最终 score:

score=retention(m,tnow)relevance(m,q)\text{score} = \text{retention}(m, t_{\text{now}}) \cdot \text{relevance}(m, q)

低 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 做三件事:

  1. 生成结构化属性:contextual description、keywords、tags
  2. 链接(Link):在 vector store 中找 top-K 最相关的已有 memory,LLM 判断是否要建连接、什么类型的连接
  3. 演化(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 抽实体)

跨论文对比与工业启示

总览表

论文核心创新适合场景工业落地
MemGPTLLM-as-OS,虚拟上下文长会话 chatLetta
Generative AgentsMemory Stream + Reflection角色 / 游戏 NPCLangMem 借鉴
HippoRAGKG + PageRank,海马体启发多跳 QA部分 RAG 系统
MemoryBankEbbinghaus decay通用 chatMem0 / FadeMem 借鉴
ReadAgentGist + Lookup长文档Letta 摘要机制
A-MEMZettelkasten 自演化知识管理 agentNeurIPS 2025,工业刚开始落地
Zep / GraphitiBi-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 中文图解(Leonie Monigatti):博文
  • A-Mem 解读:Medium
  • 方佳瑞:深入理解 LLM Agent Memory —— 知乎专栏
  • 猛猿:Memory in LLM Agents 系列

综述