Agent Memory 21篇论文学习路线 · essay

Agent Memory 21篇论文学习路线

来源主文:一口气读完 agent memory 的 21 篇核心论文

这组笔记的目标不是翻译论文,而是把 Agent Memory 拆成可学习、可比较、可落地的工程知识。每篇拆解都围绕同一条主线:论文要解决什么问题,作者怎样建模记忆,信息如何写入、更新、检索、使用,实验或案例证明了什么,最后怎样迁移到 Personal Knowledge Agent。

本地原文与同步边界

每篇 0121 的拆解笔记顶部都嵌入了本地原文:

代码块TEXT · 1 行收起展开
F:\2. ObsidianNotes\技术栈\AI Agent\essay\papers

papers/ 是本机原文资料目录,已加入 Obsidian vault 的 .gitignore,不会同步到 GitHub 或博客;中文精读笔记会同步。essay/papers/19-Awesome-Multimodal-Memory-README.md 是原始资源清单,不作为本文的二次加工笔记,避免污染来源材料。

重要校正:源文章里 A-MEM 的 arXiv 指向 2409.09908 是错误的;本地使用的是正确论文 2502.12110

总体框架

Agent Memory 不是单个算法,而是一组围绕“长期状态”的系统能力。

Agent Memory 能力闭环 记忆不是一个库,而是持续治理的运行时回路。 输入事件 写入判断 记忆表示 存储治理 检索选择 上下文注入 行动反馈

读论文时始终问一个问题:这篇论文是在补上这条链路里的哪一段?

Agent Memory 设计空间

动态治理 静态复用 模型内部 外部系统

A 内部更新 B 外部治理 C 检索增强 D 经验沉淀

MT MLLM WISE Titans

MemGPT Mem0 Zep MemOS

HippoRAG MemLong MM

GA Voyager Reflexion

图中 MT 指 Memorizing Transformers,MLLM 指 MemoryLLM,GA 指 Generative Agents,MM 指多模态记忆检索资源。

这张图只负责定位,不承载长解释:横轴回答“记忆藏在模型里,还是放在外部系统里”;纵轴回答“记忆主要是静态召回,还是会在运行中持续更新”。读图时先看象限,再看论文点位,最后回到下面这张工程矩阵判断路线。

象限代表论文关键机制工程判断
内部更新Memorizing Transformer、MemoryLLM、Memory3、WISE、Titans参数、hidden state、补丁层、memory token研究价值高;工程首版不宜直接押注,因为回滚、权限、审计和污染隔离难。
外部治理MemGPT、Mem0、Zep、A-MEM、MIRIX、MemOS记忆对象、图谱、生命周期、命名空间、调度策略最适合作为 Personal Knowledge Agent 的主路线,能做 API、表结构、权限和 trace。
代码块JAVA · 2 行收起展开
| 检索增强 | HippoRAG、MemLong、多模态检索资源 | 向量、BM25、图检索、长上下文切片、rerank | 解决“资料很多但找不准”的问题;关键不在存储,而在召回、排序和证据组织。 |
| 经验沉淀 | Generative Agents、Voyager、Reflexion、CoALA | 事件流、反思、计划、技能库、认知分层 | 解决“做过的事如何变成下次策略”;适合落到任务复盘、失败归因和技能复用。 |

读 21 篇论文时不要按标题记,而要按象限判断:它修改的是记忆位置、更新方式、检索方式,还是行为复用方式。这个判断会直接影响你后面写 Java 服务时该建表、建图、建队列,还是只做评测和策略层。

论文地图

