每步采样 8 个候选命令经验证再执行,终端 agent 成功率从 50% 升至 68%

Mid-Harness: Scaling Actions Between Model and Harness for Terminal Agents

Minki Kang, Ryo Hachiuma, Shaokun Zhang, Subhashree Radhakrishnan, Yonggan Fu, Jindong Jiang, Mingjie Liu, Ehsan Hosseini-Asl, Yi Dong, Yu-Chiang Frank Wang, Byung-Kwan Lee

cs.CL, cs.AI, cs.MA

2026-09-30

NVIDIA 提出 Mid-Harness:终端 agent 每步执行前采样 8 个候选动作并验证挑一,强验证器把 Pass@1 从 50% 提到 68%,蒸馏验证器到 57%,还能与轨迹级 scaling 叠加。

这篇在解决什么

终端 agent(在命令行环境里执行命令干活的 LLM agent)每走一步都是一次随机采样:模型给出一条命令,环境执行它,之后所有决策都落在被这条命令改变过的环境上。装错一个包、改错一个文件,任务可能从这一步起就走不通,即使模型本来采样得出更好的那条。论文把这个问题叫 action reliability(动作可靠性)。

已有的 test-time compute 基本花在轨迹层面:并行跑 T 条完整轨迹再挑一条(Best-of-T),或跑完总结经验再跑一轮(Sequential Refine)。这两条轴都要消耗新的环境运行,而环境能不能快照恢复在真实场景里并没有保证。动作层面的「执行前多采几个候选、挑一个再执行」只需要一个环境实例,但什么时候有效、依赖什么,此前没有系统答案。NVIDIA 和 KAIST 的这篇论文补上了这块。

方法

Mid-Harness 只改 model-call wrapper。原来 harness 每步调一次模型、解析动作、交给环境;现在这一次调用变成对同一段交互历史采样 N 个候选,再由验证器挑一个返回,其余丢弃。生成器和 harness 都不动,不改权重不改 serving。

三种验证机制:

验证器只看任务、历史和候选动作,看不到生成时的推理过程。self-verification 设置下验证器就是生成器本身;再用 GPT-5.6 Sol 的 117k 条 pairwise 回应(来自 244 个困难任务的 732 条轨迹)对同款底座做 LoRA 蒸馏,得到可部署的 distilled verifier,生成器依旧不动。另有一个 decision-only 变体,每次比较只吐一个 A/B token,用两侧 log-prob 软投票,省掉写推理的开销。

结果

主设置:TMAX-9B 生成器,TerminalBench-Lite(98 个任务),每任务跑 3 次取 Pass@1。

配置Pass@1说明
Base agent(N=1)50.00%基准
零样本 listwise,N=4→849.32%→51.02%弱验证下加宽采样几乎无用
零样本 pairwise,N=854.76%零样本机制里最好
蒸馏 pairwise,N=857.14%比零样本 pairwise 高 2.38
GPT-5.6 Sol 验证,N=868.03%机会上限探针

同一生成器、同一候选池,只换验证器就从 50% 到 68%,说明候选池里本来就有好动作;而弱验证下宽度从 4 加到 8 只换回 1.7 个点,瓶颈在验证不在采样。蒸馏把与 teacher 的 pairwise 一致率从 59.01% 拉到 74.58%,但离上限还差约 11 个点。

成本方面,N=8 时零样本 pairwise 每条轨迹约 125.7k 验证器输出 token,listwise 只要 0.6k;decision-only 在 9B 上同时提 Pass@1 并省 20.9%-24.1% 的 token,在 4B/27B 上省钱但掉点。

与轨迹级 scaling 组合:Best-of-3 单独 55.10%,配上蒸馏 Mid-Harness 到 66.33%,环境运行次数不变;配一轮 SR 到 60.20%。两者都超过 Best-of-7 的 59.18% 且 token 成本更低,SR 组合甚至不到其一半。单独用蒸馏 Mid-Harness,以约三分之一的成本追平 Best-of-5(两者均 57.14%)。

迁移面覆盖 4B(38.78%→43.88%)、27B(71.09%→76.19%)、Nemotron3.5 Lightning、Nemotron3 Ultra 550B、Qwen3.5-9B,以及 Terminal-Bench 2.1、SWE-bench Verified Mini、FeatureBench-Mini 和 Terminus-2 harness。七组设置里零样本 Mid-Harness 的 Pass@3 全部改善,Pass@1 不降或升。

为什么重要

对做 agent 推理服务的人,结论很实际:动作级「采样+验证」是一条独立于轨迹级 scaling 的 test-time compute 轴,可以叠加,而且在环境无法廉价快照重放的场景里,它是少数不需要多次完整环境运行的选项。实现是一个 wrapper,工程侵入性低。

第二个教训更普适:采样宽度不是收益来源,验证质量才是。reasoning 领域「repeated sampling 要配 verifier 才值钱」的结论在 agent 场景重新成立。已经在用 Best-of-T 的话,先抬单条轨迹质量比单纯加 T 划算。

也要说清楚:采样-验证框架不是首创,LLM-as-a-Verifier、动作排序 critic 都是近亲。这篇的价值在系统对照和机制分析,属于渐进式贡献。

局限与存疑

作者自述:蒸馏后仍距 frontier 验证器约 11 个点,如何闭合没有答案;没有 action 级 gold label,验证正确性和候选覆盖率只能靠轨迹成功率间接测;每步全量采样验证开销大,自适应分配没做;也没有和「单候选加长思考」这种花算力的方式对照。

读下来还有几处要留意。68.03% 是拿 GPT-5.6 Sol 当验证器的探针数字,可部署的蒸馏版是 57.14%,增益缩到 7 个点。主结果集中在 TMAX-9B 加 TerminalBench-Lite 一个组合上;Terminal-Bench 2.1 上蒸馏没超过零样本,FeatureBench-Mini 上蒸馏 Pass@1 涨但 Pass@3 反而低于零样本,迁移并不总是单调。TerminalBench-Lite 只有 98 个任务,一个点的 Pass@1 约等于一个任务,机制间 2-4 个点的差距要谨慎解读(置信区间放在附录)。decision-only 在 9B 上白赚、在 4B/27B 上有代价,这个不一致论文只报了现象。

术语

原文与代码

社区讨论

相关论文

全部论文解读