← 返回 2026-07-17

重新审视智能体测试框架演化的评估方法 Rethinking the Evaluation of Harness Evolution for Agents

Yike Wang, Huaisheng Zhu, Zhengyu Hu, Yige Yuan, Zhengyu Chen, Shakti Senthil, Hannaneh Hajishirzi, Yulia Tsvetkov, Pradeep Dasigi, Teng Xiao 📅 2026-07-14 👍 9 2026-07-22 18:54
LLM智能体 Terminal-Bench harness演化 测试时扩展 评估方法

重评harness演化,发现它不优于测试时扩展且泛化有限

前置知识

Harness(测试框架)

Harness 指 LLM 智能体用来与复杂环境交互的外部支架,包括系统提示词、工具集、记忆模块、验证例程和控制逻辑等。它定义了模型观察任务和采取行动的方式。已有研究(如 Trivedy 2026)表明,即便固定底层模型,harness 工程也能显著影响智能体性能,但传统上它主要靠人工设计——开发者检查轨迹、诊断失败、修改框架。

本文的核心对象就是 harness 的自动优化。理解 harness 包含哪些组件(提示、工具、中间件、记忆),才能理解作者比较的四种方法(并行采样、串行精炼、harness 演化、harness 缩放)在「更新什么」上的本质区别。

Test-time Scaling(测试时扩展)

指在不修改模型权重的前提下,通过在推理阶段分配更多计算来提升输出质量的范式。本文分为两类:并行采样(Wang 2022, Brown 2024)独立生成多个候选并通过投票或验证器重排聚合;串行精炼(Madaan 2023)迭代地生成答案,每次基于前一次结果反思和修订。本文核心论点是这些方法应作为 harness 演化的强基线。

本文的整个论证框架建立在「harness 演化本质上是一种测试时搜索」这一观察之上。如果 harness 演化的收益仅来自额外推理预算,那它就该在统一预算下与简单的测试时扩展方法对比。

Pass@k

代码与智能体任务中的常用指标。pass@1 表示单次采样通过任务的概率;pass@k 表示 k 次采样中至少有一次通过的概率。当存在单元测试作为 oracle 时,pass@k 度量了模型能力的「上限」(从 k 个候选中挑出正确的),而 pass@1 反映了 harness 设计本身能否让模型一次性解决问题。

作者在 pass@1 和 pass@5 上分别报告结果,论证关键一点:如果 harness 演化真改善 harness,pass@1 应提升;若只 pass@5 提升,说明收益来自多次尝试而非 harness 改进。这是本文反驳 harness 演化的关键证据。

Terminal-Bench 2.1

对 Terminal-Bench 2.0(Merrill 2026)的修订版本,修复了 89 个任务中的 28 个,纠正了外部依赖漂移、资源预算不匹配、指令与测试不一致等问题,保持 89 个终端任务规模,用于评估代码智能体。本文沿此基准评测,使用 Claude Opus 4.6、GPT-5.4、GPT-5.4 mini 三个前沿模型,最大生成长度 128k tokens,高 reasoning effort。

本文全部实验基于此基准,理解它的设计(终端任务、单元测试可获取性)对解读为何 harness 演化在此受限(模型已逼近天花板、任务对 harness 不敏感)至关重要。

研究动机

近期一系列工作(Meta-Harness [Lee 2026]、AHE [Lin 2026]、AEVO [Zhang 2026])提出自动 harness 演化方法,用搜索循环优化智能体外部支架:分析先前轨迹与失败、提出修改、在基准任务上评估、迭代重复。但这些工作普遍存在两个评估缺陷。其一,harness 演化本质是一个使用任务反馈的迭代搜索过程,但论文最终在同一公开基准上报告性能,却没有与简单测试时扩展基线(在可比的反馈和推理预算下)作对比。其二,搜索任务集与最终评估任务集重叠,导致观测到的收益可能是对特定任务集的过拟合,而非可迁移的 harness 设计改进。例如在 Terminal-Bench 2.1 上,harness 演化在 GPT-5.4 上甚至把分数从直接采样的 75.3 拉低到 69.7,说明现有评估协议无法回答根本问题:harness 演化的收益究竟来自可泛化的 harness 改进,还是仅来自重复采样?