序号笔记记忆形态重点问题工程价值
0101-MemGPT-Towards LLMs as Operating Systems外部虚拟上下文上下文窗口不够时如何分页和调度Agent runtime 的内存管理模型
0202-MemoryBank-Long Term Memory with Forgetting对话长期记忆如何保存用户画像并模拟遗忘用户记忆、偏好记忆、时间衰减
0303-Zep-Temporal Knowledge Graph Memory时序知识图谱事实会随时间变化,怎样保持可追溯事实抽取、图谱、历史查询
0404-A-MEM-Agentic Memory可演化记忆卡片记忆如何自组织成网络类 Obsidian 的 Agent 记忆系统
0505-Mem0-Production Ready Long Term Memory生产级外部记忆记忆系统怎样工程化上线CRUD、检索、评测、API 化
0606-MemOS-Memory OS for AI System记忆操作系统记忆如何作为系统资源治理资源隔离、生命周期、调度
0707-MIRIX-Multi Agent Memory System多组件记忆多 Agent 如何分工管理记忆复杂 Agent 的模块化记忆架构
0808-HippoRAG-Neurobiological Long Term Memory图增强检索如何利用关联结构提升召回知识图谱 + RAG
0909-Generative Agents-Memory Stream事件流 + 反思行为如何由记忆和计划驱动游戏/仿真/个人助理的行为闭环
1010-Voyager-Skill Library as Memory技能库经验如何沉淀成可执行代码程序性记忆、技能复用
1111-Memorizing Transformers-KNN MemoryKNN 模型记忆模型内部如何外挂检索记忆长尾知识、局部回忆
1212-MemoryLLM-Self Updatable LLMMemory tokens模型如何自更新而不重训全量参数可更新模型状态
1313-Memory3-Explicit Memory显式模型记忆知识存储和模型计算如何分离降低参数负担、显式管理
1414-WISE-Lifelong Model Editing模型编辑记忆新知识如何写入但不破坏旧知识可控编辑、补丁层
1515-Titans-Learning to Memorize at Test Time测试时神经记忆surprise 如何触发记忆更新在线学习、长序列建模
1616-Memory in the Age of AI Agents统一综述框架Memory 的形态、功能、动态如何分类设计 checklist
1717-Agent Memory Survey综述流程Agent Memory 的操作管线是什么全局术语和分类
1818-CoALA-Cognitive Architectures for Language Agents认知架构记忆工作/情景/语义/程序记忆如何协作Agent 架构分层
1919-Multimodal Memory Survey多模态记忆图像、音频、视频、3D 如何进入记忆多模态 Personal Agent
2020-Reflexion-Verbal Reinforcement Learning语言反思记忆失败经验如何变成下次策略任务复盘、经验库
2121-MemLong-Long Context Memory Retrieval长上下文检索缓存超长历史如何分块召回长文档/长会话记忆

四条阅读主线

主线一:外部记忆系统

先读 01 -> 05 -> 03 -> 04 -> 06 -> 07

这条线回答:如果要把 Agent 的记忆做成一个服务,数据结构、API、检索、更新、权限、审计应该怎么设计。

问题重点论文你要学会的工程对象
上下文不够放怎么办MemGPTmemory page、context scheduler
用户事实怎么长期保存MemoryBank、Mem0memory item、profile、decay
事实冲突和时间变化怎么办Zeptemporal edge、valid time、fact history
记忆之间怎样自组织A-MEMnote graph、link、evolution
多 Agent/多组件怎样共享记忆MIRIX、MemOSnamespace、capability、policy

主线二:检索增强记忆

先读 08 -> 21 -> 19

这条线回答:记忆不只是存下来,还要能在正确时刻被找回来。

检索方式解决的问题风险
向量检索语义相似召回召回相似但不关键
BM25/关键词精确词匹配语义泛化弱
图检索多跳关联构图成本高
时间过滤新旧事实区分时间字段不准会误导
rerank提升最终上下文质量延迟和成本增加

主线三:模型内部记忆

先读 11 -> 12 -> 13 -> 14 -> 15

这条线偏研究,但能帮你理解“为什么大多数工程系统先做外部记忆”。模型内部记忆强在推理融合,弱在可解释、可回滚、可权限控制。

quadrantChart
  title Agent Memory 方法取舍
  x-axis "难治理" --> "易治理"
  y-axis "弱融合" --> "强融合"
  quadrant-1 "理想但困难"
  quadrant-2 "工程主流"
  quadrant-3 "价值较低"
  quadrant-4 "研究前沿"
  "外部 Memory Store": [0.78, 0.48]
  "RAG 检索": [0.72, 0.42]
  "知识图谱记忆": [0.64, 0.58]
  "模型编辑": [0.32, 0.78]
  "KNN Memory": [0.42, 0.68]
  "Memory Tokens": [0.28, 0.82]

主线四:经验、反思与技能

先读 09 -> 20 -> 10 -> 18

这条线回答:Agent 做过一件事之后,怎样把结果变成下一次可用的经验,而不是只留下聊天记录。

论文经验如何产生经验如何使用
Generative Agents从事件流抽取反思反思影响计划和行为
Reflexion从失败轨迹生成语言反馈下次任务作为策略提示
Voyager成功行为沉淀成技能代码后续任务检索并调用技能
CoALA按认知架构分层工作记忆、长期记忆、行动协同

推荐学习顺序

如果你目标是做 Personal Knowledge Agent,按这个顺序读:

