Meta AI 提出主动记忆代理:让智能体学会「该提醒时才提醒」,Terminal-Bench 正确率提升 8.3 个百分点

论文写着已经开源,但代码仓库核实是空的,一行代码都没推送过。
作者:arXiv · Meta AI07-13 · 9 分钟⚑ 研究论文
🎧 听播客版0:00 / --:--
0:00 / --:--
研究解读 · 小互解读
一分钟速览
  • Meta AI 提出「主动记忆代理」,与不改动的执行智能体并行运行,定期更新结构化记忆库,并主动判断要不要给执行智能体插一句提醒。
  • 在 Terminal-Bench 2.0 上,Claude Sonnet 4.5 配上记忆代理后正确率从 37.6% 涨到 45.9%(提升 8.3 个百分点);在 τ²-Bench 上从 55.0% 涨到 61.8%(提升 6.8 个百分点)。
  • 消融实验显示:让记忆代理自己判断「该不该开口」,比把记忆库全量展示、强制每步都提醒、没有记忆库只给建议、或接一个通用记忆检索层 Mem0,效果都更稳定。
  • 团队尝试用开源小模型 Qwen3.5-27B 训练同款记忆代理(监督微调加强化学习),给换成开源模型 Qwen3.5-122B 的执行智能体配上后,Terminal-Bench 正确率从 37.6%(开源执行模型自己的基线,恰好和 Sonnet 4.5 的基线同值)涨到 41.1%,提升 3.5 个百分点,增益小于用 Claude Opus 4.6 当记忆代理的版本。
  • 论文正文写的代码仓库经核实是空仓库(size 为 0,创建后从未推送过代码),截至 2026 年 7 月 13 日尚未真正开源。
1 是什么 · 为何值得看

Meta AI 最近发布了什么

Meta AI 研究团队于 2026 年 7 月 9 日在 arXiv 发布论文,提出给执行长任务的 AI 智能体旁挂一个「主动记忆代理」,专门负责判断什么时候该提醒、什么时候该保持沉默。

这套做法带来一个反直觉的结果:给较弱的 Claude Sonnet 4.5 配上记忆代理后,它在命令行长任务基准 Terminal-Bench 2.0 上的正确率,追平了配同样记忆代理、但更贵的 Claude Opus 4.6,还反超了 Opus 4.6 不配记忆代理时的成绩。
📊
硬数据:在 Terminal-Bench 2.0 上,配了记忆代理的 Sonnet 4.5 拿到 45.9%,和配了记忆代理的 Opus 4.6 打平(同为 45.9%),并高于 Opus 4.6 裸跑的 43.5%。也就是说,一个便宜模型加上这个记忆代理,就顶上了更贵模型的表现。

论文全部作者来自 Meta AI。它要解决的问题很具体:当一个 AI 智能体连续干上百步、跑很长一条任务时,它常常会「忘掉」自己早先该守的规矩,哪怕那些信息还明明白白留在对话记录里。下面先看清这个问题本身。

2 问题

任务做长了,AI 会不会悄悄忘记该守的规矩

论文给这个失败模式起了个名字,叫 behavioral state decay(行为状态衰退)。信息并没有丢,还躺在记录里,只是不再起作用。

一个长任务会不断产生新东西:任务要求、环境事实、之前试过什么、诊断出的毛病、还没做完的子目标。随着轨迹越拉越长,这些信息要么被挤出模型能看到的上下文窗口,要么虽然还留在窗口里,却不再真正左右它下一步怎么做。论文把这类「应该继续约束未来动作」的信息统称为 execution state(执行状态)。

打个比方

就像你把便利贴贴满了整面墙。贴的时候每一张都记得清清楚楚,但贴太多之后,你已经不会再抬头去看了。字还在墙上,只是不再影响你此刻的动作。

下面这条时间线,演示了一条早先记下的要求,怎么一步步从「鲜活」褪成「还在记录里,却不再左右下一步」:

第 2 步 · 记下
规矩:IP 段可以是单个数字
第 4 步
规矩仍在记录里
第 6 步
规矩仍在记录里
第 8 步 · 修另一个 bug
新写的正则漏了单数字段
结果
✗ 违反了自己早先记下的要求

时间线可左右横滑,翻到最后看结局 →

信息一路都在,只是不再左右下一步。论文说,这和长上下文里的「lost in the middle」(信息夹在中间就被忽视)现象有关,但更强调的是行为层面的失效。

