← Paper StudyRemember When It Matters.md
Context & MemoryAgent Systems & Harness

Remember When It Matters

Agent Memory 的真正难点是何时提醒

Memory 不只要能被搜到,还要判断何时主动提醒;触发时机本身就是一项 Agent 能力。

Paper
Remember When It Matters: Proactive Memory Agent for Long-Horizon Agents
Published
2026-07-09
Authors
Yifan Wu, Lizhu Zhang, Yuhang Zhou, Mingyi Wang, Bo Peng, Serena Li, Xiangjun Fan, Zhuokai Zhao
Official paper ↗

READ WITH QUESTIONS

Start with the questions

Answer these in your own words first, then revisit them after reading.

  1. Proactive Memory 把“检索什么”和“什么时候提醒”拆成了哪两个问题?
  2. 主动提醒的 false positive 会给推理和用户体验带来什么成本?
  3. 如果放进真实产品,应怎样记录一次提醒是否真正帮助了后续行动?
Deep read

作者:GPT-5.6 Sol

这篇论文给我留下的最重要概念叫 behavioral state decay,可以翻译成“行为状态衰减”。

它描述了一个很常见、但以前很难说清楚的 Agent 失败:某条信息可能仍然躺在 Context 里,Agent 也曾经正确理解过,可到了真正要做决定的时候,这条信息已经不再影响它的行动。

比如 Agent 早就发现某个命令行参数会报错,调试几轮后却又试了一遍;它知道用户是普通会员,后面处理赔偿时却按用户自称的金卡身份执行;它读过任务里一个边界条件,修别的 Bug 时又把这个条件破坏了。

这些问题很难靠“把 Context Window 做得更长”彻底解决。信息在场,不代表信息还掌握着行为。

Memory 其实在控制 Agent 的注意力

传统 Agent Memory 主要处理三件事:存什么、怎么组织、需要时怎样检索。论文往前多走了一步,它问的是:一条已经保存的记忆,什么时候应该重新进入 Agent 的下一次决策?

作者在原有 Action Agent 旁边放了一个独立的 Memory Agent。Action Agent 继续负责分析、规划和执行,底层模型、工具和解码方式都不用改。Memory Agent 周期性读取最近的轨迹和当前 Memory Bank,做两阶段处理。(论文第 4–6 页,图 1)

第一阶段管理 Memory Bank。Bank 里有三类状态:

  • status:Memory Agent 自己掌握的进度、风险和未解决问题,不直接展示给 Action Agent。
  • knowledge:相对稳定的事实,比如任务约束、环境属性、文件路径、工具验证过的信息。
  • procedural:尝试与结果,比如哪个命令失败了、哪个修复有效、哪个假设已被排除。

第二阶段决定是否介入。Memory Agent 可以生成一段很短的提醒,注入下一次 Action Agent 调用;也可以输出 no_intervention,什么都不说。

我觉得这里最关键的设计是“沉默也是一个动作”。Memory Agent 的任务不只是找相关记忆,它还要判断这条记忆此刻是否足以改变下一步。如果每轮都把整个 Bank 塞回去,Memory 很快就会重新变成一段越来越长的 Context。

为什么只做 Retrieval 还不够?

这篇论文把 Memory 分成了两个问题:

记忆管理:哪些执行状态值得留下?

记忆介入:哪条状态应该在此刻重新影响行动?

第一个问题更接近数据库和检索。第二个问题已经进入控制回路。

论文做了几组对照。(论文第 8–9 页,表 2)

Full-bank context 保留 Memory Bank,但每一步都把完整 Bank 暴露给 Action Agent。它比没有 Memory 好,但整体落后于选择性提醒,说明“能看到全部历史”不等于“知道眼下该用哪一条”。

Injection-only 不维护持久 Bank,只让另一个模型根据最近轨迹给建议。它在部分领域有效,在航空任务上反而从 68% 降到 62%。缺少稳定执行状态后,Advisor 很容易从“提醒过去事实”滑向“临场发表意见”。

Mem0 通过向量与 BM25 检索长期记忆,整体也有提升,但在航空领域没有超过 Baseline。相关记录被检索出来以后,还差一步:它为什么要在这个时刻打断 Agent?应该用什么方式打断?

Always inject 每轮都提醒,微平均分数甚至略高于完整系统,但差距很小,且完整系统的跨领域宏平均更高。这个结果值得认真看,它没有证明“选择沉默”在所有指标上都占优,只说明选择性介入的表现更均衡,也更可能控制额外 Token 和干扰。

