跳到主要内容
Agent Memory 论文演进与综述精读

第4章:G1 奠基期 5 篇精读——MemGPT / Generative Agents / HippoRAG / MemoryBank / ReadAgent

5 篇 2023-2024 G1/G2 过渡期奠基论文逐篇深读:每篇含动机、核心机制(含 ASCII 框图)、关键代码位置、批评、对 G3 时代的影响;MemGPT 的 OS 隐喻、Generative Agents 的 reflection trigger、HippoRAG 的海马体类比、MemoryBank 的 Ebbinghaus 衰减、ReadAgent 的 gist memory

G1 MemGPT Generative Agents HippoRAG MemoryBank ReadAgent

G3 时代所有看似新颖的设计——“分层 memory”、“reflection trigger”、“知识图谱式 fact link”、“Ebbinghaus 遗忘”、“document paging”——都能在这 5 篇 G1 奠基论文里找到原型。读懂这 5 篇,G3 的 80% “创新”会变成”已知模式的工程化”。本章为每篇给”动机/机制/代码/批评/影响”统一深读卡,配套 ASCII 框图。读完,下次看 G3 论文时你会自动联想到 G1 哪一篇——这是把”论文一锅粥”变成”演进有序”的关键能力。

📑 目录


1. MemGPT(2023.10)—— OS 隐喻奠基者

1.1 基本信息

  • 作者:Packer et al.(UC Berkeley)
  • arXiv:2310.08560
  • GitHubletta-ai/letta(原名 MemGPT,2024 改名 Letta)

1.2 动机

“上下文窗口有限,但对话可以无限长。把 OS 的虚拟内存抽象迁移到 LLM agent:context window = RAM,磁盘 = archival memory,LLM 通过 function call 自己决定何时换入换出。“

1.3 机制(ASCII 框图)

┌──────────────────────────────────────┐
│       LLM (限定 context window)       │
├──────────────────────────────────────┤
│  Core Memory (in-context, working)   │
│  - persona block (固定)              │
│  - human block (用户画像)            │
├──────────────────────────────────────┤
│  Recall Memory (recent messages)     │
└──────────────────────────────────────┘

           ▼ function calls
┌──────────────────────────────────────┐
│  Archival Memory (vector DB, 无限)   │
└──────────────────────────────────────┘

4 个 function call

Tool作用
core_memory_append在 core 加内容
core_memory_replace替换 core
archival_memory_insert写入 archival
archival_memory_search检索 archival

🍎 直觉:LLM 像一个”主动管理自己内存”的程序员——发现 core 内容过时就 replace,发现 user 提到新事实就 archive,发现需要旧事实就 search。

1.4 关键代码

  • letta/agent.py:Agent
  • letta/memory.py:CoreMemory / ArchivalMemory

1.5 数据

在 multi-session ChatGPT-like 对话上展示连贯性(量化 metric 偏弱,主要靠 case study)。

1.6 批评

  • function-call 成功率严重依赖 base LLM(GPT-4 可,弱 LLM 不行)
  • 写策略是”prompt 引导”而非真正 agentic
  • 评测靠 case study,没有 paired benchmark

1.7 对 G3 的影响

🌟 奠基性影响

  • OS 隐喻:被所有 G3 hierarchical 系统(MemoryOS / LightMem)继承
  • Long-term / Short-term 双层:G3 默认假设
  • LLM 自我编辑 memory:被 A-Mem / Mem0 / Memori 继承

1.8 30 秒 takeaway

MemGPT = OS 隐喻奠基。没有它的 vocabulary,G3 时代几乎所有 hierarchical 设计都讲不清楚。必读


2. Generative Agents(2023.04)—— reflection trigger 起源

2.1 基本信息

  • 作者:Park et al.(Stanford)
  • arXiv:2304.03442

2.2 动机

“让 25 个 LLM agent 在虚拟小镇生活:每个 agent 需要 episodic memory(事件流)+ reflection(周期性总结)+ planning(基于 memory 制定日程)。“

2.3 机制