本文的目标是本文目标是在统一预算协议下,公平地比较 harness 演化与简单的测试时扩展基线,明确每个方法接收何种反馈、如何分配推理计算、修改的是任务轨迹还是 harness 本身。具体目标包括:(1) 在无单元测试的设置下,检验 harness 演化能否利用自生成的轨迹反馈击败并行采样与串行精炼;(2) 在有单元测试的设置下,分别报告 pass@1 和 pass@5,区分「真正改善 harness 设计」与「通过多次采样获益」;(3) 通过 disjoint(不相交)的训练/验证/测试划分,评估演化 harness 能否迁移到未见任务,验证是否存在过拟合。最终目标是为 harness 演化的评估建立更严格的协议,让社区用更公平的标准判断这一方向的真实价值。

与已有工作不同的是,此前工作的评估存在三重盲区。第一,把 harness 演化的搜索预算和测试时扩展的搜索预算视为不可比,未在统一 K 值下对比——本文用 K=5 的统一预算填补此空白。第二,把搜索时使用的单元测试反馈与最终评估的 oracle 选择混为一谈——本文分别报告 pass@1(反映 harness 真实改进)和 pass@5(反映多采样上限)。第三,从未分离搜索集与评估集——本文首次将 89 个任务划分为 45 训练 + 10 验证 + 34 测试,检验演化 harness 的泛化性。此外作者还引入了第四种方法「Harness Scaling」(实例引导的 harness 适配,作为 dataset-guided harness evolution 的对照),填补了「单任务 harness 自适应」的方法空白。这套对照设计把「harness 改进」从「测试时发现」中剥离出来。

核心方法

方法层面的核心是把所有方法统一为一个共同框架:给定固定策略 $\pi_\theta$、任务分布 $X$、计算预算 $K$,每个方法由「更新什么」和「观察什么反馈」两个维度刻画。所有方法最终输出每个任务 $x$ 的最终轨迹 $\hat{y}$。作者定义智能体在 harness $h$ 下执行任务 $x$ 得到轨迹 $y \sim \pi_\theta(\cdot | x; h)$,并在有单元测试 $g$ 时定义结果函数 $R(y, g) \in \{0, 1\}$。还引入了由同一底层模型实现的总结映射 $\Phi$,将经验库压缩为下游可消费的形式(如常见失败、冗余尝试、成本等)。在统一记号下,四种方法对应四种预算分配:并行采样把钱花在独立轨迹(宽);串行精炼花在轨迹修订(深);harness 演化花在跨任务的共享 harness 更新;harness 缩放花在任务特定的 harness 更新。所有方法在 K=5 预算、m=1(每任务每次一条 rollout)下执行,保证可比性。

核心创新点是把 harness 演化重新定位为一种特殊的测试时搜索,从而把它纳入与并行采样、串行精炼同一比较框架。这是与现有工作的本质区别:以往研究把 harness 演化视为「能产生可复用产物的方法」单独报告,本文则论证它的搜索过程消耗的反馈和推理预算与测试时扩展是同质的,因此必须在统一预算下比较。更具体地,作者引入关键诊断维度——「修改轨迹」vs「修改 harness」、「跨任务共享」vs「任务特定」——把四种方法排列在 2×2 概念空间中。此外 pass@1 与 pass@5 的对比诊断直接回答:如果 harness 真改善,pass@1 应提升;只 pass@5 提升说明收益是多次采样。这套诊断工具是论文方法论上的真正贡献,使后续 harness 演化工作无法再用「在同一基准上分数提高」来宣称成功。

方法步骤详情

四步流程。**记号**:策略 $\pi_\theta$,轨迹 $y \sim \pi_\theta(\cdot|x;h)$,结果 $R(y,g)\in\{0,1\}$,总结映射 $\Phi$,预算 $K$。**四种方法**:(a) 并行采样抽 $K$ 条 $y_k$,无测试用 self-judge $J$ 选 $\hat{y}=\arg\max_k J(y_k)$,有测试返回 $R(y_k,g)=1$ 的轨迹;(b) 串行精炼 $y_k\sim\pi_\theta(\cdot|x,\Phi(y_{k-1});h)$;(c) Harness 演化抽批次 $\{x^{(i)}\}$,每轮采 $m$ 条 rollout,meta agent 输出 $h_k=M(\Phi(C_{k-1}))$,选 $\hat{h}=\arg\max_k\bar{R}(h_k)$ 后 $\hat{y}\sim\pi_\theta(\cdot|x;\hat{h})$,用 AHE 关 explore agent 实现;(d) Harness Scaling 是实例级 $h_k=M(x,\Phi(h_{k-1},y_{k-1}))$。**设置**:Terminal-Bench 2.1 + 三模型,128k tokens,K=5,m=1,2 次运行取均。**三种评估**:无单元测试、有单元测试(pass@1/pass@5)、disjoint(45/10/34)。

