论文
记忆机制
Memory-R1: Enhancing Large Language Model Agents to Manage and Utilize Memories via Reinforcement Learning
Memory-R1:用 RL 训练 LLM 学会增删改记忆
Sikuan Yan, Xiufeng Yang, Zuchao Huang, et al. (LMU Munich / TUM / Cambridge) · arXiv · 2025-08 · 被引 180
一句话把外部记忆的管理(ADD/UPDATE/DELETE/NOOP)和使用(先筛选再作答)各训练成一个 RL agent,只用 152 条 QA 就在 LoCoMo 上比 Mem0/MemoryOS 等基线(作者重实现版)高出约 20-35% 相对值;但发布满一年代码仍未开源,所有基线数字都是作者自己重新实现的。
这是什么
LLM 本质上是无状态的,靠外部 memory bank 做长程对话记忆是当前主流做法(Mem0、A-Mem、MemoryOS 等)。但这些系统的记忆写入策略基本是 prompt 里写死的启发式规则:什么时候新增、什么时候合并、什么时候删除,全靠模型 in-context 自己拿捏。论文用一个很直观的例子说明这有多脆弱——用户先说领养了狗 Buddy,后来又说领养了 Scout,vanilla 管理器把两条信息当成矛盾,DELETE 掉 Buddy 再 ADD Scout,导致'领养了几只狗'这种问题答错。
Memory-R1 的做法是不再手写规则,而是用 outcome-driven RL 把记忆策略学出来:训练两个专门的 agent——Memory Manager 负责对每条新信息选择 ADD/UPDATE/DELETE/NOOP 并输出改写后的记忆内容,Answer Agent 负责从检索到的 60 条候选记忆里先做 memory distillation(过滤噪声)再作答。奖励信号只有一个:最终答案的 Exact Match,不需要任何人工标注的记忆操作标签。
这篇是 2025 下半年'用 RL 学记忆策略'路线的代表作(arXiv 2025-08,后被 ACL 2026 接收,S2 引用已 180+),作者来自 LMU Munich / TUM / Cambridge 等。它把 memory 管线从'工程设计问题'转成了'策略学习问题',这个 framing 影响了一批后续工作(如 Memory-R2)。
两阶段管线。上(蓝):记忆构建——对话逐 turn 抽取信息、检索旧记忆,Memory Manager 选择 ADD/UPDATE/DELETE/NOOP 维护 memory bank;下(绿):回答——RAG 检索 60 条候选,Answer Agent 先做 memory distillation 过滤再生成答案。两个 agent 都用 PPO/GRPO 以最终答案 EM 为 reward 微调。机制与做法
两个 agent、一个 EM 奖励
整条管线分两阶段(见 pipeline 图)。阶段一记忆构建:每个对话 turn 先做信息抽取,再检索 memory bank 里的相关旧条目,Memory Manager 以 (新信息 x, 检索到的旧记忆 M_old) 为输入,输出操作 o 和新内容 m'。阶段二回答:对每个问题用相似度 RAG 检索 60 条候选记忆(沿用 Mem0 的设置),Answer Agent 先显式列出'有用的记忆'再生成答案。
训练 Memory Manager 时把 Answer Agent 冻结:Manager 执行操作后把更新过的 memory bank 交给冻结的 Answer Agent 答题,答案 EM 对错就是 Manager 的 reward。也就是说记忆操作的好坏完全由下游 QA 结果间接评判,没有对操作本身的监督。作者也试过给 Answer Agent 加中间监督(用 <memory> 标签对齐 gold 记忆),没有稳定收益,最后就用纯 EM。
动机案例:用户先后领养 Buddy 和 Scout 两只狗。中列 vanilla in-context 管理器把新信息误判为矛盾,DELETE 旧记忆再 ADD,导致答'1 只狗';右列 RL 微调后的 Manager 用一次 UPDATE 合并两条事实,Answer Agent 过滤 60 条检索噪声后答对'2 只'。PPO vs GRPO,以及 SFT 对照
两个 agent 各自用 PPO 和 GRPO 训了两个版本,基于 VERL 框架,4 张 H100(14B 用 8 张),lr 1e-6,训练时温度 1.0、评测时贪心解码。GRPO 版整体更强:LLaMA-3.1-8B 上 overall F1/B1/J 达 45.0/37.5/62.7,PPO 版 41.1/32.9/57.5;训练曲线上 GRPO 收敛更快但最终 reward 相近。
一个有意思的对照是 Memory-SFT:同架构同数据,但改成对 GPT-5 生成的轨迹做 behavior cloning。结果 SFT(overall J 58.8)输给 GRPO(62.7)——有强 teacher 的模仿学习仍不如结果驱动的 RL,这是论文对'为什么非要 RL'的直接回答。
reward 设计消融也值得注意:用 LLM-as-a-Judge 当 reward 会把 J 分刷到 63.6,但模型学会输出冗长答案,F1/B1 反而崩(33.7/23.4),所以最终选了 EM。这提醒我们这套评测里 J 指标是可以被答案长度 game 的。
数据效率与泛化
训练数据小得惊人:LoCoMo 按 1:1:8 切分,只有 152 条训练 QA、81 条验证、1307 条测试(去掉了 adversarial 子集)。只在 LoCoMo 上训,零样本迁移到 MSC 和 LongMemEval 也有一致提升;换 Qwen-2.5 的 3B/7B/14B backbone 结论都成立。
消融显示三个组件都有贡献(LLaMA + GRPO):去掉 RL 训练的 Memory Manager,F1 从 45.0 掉到 37.5;去掉 RL 训练的 Answer Agent 掉到 33.0;去掉 memory distillation 掉到 41.0。另外 Answer Agent 的收益随 Manager 质量放大——把 Manager 换成 GPT-4o-mini,Answer Agent 的 F1 增益从 +10.1 涨到 +19.7,说明两级质量是复利关系。
关键结果
- LoCoMo 上(LLaMA-3.1-8B backbone)Memory-R1-GRPO overall F1/BLEU-1/J = 45.0/37.5/62.7,相对最强基线 MemoryOS(35.0/28.0/48.2)提升 28.5%/34.0%/30.2%;Qwen-2.5-7B 上相对提升 24.5%/24.1%/20.0%。
- 只用 152 条训练 QA;零样本泛化到 MSC 和 LongMemEval,且在 Qwen-2.5 3B/7B/14B 三个规模上都成立。
- RL 胜过有 GPT-5 teacher 的 SFT:Memory-SFT overall J 58.8 vs GRPO 62.7(LLaMA-8B),说明结果驱动优化优于轨迹模仿。
- 多跳问题(Multi-Hop)提升最大:LLaMA 上 F1 从最强基线的 20.8 提到 35.7,记忆合并(UPDATE 而非 DELETE+ADD)对跨 session 推理最关键。
- reward 用 LLM-as-a-Judge 会被冗长答案 game(J 63.6 但 F1 崩到 33.7),最终选 EM 作为唯一 reward。
- GRPO 比 PPO 收敛更快、最终性能也普遍更高;PPO 需要额外训 critic。
实证核查
有水分方法和消融本身做得规矩,还中了 ACL 2026;但发布一年后代码仍未开源(官方 repo 只有 README),全部基线数字是作者用小模型自行重实现的、明显低于各基线论文原报数字,结果无法被第三方核验。
官方 GitHub repo(yansikuan/memory-r1,124 stars)自 2025-09 起挂着 'Code coming soon',论文称框架基于 VERL 实现、结果可复现。
截至 2026-08-30,repo 内容只有 README.md + LICENSE + assets(gh api contents 验证),最后一次 push 是 2025-09-10。全部 6 个 open issue 里 5 个在要代码(#1、#3-#6,时间跨度 2025-09 到 2026-06)。作者 2026-07-31 在 #6 回复:代码在公司内部服务器上开发,开源审批流程未过。没有代码、没有 checkpoint、没有训练数据构造脚本,任何数字都无法独立验证。
'consistently sets a new state of the art',大幅超过 Mem0、MemoryOS 等基线。
所有基线都是作者用 LLaMA-3.1-8B / Qwen-2.5-7B 重新实现的(tex 源码 Experiments 节明说 're-implemented all baselines')。这些系统原论文用的是 gpt-4o-mini 等更强 backbone——论文源码里被注释掉的段落自己写着 Mem0 原报 LoCoMo J=66.9、Zep J=78.27,均高于本文 Memory-R1-GRPO 的 62.7。换 backbone 重测有公平性理由(要能 RL 微调),但'SOTA'只在'8B 开源模型 + 作者复现'这个口径内成立。另外 v1 版 README 至今宣传 '+48% F1 over prior best'(对比对象是弱的 Mem0 复现),而论文正文最终口径是对 MemoryOS 相对 +28.5%。
152 条 QA 训练即可,且泛化到 MSC、LongMemEval。
训练/测试都来自 LoCoMo(1:1:8 切分),152 条训练样本与 1307 条测试题共享同一批长对话的分布;LoCoMo 本身只有约 10 段对话,train/test 是否按对话隔离论文正文没写清(细节在附录 D)。跨数据集迁移结果只在雷达图和附录中给出,无原始数字表可查。第三方后续工作 Memory-R2(ahmedehabb/Memory-R2,已全量开源代码+HF checkpoint)在同一 setting 下指出 vanilla GRPO 在多 session 记忆任务里存在 rollout-divergence 的 credit assignment 偏差——间接说明本文的单步 GRPO 训练方式有已知缺陷。
被 ACL 2026 接收,S2 引用 180+。
接收信息来自 repo issue #6 中他人祝贺及作者确认(2026-07),S2 venue 字段也显示 ACL;引用数 180(S2, 2026-08)。学术影响力属实,这是 verdict 没有更低的主要原因——但引用高不等于结果被复现过,目前未检索到任何独立复现报告。
与我们方向的关系
对 continual-learning 方向,这篇的核心启发是:记忆管理策略可以不用手工设计,用最终任务的 outcome 信号端到端学出来,而且样本效率可以很高(百级 QA)。'冻结下游 agent、用其表现作为上游操作 reward' 的训练拆分方式,以及 EM 优于 LLM-judge reward 的消融,都可以直接搬到我们自己的记忆/工具管线实验里。
但要复现或跟进,起点不该是这篇(无代码),而是开源的 Memory-R2(github.com/ahmedehabb/Memory-R2,含训练/评测全管线和 7B checkpoint),它同时修了 GRPO 在多 session 场景的 credit assignment 问题。另外注意 LoCoMo 这个基准很小(测试仅 1307 题、对话约 10 段),各家在上面的数字口径混乱(backbone、是否去 adversarial 子集、judge 模型都不统一),横向比较要非常小心。
阅读笔记
论文 Limitations 自认:两个 agent 分开训是为了稀疏 reward 下的稳定性,端到端 multi-agent RL 留作 future work。Memory Manager 的训练数据构造(哪些 turn 配哪些 QA)细节全在附录 D,正文一笔带过。Answer Agent 检索固定 60 条候选沿用 Mem0 设置。延迟方面附录有 latency-accuracy 分析图,RL 版相比 in-context 版没有显著额外开销(同样是一次前向)。
材料清单
TeX 源码已存档:Raw/memory-r1/source/
同类条目