【论文阅读】Agent 记忆机制(1):A-Mem——让 Agent 记忆从“存储”走向“自进化”

发布时间:2026/7/17 6:04:05
【论文阅读】Agent 记忆机制(1):A-Mem——让 Agent 记忆从“存储”走向“自进化” 文章目录前言零、论文基本信息一、现有方法的问题1. 记忆结构依赖人工预定义2. 基于图结构的记忆方法仍然受限3. 缺乏记忆之间的动态关联与自进化能力二、方法灵感三、基本流程1. 获得新记忆2. 构造记忆笔记3. 生成记忆链接4. 触发记忆演化四、相关工作1. 智能体记忆1.1 完整交互存储1.2 缓存式记忆架构1.3 自控制记忆框架1.4 图结构记忆方法1.5 小结2. RAG2.1 标准 RAG2.2 高级 RAG2.3 Agentic RAG2.4 小结五、具体机制1. 创建记忆笔记1.1 基础字段1.2 大模型生成字段1.3 检索相关字段2. 链接生成3. 记忆进化4. 记忆召回六、实验测试1. 评测指标2. 数据集2.1 LoCoMo2.2 DialSim3. 实验结果七、局限性1. 依赖 LLM 本身的能力2. 目前主要支持文本模态八、个人理解总结前言最近Agent超火然而我的科研课题和 Agent 没有一点关系于是读读 Agent 相关论文希望学习一下这一最新的技术后续打算自己也做一做 Agent 项目。本文主要整理的是A-Mem: Agentic Memory for LLM Agents这篇论文。先暂时写一个初稿后续慢慢补充。零、论文基本信息论文名称A-Mem: Agentic Memory for LLM Agents论文链接arXiv 页面PDF 原文发表平台NeurIPS 2025作者信息Wujiang XuRutgers UniversityZujie LiangIndependent ResearcherKai MeiRutgers UniversityHang GaoRutgers UniversityJuntao TanRutgers UniversityYongfeng ZhangRutgers University / AIOS Foundation代码仓库WujiangXu/AgenticMemory论文性能评测代码WujiangXu/A-mem论文实验复现仓库一、现有方法的问题现有 Agent 记忆系统大多已经能够实现基础的记忆存储与检索但在记忆组织和记忆演化方面仍然存在不足。具体来说论文指出当前方法主要有以下问题1. 记忆结构依赖人工预定义许多 Agent 记忆系统需要开发者提前定义记忆的存储结构并在工作流中手动指定记忆写入的位置。这种方式虽然可控但灵活性较差难以适应复杂、开放的长期交互场景。比如在实际开发中我们可能会预先设计好类似下面的记忆结构用户偏好记忆 任务进度记忆 工具调用记忆 历史对话摘要这种设计方式的问题是系统只能把新记忆放进已有分类中而不是根据新记忆的内容主动生成新的组织方式。2. 基于图结构的记忆方法仍然受限一些方法尝试引入图数据库或结构化关系来组织记忆例如通过实体、关系和 schema 来管理记忆内容。这类方法相比普通向量检索更有结构性但仍然依赖预定义的 schema 和关系类型限制了系统的自适应能力。换句话说图结构确实可以让记忆之间产生关系但如果关系类型仍然是人工提前定义好的那么系统本身并没有真正学会“如何组织记忆”。3. 缺乏记忆之间的动态关联与自进化能力现有记忆系统通常只能把新记忆分类存入已有框架中难以主动发现记忆之间的新联系也难以随着新记忆的加入更新旧记忆的语义描述。因此当前许多记忆系统更多是“存储系统”下图a而不是“会组织、会演化的记忆系统”下图b。简言之现有方法的问题不在于“不能存”而在“不会进化”。二、方法灵感A-Mem 的灵感来源于 Zettelkasten 笔记法。Zettelkasten 是一种知识管理方法中文通常可以理解为“卡片盒笔记法”。它的核心思想不是简单地把笔记按照固定目录归档而是将每条笔记视为一个独立的知识单元并通过链接建立笔记之间的关系。随着笔记数量增加系统会逐渐形成一个相互连接的知识网络。如下图所示。A-Mem 将这一思想迁移到 Agent 记忆系统中每条记忆不再只是孤立存储的文本片段而是可以与其他记忆建立联系并在新记忆加入时推动旧记忆更新从而形成一个动态演化的记忆网络。也就是说A-Mem 不只是想让 Agent “记住信息”而是想让 Agent 的记忆系统具备一定的“整理笔记”和“更新认知”的能力。三、基本流程A-Mem 的整体流程可以概括为以下四步1. 获得新记忆当 Agent 判断当前交互内容值得保存时会将其作为一条新的记忆输入系统。这里的“记忆”可以来自用户对话、任务执行过程、工具调用结果也可以来自 Agent 在任务中产生的中间经验。2. 构造记忆笔记系统将新记忆构造成一条结构化的 memory note。每条记忆笔记不仅包含原始内容还包括关键词、标签、上下文描述、嵌入向量等字段。相比普通 RAG 中的 chunkA-Mem 中的 memory note 更像是一张结构化的知识卡片。3. 生成记忆链接系统基于语义相似度和共同特征从历史记忆中检索相关记忆并通过大模型分析新旧记忆之间的潜在联系从而生成记忆链接。这一步对应 Zettelkasten 笔记法中的“链接”思想知识不是孤立存在的而是通过关联形成网络。4. 触发记忆演化当新记忆加入后系统会检查相关旧记忆是否需要更新。如果需要更新则会修改旧记忆的上下文描述、关键词或标签使旧记忆随着新信息的加入而不断演化。因此A-Mem 的核心并不是简单地“存储记忆”而是让记忆之间形成动态连接并让历史记忆能够随着新信息不断更新。四、相关工作1. 智能体记忆论文将已有智能体记忆方法大致分为三类完整交互存储、缓存式记忆架构和自控制记忆框架。1.1 完整交互存储这类方法会尽量保存完整的历史交互记录例如 MemoryBank、RET-LLM 等。其基本思路是历史交互记录 → 存入记忆库 → 当前问题触发检索 → 召回相关历史 → 辅助模型回答这种方法的优点是信息保存较完整不容易遗漏历史细节。但问题也很明显历史记录会不断膨胀检索噪声也会随之增加没有充分解决历史记忆之间的组织问题。1.2 缓存式记忆架构代表方法是 MemGPT。MemGPT 借鉴计算机缓存和内存管理思想将记忆划分为不同层级例如当前上下文窗口和外部长期记忆。可以简单理解为当前上下文窗口近期、重要、正在使用的信息 外部长期记忆暂时不用但需要长期保存的信息MemGPT 会优先把最近、最重要的信息保留在当前上下文中而把暂时不用的信息放入外部记忆。需要时再从外部记忆中调入相关内容。这种方法解决了一部分上下文窗口有限的问题但整体上仍然更关注“如何管理上下文”而不是“如何让记忆自身形成动态组织”。1.3 自控制记忆框架代表方法是 SCM设计了Memory Stream Controller的结构其中Memory Stream 用于持续记录历史信息流Controller 则负责决定什么时候写入记忆、什么时候读取记忆以及如何管理记忆。这种方法相比简单存储更主动但仍然没有充分解决记忆之间如何自动建立联系、如何随着新信息不断演化的问题。1.4 图结构记忆方法除了上述方法近年的一些系统还尝试引入图结构来组织长期记忆例如 Mem0。Mem0 提出了可扩展的长期记忆架构并进一步使用 graph-based memory representation 来捕捉对话中的复杂关系。这类方法相比普通向量检索更具结构性但 A-Mem 认为如果图结构仍然依赖预定义的 schema 或固定关系类型那么系统的自适应能力仍然会受到限制。1.5 小结现有智能体记忆方法的共同问题是它们大多关注记忆的存储、读取或上下文管理但对记忆之间的动态组织和持续演化关注不足。2. RAG论文也讨论了RAG相关方法。按照复杂程度RAG 大致可以分为三类标准 RAG、高级 RAG 和 Agentic RAG。2.1 标准 RAG标准 RAG 主要包括两个步骤根据用户问题进行语义相似度检索将召回内容拼接到 prompt 中让大模型基于检索内容生成回答。其基本流程可以写成用户问题 → 检索相关文档 → 拼接上下文 → LLM 生成回答这种方式实现简单但检索和生成过程相对固定。2.2 高级 RAG高级 RAG 会在召回前和召回后加入更多优化机制例如query rewritingrerankingchunk filteringcontext compressionhybrid retrievalmulti-hop retrieval这类方法提升了检索质量但本质上仍然是围绕“如何更好地检索静态知识库”展开。2.3 Agentic RAGAgentic RAG 将检索过程交给 LLM 或 Agent 动态控制。Agent 可以决定何时检索、检索什么、是否需要再次检索以及如何根据中间结果调整搜索策略。其流程更接近用户问题 → Agent 判断是否检索 → 动态生成查询 → 检索 → 判断是否需要补充检索 → 生成回答这种方式更灵活但知识库中的内容本身通常仍然是静态的。2.4 小结RAG 解决的是“如何从外部知识库中找到相关内容”的问题而 A-Mem 更关注“记忆库本身如何动态组织和自我演化”的问题。换句话说RAG 的核心是“检索知识”A-Mem 的核心是“组织记忆”。五、具体机制下图展示了本文方法的具体流程可以分为创建记忆笔记、链接生成、记忆进化和记忆召回四部分。1. 创建记忆笔记当 Agent 决定将一段聊天内容保存为记忆时A-Mem 会首先创建一条结构化的记忆笔记。一条记忆笔记主要包含以下字段1.1 基础字段原始内容需要保存的交互内容或经验信息。时间戳记录记忆产生的时间。1.2 大模型生成字段关键词由 LLM 提取用于概括记忆中的核心信息。分类标签由 LLM 生成用于描述记忆所属的主题或类别。上下文描述由 LLM 生成用于补充这条记忆的语义背景。1.3 检索相关字段相似记忆集合通过向量检索得到与当前记忆语义相近的历史记忆。记忆链接通过 LLM 分析新旧记忆之间的关系后生成。相比只保存原始文本A-Mem 的记忆笔记更像是一张结构化知识卡片。2. 链接生成链接生成的目标是发现新记忆与已有记忆之间的潜在关系。具体流程如下对新创建的记忆笔记进行向量化基于向量相似度从历史记忆中召回 Top-k 个相关记忆将新记忆和相关历史记忆交给 LLM 分析由 LLM 判断它们之间是否存在共同特征或潜在联系如果存在有意义的联系则生成对应的记忆链接。这一机制使得A-Mem 的记忆库不是简单的文本集合而是一个可以动态扩展的记忆网络。3. 记忆进化记忆进化是 A-Mem 相比普通记忆系统最重要的区别之一。当新记忆加入后系统不仅会创建新记忆与旧记忆之间的链接还会进一步判断旧记忆是否需要更新。具体来说对于每一条相关历史记忆LLM 会判断是否需要更新其上下文描述关键词标签。如果需要更新系统会用更新后的字段替换原有字段。这意味着历史记忆并不是写入后就固定不变而是会随着新信息的加入不断被重新理解和重新组织。举个简单例子旧记忆 用户最近在学习 Agent 开发。 新记忆 用户正在阅读 A-Mem并希望把论文思想用于自己的 Agent 项目。 更新后的旧记忆 用户正在系统学习 Agent 开发重点关注 Agent 记忆机制并尝试将 A-Mem 等论文方法应用到个人项目中。这个过程体现的就是 memory evolution旧记忆会随着新记忆的加入而更新。4. 记忆召回在推理阶段A-Mem 的记忆召回流程如下将用户请求转换为 embedding计算请求 embedding 与所有记忆向量之间的相似度召回 Top-k 条最相关的记忆笔记将召回的记忆作为上下文提供给 LLMLLM 基于当前请求和相关记忆生成回答。需要注意的是A-Mem 的召回仍然依赖向量相似度但由于记忆笔记中包含关键词、标签、上下文描述和记忆链接因此召回结果不只是原始历史文本而是经过动态组织后的结构化记忆。这也是 A-Mem 相比普通 RAG 的一个优势它不是直接检索原始文本而是检索经过组织和演化后的 memory note。六、实验测试1. 评测指标论文使用了多种指标来评估方法效果包括F1BLEU-1ROUGE-LROUGE-2METEORSBERT Similarity问题回答的平均 token 消耗这些指标分别从回答准确性、文本相似度、语义相似度和上下文使用效率等角度评估记忆系统的性能。其中F1 更关注答案中的关键信息是否命中BLEU、ROUGE、METEOR 更偏文本重叠SBERT Similarity 更关注语义相似度平均 token 消耗则用于衡量记忆系统的上下文使用效率。2. 数据集论文主要使用了两个数据集LoCoMo 和 DialSim。2.1 LoCoMoLoCoMo 是一个面向长期对话记忆评测的数据集用于评估模型在长历史对话中的记忆和问答能力。LoCoMo 的原论文是 Evaluating Very Long-Term Conversational Memory of LLM Agents官方代码仓库为 snap-research/locomo。LoCoMo 主要用于测试模型是否能够在非常长的对话历史中保持长期记忆并回答与历史事件、人物关系、时间线等相关的问题。2.2 DialSimDialSim 是一个用于评估长期多方对话理解能力的对话模拟器。它的论文是 DialSim: A Real-Time Simulator for Evaluating Long-Term Multi-Party Dialogue Understanding of Conversation Systems官方仓库为 jiho283/DialSim。DialSim 中的 agent 会扮演电视剧中的角色并根据过去的长对话信息回答随机问题。它还构建了 LongDialQA 数据集用于评估模型对长期、多方对话信息的理解和问答能力。3. 实验结果上图展示了论文方法在LoCoMo 数据集上的实验结果。非常值得注意的是 token 消耗结果。A-Mem 在回答问题时平均只需要约1200 tokens而一些以往方法例如 MemGPT平均需要约16900 tokens。这一结果说明A-Mem 并不是简单地把大量历史上下文塞给模型而是通过结构化记忆笔记、链接生成和记忆演化机制更高效地召回与当前问题相关的信息。也就是说A-Mem 的优势不仅体现在回答效果上也体现在上下文使用效率上。我觉得这一点对实际 Agent 开发很重要。因为在真实项目中token 消耗不仅影响成本也影响上下文窗口的可用空间。如果每次回答都需要塞入大量历史信息那么系统很难长期稳定运行。七、局限性A-Mem 的局限性主要有两点。1. 依赖 LLM 本身的能力从整体流程可以看到A-Mem 中很多关键步骤都依赖 LLM 完成例如关键词生成标签生成上下文描述生成链接判断记忆更新判断。因此如果底层 LLM 的理解、抽取或判断能力不足记忆系统的效果也会受到影响。换句话说A-Mem 的记忆质量并不只取决于存储结构也取决于 LLM 对记忆内容的理解和组织能力。这也是很多 Agentic Memory 方法共同面临的问题系统越依赖模型自主决策就越容易受到模型能力、提示词设计和生成稳定性的影响。2. 目前主要支持文本模态A-Mem 主要处理文本形式的记忆提取的也是文本相关的信息例如关键词、标签和上下文描述。对于图像、音频、视频等多模态信息A-Mem 本身并没有给出完整解决方案。因此如果要将其用于多模态 Agent还需要进一步设计多模态记忆表示跨模态检索多模态记忆链接多模态记忆更新机制。例如如果 Agent 需要记住用户上传过的图片、语音、文档截图等信息那么仅靠文本 memory note 可能是不够的。八、个人理解我认为 A-Mem 的算法本身并不复杂但它的思想比较精妙。相较于普通记忆系统A-Mem 实现了很强的自主性它不仅保存信息还会主动寻找记忆之间的联系并在新信息加入后重新理解旧记忆。总结A-Mem 提出了一种面向 LLM Agent 的 agentic memory 系统。它借鉴 Zettelkasten 笔记法将每条记忆构造成结构化笔记并通过链接生成和记忆演化机制让记忆之间形成动态连接。相比传统记忆系统A-Mem 的核心优势在于它不仅能存储和召回历史信息还能动态组织记忆并随着新信息加入不断更新旧记忆。因此A-Mem 可以理解为从“被动记忆存储”走向“主动记忆组织”的一次尝试。对于想做 Agent 项目的人来说这篇论文的价值不只是具体算法而是提供了一种更像真实长期记忆系统的设计思路。