面向智能体编码的测试时计算扩展 Scaling Test-Time Compute for Agentic Coding
用结构化轨迹摘要+RTV+PDR,在长程智能体编码上系统提升测试时计算增益。
前置知识
测试时计算扩展 (Test-Time Compute Scaling)
指在模型权重固定的情况下,通过在推理阶段投入更多计算资源(例如多次采样、聚合、迭代精化)来提升任务表现的技术族。典型代表包括 Best-of-N 采样、self-consistency、self-refine 等。
本文的核心方法 RTV 和 PDR 都属于测试时扩展的具体实例,需要先理解这一范式才能体会作者为何把焦点放在长程智能体场景下的扩展上。
智能体编码 (Agentic Coding)
指 LLM 通过与外部 shell、文件系统、测试套件等环境多轮交互来完成真实软件工程任务(如修 bug、加 feature) 的范式。智能体在每一步读取观察、执行命令、决定下一步动作,生成的是很长且分支繁多的轨迹,而非一个 bounded completion。
整篇论文讨论的瓶颈——长程、噪声大、难以比较的 rollout 轨迹——正是 agentic coding 区别于单轮代码补全的核心特征,理解这一点是看懂方法动机的前提。
LLM-as-a-Judge
把一个 LLM 当作裁判,在多个候选答案之间做比较或打分。其有效性依赖于候选的表示长度(可放入上下文)以及裁判本身的判断能力。
RTV 的核心操作就是用 LLM 在小群组的 rollout 摘要之间投票,因此 LLM-as-a-Judge 的能力上限会直接影响 RTV 的上限,论文 Table 6 也专门分析了这一点。
Parallel-Distill-Refine (PDR)
Madaan 等人(2025)提出的顺序精化方法:先并行执行多个 rollout,再把它们的执行结果蒸馏成摘要,然后在新一轮 rollout 中把摘要作为上下文,使模型基于前次经验继续改进。
PDR 是本文 agentic PDR 的直接前身,作者将 PDR 从短输出场景适配到长程智能体,需要了解 PDR 的原始步骤才能理解改动点。
Pass@1 与 Pass@N
在代码任务中,pass@1 是一次采样的通过率,pass@N 则是 N 次采样中至少有一次通过的概率。本文以 pass@1 作为聚合后的目标,而 pass@N 决定了 RTV 的理论上限。
论文 Figure 1、Table 3 反复出现这两个指标,并通过 pass@1 与 pass@N 的差值来衡量 RTV 选优的提升空间,理解二者关系是读懂结果图的关键。
研究动机
现有测试时计算扩展方法在短输出、单轮的推理任务(数学题、单轮代码补全)上效果显著,但在长程智能体编码场景下却难以直接迁移。其根本原因是每个 rollout 不再是一个可以被直接比较、打分或精炼的短文本,而是一段包含大量动作、观察、错误、局部试错、终端冗余输出的长轨迹——以 Claude-4.5-Opus 在 SWE-Bench Verified 上一次执行平均就要消耗 41.23 步(Table 4)。这类轨迹既长又充满噪声,把整段 rollout 直接送入 LLM-as-a-Judge 或下一轮 rollout 的上下文,会出现截断、混淆、判断失准等问题,导致现有 best-of-N、self-consistency、refine 类方法在长程智能体上的收益迅速饱和甚至失效。
本文的目标是论文的目标是设计一套针对长程智能体编码的测试时计算扩展框架,使得即便基模型不变,通过在推理阶段更聪明地组织和利用多次尝试的轨迹,也能在 SWE-Bench Verified 和 Terminal-Bench v2.0 上获得稳定且显著的 pass@1 提升。具体目标包括:在不加训练、不改变基模型的前提下,使 Claude-4.5-Opus 在 SWE-Bench Verified 上从 70.9% 提升至 77.6%、在 Terminal-Bench v2.0 上从 46.9% 提升至 59.1%,并让该提升在 Gemini-3.1-Pro、Claude-4.5-Sonnet、Gemini-3-Flash、GPT-5-0825 五个前沿模型上具有一致性。
与已有工作不同的是,本文的独特切入角度是:长程智能体测试时扩展的主要瓶颈不在于'采样更多次'或'调用更强的 judge',而在于'如何表征 (represent) 之前的尝试'。作者主张把每条 rollout 先压缩成结构化摘要(preserving hypotheses, progress, failure modes, discarding trace details),让摘要同时充当并行聚合和顺序精化的统一接口。围绕这一表征中心,论文进一步提出两件新工具:并行侧用递归锦标赛投票 RTV(以 G=2 的两两比较和 V=8 次投票聚合选出最优)替代单次大群体比较;顺序侧把 PDR 适配为 agentic 版本,并用 RTV 选出的 K=4 条摘要来构造下一轮的精化上下文。这种'表征 + 递归选择 + 多摘要精化'的组合,是与已有工作最大的区别。
核心方法
方法整体思路是:把 agentic rollout 视为不可直接操作的'原始长轨迹',先用一个 LLM 把每条 rollout $R_i$ 蒸馏成结构化摘要 $S_i = \Pi_{LM}[P_{sum}(R_i)]$,让 $S_i$ 包含关键假设、进度、失败模式,丢掉低信号细节。然后用 $S_i$ 同时支撑两个正交的扩展方向:在并行侧,设计 RTV(Recursive Tournament Voting)对 $N$ 份摘要递归地做小群组比较,逐步淘汰,直至剩 1 份;在顺序侧,沿用 PDR 的并行-蒸馏-精化模式,但用 RTV 筛出的 K 份高质量摘要作为下一轮 rollout 的精化上下文 $C_i^{(t+1)} = \{S_j^{(t)} | j \in J_i^{(t+1)}\}$。最终把 RTV 和 PDR 串成一个统一管线:先 N 条并行迭代 0 → 摘要 → RTV 选 K → K 摘要精化 N 条新 rollout 迭代 1 → 最终 RTV 选出 top-1。该设计同时实现 exploitation(用 RTV 收敛到高质量子集)和 exploration(用 K>1 维持多样性)。
与已有方法最本质的区别在于:(1) 一切后续操作的对象不是 rollout 本身,而是其结构化摘要。Figure 4 显示,同样的 LLM-as-a-Judge,基于摘要做选择比基于整段轨迹在 SWE-Bench Verified 上多出约 2-3 个百分点(Claude-4.5-Sonnet 74.5% vs 73.5%、Gemini-3-Flash 74.5% vs 74.0%),Terminal-Bench 上差距更大(2-3pp)。 (2) 并行选择不是一次性把所有候选放进去做 N-路比较,而是递归地做 G=2 的两两比较、每组投票 V=8 次——这种'小步快走 + 多次投票'的策略在 5 个模型上系统性击败 G=4/8/16 的扁平选择(图 5)。 (3) 顺序精化的关键不是'用上一次最好的那一条',而是'用 RTV 筛出来的 K=4 条高质量摘要的并集'——Table 1 表明 select-K 把 Claude-4.5-Sonnet 的迭代 1 平均 pass@1 推到 78.06%,显著高于 random-K(75.06%)和 single-rollout(70.87%)。换言之,本文把'表示、选择、复用'作为长程智能体扩展的三件套,而把已有工作里默认的'采样 + 投票 + 精化'三件套做了本质替换。
方法步骤详情
完整的方法流程分为四步。步骤 1 (Iteration 0):在 $N$ 个独立容器中并行执行 $N$ 条 rollout $P^0 = \{R_1,\dots,R_N\}$,每条 rollout 由一系列 $(A_i, O_i) = (T_i, B_i, O_i)$ 组成,其中 $A_i = \Pi_{LM}[P_{action}(P_{in}; C_{i-1})]$。步骤 2 (Summarization):对每条 rollout 用一个独立的摘要 prompt $P_{sum}$ 生成结构化摘要 $S_i = \Pi_{LM}[P_{sum}(R_i)]$,摘要包含诊断、修改、失败模式、剩余未尝试的方向等。步骤 3 (Select-K via RTV):把 $N$ 份摘要分成 G=2 一组,用比较 prompt $P_{comp}$ 让 LLM 在组内做 V=8 次投票 $g_j^{(r)} = \arg\max_{g\in\{1,2\}} \sum_{v=1}^{V} \mathbb{1}\{\Pi_{LM}[P_{comp}(P_{in}; S_{(j,1)}^{(r)}, S_{(j,2)}^{(r)})] = g\}$,胜出者进入下一轮,直到只剩 K=4 份摘要。步骤 4 (Iteration 1 + Final RTV):用这 K=4 份摘要拼接成精化上下文 $C_i^{(1)} = \{S_j^{(0)} | j \in J_i^{(1)}\}$,然后在 $N$ 个全新容器中执行迭代 1 的 N 条 rollout,首步动作由 $\Pi_{LM}[P_{action}(P_{in}; C_i^{(1)})]$ 产生;最后再跑一次 RTV 直到只剩 1 条,作为最终答案返回。默认超参 $N=16, T=2, K=4, G=2, V=8$。
技术新颖性
技术新颖性体现在三个层面。第一,把'摘要'从一种可读性辅助工具提升为整个测试时扩展框架的统一接口,并通过 Figure 4 提供了'摘要优于原始轨迹'的实证。第二,RTV 自身是新颖的并行选择算子:它放弃了已被广泛使用的单次 N-路 LLM 排序,转而采用锦标赛式的递归投票,在 G=2 设定下达到最稳健的选择信号(Figure 5: V=8 后才出现明显的收益递减),这与 LLM-judge 在长上下文下判断力下降的已知现象一致。第三,本文对 PDR 做了面向 agentic 场景的关键改造:把'用上一次最好的一条作为精化上下文'换成'用 RTV 选出的 K 条高质量摘要作为精化上下文',并把 PDR 原版最后只跑 1 条 rollout 的做法替换为再跑一次 RTV,在 Claude-4.5-Opus/Terminal-Bench 上单这一步就贡献了 52.49% → 59.09% 的额外提升。此外,Table 4 显示精化后平均步数减少约一半(如 Opus 41.23→14.31),这是把'经验'显式注入 prompt 后带来的二次收益——执行更短且更准。
实验结果
核心发现在 Table 3 和 Figure 1 中。在 SWE-Bench Verified 上,五个模型相对单次平均 pass@1 的提升分别为:Claude-4.5-Opus +6.66pp(70.94→77.60)、Gemini-3.1-Pro +4.35pp(72.25→76.60)、Claude-4.5-Sonnet +8.19pp(67.41→75.60)、Gemini-3-Flash +5.21pp(70.79→76.00)、GPT-5-0825 +8.39pp(61.41→69.80);在 Terminal-Bench v2.0 上的提升更大且更一致:Claude-4.5-Opus +12.14pp(46.95→59.09)、Gemini-3.1-Pro +12.28pp(52.49→64.77)、Claude-4.5-Sonnet +16.20pp(40.62→56.82)、Gemini-3-Flash +10.93pp(37.93→48.86)、GPT-5-0825 +7.32pp(31.32→38.64)。从分解看(同一 Table 3),Select-K 步骤平均带来 4-5pp 提升(SWE-Bench)、8-10pp 提升(Terminal-Bench),证明 RTV 在 N=16 群体中已能挑出明显好于均值的子集;而从 Iter 1 平均到 Final RTV 还另有 +1.5-7pp 提升,说明精化后的 rollout 群体仍保留了相当的多样性,值得再做一次锦标赛消歧。Figure 8 的转移矩阵也印证了这一点:对角线之上明显更亮,Claude-4.5-Opus 在 SWE-Bench Verified 上 16/16 全通过的题目数从 209/500 增到 350/500(+141),同时 0/16 全失败的题目数仅从 73 增到 94(+21),净收益明显。Table 5 则进一步揭示了机制:精化上下文中 4/4 全部通过的题目在迭代 1 的 pass@1 接近 99%,而 0/4 全失败的题目 pass@1 接近 0%,说明'高质量经验→高质量精化'是稳定因果链,不是凑出来的均值膨胀。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| SWE-Bench Verified (mini-SWE-agent scaffold) | pass@1 (%) | Claude-4.5-Opus 77.60; Gemini-3.1-Pro 76.60; Claude-4.5-Sonnet 75.60; Gemini-3-Flash 76.00; GPT-5-0825 69.80 | Claude-4.5-Opus 70.94; Gemini-3.1-Pro 72.25; Claude-4.5-Sonnet 67.41; Gemini-3-Flash 70.79; GPT-5-0825 61.41 | +4.35 ~ +8.39pp(平均约 +6.5pp) |
| Terminal-Bench v2.0 (Terminus 1 scaffold) | pass@1 (%) | Claude-4.5-Opus 59.09; Gemini-3.1-Pro 64.77; Claude-4.5-Sonnet 56.82; Gemini-3-Flash 48.86; GPT-5-0825 38.64 | Claude-4.5-Opus 46.95; Gemini-3.1-Pro 52.49; Claude-4.5-Sonnet 40.62; Gemini-3-Flash 37.93; GPT-5-0825 31.32 | +7.32 ~ +16.20pp(平均约 +11.8pp) |
| Average steps per rollout (efficiency, Claude-4.5-Opus) | 平均步数 | SWE-Bench 14.31 步; Terminal-Bench 12.14 步 | SWE-Bench 41.23 步; Terminal-Bench 24.43 步 | 减少约 50-65% |
局限与改进
作者在正文与脚注中承认了两点局限:第一,RTV 的判断准确率因模型而异,Table 6 显示 Gemini-3.1-Pro 作为 judge 的 groupwise selection accuracy 在 SWE-Bench Verified 上仅有 48.3%(iter 0) 和 48.3%(iter 1),并伴随较高的 API 失败率,直接导致它在 SWE-Bench 上最终提升只有 +0.44pp(76.16→76.60),意味着 RTV 的上限与'self-judge'的能力强耦合;第二,摘要质量没有单独的自动指标,作者隐含假设是 LLM 写出的结构化摘要对 LLM 自己来说可读、可比较,但若摘要 prompt 漂移,整条管线会跟着退化。我自己的额外观察有三:(a) 实验只在 N=16、T=2、K=4、G=2、V=8 这一组超参下做大实验,N、T 进一步增大时的收益曲线还未知;(b) 数据规模有限——Terminal-Bench v2.0 只用了 88/89 题,SWE-Bench Verified 是 500 题,部分子组的样本数(例如 Table 5 中 3/4 桶只有 22-39 题)置信区间较宽;(c) 摘要对超长 terminal 输出/二进制/日志的截断可能丢失关键证据,Figure 4 中 Claude-4.5-Sonnet/Terminal-Bench 在第 4 轮用 rollout 比用 summary 还高出 0.5pp,提示对某些任务类型'压缩过头'也可能反向影响判断。
独立分析的弱点
第一个可改进的弱点是 self-judge 的可靠性。从 Table 6 看,Gemini-3.1-Pro 在 SWE-Bench Verified 上的 groupwise accuracy 不足 50%,这是当前管线最大的天花板,具体场景是 judge 必须在没有 ground-truth 的情况下仅凭摘要判断哪份代码 diff 更接近正确解,这对长上下文细节推理能力要求极高。改进方向包括:用更强的外部 judge(如 Claude-Opus 给 Gemini 评分)、用 SFT/RL 直接训练一个专门的'锦标赛裁判',或者给 judge 提供可执行验证步骤(sandboxed test run)而非纯文本摘要。第二个弱点是 RTV 对 group size G=2 的强依赖——Figure 5 显示 G=2 比 G=4/8/16 稳健,但 pairwise 在 N=1024 这种规模下需要 10 轮,延迟和 token 成本都会爆炸,改进方向是用 coarse-to-fine 的混合 G(前几轮用 G=8 砍掉明显劣的,后几轮再 G=2 精挑)。第三个弱点是摘要可能丢信息,Figure 4 中 Sonnet 在 Terminal-Bench 上 Round 4 用 rollout 还略胜 summary 0.5pp 就是证据,改进方向是引入'摘要 + 关键证据片段'的双层表示,只在 judge 请求时按需展开。
未来方向
作者在第 5 节明确提出的方向是:把'复用'的对象从文本摘要升级为持久化的工作区状态(notes、partial patches、derived tests、debugging scripts、可复用 tools)。具体而言,下一代 agent 不再是在全新容器里读 4 段摘要,而是直接继承前次留下的代码片段和测试,这把问题从'复用对经验的描述'转向'复用经验产生的工件',并随之引出'如何表示、选择、精化、维护这些持久化工件,避免被陈旧或低价值信息淹没'这一新的开放问题。基于成果可延伸的方向还包括:(i) 把 N、T 推到 32/64/3,做出'测试时 compute vs. pass@1'的 scaling law;(ii) 把 PDR+RTV 推广到多轮软件工程(PR review、code migration)等比 SWE-Bench 更长的 horizon;(iii) 把 RTV 的 tournament 结构与 BoN/self-consistency 在数学/code 上做统一基准对比;(iv) 用 RL 对 judge 做端到端训练,把 groupwise accuracy 作为 reward;(v) 把摘要生成、RTV、PDR 三段全换成可微模块,联合优化以减少手工 prompt 的脆弱性。
复现评估
复现难度中等偏上。论文披露的核心超参完全公开:N=16, T=2, K=4, G=2, V=8,SWE-Bench Verified 用 mini-SWE-agent scaffold、Terminal-Bench v2.0 用 Terminus 1 scaffold,使用 5 个闭源前沿模型(Claude-4.5-Opus/3.1-Pro/3-Flash/Gemini-3.1-Pro/3-Flash/GPT-5-0825)。每个模型评估的样本量也基本公开(SWE-Bench Verified 全量 500 题,Terminal-Bench v2.0 88/89 题)。算力方面,每条 SWE-Bench 任务在 Claude-4.5-Opus 上平均 41 步,16 条并行 + 16 条精化 = 32 条/题,500 题大约 16k 次智能体执行,折算到 Claude-Opus 级别 API 调用的成本属于 Meta 系研究项目量级,个人研究者难以承担;闭源 judge 的能力方差(如 Gemini-3.1-Pro judge 准确率 48%)也会对结果产生显著干扰,意味着即便脚本完全复现,数字也可能在 ±1-2pp 内浮动。代码与 prompt 是否开源未在正文明示,作者仅提供了'参评论文中的 Appendix G'等线索,落地复现需要等 Meta 官方 release。
论文图表