Agent 不是记不住,是没在对的时刻想起:主动记忆 Agent 的关键设计
- 关联论文:2607.08716
为什么值得读
长视野 Agent 任务里有个很少被命名的故障:跑了几十上百步之后,Agent 的决策开始退化。
关键信息——初始指令、早期发现的障碍、之前失败的诊断、子目标状态——都还留在上下文窗口里,没有被截断,但已经不再影响决策了。论文把这个现象叫 Behavioral State Decay(行为状态衰减)。
这一点很关键,因为它划出了 RAG 的能力边界:RAG 解决的是"信息有没有被查到",而状态衰减解决的是"查到了,但 Agent 没在正确的时机调用它"。信息存在不等于信息被使用——论文还顺带反驳了"长上下文是银弹"的默认假设。
由此得出了本文的核心洞察:记忆不是存储问题,是控制问题。正确目标不是"存更多",而是"在最该改变行为的那一刻注入记忆"。
核心机制
双 Agent 并行架构。 一个独立的 Memory Agent(MA)并行运行于 Action Agent(AA)旁边,两者通过结构化 Memory Bank 和间歇性提醒通信。关键在于 AA 完全不动——不修改参数、不改提示词,只接收提醒与环境反馈。这让方案天然即插即用:任何现成的 frontier LLM Agent 都能接上。
MA 干两件事:
Memory Update Phase——从 AA 最近的轨迹里抽取关键状态,更新结构化记忆库,包含三类条目:Status(当前进展)、Accumulated Knowledge(已发现的环境规律与工具限制)、Procedural Guidance(成功/失败的步骤模式)。结构化格式让读写和审计都更可预测。
Intervention Policy——本文最关键的设计:MA 不只负责存,还负责决定是否发出提醒。判断逻辑是:当前状态与记忆库中某条关键信息高度相关、且 MA 判断 AA 很可能已经忘了 → 发提醒;否则 → 保持沉默(Strategic Silence)。
消融实验证明选择���干预优于全部替代方案:被动暴露记忆库、常驻注入、只给顾问建议、通用检索。也就是说,"何时沉默"和"何时说话"同样重要——盲目注入不仅浪费 token,还会打断 AA 正常的推理节奏。
开源化的一步。 团队在自建数据集 SETA 上训练 Qwen3.5-27B,用 SFT 学基础干预时机判断,再用 GRPO 在离线奖励上优化;验证 reward 提升,且部分能力可迁移到 Terminal-Bench。
效果与证据边界
核心数字来自两个长视野基准:Terminal-Bench 2.0 上 Claude Sonnet 4.5 从 37.6% 提升到 45.9%(+8.3 pp),τ²-Bench 上从 55.0% 提升到 61.8%(+6.8 pp)。即便把 AA 换成更强的 Opus 4.6,MA 依然带来 +2.4 pp 和 +2.5 pp;越弱的 Agent 提升越大,说明状态衰减对弱模型更严重。
需要留意的边界:
- τ²-Bench 的具体评测领域和任务类型原文未明确披露,引用时别替它补细节。
- SETA 数据集的构建方式、规模、覆盖任务类型原文未披露,跨领域可用性无法评估。
- Qwen3.5-27B 蒸馏版只实现部分迁移,明确不等于"开箱即用的本地记忆 Agent";其开源权重发布地址与许可协议原文也未提供。
- 实验只在两个基准上验证,网页导航、代码生成等类型任务效果未知。
- 选择性干预的可解释性不足:MA 某刻决定沉默的深层原因难以审计。
工程上最实在的坑有三个:成本与延迟——双 LLM 调用让 token 消耗直接翻倍,MA 单次推理约 200–500 tokens,100 步任务额外 20–50K tokens;对策是先用规则层(decay_score + last_referred_step)过滤掉约 80% 的明显沉默场景,只让 20% 复杂场景走 LLM 判断。阈值高度任务相关——CLI 任务上的默认阈值搬到客服对话(只有 5–10 步、衰减不明显)反而增加干扰,新领域必须重新标定。注入时机会打断推理——提醒应在 step boundary 注入,不在 AA 推理中途,且内容要结构化、控制在 200 tokens 内。
三个标题变体
- Agent 不是记不住,是没在对的时刻想起:主动记忆 Agent 的关键设计
- "保持沉默"才是记忆系统的关键:+8.3pp 提升背后的选择性干预
- 长上下文不是银弹:Behavioral State Decay 与 Memory Agent 方案
小红书卡片文案
Agent 跑久了会变笨,但问题不在"记不住"。
论文给这个现象起了名字:Behavioral State Decay(行为状态衰减)。
信息还在上下文窗口里,没被截断,但已经不影响了决策。
🎯 核心洞察一句话:记忆不是存储问题,是控制问题。 目标不是"存更多",而是"在最该改变行为的那一刻注入"。
📐 方案:Memory Agent 并行跑在旁边 - 更新结构化记忆库:status / knowledge / guidance - 决定发提醒 还是 保持沉默(Strategic Silence) - Action Agent 完全不动,不改参数不改提示词
📊 效果(Terminal-Bench 2.0 / τ²-Bench) - Sonnet 4.5:37.6% → 45.9%(+8.3pp) - τ²-Bench:55.0% → 61.8%(+6.8pp) - 换成更强的 Opus 4.6 也有 +2.4pp / +2.5pp - 越弱的 Agent 提升越大——弱模型的状态衰减更严重
💡 三个落地要点 1️⃣ 别无脑注入,常驻提醒会稀释关键信号 2️⃣ 规则层先过滤 80% 沉默场景,MA 的 LLM 调用压到 1/5 3️⃣ 提醒只在 step boundary 注入,≤200 tokens
⚠️ 边界:Qwen3.5-27B 蒸馏版只是部分迁移;SETA 数据集细节原文未披露;仅在 2 个基准验证。