Memory stream:每个 agent 维护一个时序事件流,每条 event 标 3 个分数:

score(event) = importance × recency × relevance
              (LLM 评分)  (指数衰减) (与 query 相似)

retrieval = top-K by composite score。

Reflection trigger:当最近事件的 importance 总和超过 thresh,触发 LLM reflect:

reflect(recent_events) → high-level insights
  "John seems frustrated about supply chain issues"
  ← 由多个具体 event 总结

2.4 关键代码

  • generative_agents/memory.py
  • generative_agents/reflection.py:reflect()

2.5 数据

人类观察者评 agent 行为的”连贯性 / 真实性”——主观量化。

2.6 批评

  • 评测靠人类观察,没有 long-term task QA accuracy
  • importance / recency / relevance 三件套的相对权重 hand-tuned
  • reflection 频率是 hyperparameter

2.7 对 G3 的影响

🌟 关键传承

  • reflection trigger → Nemori、Memori、A-Mem
  • 重要性评分 → 几乎所有 G3 系统用过 importance scoring
  • 3 件套 retrieval → Mem0 / LiCoMemory 默认架构

2.8 30 秒 takeaway

Generative Agents = reflection trigger 起源 + episodic memory 工程化模板。是 G3 时代”output-driven write”这一族的开山祖师。


3. HippoRAG(2024.05)—— 海马体类比的知识图谱

3.1 基本信息

  • 作者:Gutiérrez et al.
  • arXiv:2405.14831
  • GitHubOSU-NLP-Group/HippoRAG

3.2 动机

“传统 RAG 用 dense embedding 检索,对’多跳推理’失效。借鉴海马体的’pattern separation + pattern completion’:先把每条 fact 拆成 triple 存进图,retrieval 用 PageRank 而非 cosine。“

3.3 机制

write phase:
  document → OpenIE → triples (subj, rel, obj)


                   knowledge graph

read phase:
  question → entities → PageRank on graph


                      multi-hop retrieved nodes

3.4 关键代码

  • src/hipporag/HippoRAG.py:index()
  • src/hipporag/HippoRAG.py:retrieve()

3.5 数据

在 multi-hop QA benchmark 上显著优于 dense-only RAG。

3.6 批评

  • OpenIE 抽取质量瓶颈
  • 单跳 / 浅层 question 上未必优于 dense
  • PageRank 计算成本

3.7 对 G3 的影响

  • fact-as-triple 存储 → A-Mem / D-MEM 继承
  • graph-based retrieval → Zep / Graphiti / 部分 G3 系统
  • 海马体类比 成为 G3 “cognitive-inspired” 叙事的常用词

3.8 30 秒 takeaway

HippoRAG = fact graph + PageRank retrieval 的奠基。如果 G3 论文谈 “knowledge graph memory”,先回看 HippoRAG。


4. MemoryBank(2024)—— Ebbinghaus 衰减的工程化

4.1 基本信息

  • 作者:Zhong et al.

4.2 动机

“心理学百年前就发现遗忘曲线(Ebbinghaus)。把这条曲线直接公式化到 memory 系统:每条 fact 有 strength s(t),访问后 boost,不访问指数衰减。“

4.3 机制

strength(t) = exp(-t / (5 × access_count))
              ┌─── 时间衰减 ──┐

                            │ 访问越多衰减越慢
                            └─── (Ebbinghaus 公式)

retrieval ranking = similarity × strength

🍎 直觉:常用的 fact 不容易”忘”(衰减慢),冷僻的 fact 一段时间不访问就掉出 retrieval。

4.4 关键代码

  • memorybank/memory.py:update_strength()
  • memorybank/memory.py:retrieve()

4.5 数据

长对话 benchmark 上 acc 优于无衰减 baseline。

4.6 批评

  • Ebbinghaus 是人类记忆模型,迁移到 LLM 缺直接证据
  • 衰减 hyperparameter(5×)是 dataset-tuned
  • 与 retrieval 重排同时存在,可能冗余

