论文标题:Memory-R1: Enhancing Large Language Model Agents to Manage and Utilize Memories via Reinforcement Learning
论文链接:https://arxiv.org/abs/2508.19828
论文来源:arXiv 2025
论文分类:Memory
一、概述
大语言模型作为 Agent 使用时,一个非常自然但又很难做好的能力是“记忆”。这里的记忆不是指模型参数里存储的知识,而是指 Agent 在长期交互中持续维护的外部 memory bank:用户以前说过什么、偏好发生了什么变化、哪些事实已经过时、回答当前问题时哪些历史信息真正有用。
现有很多 memory-augmented LLM 系统大体沿着 RAG 的思路工作:把对话历史切成若干 memory entries,查询时检索若干条相关记忆,再把这些记忆拼进 prompt 中让 LLM 回答。这个方向确实突破了上下文窗口的限制,但本文指出它仍然有两个核心问题:
-
记忆管理问题:系统需要判断一条新信息应该
ADD、UPDATE、DELETE还是NOOP。如果完全依赖 prompt 里的规则和 vanilla LLM 的 in-context 判断,很容易把“补充信息”误判成“矛盾信息”,导致记忆被覆盖或碎片化。 - 记忆利用问题:RAG 可能检索出大量候选记忆。本文中 Answer Agent 每次会拿到 60 条候选 memory,如果不进一步过滤,模型会被无关记忆干扰;如果只靠简单 reranker,又可能增加推理延迟且无法和最终回答目标端到端对齐。
下图是本文用来说明问题的例子:用户先说自己养了一只叫 Buddy 的狗,之后又说养了另一只叫 Scout 的狗。普通 memory manager 可能把两个名字看成冲突,于是执行 DELETE+ADD,最后记忆里只剩一只狗;而经过 RL 训练的 Memory Manager 会执行一次 UPDATE,把事实整合成“Andrew 养了两只狗,分别叫 Buddy 和 Scout”。这正是长期记忆系统最容易出错、也最值得学习的地方:不是记得越多越好,而是要学会维护一个一致、可更新、可用于推理的记忆状态。

Memory-R1 的核心思想可以概括为:把“写记忆”和“用记忆”都建模成强化学习中的策略优化问题,用最终问答是否正确作为奖励信号,而不是手工标注每一步记忆操作。
具体来说,本文提出了两个经过 RL fine-tuning 的 Agent:
-
Memory Manager:负责维护 memory bank。它针对新对话信息和已有相关记忆,选择
ADD、UPDATE、DELETE、NOOP之一,并生成对应的更新内容。 - Answer Agent:负责回答问题。它先接收 RAG 检索出的候选记忆,然后通过 Memory Distillation 选择真正相关的记忆,再生成简短答案。
这两个 Agent 都可以使用 PPO 或 GRPO 训练。训练监督非常少:本文在 LoCoMo 上只使用 152 个训练 QA pairs,却能在 LoCoMo、MSC、LongMemEval 三个 benchmark 和 3B-14B 多个模型规模上获得稳定提升。这里最值得注意的不是某个具体分数,而是本文展示了一种新的记忆系统训练范式:不再把 memory pipeline 写死成启发式规则,而是让模型从任务结果中学习怎样管理和利用记忆。
二、方法
Memory-R1 的整体框架分为两个阶段。第一阶段是 Memory Construction:系统逐轮读取多会话对话,抽取值得记忆的信息,检索已有相关记忆,然后由 Memory Manager 决定如何更新 memory bank。第二阶段是 Memory-Guided Answer Generation:面对问题时,系统从 memory bank 中检索候选记忆,由 Answer Agent 执行 Memory Distillation 并生成最终答案。