论文举的三种典型翻车

①早早发现了一条要求,后来在修另一个不相干的 bug 时,把这条要求违反了。
②试过某个命令、某个参数、某条实现路径,明明失败了,后来又重试了一个几乎一模一样的变体。
③已经诊断出一种错误模式,后来又把同样的模式当成一个全新的问题,从头重新处理一遍。

论文由此提出一个判断:光是把更长的历史记录喂给模型是不够的。真正缺的,是一套机制去决定「这条被记住的信息,现在该不该重新拿出来影响决策」。

3 方法 · 核心

旁边站一个记忆管家,不干活只管「该不该提醒」

这是论文的第一个核心。做法是:干活的执行智能体一个字都不改,旁边另外跑一个记忆代理。它每隔固定步数被唤醒一次,先整理一份结构化的记忆库,再决定要不要在执行智能体的下一步里插一句提醒。

执行智能体
⇄
环境
→每步唤醒
记忆代理
(看最近 8 条消息)
→回注提醒
下一步决策

流程图可左右横滑 →

核心设计

记忆代理每次被唤醒,都走两个阶段:先管账(管理记忆库),再拿主意(要不要开口)。它对执行智能体唯一的影响,就是那句可选的提醒,作为一次性的临时上下文注入进去,用完即走,不改执行智能体的基础指令、工具和解码方式。

最关键的一点:「保持沉默」是一个正式动作,不是漏掉了才不说。记忆代理每一步都要在「插一句提醒」和「明确选择闭嘴」之间做二选一,只有当某条记忆很可能改变下一步决策时,它才开口。

Phase 1
管理记忆库

记忆代理不直接重写记忆库,而是返回一串预定义的工具调用,系统照单执行。记忆库分三类:

status · 私有进度
记忆代理自己对进度、未决问题、潜在风险的看法,只给它自己用,绝不展示给执行智能体。
knowledge · 稳定事实
任务要求、环境属性、文件路径、配置细节、已被工具或用户验证过的事实。
procedural · 尝试与结果
试过什么命令、哪个失败了、哪个修好了、排除了哪些假设、有过什么诊断信号。
memory_update_status更新记忆代理私有的进度追踪,只有它自己看得到。 memory_save_knowledge把任务要求、环境事实、文件路径、接口细节等重要事实写进知识库。 memory_save_procedural记录调试经验:失败过的做法、成功的修复、错误模式、性能观察。 memory_delete按条目编号,删掉过时或已被证明错误的记忆。
Phase 2
决定开不开口

读一遍刚更新完的记忆库,只做一个决定,这一步不改记忆库:

开口 · 注入一句提醒把一条即将被违反的要求、一个能解释当前现象的环境事实、一次不该重来的失败、一个还没做完的子目标,写成一句针对性的提醒,塞进执行智能体的下一次调用。
沉默 · 什么都不加如果没有哪条记忆够重要,就明确选择不说。论文特意强调,它被鼓励只在真正有用时才开口,避免用广泛的策略建议、复述已知信息去打扰执行智能体。

论文还特别把这套记忆代理和「顾问型」方案(advisor,一个模型当军师,给干活模型出各种主意)划清了界限:记忆代理不出宽泛的战略建议,它开口的每一句,都必须落在维护好的执行状态上,是某条具体的要求、事实、失败或诊断。

站内相关解读
Anthropic 官方支招:Claude Fable 5 当“顾问”,Claude Sonnet 5 干活能扛下账单大头
论文对比的「顾问型」方案,指的就是 Anthropic 的 advisor tool,站内已完整解读过:机制、模型兼容表、计费细节都讲了。后文消融实验里「无记忆库·只给建议」那一档,模拟的正是这类系统。
系统集成图:执行智能体与环境交互,记忆代理在旁并行运行
图 1(a)|系统集成:左侧执行智能体与环境交互,右侧记忆代理并行运行,观察最近若干步的滑动窗口和当前记忆库;每隔 N 步被唤醒一次,更新记忆库并可选地向下一次调用注入提醒。来源:arXiv:2607.08716 论文原图。
记忆代理内部两阶段流程图
图 1(b)|记忆代理内部:Phase 1 通过工具调用管理记忆库(status / knowledge / procedural 三类),Phase 2 读取更新后的记忆库,要么发出一条 context_for_action 提醒,要么选择 no_intervention(不干预)。来源:arXiv:2607.08716 论文原图。

