4096 个软 token 补回压缩丢的上下文,Qwen agent 最高涨 9.8 分

REMORY: Learning Residual Memory for Context Compaction

Hanchen Xia, Baoyou Chen, Yutang Ge, Naihao Deng, Senqiao Yang, Zilong Dong, Weihao Yuan, Siyu Zhu

cs.CL, cs.AI

2026-10-08

在压缩摘要后附加至多 4096 个学到的软 token,不动 LLM 权重,Qwen agent 最高涨 9.8 分,SummHay 用 5.2% 位置追平全上下文。

这篇在解决什么

长时程 agent 的输入长度是一条锯齿曲线:随交互增长,压缩时骤降,再增长。Claude Code 和 Codex CLI 的 /compact 就是这个模式,摘要成为 checkpoint,agent 从它恢复工作。

摘要是有损的,而且损在哪不可预知:保住主线不保证撑得起后续每个决策,早期上下文的相关性还会随任务展开变化。论文的立场是,摘要之外还需要什么无法提前枚举,「把摘要写好一点」不构成解法。

人类是个参照。工作记忆只能维持几个 chunk,人却能推进持续数月的项目,靠的是长期记忆存取。论文据此给 agent 配一个学到的神经索引,与显式摘要并存,取海马索引理论的思路:线索激活索引,索引还原早期经验。

方法

REMORY 在每个压缩边界做一件事:给定新生成的摘要,记忆网络从当前历史构造一段软 token 序列,至多 4096 个向量,直接活在冻结 LLM 的输入嵌入空间,拼接成「摘要 + 记忆」。摘要是可读 checkpoint,软 token 补充后续预测需要的信息。这串 token 以摘要为条件、附加在摘要之后,沿序列维度看就是一层残差连接:摘要是主干,记忆是残差。

网络侧,每 1024 个源位置产出 64 个 soft token,分层压缩到 4096 上限并保留源顺序,用冻结 actor 的特征加学习 query 并行预测,gated cross-attention 看摘要。Qwen 版基于 DFlash,1.94B 可训练参数;GLM 版用 DFlash-2,1.502B。actor 全程冻结,梯度穿过它,只更新记忆网络。

训练分两个阶段,teacher 与 student 共用同一个冻结 actor:

损失是 student 对 teacher 的 reverse KL,覆盖全词表与完整回复。Stage II 的意图在于:摘要已经在,记忆只需补「摘要剩下的预测差距」,不必重建每条被省略的事实。图 3 的训练诊断显示,从 Stage I 初始化出发比随机初始化收敛更好,两阶段有必要。

结果

SummHay,92 个 query,Qwen3.8-27B,actor、query、解码、基础摘要全部固定:

表示输入位置CoverageCitation F1Joint
Raw context96,87272.4656.6043.41
Summary1,39367.5556.9839.84
Summary++(同预算文本)同预算67.5256.9439.78
Summary + REMORY5,02467.9561.0343.39

两个对照最有信息量。其一,summary++ 与纯摘要几乎无差别,同预算的额外文本什么都换不来;换成软记忆,citation F1 提 4.04、joint 提 3.55,配对 bootstrap 95% 区间 +0.74 到 +6.21。其二,记忆版只用 raw context 5.2% 的位置,joint 43.39 已追平 raw context 的 43.41,代价是 coverage 低 4.5 分。归因的提升远大于覆盖,记忆主要在帮模型把已恢复的结论连回证据。

Agent 基准全部做 within-actor 对照,权重、Codex CLI harness、提示、工具、解码、预算、压缩策略全固定,两边都能检索原始历史:

基准Qwen3.8-27B 无 → 有GLM-5.3-Flash 无 → 有
AutomationBench35.5 → 45.3n/a
JobBench33.4 → 41.0n/a
Terminal-Bench 2.171.9 → 76.484.3 → 87.6
BrowseComp74.0 → 77.084.9 → 89.0

AutomationBench 与 JobBench 为五次运行均值(AutomationBench 涨 9.8 分是最大单项提升),Terminal-Bench 与 BrowseComp 各跑一次。四个 actor-基准对上,重复工具输出降 17.9–29.8%,工具错误降 25.3–49.7%,指向对早期反馈的更好利用。生成成本多数下降,JobBench 例外,从 $3.09 升到 $3.21。压缩后第一个动作的 488 对盲评里,带记忆一方赢 70.7%。

Live Trading 案例最抓眼球也最弱:两个并行 Qwen 账户,无记忆 ROI −11.86%,有记忆 +5.11%,生成花费 $303.81 对 $170.30。作者自己声明两条轨迹的市场选择与时机不同,回报比较只能看方向。

为什么重要

做长时程 agent 的团队都撞过压缩丢信息的墙,现有工业方案只有「把摘要写好」。这篇给出两层证据:同预算下,学到的连续表示比生成的文本更能保留归因线索;收益传导到端到端 agent 得分与工具使用质量。摘要、记忆、检索三者分工也务实,可读 checkpoint 不牺牲,精确记录仍走普通检索工具,不需要推翻现有 harness。

门槛同样明确:每个 actor 要配一个 1.5B 到 1.9B 的记忆网络,模型换代就要重训。能自己跑训练的团队可以用,API-only 用户暂时只是论文。作者声称这套记忆把 320B 参数的 GLM-5.3-Flash 推近前沿水平,这层说法靠的是不受控的图 1 对比,受控证据只有 within-actor 涨幅。

局限与存疑

作者自述:Live Trading 仅覆盖两条行为不同的轨迹;细胞分割案例修复成功,但无法证明恢复的细节来自记忆而非重读文件;成本估算只计 token 价格,不含编码与记忆网络的执行开销;Figure 1 与前沿模型的对比不受控。

另有几处存疑。Terminal-Bench 和 BrowseComp 是单次运行,3 到 4 分的涨幅没有方差信息撑腰。记忆绑定单个 actor 的输入空间,Qwen 与 GLM 各训各的,跨模型迁移没有验证。连续记忆不可读,出了问题没法像摘要那样人工检查。SummHay 的 coverage 仍比全上下文低 4.5 分,压缩终究有损,记忆补回的是归因,补不回覆盖。

术语

原文与代码

相关论文

全部论文解读