这套框架容易被误解成“给 RAG 加一个训练过的 reranker”。其实不是。Memory-R1 的关键在于它把长期记忆系统拆成两个可学习的决策过程:前一个过程决定 memory bank 这个状态如何演化,后一个过程决定在回答时如何从这个状态中提取有效证据。附录 Algorithm 1-5 正好把这两个决策过程从数据构造、推理执行到 RL 更新都串了起来。
1. 训练数据构造:先造“可奖励”的记忆任务
Memory-R1 并不要求人工标注每一步应该执行 ADD、UPDATE、DELETE 还是 NOOP。它构造训练数据的方式是:把 LoCoMo 中的多轮多会话对话切成与下游 QA 相关的局部训练包,让模型在这些训练包上尝试管理记忆,再用最终问答是否正确来评价记忆管理是否有效。
Algorithm 1 描述的是 Memory Manager 的训练数据构造。对每个 dialogue 和其中的每个 turn
,系统先用 GPT-4o-mini 基于前序上下文构造一个 temporal memory bank。附录算法中写的是使用 previous 50 turns;随后把 temporal memory bank、当前 turn,以及与该 turn 关联的 QA pairs 合并成一个训练 tuple。这个 tuple 的作用不是提供标准操作标签,而是提供一个“如果你这样更新记忆,之后是否能答对问题”的环境。

这里有一个细节很重要:Memory Manager 训练样本的核心不是完整对话,而是“当前 turn + 临时记忆状态 + 相关 QA”。这使得训练问题更像一个局部决策:面对一条新事实和一组已有记忆,模型需要决定如何改写 memory bank,最终让相关 QA 更容易回答。
Algorithm 2 则描述 Answer Agent 的训练数据构造。首先使用训练好的 Memory Manager 在每个 dialogue 中维护一个 up-to-date memory bank;然后对每个问题 ,系统以问题为 query,从两位参与者的 memory bank 中各检索 top-30 条候选记忆,总计 60 条;最后把问题、60 条 retrieved memories 和 gold answer 组成 Answer Agent 的训练 tuple。

这个设计让 Answer Agent 直接面对一个现实问题:RAG 检索结果通常又多又杂。训练目标不是让它模仿某个固定 relevance 标注,而是让它在 60 条候选 memory 中筛出能支持正确回答的证据。因此,Memory-R1 的两套训练数据分别对应两个不同能力:Memory Manager 学会“怎样写好记忆”,Answer Agent 学会“怎样用好记忆”。
2. Memory Manager:把记忆维护变成策略学习
Memory Manager 的输入包括两部分:当前对话轮次中抽取出的新信息 ,以及从 memory bank 中检索出的相关旧记忆
。它的输出不是一个自由文本回答,而是一个结构化的记忆操作:
其中 ,
表示要写入或更新的记忆内容。
这四个操作的语义非常关键:
-
ADD:新事实此前没有出现过,需要添加为一条新记忆。 -
UPDATE:新事实与旧记忆描述的是同一件事,但包含新的细节或发生了状态变化,需要合并更新。 -
DELETE:新事实与旧记忆矛盾,旧记忆应该被移除。 -
NOOP:新事实已经被记住,或对当前记忆库没有价值。
Algorithm 3 展示了 Memory Manager 在构建 memory bank 时的完整执行流程。系统从空 memory bank 开始,依次处理多轮对话中的每个 turn
。每轮先调用
LLMExtract 抽取关键事实 ,再通过
TopK(f_i,M) 从已有 memory bank 中检索相关旧记忆 。之后 Memory Manager 基于
预测操作
。如果是
ADD,就把 加入 memory bank;如果是
UPDATE,就把 和
合并成
并替换旧记忆;如果是
DELETE,就从 中移除相关旧记忆;如果是
NOOP,则保持不变。

