Meta AI 提出主动记忆代理:让智能体学会「该提醒时才提醒」,Terminal-Bench 正确率提升 8.3 个百分点
- 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 日尚未真正开源。
Meta AI 最近发布了什么
Meta AI 研究团队于 2026 年 7 月 9 日在 arXiv 发布论文,提出给执行长任务的 AI 智能体旁挂一个「主动记忆代理」,专门负责判断什么时候该提醒、什么时候该保持沉默。
论文全部作者来自 Meta AI。它要解决的问题很具体:当一个 AI 智能体连续干上百步、跑很长一条任务时,它常常会「忘掉」自己早先该守的规矩,哪怕那些信息还明明白白留在对话记录里。下面先看清这个问题本身。
任务做长了,AI 会不会悄悄忘记该守的规矩
论文给这个失败模式起了个名字,叫 behavioral state decay(行为状态衰退)。信息并没有丢,还躺在记录里,只是不再起作用。
一个长任务会不断产生新东西:任务要求、环境事实、之前试过什么、诊断出的毛病、还没做完的子目标。随着轨迹越拉越长,这些信息要么被挤出模型能看到的上下文窗口,要么虽然还留在窗口里,却不再真正左右它下一步怎么做。论文把这类「应该继续约束未来动作」的信息统称为 execution state(执行状态)。
就像你把便利贴贴满了整面墙。贴的时候每一张都记得清清楚楚,但贴太多之后,你已经不会再抬头去看了。字还在墙上,只是不再影响你此刻的动作。
下面这条时间线,演示了一条早先记下的要求,怎么一步步从「鲜活」褪成「还在记录里,却不再左右下一步」:
时间线可左右横滑,翻到最后看结局 →
信息一路都在,只是不再左右下一步。论文说,这和长上下文里的「lost in the middle」(信息夹在中间就被忽视)现象有关,但更强调的是行为层面的失效。
论文举的三种典型翻车
论文由此提出一个判断:光是把更长的历史记录喂给模型是不够的。真正缺的,是一套机制去决定「这条被记住的信息,现在该不该重新拿出来影响决策」。
旁边站一个记忆管家,不干活只管「该不该提醒」
这是论文的第一个核心。做法是:干活的执行智能体一个字都不改,旁边另外跑一个记忆代理。它每隔固定步数被唤醒一次,先整理一份结构化的记忆库,再决定要不要在执行智能体的下一步里插一句提醒。
(看最近 8 条消息)
流程图可左右横滑 →
记忆代理每次被唤醒,都走两个阶段:先管账(管理记忆库),再拿主意(要不要开口)。它对执行智能体唯一的影响,就是那句可选的提醒,作为一次性的临时上下文注入进去,用完即走,不改执行智能体的基础指令、工具和解码方式。
最关键的一点:「保持沉默」是一个正式动作,不是漏掉了才不说。记忆代理每一步都要在「插一句提醒」和「明确选择闭嘴」之间做二选一,只有当某条记忆很可能改变下一步决策时,它才开口。
记忆代理不直接重写记忆库,而是返回一串预定义的工具调用,系统照单执行。记忆库分三类:
memory_update_status更新记忆代理私有的进度追踪,只有它自己看得到。
memory_save_knowledge把任务要求、环境事实、文件路径、接口细节等重要事实写进知识库。
memory_save_procedural记录调试经验:失败过的做法、成功的修复、错误模式、性能观察。
memory_delete按条目编号,删掉过时或已被证明错误的记忆。
读一遍刚更新完的记忆库,只做一个决定,这一步不改记忆库:
论文还特别把这套记忆代理和「顾问型」方案(advisor,一个模型当军师,给干活模型出各种主意)划清了界限:记忆代理不出宽泛的战略建议,它开口的每一句,都必须落在维护好的执行状态上,是某条具体的要求、事实、失败或诊断。
主实验里,触发方式是最简单的:记忆代理在第一步和之后的每一步都被唤醒,每次观察最近 8 条消息的窗口。论文提到也可以改成更挑时机的触发(比如只在报错、测试失败、命令重复后才唤醒),但这次用固定节奏,是为了单独看清「提醒策略」本身的效果。
加了记忆代理,分数涨了多少
论文在两个长任务考场上做了测试:Terminal-Bench 2.0(自主操作命令行,改代码、跑命令、修 bug)和 τ²-Bench(多轮对话式工具调用,模拟航空、零售、电信三个真实服务场景)。评分口径是 pass@1只让 AI 跑一次任务,看这一次能不能做对的成功率,不是跑好几次挑最好的那次算数。。
两点值得留意。第一,弱模型涨得多,强模型也没白涨:Opus 4.6 已经很强,加了记忆代理在两个考场分别还能再涨 2.4 和 2.5 个百分点,说明这套做法不只是在替弱模型补能力。第二,不同场景差别明显,符合论文把记忆当成「随场景调整的干预策略」而非固定套路的定位。
展开:τ²-Bench 三个场景的完整分项数据(Table 1)
| 考场 / 场景 | 动作模型 | n | 基线 | 配记忆代理 | Δ |
|---|---|---|---|---|---|
| Terminal-Bench 2.0 | Sonnet 4.5 | 85 | 37.6% | 45.9% | +8.3 |
| Terminal-Bench 2.0 | Opus 4.6 | 85 | 43.5% | 45.9% | +2.4 |
| τ² · airline | Sonnet 4.5 | 50 | 68.0% | 78.0% | +10.0 |
| τ² · retail | Sonnet 4.5 | 114 | 49.1% | 58.8% | +9.6 |
| τ² · telecom | Sonnet 4.5 | 114 | 55.3% | 57.9% | +2.6 |
| τ² · 任务加权平均 | Sonnet 4.5 | 278 | 55.0% | 61.8% | +6.8 |
| τ² · airline | Opus 4.6 | 50 | 76.0% | 76.0% | +0.0 |
| τ² · retail | Opus 4.6 | 114 | 64.9% | 69.3% | +4.4 |
| τ² · telecom | Opus 4.6 | 114 | 63.2% | 64.9% | +1.8 |
| τ² · 任务加权平均 | Opus 4.6 | 278 | 66.2% | 68.7% | +2.5 |
记忆代理统一为 Claude Opus 4.6。所有分数为 pass@1 百分比,Δ 单位为百分点(pp)。另注:本表 τ² 任务加权平均为 61.8%,下文消融表里同配置为 61.2%,是论文两批不同运行的结果,均值略有出入,论文原文如此。
记性好不如懂得该闭嘴
这是论文的第二个核心。为了搞清楚到底是哪一步在起作用,团队做了 消融实验把系统里的某个部件拆掉或换成简化版,看少了这部分之后成绩掉多少,用来证明这部分到底有没有用、有多大用。:把完整方案拆成五种打法,在 τ²-Bench 上逐一对比。结论指向一件事,真正起作用的不是「记住了多少」,而是「会不会判断该不该开口」。
五种打法分别是:完整两阶段方案(自己选沉默)、把记忆库全量展示给执行智能体、强制每一步都提醒、没有记忆库只当顾问给建议、接一个通用记忆检索层 Mem0。下面这张图看最能说明问题的 airline 场景,注意橙红那一档,比不加记忆代理还差:
灰条为 Sonnet 基线(68.0%)。橙红条(顾问式建议)掉到 62.0%,比不加记忆代理还差;Mem0 打平基线,没能改善 airline。
为什么 airline 场景差距最大:这类任务最怕被过度提醒打扰,一句多余的提醒就可能把执行智能体带偏。只有会主动选择闭嘴的完整方案,才在这里拿到最高分。反过来,只会不停出主意的顾问式建议,和只会检索记忆的 Mem0,都栽在这里。
把三个场景平均起来看(macro 表示三个场景等权平均,micro 表示按任务数加权),完整方案 macro 总分最高,三个场景全部改善,airline 涨幅最大。有一个细节:强制每步提醒在 micro 上略高 0.3 分,但这落在正常波动范围内,一到场景等权的 macro 上,会选沉默的完整方案就重新领先,差距主要来自 airline。
展开:五种打法的完整对比表 + 各自拆了什么(Table 2)
| 方案 | airline | retail | telecom | macro | micro |
|---|---|---|---|---|---|
| Sonnet 基线 | 68.0 | 49.1 | 55.3 | 57.5 | 55.0 |
| 完整记忆代理(本方案) | 78.0 | 57.0 | 57.9 | 64.3 | 61.2 |
| 记忆库全量展示 | 74.0 | 52.6 | 57.9 | 61.5 | 58.6 |
| 强制每步提醒 | 72.0 | 58.8 | 59.6 | 63.5 | 61.5 |
| 无记忆库·只给建议 | 62.0 | 54.4 | 66.7 | 61.0 | 60.8 |
| Mem0 | 68.0 | 59.6 | 58.8 | 62.1 | 60.8 |
记忆库全量展示:保留 Phase 1 建库,但去掉 Phase 2 的挑选,把整个记忆库每一步都全摊给执行智能体,看有没有用。
强制每步提醒:保留记忆库和 Phase 2 生成提醒,但拿掉「沉默」这个选项,逼它每步都说,看不说的权力是不是关键。
无记忆库·只给建议:去掉持久记忆库,只留 Phase 2 出主意,对应顾问式系统,它的建议没有稳定记忆可依托。
Mem0:换成通用记忆层,记忆通过 Mem0 的 ADD 接口写入,用向量加 BM25 检索取回 top-10,比的是「检索记忆」和「判断该不该干预」的区别。
论文的总结是:光维护记忆库有帮助但不够;没有记忆库的顾问式建议缺少落脚点、不稳;每步硬提醒虽有竞争力但不均衡。完整方案最好,正是因为它把「维护好的执行状态」和「一套会挑该说什么、也会选择闭嘴的干预策略」结合在了一起。
记忆代理具体在哪一刻插了嘴
论文人工查看了带记忆的运行轨迹,发现记忆起作用的方式并非泛泛总结,它的高光时刻,是执行智能体正要忽略某条关键信息的那一瞬间,把它重新激活。下面是三个真实案例。
执行智能体在写日志匹配正则时,记忆代理同时提醒了两件事:当前的正则违反了任务规定的边界条件,而且漏掉了单个数字的 IP 段(比如 1.2.3.4 里那种一位数)。
用户自称是金卡(Gold)会员,但工具查到的记录显示他其实是普通(Regular)会员。没有记忆代理时,执行智能体照着用户的说法发了补偿;有记忆代理时,它提醒执行智能体以已验证的记录为准,别信用户口头声称。
在真正调用改签工具之前,记忆代理把「基础经济舱(basic economy)机票不允许修改」这条政策条款重新拎出来提醒,拦下了一次违规改签。论文说,这类成功的干预往往就发生在一次会改变环境状态的工具调用之前。
把这些时刻放到整条轨迹上看,就是招牌那张图的样子:大多数步都是空心圆(保持沉默),只有少数几个节点亮起来(插入提醒),点亮的地方旁边标着它到底说了什么。
论文也如实说了剩下的失败情况:主要是校准没做好,比如记忆代理偶尔会把一个只是推测的结论说得太笃定、复述执行智能体本来就知道的东西、或者提出一个看似合理但没必要的担忧,害得它多做一遍核查。这些恰恰是下一步要训练它「更懂得何时沉默」的动机。
把这套判断力教给一个开源小模型
主实验里的记忆代理用的是 Claude Opus 4.6,每个记忆步都要多调一次这种前沿闭源模型,成本不低。团队于是做了一次早期尝试:能不能把同样的判断力,训练进一个开源小模型 Qwen3.5-27B,让它来当记忆代理,动作模型换成冻结的 Qwen3.5-122B-A10B。
训练用的是 SETA(一批带评分器的命令行任务集),Terminal-Bench 2.0 留作最后测迁移。方法分两步:SFT监督微调,拿标准答案手把手教模型照着做。这里是拿 Opus 记忆代理跑出的轨迹当范本,教会小模型记忆库操作和沉默/提醒的接口。 先把接口和基本规矩教会,再用 GRPO一种强化学习方法,让模型自己多次尝试、按结果好坏调整策略,进一步优化「什么时候该开口、什么时候该闭嘴」的判断,而不只是模仿范本。 强化学习去校准「该不该开口」的判断。
结论是:这套记忆策略是能被学会的,但确实需要校准,直接拿没训练的小模型上反而添乱。同时也得看清差距:训练后小模型带来的迁移增益是 3.5 个百分点,明显小于用 Opus 4.6 当记忆代理时的 8.3 个百分点。论文把这一段定位为「早期探索」,证明这条路走得通,而不是说它已经追平了前沿闭源版本。
如果想自己试,要留意什么
有两件容易被忽略的事,这里一次说清。
第一,论文说开源,但仓库是空的。论文正文写着代码地址 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 的描述
长任务里的 AI,从「记了却不再用」升级成「该提醒时才提醒」
Meta AI 给干活的 AI 旁边加了个只管提醒的「记忆管家」,弱模型配上它就追平了贵一档的强模型,一页带图讲完。
↓ 一页读完 · 有一张会动的图
先说这是什么:现在的 AI 智能体(能自己连续操作、一步步干完一整件事的 AI,比如替你改代码、跑一整套客服流程)常要连做上百步。研究发现它有个通病,任务做长了,早先自己该守的规矩,会悄悄不管了。
论文管这叫「行为状态衰退」,不是没存住,是存了也不再左右它的动作。就像便利贴贴满一整面墙,贴太多之后你就不再抬头看了。
Meta 的解法是:干活的 AI 一个字都不改,旁边另跑一个「记忆管家」。它定时整理一份记忆清单,再决定要不要在下一步插一句提醒。更反直觉的发现是,真正管用的不是「记得多」,而是「懂得该不该开口」:让它自己选择闭嘴的版本,比把记忆全摊出来、或强制每步都提醒,成绩都更稳。
… 又做了几十步 …
再试一个几乎一样的命令
✗ 白白重来一轮
管家补一句:这条路刚试过,失败了
AI 换一条路走
✓ 不再重复踩坑
这句提醒用完就走,不改动干活的 AI 本身。那这个「记忆管家」到底怎么运转?看下面这张图。
记忆管家(这里由小互出演)每隔固定步数被叫醒一次,做两件事:先更新一份分三类的记忆清单(任务要求、环境事实、试过什么),再做一个二选一,插一句提醒,或者明确保持沉默。下图用一个真实场景走一遍:航空客服任务里,用户自称金卡,系统记录却是普通会员。
「正确率提高 8.3 个百分点」听着没体感,换成具体任务:把 100 道命令行长任务交给较便宜的 Claude Sonnet 4.5,它自己做对约 38 道;旁边加上记忆管家,做对约 46 道,多做对的这几道,正好让它追平贵一档的 Claude Opus 4.6(自己做约 44 道)。
IP 段能是单个数字
违反了自己早记下的规矩。
塞更多记忆。
该提醒才提醒,其余时候闭嘴。
给我补偿
发补偿吧…
别信口头的金卡。
关键一步才开口。
每题只跑一次,没有外人复现。
- × 最灵那版用付费大模型,成本没算
- × 每一步都要多调一次,更烧钱
- × 论文说开源,仓库却是空的
才开口