
A-MEM:用「卡片笔记法」给 LLM Agent 装上自主演化的记忆系统
本文来自 Rutgers 大学吴江 Xu 团队,合作者包括独立研究者 Zujie Liang。通讯作者为 Rutgers 助理教授 Yongfeng Zhang。
该团队提出了 A-MEM——一个借鉴 Zettelkasten(卡片笔记法)的 Agent 记忆系统。核心思路是让记忆不再被静态存储和机械检索,而是像人类做笔记一样自主生长:每条新记忆自动生成上下文描述、与历史记忆建立语义链接、甚至反过来更新已有记忆的内容。系统无需预设任何记忆操作规则,完全由 LLM 驱动完成记忆的组织和演化。
实验在 6 个基础模型上全面超越现有 SOTA 基线,同时在 token 消耗上实现了 85-93% 的压缩。
论文链接:https://arxiv.org/abs/2502.12110
代码:https://github.com/WujiangXu/AgenticMemory
LLM Agent 的记忆,卡在了哪里
LLM Agent 要在真实场景中长期运行,离不开记忆系统。对话历史、用户偏好、过往任务的解决方案——这些经验如果没法被有效存储和调用,Agent 就只能每次从零开始。
现有的记忆系统做了不少尝试。MemGPT 用缓存架构优先保留近期信息,MemoryBank 通过记忆流和控制器的组合来维护长期记忆,Mem0 则引入图数据库来组织结构化知识。但它们共享一个根本问题:操作流程是写死的。开发者必须预先定义记忆怎么存、什么时候存、什么时候取。图数据库虽然提供了结构化组织,但它的 schema 和关系类型也是预先设定的——当 Agent 学到一个新的数学解法时,系统只能在既定框架里分类和链接,没法自主生长出新的组织模式。
换句话说,现有系统的瓶颈不在检索能力,而在于记忆结构的僵化。知识在持续积累,但组织知识的方式一成不变。这在简单任务中还能凑合,一旦面对需要跨会话、跨主题做复杂推理的开放场景,固定结构就成了天花板。

A-MEM 的出发点正是这个问题。研究者想要一个不需要预设操作规则的记忆系统——新记忆进来,系统自己判断该怎么组织、和谁建立联系、需不需要更新已有的记忆。听起来有点像人类的学习过程?没错,他们的灵感来源就是 Zettelkasten。
技术方案:从 Zettelkasten 到自主记忆网络
Zettelkasten 是德国社会学家 Niklas Luhmann 发明的卡片笔记法。核心理念有三条:每张笔记只记录一个原子化的知识点(原子性);笔记之间通过灵活的链接形成知识网络(互联性);笔记的内容和结构可以随着新知识的加入而不断演化(演化性)。
A-MEM 把这三条原则搬进了 LLM Agent 的记忆系统。整个架构由三个核心模块组成。