从这个算法可以看出,Memory-R1 中的 memory bank 不是简单的历史缓存,而是一个随对话不断被重写的状态。UPDATE 是其中最关键也最容易学错的操作,因为它要求模型判断“新事实是旧事实的补充、修正,还是完全矛盾”。开头养狗的例子就是典型:普通系统把 Scout 当作与 Buddy 矛盾的新事实,而 Memory-R1 学到的是把两条事实合并。
传统系统通常用 prompt 规则指导 LLM 做这些判断,但 Memory-R1 不给 Memory Manager 提供显式操作标签。它采用 outcome-driven reward:先让 Memory Manager 更新 memory bank,再让冻结的 Answer Agent 基于更新后的 memory bank 回答相关问题。如果答案与 gold answer exact match,则 Memory Manager 获得奖励:
这个设计的妙处在于,它绕开了“如何标注正确记忆操作”的高成本问题。很多情况下,一次 UPDATE、两次 ADD 或一次 DELETE 是否合理,并不容易孤立判断;真正重要的是更新后的 memory bank 能不能支持未来回答。因此,Memory-R1 直接把最终问答质量作为记忆策略的学习信号。
在优化算法上,本文分别尝试 PPO 和 GRPO。PPO 通过 clipped objective 限制策略更新幅度,保证训练稳定;GRPO 则对同一个状态采样一组候选操作,用组内 reward 均值和标准差归一化得到相对 advantage,并加入 KL regularization 约束策略不要偏离 reference policy。相比 PPO,GRPO 不需要显式 value function,在稀疏奖励场景中更轻量,也更容易在训练早期给出清晰的相对偏好。
3. Answer Agent:不是把检索结果全塞给模型,而是学习 Memory Distillation
Answer Agent 处理的是另一个痛点:RAG 检索并不等于有效使用记忆。本文设置中,每个问题会从两位对话参与者的 memory bank 中各检索 top-30,总计 60 条候选 memory。这里面可能有直接证据,也可能有时间相关但无用的信息、语义相近但不回答问题的片段,甚至有容易造成干扰的旧事实。
因此,Answer Agent 的策略可以写成:
其中 是问题,
是检索出的候选记忆集合,
是最终回答。Answer Agent 在生成答案前需要先执行 Memory Distillation,也就是从候选记忆中筛出真正有用的条目,并基于这些条目进行推理。
Algorithm 4 给出了回答阶段的流程。对于问题集合 中的每个问题
,系统先从 memory bank
中检索相关记忆
,再把 instruction、问题和检索记忆拼成 memory-augmented prompt
。Answer Agent 接收
后输出两部分内容:蒸馏出的有用记忆
和最终答案
。因此,Answer Agent 并不是被动地“读完所有 retrieved memories”,而是显式执行一次记忆压缩和证据选择。

它的奖励同样使用最终答案的 Exact Match:
这意味着 Answer Agent 不需要人工标注“哪几条 memory 是 relevant”。如果它筛错了记忆,最终答案会错,reward 就低;如果它能从 60 条候选记忆中找出关键事实,并生成简短正确答案,就能获得更高 reward。
这也解释了 Memory-R1 与 reranker pipeline 的区别。reranker 通常只学习“哪条文档更相关”,而 Memory-R1 的 Answer Agent 学到的是“为了最终回答正确,哪些记忆应该被保留、如何组合这些记忆、答案应该多简洁”。本文后续实验也显示,直接用 LLM-as-a-Judge 分数作为 reward 反而容易鼓励冗长回答,虽然 Judge 分更高,但 F1 和 BLEU-1 会下降;因此作者最终选择 EM reward,以保持答案简洁且便于和基线公平比较。
4. 两阶段训练与整体 RL 闭环
Memory-R1 没有把两个 Agent 端到端一起训练,而是分开优化:训练 Memory Manager 时,Answer Agent 冻结,用它提供下游问答奖励;训练 Answer Agent 时,Memory Manager 固定,保证输入 memory bank 稳定。这样做牺牲了一些端到端联合优化的优雅性,但可以减少 sparse reward 下的 credit assignment 混乱。
Algorithm 5 进一步展示了 Memory Manager 的 RL 训练闭环。对每个训练 tuple,系统先初始化一个临时 memory bank;然后逐个处理 dialogue turns,抽取事实、检索相关记忆、让 Memory Manager 采样操作,并根据操作更新 memory bank。对话处理完后,系统再根据问题 从 memory bank 中检索上下文
,拼接 prompt,让冻结的 Answer LLM
生成回答
。最后,奖励函数
比较
和 gold answer
,通过 PPO 或 GRPO 对 Memory Manager
做一次
RLstep。

