今天两篇论文聚焦长时间运行的 Coding Agent 经常遭遇、但常规静态 Benchmark 很难测到的两类失败:历史被压缩后无法继续,以及执行中代码、工具或事实发生变化后无法恢复。

1. Compact-Bench: Measuring What Context Compaction Costs Long-Horizon Coding Agents

推荐理由: Context Compaction 通常以 Token 节省或摘要是否保留事实来评估,但这无法回答最关键的问题:同一份未完成任务,在压缩历史后还做得完吗? 论文通过固定仓库快照和执行前缀,直接比较保留完整历史与替换为摘要后的续跑结果,并结合真实 Agent 会话研究信息丢失。

3 条核心要点:

  1. 用成对续跑隔离 Compaction 的影响。 对相同历史与 Working Tree,PRE 携带完整历史继续执行,POST 仅携带压缩摘要;保持 Agent、工具、环境和步数预算相同,用可执行测试判断修复是否完成。研究覆盖 35 个 SWE-bench 修复实例、146 段 Agent 会话、106 条生产压缩链,而不是仅给摘要打主观分。
  2. 压缩确实会让原本可完成的任务失败。 在 22 个经确认的完整历史成功案例上,14 种摘要模型的稳定任务损失率为 5%–64%。这些比例依赖固定的续跑模型、Prompt 和一组偏小的 Python 修复任务,不能直接外推为所有 Coding Agent 的线上失败率。
  3. 记住细节不等于保留工作进度。 LLM 摘要对后续反复出现的结构化细节最多保留 16.0%,机械提取基线为 79.1%;但作者也发现,摘要即使保留目标文件及报错字符串,仍可能丢掉已验证的假设与下一步动作。字段召回率与后续任务成功率必须分开评测。

核心启示: Shared Checkpoint → Full History vs Compacted History → Matched Continuation → Executable Tests。衡量 Compaction 的首要指标应是任务可继续性;保存文件路径、决策状态、已完成动作和待验证假设,比生成一段读起来通顺的摘要更重要。

2. SWE-Shift: Evaluating Coding Agents in Evolving Workspaces

推荐理由: 传统 SWE-bench 默认 Agent 开始执行后,需求、代码和外部环境保持不变。但真实工作中可能出现同事提交、接口升级、会话失效、补充需求或测试证据过期。SWE-Shift 把这些中途变化作为可恢复、可执行的评测场景,并检验原测试通过之外的保留与证据义务。

3 条核心要点:

  1. 从同一中途状态分叉,比较变化前后的结果。 研究构造 120 个场景、12 类变更、9 个干预时点。同一历史与工作区分别继续为 Clean(不注入变化)和 Shifted(注入任务相关变化);只有任务、有效既有工作、当前授权与证据等适用检查全部通过,才算成功。配对成功率(PSR)防止把原本就不会做的任务错算成“适应变化失败”。
  2. 静态能力强不代表变化后仍可靠。 在 17 种 Coding Agent 系统上,所有系统 Shifted 成功率均低于 Clean。GPT-6 Astra 从 **67.35%(Clean)**下降到 24.79%(Shifted),配对成功率 20.34%;这些是特定基准、运行配置和加权方式下的结果,不是普遍生产成功率。
  3. 最难的是重新绑定工具与刷新事实。 在工具/会话变化及过期证据两类场景中,17 个系统的分组 PSR 均为 0。论文还展示了一个典型误判:Agent 使原有 39 项测试全部通过,却顺手删除了协作者刚添加的 API,因破坏有效工作而被判失败。最终检查必须覆盖环境当前状态和执行轨迹,不能只重跑旧测试。

核心启示: Checkpoint → Authorized Change → State Refresh → Preserve Valid Work → Fresh Evidence → Final Verification。长期运行的 Coding Agent 需要把状态刷新、变更检测、冲突处理与证据有效期作为独立能力评估。

今日思考

上下文压缩与工作区变化看似是两个问题,实际都挑战同一个假设:Agent 在下一步采取行动时,仍掌握足够准确的当前状态。

Compact-Bench 强调 过去的工作进度不能在交接中丢失;SWE-Shift 强调 交接时的事实不能被永久当作最新事实。因此,Software Factory 中可靠的长期执行应同时拥有可恢复的 Checkpoint,以及针对代码、工具、任务要求和外部证据的重新验证机制。两篇均为预印本,结论应限制在其评测设置之内。