第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
G3 时代所有看似新颖的设计——“分层 memory”、“reflection trigger”、“知识图谱式 fact link”、“Ebbinghaus 遗忘”、“document paging”——都能在这 5 篇 G1 奠基论文里找到原型。读懂这 5 篇,G3 的 80% “创新”会变成”已知模式的工程化”。本章为每篇给”动机/机制/代码/批评/影响”统一深读卡,配套 ASCII 框图。读完,下次看 G3 论文时你会自动联想到 G1 哪一篇——这是把”论文一锅粥”变成”演进有序”的关键能力。
📑 目录
- 1. MemGPT(2023.10)—— OS 隐喻奠基者
- 2. Generative Agents(2023.04)—— reflection trigger 起源
- 3. HippoRAG(2024.05)—— 海马体类比的知识图谱
- 4. MemoryBank(2024)—— Ebbinghaus 衰减的工程化
- 5. ReadAgent(2024)—— gist memory 与文档分页
- 6. 5 篇横向对比 + 对 G3 时代的传承
- ✅ 自我检验清单
- 📚 参考资料
1. MemGPT(2023.10)—— OS 隐喻奠基者
1.1 基本信息
- 作者:Packer et al.(UC Berkeley)
- arXiv:2310.08560
- GitHub:
letta-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:Agentletta/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.pygenerative_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
- GitHub:
OSU-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 时代的传承者 |
|---|---|---|
| MemGPT | OS 隐喻 + LLM self-edit | Letta、Mem0、MemoryOS、LightMem(hierarchy) |
| Generative Agents | reflection trigger + importance scoring | Nemori、A-Mem、Memori |
| HippoRAG | fact graph + PageRank | A-Mem(link)、Zep / Graphiti |
| MemoryBank | Ebbinghaus 衰减 | FadeMem、各 forgetting 论文 |
| ReadAgent | gist + paging | LightMem 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 篇主角)
- MemGPT(Packer et al., 2023):arXiv 2310.08560
- Generative Agents(Park et al., 2023):arXiv 2304.03442
- HippoRAG(Gutiérrez et al., 2024):arXiv 2405.14831
- MemoryBank(Zhong et al., 2024) —— arXiv 上多个版本
- ReadAgent(Lee et al., DeepMind, 2024):arXiv 2402.09727
行业讨论
- Letta blog & docs —— MemGPT 改名后的工程化文章
框架文档(如适用)
- letta-ai/letta GitHub —— MemGPT 的工程化继承
- OSU-NLP-Group/HippoRAG GitHub —— HippoRAG 官方实现