这个算法把 Memory-R1 的 credit assignment 讲得很清楚:Memory Manager 并不是因为选了某个“看起来合理”的操作而得到奖励,而是因为这个操作最终改变了 memory bank,并让 Answer Agent 更可能答对问题。换句话说,reward 评价的是一整条链路:
事实抽取
相关记忆检索
记忆操作
memory bank 更新
问题检索
Answer Agent 回答
EM reward
Answer Agent 的训练与之对应,但更直接:固定 Memory Manager 构建好的 memory bank 后,Answer Agent 对每个问题从 60 条 retrieved memories 中选择证据并生成答案,用 answer-level EM reward 更新策略。PPO 和 GRPO 在这里的作用与 Memory Manager 类似,都是让模型在输出空间中探索不同回答或不同 memory distillation 行为,并根据最终答案质量调整策略。
因此,Memory-R1 的方法精华不是提出了一个复杂的新 memory 数据结构,而是提出了一个清晰的训练闭环:
- 记忆操作会改变 memory bank。
- memory bank 会影响 Answer Agent 的输入。
- Answer Agent 的答案正确性反过来作为 Memory Manager 的 reward。
- Answer Agent 自身也通过最终答案 reward 学会过滤和使用记忆。
这个闭环使得“记忆是否被正确管理”不再依赖人工规则判断,而是被最终任务目标约束。
三、实验结论与洞察
本文实验主要回答三个问题:Memory-R1 是否比现有 memory pipeline 更好?这种提升是否能跨模型规模和数据集泛化?每个组件是否真的必要?
实验设置可以简要理解为:模型在 LoCoMo 上训练,其中训练集只有 152 个 QA pairs;评估包括 LoCoMo、MSC 和 LongMemEval;backbone 包括 LLaMA-3.1-8B-Instruct 以及 Qwen-2.5-3B/7B/14B-Instruct;指标包括 token-level F1、BLEU-1 和 LLM-as-a-Judge。
1. 主结果:RL 记忆系统显著优于启发式记忆系统
主结果如下表所示。Memory-R1-GRPO 在 LLaMA-3.1-8B-Instruct 上达到 overall F1 45.02、BLEU-1 37.51、Judge 62.74;在 Qwen-2.5-7B-Instruct 上达到 overall F1 43.14、BLEU-1 36.44、Judge 61.51。相比 LoCoMo RAG、A-Mem、Mem0、MemoryOS 等基线,Memory-R1 在大多数问题类型和指标上都取得更高分数。

这里有两个值得关注的 insight。
第一,Memory-R1 不只是超过普通 RAG,也超过了更强的 memory system baseline。以 LLaMA-3.1-8B 为例,本文报告 Memory-R1-GRPO 相对 MemoryOS 在 overall F1、BLEU-1、Judge 上分别带来 28.5%、34.0%、30.2% 的相对提升。这说明问题不只是“有没有外部记忆”,而是“记忆操作和记忆利用是不是被任务目标训练过”。
第二,Memory-R1 也优于 Memory-SFT。Memory-SFT 使用相同框架和训练数据,但用 GPT-5 生成轨迹做 behavior cloning。它已经是一个很强的监督模仿基线,但仍然不如 RL 版本。这个结果支持本文的核心立场:记忆管理很难通过模仿固定轨迹完全学会,因为真正需要优化的是最终任务表现,而不是复现某个 teacher 的操作序列。
2. 规模与泛化:不是只在一个模型或一个数据集上有效
本文在 Qwen-2.5-3B、7B、14B 上测试模型规模变化,结果显示 PPO 和 GRPO 版本在不同规模上都稳定超过 base model。随着模型变大,base model 本身会提升,但 RL fine-tuning 带来的收益仍然存在,说明 Memory-R1 学到的不是某个小模型的偶然修正,而是一种可随 backbone 能力一起扩展的记忆策略。

更重要的是跨数据集泛化。Memory-R1 只在 LoCoMo 上训练,然后直接 zero-shot 评估 MSC 和 LongMemEval。如下图所示,它在三种 benchmark 上都保持了相对 base model 的优势。这意味着 Memory-R1 学到的能力并不是 LoCoMo 的题目模板,而更像是通用的长期记忆使用模式:如何整合跨会话事实、如何处理多跳信息、如何面对时间相关问题。

从任务类型上看,本文补充实验指出 Memory-R1 在 multi-hop 和 temporal questions 上收益尤其明显。这也符合直觉:如果问题只需要单条事实,简单检索可能已经足够;但一旦问题要求跨会话整合、处理事实更新、判断时间先后,记忆库的一致性和 Answer Agent 的过滤能力就会成为关键。
3. 消融实验:Memory Manager、Answer Agent、Memory Distillation 都不可少
本文分别移除 Memory Manager 的 RL fine-tuning、Answer Agent 的 RL fine-tuning 和 Memory Distillation,结果如下图所示。每个组件被移除后性能都会下降,说明 Memory-R1 的提升不是由某个单点 trick 带来的。