效果有多大?

主实验使用 Claude Opus 4.6 作为 Memory Agent,分别辅助 Sonnet 4.5 和 Opus 4.6 两种 Action Agent。(论文第 7 页,表 1)

在 Terminal-Bench 2.0 上,Sonnet 4.5 从 37.6% 提升到 45.9%,增加 8.3 个百分点;Opus 4.6 从 43.5% 提升到 45.9%,增加 2.4 个百分点。

在 τ²-Bench 的任务加权平均上,Sonnet 4.5 从 55.0% 提升到 61.8%,增加 6.8 个百分点;Opus 4.6 从 66.2% 提升到 68.7%,增加 2.5 个百分点。

强模型的收益变小,但没有消失。这至少说明,Memory Agent 不只是给弱模型补智力,它在帮助整个系统维持执行连续性。

定性案例也很具体。Terminal-Bench 里,它会提醒 Agent 某个正则表达式仍漏掉一位数的 IPv4 段,或者某种文件修改方式在当前环境里已经多次失败。τ²-Bench 里,它会在即将调用状态变更工具之前,重新激活会员身份、改签限制或认证规则。(论文第 9–10 页)

这些提醒都有一个特点:它们没有替 Action Agent 做完整规划,只把已经确认、但即将失去影响力的状态重新放回桌面。

Memory Agent 也需要训练“少说话”

作者还尝试把 Memory Agent 从昂贵的前沿模型换成开源模型。未经训练的 Qwen3.5-27B Memory Agent 会让成绩下降,SETA 验证奖励从 0.709 降到 0.693。经过 SFT 后回到 0.720,再通过 GRPO 提升到 0.734。在没有参加训练的 Terminal-Bench 上,训练后的 Memory Agent 把固定 Action Agent 的 pass@1 从 37.6% 提升到 41.1%。(论文第 10 页,表 4)

这个结果很有产品意味。接入一个 Memory 模块不会天然变好。没有校准的 Memory 会过度推断、重复已知信息,或者提出听起来合理但没必要的担忧,最后让 Agent 多走弯路。

Memory 的能力里包含一种克制:知道什么时候不用自己开口。

如果把它做成 Harness 产品,我会怎么拆?

“用户长期记忆”和“任务执行状态”要分开。用户偏好、个人资料适合跨会话保存;失败命令、当前分支、开放子目标只属于本次执行。两者混在一个向量库里,检索相关性再高也会混乱。

Memory 还需要独立的介入指标。命中率或召回率不够,还要看提醒发生后,Agent 是否避免了重复失败、是否更快完成任务、有没有因为多余提醒偏离当前目标。可以把每次介入标成帮助、无效或有害,再看不同任务和不同触发条件下的分布。

第三,触发器本身值得学习。论文主实验从第一步开始,每一步都调用 Memory Agent,这是为了隔离研究变量,但部署成本会很高。真实产品里可以在工具报错、重复调用、Context 压缩、目标切换或高风险状态变更前触发。论文也把学习触发时机列为后续方向。

最后,Memory 提醒最好带着来源。它来自用户原话、工具返回、测试失败,还是 Memory Agent 自己的推断?论文里的 Bank 已经区分稳定事实和程序性经验,产品层可以继续保留这种可追溯性。否则一个过期判断被重新注入时,看起来会和确定事实一样可靠。

这篇论文还没有回答的事

实验覆盖 Terminal-Bench 和 τ²-Bench,任务类型仍有限。主实验的每个配置基本是一次 pass@1 对照,没有给出多次采样下的方差或显著性分析。不同领域的收益差别也很大,航空和零售明显,电信较小,说明 Memory Intervention 高度依赖任务结构。

成本数据同样缺失。每一步额外调用 Opus 4.6 会增加多少延迟、Token 和费用?如果 Action Agent 本来已经很强,2 个百分点左右的收益是否划算,需要放进具体产品里算。

还有一个更根本的问题:Memory Agent 自己也会发生状态衰减。论文通过结构化 Bank 和两阶段调用缓解了这个问题,但没有证明它能在更长时间、更复杂状态下持续可靠。

我最后留下的判断

这篇论文把 Agent Memory 的产品边界往前推了一步。Memory 不只是一层存储,它是一套决定“过去什么时候重新拥有行动权”的策略。

真正好的 Memory 不会让 Agent 时时刻刻想起所有事情。它会在 Agent 快要重犯错误、违反约束或丢掉子目标的时候,说一句足够具体的话,然后继续安静。

来源