主实验里,触发方式是最简单的:记忆代理在第一步和之后的每一步都被唤醒,每次观察最近 8 条消息的窗口。论文提到也可以改成更挑时机的触发(比如只在报错、测试失败、命令重复后才唤醒),但这次用固定节奏,是为了单独看清「提醒策略」本身的效果。

4 数据

加了记忆代理,分数涨了多少

论文在两个长任务考场上做了测试:Terminal-Bench 2.0(自主操作命令行,改代码、跑命令、修 bug)和 τ²-Bench(多轮对话式工具调用,模拟航空、零售、电信三个真实服务场景)。评分口径是 pass@1只让 AI 跑一次任务,看这一次能不能做对的成功率,不是跑好几次挑最好的那次算数。。

37.6% → 45.9%
Terminal-Bench 2.0,Sonnet 4.5 配记忆代理前后(提升 8.3 个百分点)
55.0% → 61.8%
τ²-Bench 任务加权平均,Sonnet 4.5 配记忆代理前后(提升 6.8 个百分点)
45.9% = 45.9%
配记忆代理后,便宜的 Sonnet 4.5 与更贵的 Opus 4.6 在 Terminal-Bench 上打平
45.9% > 43.5%
配记忆代理的 Sonnet 4.5,反超不配记忆代理的 Opus 4.6(43.5%)
Sonnet 4.5 · Terminal-Bench37.6% → 45.9%(+8.3pp)
Opus 4.6 · Terminal-Bench43.5% → 45.9%(+2.4pp)
Sonnet 4.5 · τ²-Bench 均值55.0% → 61.8%(+6.8pp)
Opus 4.6 · τ²-Bench 均值66.2% → 68.7%(+2.5pp)

两点值得留意。第一,弱模型涨得多,强模型也没白涨:Opus 4.6 已经很强,加了记忆代理在两个考场分别还能再涨 2.4 和 2.5 个百分点,说明这套做法不只是在替弱模型补能力。第二,不同场景差别明显,符合论文把记忆当成「随场景调整的干预策略」而非固定套路的定位。

展开:τ²-Bench 三个场景的完整分项数据(Table 1)
考场 / 场景动作模型n基线配记忆代理Δ
Terminal-Bench 2.0Sonnet 4.58537.6%45.9%+8.3
Terminal-Bench 2.0Opus 4.68543.5%45.9%+2.4
τ² · airlineSonnet 4.55068.0%78.0%+10.0
τ² · retailSonnet 4.511449.1%58.8%+9.6
τ² · telecomSonnet 4.511455.3%57.9%+2.6
τ² · 任务加权平均Sonnet 4.527855.0%61.8%+6.8
τ² · airlineOpus 4.65076.0%76.0%+0.0
τ² · retailOpus 4.611464.9%69.3%+4.4
τ² · telecomOpus 4.611463.2%64.9%+1.8
τ² · 任务加权平均Opus 4.627866.2%68.7%+2.5

记忆代理统一为 Claude Opus 4.6。所有分数为 pass@1 百分比,Δ 单位为百分点(pp)。另注:本表 τ² 任务加权平均为 61.8%,下文消融表里同配置为 61.2%,是论文两批不同运行的结果,均值略有出入,论文原文如此。

5 消融 · 核心

记性好不如懂得该闭嘴

这是论文的第二个核心。为了搞清楚到底是哪一步在起作用,团队做了 消融实验把系统里的某个部件拆掉或换成简化版,看少了这部分之后成绩掉多少,用来证明这部分到底有没有用、有多大用。:把完整方案拆成五种打法,在 τ²-Bench 上逐一对比。结论指向一件事,真正起作用的不是「记住了多少」,而是「会不会判断该不该开口」。

五种打法分别是:完整两阶段方案(自己选沉默)、把记忆库全量展示给执行智能体、强制每一步都提醒、没有记忆库只当顾问给建议、接一个通用记忆检索层 Mem0。下面这张图看最能说明问题的 airline 场景,注意橙红那一档,比不加记忆代理还差:

Sonnet 基线
(不加记忆代理)
68.0%
完整方案
(自己选沉默)
78.0% +10.0
记忆库全量展示
74.0% +6.0
强制每步提醒
72.0% +4.0
无记忆库·只给建议
62.0% −6.0
Mem0 通用记忆层
68.0% ±0