4.7 对 G3 的影响

  • forgetting 公式化 → FadeMem 系列继承
  • strength × similarity 双信号 retrieval → 多个 G3 系统借用
  • 模块十九 Ch7 §5 Forgetting Empirical Study 间接受其启发(但反向结论:主动 forget 边际为 0)

4.8 30 秒 takeaway

MemoryBank = Ebbinghaus 衰减的工程化。“遗忘是 feature 不是 bug”叙事的源头;但后续实证显示 retrieval 重排已隐含 forget,主动 forget 边际有限。


5. ReadAgent(2024)—— gist memory 与文档分页

5.1 基本信息

  • 作者:Lee et al.(Google DeepMind)
  • arXiv:2402.09727

5.2 动机

“长文档(200K+ token)单次塞不进 LLM 上下文。让 agent 像人读书一样’翻页 + 划重点’:把长文档分页,每页生成 gist,retrieval 时按 gist 决定翻回哪一页。“

5.3 机制

long document → split into pages


       per-page gist (LLM-generated 100 words)


       query comes in


       LLM picks pages by gist


       load full pages, answer

5.4 关键代码

  • readagent/page.py:gisting()
  • readagent/agent.py:lookup_pages()

5.5 数据

长文档 QA benchmark(QuALITY 等)上接近 full-context baseline,但 cost 低 10×。

5.6 批评

  • 不是真正的 long-term memory(针对单文档)
  • gist 损失信息
  • 翻页决策成本

5.7 对 G3 的影响

  • gist as cache → LightMem 的 deferred extraction 间接继承
  • scheduled retrieval / paging → MemoryOS 的分层思路
  • 长文档 + memory 的边界讨论

5.8 30 秒 takeaway

ReadAgent = gist memory + paging 范式。给”压缩存储 + 按需展开”提供工程模板,影响了 G3 时代的多个 deferred / hierarchical 设计。


6. 5 篇横向对比 + 对 G3 时代的传承

G1 论文核心创新在 G3 时代的传承者
MemGPTOS 隐喻 + LLM self-editLetta、Mem0、MemoryOS、LightMem(hierarchy)
Generative Agentsreflection trigger + importance scoringNemori、A-Mem、Memori
HippoRAGfact graph + PageRankA-Mem(link)、Zep / Graphiti
MemoryBankEbbinghaus 衰减FadeMem、各 forgetting 论文
ReadAgentgist + pagingLightMem deferred extraction、MemoryOS mid-term

🌟 核心G3 时代 80% “创新”都能映射回这 5 篇 G1。你下次看 G3 论文,自动追问”这是 G1 哪条线的传承”,理解效率会跃升。

6.1 5 篇阅读顺序建议

不按时间,按”概念依赖”排:

MemGPT (词汇 + OS)

   ├── Generative Agents (reflection trigger)

   ├── HippoRAG (graph storage)

   ├── MemoryBank (forgetting)

   └── ReadAgent (gist / paging)

MemGPT 优先——其他 4 篇都默认你懂”core memory / archival memory”词汇。


✅ 自我检验清单

  • 能讲清 MemGPT 的 4 类 memory + function-call self-edit 机制
  • 能讲清 Generative Agents 的 reflection trigger(importance + recency + relevance)
  • 能讲清 HippoRAG 的 indexing-on-write + retrieval-via-PageRank
  • 能讲清 MemoryBank 的 Ebbinghaus 公式与 strength update
  • 能讲清 ReadAgent 的 gist + 翻页机制
  • 能为 5 篇各举一个 G3 时代的”传承者”
  • 拿到一篇 G3 论文,能在 5 分钟内说出”它继承了 G1 哪条线”
  • 能说出每篇的 1 个主要批评

📚 参考资料

概念入门

  • 本路线第 1 章 §1 三代演进 —— G1 在演进图中的位置

关键论文(本章 5 篇主角)

行业讨论

  • Letta blog & docs —— MemGPT 改名后的工程化文章

框架文档(如适用)

  • letta-ai/letta GitHub —— MemGPT 的工程化继承
  • OSU-NLP-Group/HippoRAG GitHub —— HippoRAG 官方实现