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、解码、基础摘要全部固定:
| 表示 | 输入位置 | Coverage | Citation F1 | Joint |
| Raw context | 96,872 | 72.46 | 56.60 | 43.41 |
| Summary | 1,393 | 67.55 | 56.98 | 39.84 |
| Summary++(同预算文本) | 同预算 | 67.52 | 56.94 | 39.78 |
| Summary + REMORY | 5,024 | 67.95 | 61.03 | 43.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 无 → 有 |
| AutomationBench | 35.5 → 45.3 | n/a |
| JobBench | 33.4 → 41.0 | n/a |
| Terminal-Bench 2.1 | 71.9 → 76.4 | 84.3 → 87.6 |
| BrowseComp | 74.0 → 77.0 | 84.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 分,压缩终究有损,记忆补回的是归因,补不回覆盖。