灰条为 Sonnet 基线(68.0%)。橙红条(顾问式建议)掉到 62.0%,比不加记忆代理还差;Mem0 打平基线,没能改善 airline。

为什么 airline 场景差距最大:这类任务最怕被过度提醒打扰,一句多余的提醒就可能把执行智能体带偏。只有会主动选择闭嘴的完整方案,才在这里拿到最高分。反过来,只会不停出主意的顾问式建议,和只会检索记忆的 Mem0,都栽在这里。

把三个场景平均起来看(macro 表示三个场景等权平均,micro 表示按任务数加权),完整方案 macro 总分最高,三个场景全部改善,airline 涨幅最大。有一个细节:强制每步提醒在 micro 上略高 0.3 分,但这落在正常波动范围内,一到场景等权的 macro 上,会选沉默的完整方案就重新领先,差距主要来自 airline。

展开:五种打法的完整对比表 + 各自拆了什么(Table 2)
方案airlineretailtelecommacromicro
Sonnet 基线68.049.155.357.555.0
完整记忆代理(本方案)78.057.057.964.361.2
记忆库全量展示74.052.657.961.558.6
强制每步提醒72.058.859.663.561.5
无记忆库·只给建议62.054.466.761.060.8
Mem068.059.658.862.160.8

记忆库全量展示:保留 Phase 1 建库,但去掉 Phase 2 的挑选,把整个记忆库每一步都全摊给执行智能体,看有没有用。
强制每步提醒:保留记忆库和 Phase 2 生成提醒,但拿掉「沉默」这个选项,逼它每步都说,看不说的权力是不是关键。
无记忆库·只给建议:去掉持久记忆库,只留 Phase 2 出主意,对应顾问式系统,它的建议没有稳定记忆可依托。
Mem0:换成通用记忆层,记忆通过 Mem0 的 ADD 接口写入,用向量加 BM25 检索取回 top-10,比的是「检索记忆」和「判断该不该干预」的区别。

论文的总结是:光维护记忆库有帮助但不够;没有记忆库的顾问式建议缺少落脚点、不稳;每步硬提醒虽有竞争力但不均衡。完整方案最好,正是因为它把「维护好的执行状态」和「一套会挑该说什么、也会选择闭嘴的干预策略」结合在了一起。

6 案例

记忆代理具体在哪一刻插了嘴

论文人工查看了带记忆的运行轨迹,发现记忆起作用的方式并非泛泛总结,它的高光时刻,是执行智能体正要忽略某条关键信息的那一瞬间,把它重新激活。下面是三个真实案例。

Terminal-Bench · regex-log 任务

执行智能体在写日志匹配正则时,记忆代理同时提醒了两件事:当前的正则违反了任务规定的边界条件,而且漏掉了单个数字的 IP 段(比如 1.2.3.4 里那种一位数)。

τ²-Bench · airline 金卡疑云

用户自称是金卡(Gold)会员,但工具查到的记录显示他其实是普通(Regular)会员。没有记忆代理时,执行智能体照着用户的说法发了补偿;有记忆代理时,它提醒执行智能体以已验证的记录为准,别信用户口头声称。

「以已验证的会员记录为准,而不是用户自称的等级。」
τ²-Bench · basic economy 不能改签

在真正调用改签工具之前,记忆代理把「基础经济舱(basic economy)机票不允许修改」这条政策条款重新拎出来提醒,拦下了一次违规改签。论文说,这类成功的干预往往就发生在一次会改变环境状态的工具调用之前。

把这些时刻放到整条轨迹上看,就是招牌那张图的样子:大多数步都是空心圆(保持沉默),只有少数几个节点亮起来(插入提醒),点亮的地方旁边标着它到底说了什么。

① ② ③
保持沉默 插入提醒
① 正则边界
当前正则违反边界条件,还漏了单数字 IP 段。
② 金卡核实
以已验证记录为准,别信用户自称的会员等级。
③ 改签政策
基础经济舱不能改签,调用工具前重新激活。

论文也如实说了剩下的失败情况:主要是校准没做好,比如记忆代理偶尔会把一个只是推测的结论说得太笃定、复述执行智能体本来就知道的东西、或者提出一个看似合理但没必要的担忧,害得它多做一遍核查。这些恰恰是下一步要训练它「更懂得何时沉默」的动机。

