【论文阅读】Agent 记忆机制(2):记忆机制综述,从Storage、Reflection到Experie
文章目录前言零、论文基本信息一、简介二、记忆机制总览三、演化动力为什么需要从 Storage 走向 Experience1. 长时一致性2. 动态环境3. 持续学习四、演化路径三个演化阶段具体是如何实现的1. Storage2. Reflection3. Experience五、Experience 带来了什么改变1. 主动探索2. 跨轨迹抽象六、总结和未来展望参考资料前言今天抽空读了一篇 Agent 记忆相关的综述记录一下论文内容。这篇文章的核心问题是Agent 记忆机制为什么会从简单的“存储”逐渐走向“反思”再进一步走向“经验”如果说早期记忆机制解决的是“Agent 如何记住过去”那么 Experience 阶段更关注的是“Agent 如何从过去的轨迹中总结出可复用经验并指导未来行动”。零、论文基本信息论文名称From Storage to Experience: A Survey on the Evolution of LLM Agent Memory Mechanisms论文链接arXiv 页面PDF 原文发表平台ACL 2026 Findings作者信息Jinghao LuoSouth China Normal UniversityYuchen TianHong Kong Baptist UniversityChuxue CaoHong Kong University of Science and TechnologyZiyang LuoHong Kong Baptist UniversityHongzhan LinHong Kong Baptist UniversityKaixin LiNational University of SingaporeChuyi KongHong Kong Baptist UniversityRuichao YangUniversity of Science and Technology BeijingJing MaHong Kong Baptist University一、简介记忆机制是 Agent 不可或缺的组成部分。由于 LLM-based Agent 本身缺乏显式状态维护机制如果没有外部记忆Agent 很难在复杂多轮任务中保持一致性也很难从过去的交互中学习容易反复犯同样的错误。这篇综述认为Agent 记忆机制的演化可以分为三个阶段Storage存储历史轨迹Reflection对历史轨迹进行反思和修正Experience从多条轨迹中抽象出可复用经验也就是说记忆机制并不是简单地“存得越多越好”而是在不断从“记录过去”走向“优化过去”再走向“利用过去指导未来”。需要注意的是这三个阶段并不是完全替代关系。Experience 阶段的记忆机制仍然可能包含 Storage 和 Reflection 的成分只是核心能力从保存轨迹、修正轨迹进一步转向了抽象经验。举个简单例子Storage 更像是把用户和 Agent 的历史对话保存下来。Reflection 更像是对这些历史对话做总结、纠错和更新。Experience 则更像是从很多次对话和任务中总结出一套以后还能复用的做事方法。比如一个写作 Agent刚开始可能只是记住“用户之前写过一篇 Agent 记忆机制的文章”之后它会反思“用户不喜欢空泛总结更喜欢结构清楚、有例子的解释”最后它可能总结出一条更通用的经验“给技术博客做修改时应该先保留作者原有行文风格再补充必要例子和过渡句而不是直接重写成论文综述风格。”这就是从 Storage 到 Reflection再到 Experience 的区别。二、记忆机制总览下图可以作为理解全文的“地图”。它把 Agent 的工作流和记忆机制的三阶段演化放在了一起Agent 在和环境交互的过程中产生历史轨迹而这些轨迹可以被存储、反思最后进一步抽象为经验。图源Luo et al., 2026Figure 1。结合这张图文中提出了三个问题记忆机制为什么要经历这三个演化阶段记忆机制具体是如何演化的演化的最后一个阶段也就是 Experience给 Agent 带来了怎样的改变后面的内容也基本按照这三个问题展开。三、演化动力为什么需要从 Storage 走向 Experience1. 长时一致性目前大模型在多步互动中经常出现冗余探索、错误累积和推理不连续的问题。对于 Agent 来说这会直接影响任务执行效果。长时一致性主要包括两个方面状态一致性Agent 需要维护内部推理状态并让自身对外部世界的感知与真实环境保持同步同时对于长期交互型 Agent还需要将用户偏好、人格特征等信息沉淀为稳定记忆保证行为表现的一致性。目标一致性Agent 在长任务中不能只追求局部看起来合理的动作而需要持续围绕全局目标进行规划避免任务执行过程中出现目标漂移。举个例子假设一个 Agent 的目标是帮助用户完成一份求职简历。用户一开始说自己想投递“AI Agent 开发岗位”后面又陆续补充了项目经历、技术栈、岗位要求和简历风格偏好。如果 Agent 没有长时一致性它可能每一轮都只根据当前输入修改一句话结果导致前后重点不一致前面突出 RAG后面又突然改成产品经理最后整份简历主线变得很乱。而有记忆机制的 Agent 应该记住整个任务目标这份简历是为了投递 AI Agent 开发相关岗位。因此后续无论是修改项目描述、技术关键词还是自我评价都应该围绕这个全局目标展开。因此早期的 Storage 机制主要解决“记住过去”的问题让 Agent 不至于每一轮都像从零开始。2. 动态环境Agent 并不是只在静态文本中工作而是需要不断和外部环境交互。环境变化会带来两个问题知识会过时过去保存的知识可能随着时间变化而失效。因果关系有延迟当前动作的影响可能不会立刻出现而是在多轮交互之后才体现出来。这就要求记忆机制不能只是机械保存还需要能够判断哪些记忆仍然有效哪些记忆需要被更新或修正。举个例子假设一个旅行规划 Agent 记住了“某个景点周一闭馆”。如果这个信息来自几年前的网页那么今天可能已经不准确了。此时 Agent 不能简单召回旧记忆就直接回答而应该意识到这类信息具有时间敏感性需要重新确认。再比如一个投资分析 Agent 曾经记录过“某家公司增长很快”。但几个月后公司财报、市场环境、监管政策都可能发生变化。旧记忆并不是不能用而是需要判断它现在是否仍然有效。下面这张图主要对应论文中“动态环境”这一部分。它说明了 Agent 记忆面临的不是一个静态数据库问题而是一个随着时间、环境反馈和因果关系不断变化的问题。图源Luo et al., 2026Figure 2。从这张图可以看出记忆机制如果只负责保存历史信息是不够的。对于真实环境中的 Agent 来说更重要的是判断一条记忆是否仍然有效以及过去某个动作是否会在未来产生延迟影响。3. 持续学习真实场景中的 Agent 不可避免会遇到新任务、新环境或者训练分布之外的模式。如果每次都只依赖上下文临时推理那么 Agent 很难真正变强。因此记忆机制最终需要走向 Experience从历史任务轨迹中总结出更通用的策略、规则或技能让 Agent 在未来任务中复用这些经验。比如一个代码 Agent 第一次处理 Milvus 报错时只是根据报错信息临时解决问题。第二次又遇到类似问题时如果它还是从零开始搜索和推理就说明它没有真正学习。更理想的情况是Agent 能从过去的解决轨迹中总结出经验如果 Milvus 搜索时报 Collection is in state ‘released’通常需要在查询前显式调用 load()并检查 collection 的加载状态。这样下次遇到类似错误时Agent 就不只是“记得之前出现过这个报错”而是能够直接复用之前沉淀下来的排查经验。四、演化路径三个演化阶段具体是如何实现的论文中对 Agent 记忆机制做了比较完整的分类。为了先有一个整体印象可以先看下面这张图。它把 Storage、Reflection 和 Experience 下面的具体方法都放在了一起。图源Luo et al., 2026Figure 4。这张图信息量比较大可以先不用一次性看完文中按照三个阶段拆开整理。1. StorageStorage 阶段解决的是“如何把过去保存下来”的问题。它强调对历史交互轨迹的保留通常不会对原始信息做太多语义加工。存储方式可以分为三类线性存储互动轨迹被看作按时间顺序组织的 token 流一般通过 FIFO 策略管理主要有两种实现方式通过修改注意力机制或编码位置直接修改模型结构以扩充上下文窗口。通过机械式压缩或稀疏化方法删除不重要的内容例如裁剪、摘要、启发式过滤等。向量存储将记忆内容转化为向量后存入向量数据库扩展了记忆容量也让研究重点逐渐转向召回优化例如如何召回更相关、更有用的记忆。结构化存储将记忆划分为更清晰的结构兼顾存储能力和召回效率同时缓解单纯向量召回中可能出现的语义歧义问题。主要有两种方式用关系数据库、表格等结构化方式存储记忆。用类似知识图谱的方式将互动历史建模为实体和关系网络。举个例子假设用户多次告诉 Agent“我更喜欢简洁一点的回答。”“写代码时最好加注释。”“我正在做 Agent 记忆相关的项目。”“我的文章希望保留原来的行文风格不要改得太学术。”Storage 阶段要做的事情就是把这些历史信息保存下来。后续用户再让 Agent 写文章、改代码或解释论文时Agent 可以从记忆中召回这些信息让回答更符合用户习惯。不过这里也会出现问题。Storage 只是保存并不一定判断这些信息是否仍然有效。例如用户后来又说“这篇文章不用太简洁可以稍微展开讲一下”如果旧记忆没有被更新就可能反而影响当前回答。因此Storage 阶段的核心目标是“存下来”。但问题在于原始轨迹中可能包含错误、噪声和过时信息。如果 Agent 只是把这些内容全部保存下来后续召回时反而可能干扰推理。2. ReflectionReflection 阶段解决的是“如何提升记忆质量而不只是忠实保存原始轨迹”的问题。因为原始轨迹中可能包含错误推理、幻觉内容或无效探索所以仅仅保存是不够的还需要对记忆进行评估、修正和更新。现有方法大致可以分为三类Introspection通过模型自我反思的方式优化记忆。也就是让 LLM 根据已有轨迹进行总结、纠错或提炼。Environment依靠外部环境反馈优化记忆。例如根据任务执行结果、用户反馈或环境变化来判断某条记忆是否仍然有效。Coordination多个 Agent 共同参与记忆的生成、评估、修正和更新通过多 Agent 协作提升记忆质量。举个例子假设 Agent 在一次任务中得出了一条记忆用户喜欢所有回答都尽量简短。但后续多次交互中发现用户在写论文笔记、项目文档、简历描述时其实更希望回答完整、有结构只是不喜欢无意义的废话。那么 Reflection 阶段就需要对这条记忆进行修正。更合适的记忆可能是用户喜欢结构清楚、信息密度高的回答在文章和项目描述中希望保留必要细节但避免空泛和冗余表述。这就比原来的“喜欢简短回答”更准确也更有助于后续任务。再比如Agent 之前记住“某个接口不能使用”但后来环境更新后这个接口已经恢复正常。如果 Agent 能根据新的运行结果修正旧记忆就不会一直被过时信息误导。Reflection 相比 Storage 更进一步它不再只是“保存过去”而是开始尝试判断过去的信息是否正确、是否有用、是否需要更新。3. ExperienceExperience 阶段解决的是“如何从记忆中总结出可复用经验”的问题。Reflection 之后的记忆虽然更可靠但仍然偏片段化很大程度上依赖具体上下文。Experience 则进一步从多条轨迹中抽象出更通用的策略、规则或技能。论文中将 Experience 分为三种形式Explicit Experience显式经验通常以人类可读的文本形式保存例如规则、总结、提示词、操作建议等。Implicit Experience隐式经验通过微调、参数更新等方式将经验内化到模型参数中。Hybrid Experience混合经验同时结合显式经验和隐式经验既保留显式经验的可解释性和高容量又通过周期性内化增强模型自身能力形成经验积累和参数内化的循环。如果说 Storage 是“记住发生了什么”Reflection 是“判断记忆是否可靠”那么 Experience 就是“从过去总结出以后还能用的东西”。这里可以用一个写作 Agent 的例子来理解。假设一个 Agent 帮用户修改了很多篇技术博客。刚开始它只是保存每次修改记录例如某一篇文章哪里改了标题哪里删了冗余句子哪里补了例子。这个阶段更接近 Storage。后来Agent 开始总结每篇文章中哪些地方容易出问题例如开头没有说明论文价值概念之间缺少过渡方法分类只是罗列没有解释区别读者可能不知道某个抽象概念对应什么实际场景。这个阶段更接近 Reflection。再往后Agent 从多篇文章中抽象出一套更通用的写作经验技术博客最好先说明问题背景再解释论文框架最后结合自己的项目经验总结启发每个抽象概念后面最好配一个简单例子。这条经验不再依赖某一篇具体文章而是可以迁移到后续很多论文笔记中这就是 Experience 更关注的内容。不过论文也强调 Experience 并不是一种完全独立于微调、强化学习或元学习之外的新学习范式而是从 Agent 记忆机制的角度重新解释这些技术如何把交互轨迹转化为可复用经验。五、Experience 带来了什么改变Storage 和 Reflection 两个阶段总体来说仍然比较依赖已有轨迹。更准确地说Reflection 更偏向单条轨迹内的修正而 Experience 则进一步转向跨轨迹归纳。它主要带来了两个变化主动探索和跨轨迹抽象。1. 主动探索在 Experience 阶段Agent 不再只是被动记录信息而是开始主动探索经验。从探索机制上看可以分为三类奖励驱动的探索根据任务奖励或反馈引导 Agent 探索更有效的行为策略。课程驱动的探索从简单任务逐步过渡到复杂任务让 Agent 在渐进式任务中积累经验。复用驱动的探索通过抽象和复用历史轨迹提高后续任务中的探索效率。从探索维度上看又可以分为三类广度探索尝试更多任务、环境或策略。深度探索在某一类任务中深入探索更优解法。策略探索关注不同策略之间的差异以及哪些策略更适合迁移到未来任务中。举个例子假设一个代码 Agent 需要完成一个数据清洗任务。普通的记忆机制可能只会记录“这次使用 pandas 成功完成了任务”。但如果进入 Experience 阶段Agent 可能会主动尝试不同方案方案一直接用 pandas 规则清洗。方案二先用 LLM 判断异常字段再用 pandas 处理。方案三先抽样检查数据分布再生成清洗规则。如果最后发现方案三在多个任务中更稳定Agent 就可以把它总结成一条经验在处理未知结构的数据清洗任务时先抽样分析字段分布再生成清洗规则通常比直接写规则更稳。这类经验就可以在未来任务中复用。再比如在网页自动化任务中Agent 可以主动尝试不同的页面理解策略先看按钮、先看标题、先看表单字段或者先读取页面整体结构。经过多次任务后它可能发现“先理解页面语义再执行点击动作”比“直接点击最显眼按钮”更可靠。也就是说Experience 阶段的 Agent 不只是“遇到什么记什么”而是会主动寻找值得沉淀的经验。2. 跨轨迹抽象Experience 的另一个重要特点是跨轨迹抽象。Agent 不仅记忆某个具体任务的执行过程还会从多个相似或对比性任务轨迹中抽象出更通用的经验。这部分比较抽象可以先看论文中的示意图。图中展示的重点是Agent 并不是只保存单条轨迹而是会把多条轨迹放在一起比较、归纳和压缩最后形成不同粒度的经验。图源Luo et al., 2026Figure 3。结合这张图可以更好地理解 Experience 和前两个阶段的区别Storage 保存的是单条轨迹Reflection 修正的是具体记忆而 Experience 更关注从多条轨迹中总结出可迁移的模式。例如对于同一个网页自动化任务Agent 可能有两条轨迹。失败轨迹直接点击页面上最显眼的按钮。没有检查按钮含义。进入错误页面。任务失败。成功轨迹先读取页面标题和按钮文本。判断每个按钮可能对应的功能。选择和目标最相关的按钮。进入正确页面。任务完成。Storage 只会保存这两条轨迹Reflection 可能会指出第一条轨迹的问题是“没有观察页面语义”而 Experience 会进一步抽象出一条通用经验在网页操作任务中不要直接点击视觉上最显眼的按钮而应该先结合页面标题、按钮文本和任务目标判断动作含义。这条经验就不再局限于某一个网页而可以迁移到其他网页自动化任务中。论文中提到的抽象机制主要包括以下几类对比归纳对比同一任务中成功和失败的轨迹总结哪些行为导致了成功哪些行为导致了失败。动作蒸馏把细粒度动作蒸馏为高阶的思维模式对多粒度的行为序列进行分块和聚合。代码封装把反复出现的行为模式封装为可复用的函数或程序。参数内化通过微调等方式将经验固化到模型参数中。其中“代码封装”也比较好理解。比如一个 Agent 多次执行文件整理任务后发现自己总是在做类似流程扫描目录根据后缀名分类文件建立目标文件夹移动文件输出整理结果。如果每次都重新规划这些动作效率就比较低。Experience 阶段可以把这类重复行为封装成一个可复用函数。以后遇到类似任务时Agent 不需要重新推理完整流程而是直接调用这个封装好的程序。从抽象粒度来看可以分为三类浅层抽象保留一部分原始语义逻辑将自然语言规则作为经验。中层抽象去除自然语言冗余只保留可执行的模块化骨架。深层抽象将轨迹分布压缩为模型权重。这三种抽象粒度也可以用同一个例子理解。假设 Agent 总结“如何写一篇论文阅读笔记”浅层抽象可能是一条自然语言经验先介绍论文背景再整理核心方法最后写自己的理解。中层抽象可能变成一个固定模板论文信息 → 问题背景 → 方法框架 → 样例解释 → 总结启发。深层抽象则可能通过训练或参数更新让模型在以后写类似文章时自然倾向于这种组织方式。这部分我觉得是这篇综述比较有启发的地方。因为很多 Agent 项目中的“记忆”其实还停留在向量库召回层面也就是把历史信息存起来然后在需要时检索出来。但 Experience 更进一步它关注的是如何从历史任务中沉淀出可迁移、可复用的经验。六、总结和未来展望整体来看这篇综述的价值不只是整理了 Agent 记忆机制的分类而是提出了一条比较清晰的演化线索从保存轨迹到修正轨迹再到抽象经验。对于想做 Agent 项目的人来说这个框架也很有启发。因为它提醒我们记忆模块不能只停留在“向量库召回”层面更重要的是让 Agent 能够判断哪些记忆有用、如何更新记忆以及如何从历史任务中沉淀出可复用经验。当然目前 Agent 记忆机制仍然存在一些有待改进的地方例如主动记忆感知Agent 需要判断当前任务是否真的需要引入额外记忆以及应该调用哪一类记忆让记忆机制成为一种按需调用的资源。工作记忆的组织模式随着任务复杂度提高Agent 需要更好地管理当前上下文中的关键信息。Experience 相关评测基准目前针对经验抽象和复用能力的测试仍然不够充分。分布式共享记忆多个 Agent 之间如何共享、更新和协调记忆仍然是一个重要问题。多模态记忆未来 Agent 不仅需要记住文本还需要处理图像、语音、视频等多模态信息。这里也可以用几个具体场景理解这些未来方向。对于主动记忆感知一个 Agent 不应该每次回答都盲目检索全部记忆。例如用户只是问“Python 里 list 和 tuple 有什么区别”可能不需要调用长期记忆但如果用户问“根据我之前的项目经历帮我优化这段简历描述”这时就明显需要调用用户历史信息。对于工作记忆组织可以理解为 Agent 在当前任务中如何管理临时信息。比如写一篇长文章时Agent 需要同时记住文章主题、当前小节、已经写过的内容、尚未展开的部分以及用户提出的风格要求。如果这些信息组织不好就容易出现前后重复、遗漏重点或跑题。对于分布式共享记忆可以想象一个多 Agent 系统一个 Agent 负责检索论文一个 Agent 负责总结方法一个 Agent 负责写博客。如果它们之间不能共享关键信息就会出现重复工作或者结论不一致的问题。对于多模态记忆未来 Agent 可能不仅要记住文字信息还要记住图片、表格、语音甚至视频中的内容。比如一个科研助手可能需要记住论文中的模型结构图一个面试辅导 Agent 可能需要结合用户简历、项目截图和模拟面试语音来给出反馈。简单来说Storage 让 Agent 记住过去Reflection 让 Agent 修正过去而 Experience 则让 Agent 从过去中学习。真正有长期能力的 Agent应该不只是会调用历史记录而是能够从历史任务中不断积累经验。参考资料Luo J, Tian Y, Cao C, et al. From Storage to Experience: A Survey on the Evolution of LLM Agent Memory Mechanisms. arXiv preprint arXiv:2605.06716, 2026. Accepted by ACL 2026 Findings.

相关新闻