技术新颖性

技术新颖性体现在三方面。第一,**统一预算框架**:把 harness 演化纳入与测试时扩展同一形式化,明确了「反馈类型 + 预算分配 + 修改对象」三个比较维度,这在已有 harness 演化文献中从未系统做过。第二,**pass@1 vs pass@5 的诊断价值**:作者敏锐指出,若 harness 演化收益源于 harness 设计改进,pass@1 应提升;若只在 pass@5 上提升,则说明是多次采样而非 harness 改进——这一诊断把「真正改进」从「采样上限」中分离出来,是方法论上的关键贡献。第三,**Harness Scaling 作为对照**:作者引入 dataset-guided(演化)与 instance-guided(缩放)的二元对照,把「跨任务学习可复用 harness」与「单任务自适应 harness」分离开。第四,**泛化性测试协议**:首次用 disjoint 划分检验演化 harness 的迁移能力,把过拟合问题摆上台面。这些诊断工具使本文成为后续 harness 演化工作的评估范式。

Test-time scaling and automatic harness evolution algorithms
Figure 2: Test-time scaling and automatic harness evolution algorithms

实验结果

三实验一致:harness 演化未稳定胜过测试时扩展且泛化差。**Table 1(无单元测试)**:直接采样 68.2;并行采样 72.3(三模型均升)最强;串行精炼 69.3;Harness Evolution 仅 67.4 **低于直接采样**,GPT-5.4 从 75.3 跌至 69.7;Harness Scaling 71.8。**Table 2(有单元测试)**:Harness Evolution pass@1 仅 75.8(几乎不优于直接采样 72.9),并行采样 86.0;pass@5 串行精炼 91.8 最强,Harness Evolution 86.2、Harness Scaling 89.3。关键诊断:Harness Evolution 收益主要在 pass@5,说明只是「多采样」而非「更好 harness」。**Table 3(泛化)**:45/10/34 划分下,Harness Evolution 测试集 pass@1 仅 +0.6(Claude +1.2,GPT-5.4 +0.0),与训练集显著提升形成反差,证明严重过拟合。讨论补充:meta agent 编辑合理(prompt/middleware/tool 各层),但多为「记忆修复」非「策略提炼」,prompt 膨胀还抵消部分收益。

Experimental results on Terminal-Bench 2.1 when unit test cases are unavailable
Table 1: Experimental results on Terminal-Bench 2.1 when unit test cases are unavailable
Experimental results on Terminal-Bench 2.1 when unit test cases are available
Table 2: Experimental results on Terminal-Bench 2.1 when unit test cases are available
Experimental results on Terminal-Bench 2.1 with disjoint search and evaluation tasks
Table 3: Experimental results on Terminal-Bench 2.1 with disjoint search and evaluation tasks
Average pass@1 without access to unit test feedback
Figure 1: Average pass@1 without access to unit test feedback
查看结构化数据
任务指标本文基线提升
Terminal-Bench 2.1(无单元测试设置,pass@1) pass@1(%) Harness Evolution 平均 67.4 / Harness Scaling 71.8 并行采样 72.3 / 串行精炼 69.3 / 直接采样 68.2 Harness Evolution 反而比直接采样低 0.8 分,比并行采样低 4.9 分;Harness Scaling 略低于并行采样
Terminal-Bench 2.1(有单元测试设置,pass@1) pass@1(%) Harness Evolution 75.8 / Harness Scaling 82.6 并行采样 86.0 / 串行精炼 84.3 / 直接采样 72.9 Harness Evolution 仅比直接采样 +2.9,比并行采样低 10.2 分;Harness Scaling 落后并行采样 3.4 分
Terminal-Bench 2.1(有单元测试设置,pass@5) pass@5(%) Harness Evolution 86.2 / Harness Scaling 89.3 并行采样 86.0 / 串行精炼 91.8(最优) Harness Evolution 与并行采样持平但落后串行精炼 5.6 分;Harness Scaling 落后串行精炼 2.5 分
Terminal-Bench 2.1(disjoint 训练/验证/测试划分,pass@1) 测试集 pass@1(%) Harness Evolution 测试集平均 68.3(+0.6) 初始 harness 直接采样 67.7 Claude Opus 4.6 +1.2(63.3→64.5),GPT-5.4 +0.0(72.1→72.1),平均仅 +0.6,远低于训练集上的提升,显示严重过拟合

