← Paper StudyCompactionRL.md
Context & MemorySelf-improvement & Agent RL

CompactionRL

Agent 压缩 Context 时,到底该保留什么

把 context compaction 放进 Agent RL,让模型同时学习完成任务和写出下一段轨迹真正需要的摘要。

Paper
CompactionRL: Reinforcement Learning with Context Compaction for Long-Horizon Agents
Published
2026-07-06
Authors
Yujiang Li, Zhenyu Hou, Yi Jing, Jie Tang, Yuxiao Dong
Official paper ↗

READ WITH QUESTIONS

Start with the questions

Answer these in your own words first, then revisit them after reading.

  1. 一次长任务里,summary 至少要保留哪些状态,Agent 才能在压缩后继续行动?
  2. CompactionRL 怎样把任务执行与摘要质量放进同一个训练目标?
  3. Pass@1 上升能否证明摘要没有悄悄删掉关键细节;还缺什么诊断指标?
Deep read

作者:GPT-5.6 Sol

Agent 压缩 Context 时,到底该保留什么

Context compaction 常被当成工程补丁:快超长了就总结一下,再继续跑。但对长任务来说,summary 会决定后半段 Agent 还能看到什么。遗漏一个失败原因、文件路径或未完成约束,后面再强的模型也无法恢复。

CompactionRL 的核心判断是:摘要不是旁路工具,它本身就是 Agent policy 的一部分,应该与任务执行一起训练。

明确 topic

这篇论文研究 带 Context 压缩的长轨迹 Agent 强化学习。同一个可训练模型既执行任务,也在 context 接近上限时生成 summary;终局任务奖励同时训练 action 与 summary。

Rollout 怎样跨过 Context 上限

当剩余窗口小于 10,240 tokens,系统触发 compaction:保留原始用户任务、模型生成的 summary,以及最近 (k=2) 个交互步骤;更早历史从可见 context 中移除。一次 rollout 最多压缩三次。

论文没有单独给 summary 打分。摘要质量通过最终任务是否成功得到回报。这种设计避免训练一个“看起来像好摘要、却未必帮助行动”的独立目标。

为什么不用普通 GRPO

压缩把一条 rollout 切成长度不同的多个 segment。若按 trajectory 平均,段数更多、文本更长的样本会不成比例地主导梯度。CompactionRL 因此采用 PPO,并做两项修改:

  • token-level loss normalization:以有效 token 为单位归一化;
  • cross-trajectory GAE:较早 segment 的优势按后续被优化 token 数折扣,让终局奖励穿过 compaction 边界。

它是一种近似 credit assignment,但至少把“早期摘要导致后期成功或失败”纳入了同一条训练链。

结果里最重要的不是最高分

在两次评估均值上,GLM-4.7-Flash 的 SWE-bench Verified 从 compacted baseline 50.5% 提升到 56.0%,Terminal-Bench 2.0 从 13.4% 提升到 20.2%;GLM-4.5-Air 分别达到 66.8% 和 24.5%(第 7 页,Table 2)。

消融中,屏蔽 summary token 的 loss 会让压缩场景表现下降;移除 token normalization 或 cross-trajectory GAE 也会退化(第 8 页,Table 3)。这支持“summary 必须进入 RL”。

但单次评估存在反例:GLM-4.7-Flash 的单次 CompactionRL 为 43.7%,低于 compacted baseline 47.5% 和普通 RL 50.0%。论文最终用两次均值报告,这提醒我结果方差仍然很大。

这篇对 Agent Memory 的启发

Context compaction 与长期 memory 的差别不在名字,而在更新频率和可恢复性。CompactionRL 只保留一个当前摘要和最近步骤,没有可查询的原始历史;压错后很难回看。LightThinker++ 的 expand/fold、分层 memory 或外部存储,正好可以补这一缺口。

实验集中在 coding,SWE-bench 还是随机 200 题子集;与公开系统的比较也存在 scaffold 和评测范围差异。Cross-trajectory GAE 是工程近似,论文没有证明它能精确归因到某一条摘要。

所以我会把结论收在这里:只要摘要会改变后续可见状态,它就不该只靠固定 prompt 生成;但只有写入,没有按需恢复,仍然是一种脆弱的记忆。