消融实验可以总结出三点:
- Memory Manager 负责让 memory bank 变好。 如果去掉 Memory Manager 的 RL 训练,记忆操作会退回更接近规则式或 prompt-driven 的状态,F1、BLEU-1、Judge 都下降。
- Answer Agent 负责让记忆真正被用好。 即使 memory bank 已经构建出来,如果回答模型不能过滤和组合候选记忆,最终答案仍然会被噪声拖累。
- Memory Distillation 是连接检索和推理的关键层。 它让 Answer Agent 不只是接收 RAG 结果,而是先把候选记忆压缩成对当前问题有用的证据。
本文还做了一个很有意思的分析:当 Answer Agent 搭配更强的 Memory Manager 时,收益会进一步放大。这说明两个 Agent 之间存在乘法效应。更好的 memory bank 会让回答阶段更容易,经过 RL 训练的 Answer Agent 又能更充分地利用高质量记忆。
4. PPO 与 GRPO:GRPO 更快,但最终收益接近
Memory-R1 同时使用 PPO 和 GRPO。总体上,GRPO 在主结果中表现更强,尤其在 LLaMA-3.1-8B 上提升最明显。训练曲线显示 GRPO 初期收敛更快,本文解释为 group-relative advantage 在早期提供了更强的相对比较信号;但随着训练进行,PPO 和 GRPO 最终 reward 水平会接近。
这个结论对后续做 memory RL 的工作很有参考价值:如果训练资源有限或不想维护 value function,GRPO 是很自然的选择;如果已有 PPO 训练基础设施,PPO 也能稳定带来提升。Memory-R1 的关键并不绑定某个具体 RL optimizer,而是绑定到 outcome-driven 的 reward 设计和“记忆操作影响最终回答”的训练闭环。
四、讨论
Memory-R1 最有启发性的地方,是它重新定义了 memory-augmented LLM 的优化对象。传统 RAG 更像是在推理时“找一些历史片段来帮忙”,而 Memory-R1 把长期记忆看成一个会持续演化的状态,并把更新这个状态的动作交给可训练策略来学习。
从这个角度看,Memory-R1 对 Agent 系统有三点启示:
- 长期记忆不是 append-only log。 如果只会不断添加记忆,系统迟早会被冗余、冲突和过期信息淹没。真正有用的 memory bank 需要更新、合并、删除和保持不变这些操作。
- 检索不是推理。 top-k retrieved memories 只是候选证据,不等于可直接使用的上下文。Memory Distillation 把“从候选记忆中选择证据”显式纳入策略学习,是 Memory-R1 区别于普通 RAG 的关键。
- 最终任务奖励可以替代大量中间标注。 记忆操作标签很难标,但回答对错相对容易获得。Memory-R1 用下游 QA correctness 反向塑形记忆策略,展示了低监督训练 memory agents 的可行性。
当然,这篇工作也有局限。首先,实验主要集中在对话型长期记忆 benchmark,是否能直接扩展到代码 Agent、网页 Agent、多模态 Agent,还需要进一步验证。其次,Memory Manager 和 Answer Agent 是分阶段训练的,这保证了训练稳定性,但也限制了二者之间更深的协同。本文也指出,未来可以探索端到端 multi-agent RL,让两个 Agent 在同一个奖励闭环中共同学习。最后,当前 reward 主要依赖 exact match 或 judge 评估,对于开放式长期记忆任务,如何设计既能鼓励正确性、又能鼓励简洁性和一致性的 reward,仍然是一个开放问题。
五、总结
Memory-R1 的核心贡献不是提出“给 LLM 加一个 memory bank”,而是回答了更关键的问题:当 LLM Agent 拥有外部记忆后,谁来决定记什么、改什么、删什么,以及回答时用什么?
本文的答案是:让两个专门的 Agent 来做,并用强化学习把它们和最终问答正确性对齐。Memory Manager 学会管理外部记忆,Answer Agent 学会过滤和利用记忆;二者共同把静态、启发式的 memory pipeline 变成了可以从结果中学习的 agentic memory system。
从实验上看,Memory-R1 在很少训练样本下超过多个强基线,并能跨模型规模和数据集泛化。从理念上看,它把 memory 从“上下文补丁”推进为“可学习的长期状态管理机制”。对于未来构建更可靠、更个性化、更能长期协作的 LLM Agent,这篇论文提供了一个非常清晰的方向:记忆能力不应只靠更长上下文或更多检索,而应该被训练成一种可优化的行为策略。