笔记构建:每条记忆都是一个「知识原子」
当 Agent 与环境交互产生一条新记忆时,系统不只是把原文存下来。它调用 LLM 对这条记忆做深度加工,生成一组结构化属性:关键词 、标签 、上下文描述 。每条记忆笔记 的完整表示为:
其中 是原始交互内容, 是时间戳, 是由文本编码器生成的稠密向量, 是与其他记忆的链接集合。
关键词和标签捕捉记忆的核心概念,上下文描述则提供更丰富的语义理解。这些属性不是手工标注的,而是 LLM 自动生成的。之后,系统用文本编码器把所有文本成分拼接后编码为向量:
这个向量用于后续的相似度检索和链接生成。多层次的属性设计让每条记忆都携带丰富的语义信息,而不是一坨原始文本。
链接生成:让记忆自己「找朋友」
新记忆入库后,A-MEM 要做的第一件事是找关联。系统先用向量相似度从历史记忆中检索出 top-k 最相关的候选记忆,然后把新记忆和候选记忆一起交给 LLM,让模型判断它们之间是否存在有意义的联系。
关键在于,这一步不是简单的「相似就连」。LLM 可以识别出微妙的模式——因果关系、概念层次、跨主题的隐含关联——这些是向量相似度捕捉不到的。系统借鉴了 Zettelkasten 中「盒子」的概念:相关的记忆通过共享的上下文描述被归入同一个盒子,形成有机的知识聚类。但与 Zettelkasten 不同的是,一条记忆可以同时属于多个盒子。
记忆演化:新知识反过来更新旧记忆
这是 A-MEM 最有意思的部分。当新记忆和旧记忆建立联系后,系统会让 LLM 重新审视旧记忆的属性——上下文描述、关键词、标签是否需要更新?
打个比方:你之前记了一条笔记「用户喜欢用 Python 做数据分析」,后来又学到了「这个用户最近在学 Rust,想用 Rust 重写数据处理管线」。A-MEM 不只是把两条笔记链接起来,它还会更新第一条笔记的上下文描述——加入编程语言迁移的相关信息。
这种演化机制让整个记忆网络越用越聪明。随着交互的积累,系统可以发现跨记忆的高阶模式和概念,模仿人类的学习过程。
检索:带「连带效应」的上下文召回
检索阶段相对直接。给定当前查询 ,系统编码后做向量相似度搜索,返回 top-k 相关记忆。但有一个设计值得注意:当某条记忆被检索到时,通过链接与之属于同一「盒子」的相关记忆也会被自动带回。这种连带检索机制让上下文更加完整——不只是找到最相关的那一条,而是把相关知识网络一并呈现。
实验结果:全面碾压,还省了 90% 的 token
LoCoMo 数据集:六模型全面领先
研究者在 LoCoMo 数据集上做了系统评测。这个数据集的特点是对话特别长——平均 9K token,横跨最多 35 个会话,远超传统对话数据集的规模。评测涵盖五类问题:多跳推理(Multi Hop)、时序推理(Temporal)、开放域(Open Domain)、单跳(Single Hop)和对抗性(Adversarial)。
在非 GPT 基础模型上,A-MEM 在所有类别上全面领先。在 GPT 系列模型上,虽然 LoCoMo 和 MemGPT 在简单事实检索类任务中表现尚可(得益于 GPT 强大的预训练知识),但在需要复杂推理链的多跳任务上,A-MEM 的表现至少是它们的两倍。
以 GPT-4o-mini 为基础模型的对比为例:A-MEM 在多跳推理 F1 上达到 27.02,MemGPT 为 26.65,LoCoMo 为 25.02;在时序推理上差距更加悬殊——A-MEM 达到 45.85,MemGPT 只有 25.52,直接拉开了 20 个百分点。
DialSim 数据集:F1 提升 35%
在 DialSim 数据集(基于《老友记》《生活大爆炸》等多角色长对话的问答数据集)上,A-MEM 取得 F1 3.45,比 LoCoMo 方法提升 35%,比 MemGPT 提升 192%。在所有 6 项评测指标上(F1、BLEU-1、ROUGE-L、ROUGE-2、METEOR、SBERT Similarity)全面领先。
成本:每次记忆操作不到 0.0003 美元
A-MEM 每次记忆操作平均消耗约 1200 token,比 LoCoMo 和 MemGPT(约 16900 token)降低了 85-93%。用 GPT-4o-mini 的商业 API,单次操作成本不到 0.0003 美元。处理速度方面,GPT-4o-mini 平均 5.4 秒,本地部署的 Llama 3.2 1B 只需 1.1 秒。
性能翻倍的同时,成本降到原来的十分之一。
消融实验:链接和演化缺一不可
消融实验清楚地拆解了两个核心模块的贡献。以 GPT-4o-mini 为基准:
- 去掉链接生成和记忆演化,多跳推理 F1 从 27.02 暴跌到 9.65
- 只去掉记忆演化(保留链接生成),F1 回落到 21.35
- 完整 A-MEM 在所有类别上都是最优
链接生成是记忆组织的基础,记忆演化则在此基础上做进一步精炼。两者互补,缺了谁都不行。
扩展性:百万级记忆,检索不到 4 秒
研究者测试了从 1000 到 100 万条记忆的扩展性能。A-MEM 的空间复杂度与基线方法一样是 ,没有额外存储开销。检索时间方面,即使记忆量达到 100 万条,A-MEM 的平均检索时间仅为 3.70 秒。对比之下,ReadAgent 在 100 万条记忆时的检索时间超过 120000 秒(约 33 小时),基本不可用。

T-SNE 可视化也直观地展示了 A-MEM 记忆嵌入的结构化程度——蓝色的 A-MEM 聚类明显比红色基线更加紧凑和有序。

总结
总体来看,A-MEM 的贡献集中在三个方面:
- 自主记忆组织:无需预设任何操作规则,新记忆自动生成上下文、建立链接、触发演化,整个知识网络自主生长
- 双重演化机制:链接生成让记忆找到关联伙伴,记忆演化让旧知识被新经验不断刷新,两者协同构建越来越精细的知识结构
- 极致的成本效率:token 消耗降低 85-93%,百万级记忆检索不到 4 秒,兼顾性能和实用性
这项工作也留下了不少值得探索的方向。记忆组织的质量目前受限于底层 LLM 的能力——不同模型生成的上下文描述和链接关系可能有差异。此外,当前的实现仅限于文本模态,未来能否扩展到图像、音频等多模态记忆,值得期待。