推荐学习顺序 1 工程主线 01 MemGPT 05 Mem0 03 Zep 20 Reflexion 09 Gen Agents 2 架构扩展 04 A-MEM 06 MemOS 07 MIRIX 18 CoALA 3 检索/内部 08 HippoRAG 21 MemLong 11-15 内部记忆 4 综述校准 16 Survey 17 Survey 19 MultiModal

不要从综述开始死啃。先用工程论文建立对象感,再用综述补全分类。

精读模板

每篇论文至少回答 12 个问题:

维度具体问题
问题这篇论文认为现有 Agent/LLM 缺什么记忆能力?
对象它记的是什么:事实、事件、偏好、技能、参数、模态片段?
写入什么信息会被写入,谁决定写入?
表示记忆是文本、向量、图、代码、token,还是模型权重?
更新新旧记忆冲突、合并、遗忘、失效怎样处理?
检索触发检索的条件是什么,怎样排序?
注入检索结果怎样进入上下文或模型状态?
行动记忆怎样改变回答、工具选择、计划或技能调用?
验证实验到底证明了哪个环节有效?
局限成本、隐私、时效性、冲突、评测有什么问题?
工程如果用 Java/Spring 实现,需要哪些表、服务和任务?
迁移它能为 Personal Knowledge Agent 提供哪个模块?

工程落地总图

PKA Memory 写入治理、四类存储、检索注入、行动反馈必须闭环。 Events Ingestion Extraction Governance SQL Vector Graph Skill Retrieval Context Runtime Tools Answer

对应 Java 后端模块:

模块职责可先实现的最小版本
MemoryIngestionService接收对话、笔记、工具结果保存原始 event
MemoryExtractionService从 event 抽取事实/偏好/任务LLM 抽取 JSON
MemoryStore存储记忆对象PostgreSQL + pgvector
MemoryGraphService管理实体关系先用关系表,后续换图数据库
MemoryRetrievalService检索相关记忆BM25 + embedding hybrid
MemoryGovernanceService权限、TTL、冲突、版本owner、scope、status 字段
ContextBuilder把记忆放进 prompttoken 预算 + source path
MemoryEvalService评测记忆是否帮到任务固定问题集 + trace 对比

最小数据模型

代码块JAVA · 14 行收起展开
// MemoryRecord = 一条可治理的长期记忆。
// 重点不是“存一段文本”,而是让记忆能被检索、更新、审计和删除。
public record MemoryRecord(
    String id,           // 全局唯一 ID,便于 trace 和更新。
    String ownerId,      // 记忆归属:用户、项目或组织。
    String scope,        // user/project/session,决定可见范围。
    String type,         // fact/preference/task/skill/reflection。
    String content,      // 记忆正文,给模型或检索器使用。
    String source,       // 来源:chat、obsidian、tool、paper。
    double confidence,   // 抽取可信度,低可信记忆不要直接强注入。
    long validFrom,      // 生效时间,支持时序事实。
    Long validTo,        // 失效时间,null 表示仍有效。
    String status        // active/superseded/deleted。
) {}

这个模型能覆盖 Mem0、Zep、MemoryBank、Reflexion 的最小交集。先把它做扎实,比一开始追求复杂图数据库更重要。

评测标准

没有评测,记忆系统很容易变成“看起来聪明,实际乱记”。

评测项问题证据
写入准确率该记的是否记了,不该记的是否没记抽取样本人工标注
检索命中率用户问题相关记忆是否被找回top-k recall
上下文有效性找回的记忆是否真的改善回答A/B eval
冲突处理新事实是否覆盖旧事实时序测试
隐私与权限项目/用户记忆是否串库权限回归测试
成本延迟每轮记忆检索是否可接受trace 里的 latency/token
可解释性回答能否说明用了哪条记忆source id / source path

读完后的产出

读完 21 篇不应该只留下“我知道很多论文”。应当产出一个可实现的 Personal Knowledge Agent 设计:

  1. 一张记忆类型表:事实、偏好、任务、反思、技能、资料片段。
  2. 一个 MemoryRecord 数据模型。
  3. 一个写入策略:什么时候抽取,什么时候拒绝写入。
  4. 一个更新策略:合并、覆盖、失效、遗忘。
  5. 一个检索策略:关键词、向量、图、时间过滤、rerank。
  6. 一个上下文策略:哪些记忆进 prompt,超预算怎么压缩。
  7. 一套 eval:固定问题、预期记忆、预期引用、失败归因。

这才是这组论文对工程学习的实际价值。