局限与改进

作者明确承认的局限:(1) 仅 Terminal-Bench 2.1 单一基准,作者自己指出它对 harness 不敏感(shell 工具加基础 prompt 即可解大部分任务),且当前模型已逼近天花板,剩余失败可能源于模型推理而非 harness 缺陷;(2) 只用 AHE 一种算法(且关闭 explore agent),未覆盖 Meta-Harness 和 AEVO,代表性不足;(3) 仅 K=5 预算,未做 scaling 曲线。我额外观察:(a) 仅 2 次独立运行,未报置信区间或显著性,方差大;(b) Claude Opus 4.6、GPT-5.4 等模型行为可能与未来一代不同;(c) self-judge $J$ 与总结映射 $\Phi$ 的实现细节披露不足;(d) 泛化划分仅 45/34 任务,统计功效有限;(e) 未分析 Harness Scaling 何时优于并行采样的具体条件,留下「实例级自适应」何时有用的盲区。

独立分析的弱点

**弱点 1:基准覆盖太窄。** 仅 Terminal-Bench 2.1,作者自认对 harness 不敏感。改进:在 SWE-bench、WebArena、GAIA 等需复杂工具/工作流的基准上复测,挑「任务足够难 + 性能依赖 harness」的基准。**弱点 2:算法代表性不足。** 只测 AHE(且禁用 explore agent),对演化家族不公。改进:纳入 Meta-Harness(搜 harness 代码)、AEVO(编辑过程/上下文),并启用 AHE 完整版作对比。**弱点 3:预算单一。** K=5 未做 scaling。改进:在 K=1,2,4,8,16 上画 scaling 图,看演化是否在大预算反超。**弱点 4:统计功效弱。** 仅 2 次种子无显著性检验。改进:bootstrap 或 paired test 报 $p$ 值,至少 5 次种子。**弱点 5:Harness Scaling 诊断不足。** 未分析它何时优于/劣于并行采样。改进:按任务难度/类型分层分析。

未来方向

作者明确建议:在「任务足够难 + 性能高度依赖 harness」的基准上研究 harness 演化,例如需要专门工具、技能或复杂工作流的场景。可延伸方向:(1) **预算 scaling 律**——把 K 当变量,研究演化是否在大预算下反超;(2) **混合方法**——结合并行采样(宽探索)与 harness 演化(结构性改进);(3) **可迁移 harness 子件**——把 harness 拆为 prompt/tool/middleware/memory,分别评估哪些子件能迁移,设计「可迁移子件 + 任务特定子件」混合架构;(4) **更可靠的外部信号**——无单元测试时用 LLM judge、形式化验证器等替代自生成反馈,缓解噪声问题;(5) **避免上下文膨胀**——分层 memory、检索式 harness 元件,避免 prompt 无限膨胀;(6) **失败可修复性分类器**——预测某失败是 harness 可修复还是模型推理限制,决定是否值得演化。

复现评估

复现性中等偏上。**开源**:代码仓库 https://github.com/rethinking-harness-evolution 已公开。**基准与模型**:Terminal-Bench 2.1 为公开基准(89 任务),三模型(Claude Opus 4.6、GPT-5.4、GPT-5.4 mini)均为公开 API,128k tokens、高 reasoning effort 已明示。**超参数**:K=5、m=1、初始 harness 用 AHE 的 $h_1$(四方法共用)、AHE 关 explore agent 等关键设置已披露,Appendix A 给出 AHE 实现细节。**算力**:3 模型 × 89 任务 × 4 方法 × K=5 × 2 次 + 泛化划分,属业界常规规模。**主要障碍**:(1) self-judge $J$ 与总结映射 $\Phi$ 的 prompt 正文未披露;(2) 仅 2 次种子方差大,难精确复现小数;(3) 前沿模型版本随时间更新,长期复现需固定 snapshot。核心结论(演化不优于测试时扩展、泛化差)应在合理投入下被独立验证。