7 开源训练

把这套判断力教给一个开源小模型

主实验里的记忆代理用的是 Claude Opus 4.6,每个记忆步都要多调一次这种前沿闭源模型,成本不低。团队于是做了一次早期尝试:能不能把同样的判断力,训练进一个开源小模型 Qwen3.5-27B,让它来当记忆代理,动作模型换成冻结的 Qwen3.5-122B-A10B。

训练用的是 SETA(一批带评分器的命令行任务集),Terminal-Bench 2.0 留作最后测迁移。方法分两步:SFT监督微调,拿标准答案手把手教模型照着做。这里是拿 Opus 记忆代理跑出的轨迹当范本,教会小模型记忆库操作和沉默/提醒的接口。 先把接口和基本规矩教会,再用 GRPO一种强化学习方法,让模型自己多次尝试、按结果好坏调整策略,进一步优化「什么时候该开口、什么时候该闭嘴」的判断,而不只是模仿范本。 强化学习去校准「该不该开口」的判断。

0.693
SETA 验证奖励
未训练的 27B 直接上,反而拖累成绩,比基线 0.709 还低。
0.720
SETA 验证奖励
SFT 监督微调,先把拖累补回来,还略高于基线。
0.734
SETA 验证奖励
GRPO 强化学习,再往上提一截,解出的任务从 56 到 58 道。
41.1%
Terminal-Bench pass@1
迁移到留出的 Terminal-Bench,从 37.6% 涨到 41.1%(提升 3.5 个百分点)。

结论是:这套记忆策略是能被学会的,但确实需要校准,直接拿没训练的小模型上反而添乱。同时也得看清差距:训练后小模型带来的迁移增益是 3.5 个百分点,明显小于用 Opus 4.6 当记忆代理时的 8.3 个百分点。论文把这一段定位为「早期探索」,证明这条路走得通,而不是说它已经追平了前沿闭源版本。

8 提醒

如果想自己试,要留意什么

有两件容易被忽略的事,这里一次说清。

第一,论文说开源,但仓库是空的。论文正文写着代码地址 github.com/yifannnwu/proactive-memory-agent,但这个仓库经 GitHub 核实是空仓库:size 为 0,2026 年 6 月 12 日创建之后,从未推送过任何代码,没有 README,也没有描述。截至 2026 年 7 月 13 日,代码实际尚未开源。想直接照着跑,目前没有可用的实现。

第二,效果最好的那版记忆代理,成本口径论文没给数字。主实验里验证效果最好的记忆代理是 Claude Opus 4.6,属于前沿闭源模型,而且实际上是第一步加之后的每一步都被调用,比方法节里说的「固定间隔」要更密集。论文自己也承认这不是最实用的部署形态,训练开源小模型正是为了省掉这笔开销。但论文没有报告记忆代理带来的额外 token 消耗和延迟的具体数字,落地时这笔账要自己算。

论文同时也说了它的适用面:这套「旁挂一个独立记忆代理决定要不要提醒」的架构,不需要改动主执行模型,可以接进现有的智能体工作流程。对搭建长任务 AI 智能体的团队来说,比如自动化命令行操作、多轮工具调用的客服或业务流程,这是一个可以直接叠加的模块。

保持沉默本身是一个明确的动作。记忆代理被鼓励只在某条被记住的信息很可能改变下一步决策时,才开口。 译自论文 §3.3 对 null intervention 的描述
本文基于 Meta AI 团队 2026 年 7 月 9 日发布的 arXiv 论文《Remember When It Matters: Proactive Memory Agent for Long-Horizon Agents》(arXiv:2607.08716v1,作者 Yifan Wu、Zhuokai Zhao 等)整理解读。文中所有跑分、消融、训练数据均来自论文原文;代码仓库为空的状态,为 2026 年 7 月 13 日经 GitHub 实际核实。图 1(a)(b) 为论文原图。解读只呈现事实与机制,不代表任何评价或预测。
来源
arXiv · Meta AIarXiv · Meta AI·查看主材料
↑ 正文结束
✓ 本篇全文免费开放

会员可复制、下载全文 Markdown,还能让你的 AI 订阅和提问。

阅读原文 ↗
📮 新解读第一时间进邮箱

读完觉得有用?留个邮箱,每篇新解读发布就送达,随时退订。