Inference Notes · 论文精读

English

← 全部笔记

CliffCompaction: Cost-Efficient Compaction for Long-Horizon Coding Agents

Trang Nguyen, Eulrang Cho, Bingqing Chen, Tim Dettmers · CMU, Bosch Center for AI

在解决长程 coding agent 的上下文会涨到几百万 token,如何压缩上下文,既不丢关键信息、又不让每一步都重新 prefill 而烧钱。

结论机制可信、值得抄,但 headline 数字普遍被说大了:省钱扎实,「性能不降反升」在种子噪声内,「匹配 Opus 4.7」「超专用方法 25%」都是跨 harness / 跨模型比较。

AgentInference
发表2026-09-22 · arXiv 2609.26779 · 代码
精读于2026-09-23
可信度机制 高 / 成本 中高 / 性能提升 低-中
阅读范围Full LaTeX source, all 22 files incl. appendix and tables, read end to end; figures via captions only. Cross-checked by an independent Gemini 3.1 Pro full read.
精读Claude(Gemini 3.1 Pro 交叉核对 / cross-checked)

1. 一句话结论

机制可信、值得抄,但 headline 数字普遍被说大了。 核心贡献是一个很简单的规则:上下文涨到阈值才压缩,压缩只截断/丢弃、不改写,且每次丢掉上一次的压缩块。成本下降(cache read 省 80%)是扎实的;「性能不降反升」在 Terminal-Bench 上落在种子噪声内;「匹配 Opus 4.7」「超专用方法 25%」都是跨 harness / 跨模型的比较。可信度:机制 高 / 成本 中高 / 性能提升 低-中

2. 核心机制 + mental model

触发:LLM() 抛 ContextWindowExceeded 时才做(Alg. 1)。压缩时对旧轮次逐条处理:

  1. system prompt + 第一条 user(任务描述)原样保留
  2. 最近 K 轮原样保留
  3. 更早的轮次:
    • assistant thinking 截到 300 字符
    • tool call 缩成签名(工具名 + 路径等关键参数,≤150 字符;写文件时内联的文件内容删掉)
    • tool result ≤500 字符保留,>500 字符整条删除
    • 上一次的压缩块直接丢弃,不嵌套进新压缩块
  4. 新上下文 = [system, task, 本次压缩块] + 最近 K 轮

Mental model(论文证据 + 我的推断)

3. 关键数字核实表

摘要/正文说法 出处 实际条件 成立? 备注
成本降低最多 50% Tab. terminal-bench; Tab. real-cost Kimi K2.6, Terminus-2, 16K: $0.40→$0.19(真实计费 -53%);GLM 5.1 8K 真实 -72% 但 SWE-bench 上 Kimi K2.6 32K 0%、16K -8%、8K +1%(Tab. real-cost)。省多少强烈依赖模型 cache 命中率和 scaffold
Terminal-Bench 性能「维持或提升」 Tab. terminal-bench Kimi 59.16±3.41 → 61.42±4.25(32K/16K) ⚠️ 噪声内 89 题,差 2.26 点 ≈ 2 题;两边 std 3–4 点。种子数未报告。更实在的对比是同 16K 下对 Terminus-2 原生摘要:55.45→61.42
cache read 省 90% 引言 效率节只报了 80%($0.427→$0.087/task,GLM 5.1 TB) ⚠️ 引言的 90% 在正文没找到对应数字
3 次 rollout +10.5 点、成本 1.9× Tab. terminalbench-scaling Kimi 16K + SGV 选择器, k=3: 69.7 vs 单次全上下文 59.2 ✅ 数字对得上 10.5 点里约 5.7 点来自 Cliff 相对「无压缩 + SGV」(64.0);同样 89 题,单次选择器结果,无置信区间
匹配 Opus 4.7、超 GPT-5.3 Codex / Opus 4.6 同上 Opus 4.7 的 69.4 取自 system card,非 Terminus-2 harness;GPT-5.3/Opus 4.6 是 Terminus-2 榜单数字、k=1 ⚠️ 表 caption 说「超过同 harness 下所有专有 baseline」——Opus 4.7 本就不在同 harness。且是 k=3+选择器 对 k=1;而且 k=3 花 $58.01,比 Opus 4.6 的 $44.53 还贵,「更低成本」对 k=3 只相对 GPT-5.3 Codex($64.63)成立,同时胜过 Opus 4.6 且更便宜的只有 k=2(65.9% / $38.67)
KernelBench 200 步 2.23×、400 步 3.58× Tab. kernel-bench Kimi K2.7(不是正文 TB/SWE 用的 K2.6),L40S,CUDA,atol=rtol=1e-2 同一 Kimi K2.6 在 RTX Pro 6000 上只有 1.87×/2.48×
「对齐设置下」超专用方法 25% 引言 25% = 2.23/1.78,即 Kimi K2.7 + Cliff vs GPT-5-mini + AdaExplore ❌ 不对齐 真正同模型(GPT-5-mini)是 2.09 vs 1.78 = +17%;基线全是「原论文报告值」;CUDA-Agent 的 1.80× 是只算正确解的几何均值、H20 硬件
优于其它压缩法且唯一又好又便宜 Tab. compaction-cost KernelBench: Cliff 3.58×/$8.32 vs 摘要 3.47×/$8.10;SWE-bench: 四种方法相差 ≤2.6 点,sliding window 最高 ⚠️ 摘要法在 KernelBench 上几乎打平且更便宜;这张表换了模型(Kimi K2.7、GLM 5.2),单次运行

4. 领域检查发现(Agent 清单 B)

5. 摘要没说的

6. 启发(我的推断)

  1. 「压缩时机」是 inference 成本问题,不只是 agent 设计问题:cache 命中率决定账单。任何改前缀的上下文管理(包括 Claude Code 的 microcompaction)都在跟 prefix cache 打架。这把 agent 和 serving 两条线直接连起来了——值得和 Hot-Cold KV 分层(2609.25782)、PatchKV(2609.26219,编辑中间上下文后修复 KV)放一起看。
  2. 「留空洞」优于「填转述」:让 agent 清楚知道自己丢了什么、并且有签名能取回,比给它一段看似完整的摘要更可靠。这是一个可迁移的 harness 设计原则,和今天的 DTOC(占位符 + 按需取回)是同一思路。
  3. 对你自己的 Claude Code 用法:它的 proxy 可以直接挂在 Claude Code 前面。但 Claude 模型轨迹本来就短、cache 命中高,按论文自己被删掉的那段话,收益可能不大——更适合长时间跑的开源模型 agent。

7. 下一步

8. 交叉核对:Gemini 3.1 Pro 独立精读

把全部 22 个源文件(去掉注释掉的旧稿)交给 Gemini 3.1 Pro(经 agy,无工具)独立精读,不给它这份笔记。以下每条都已回原文核实: