HarnessPro:性能成本兼顾的harness自改进新方法

一种名为HarnessPro的新方法被开发出来,用于优化编程智能体的harness层。该方法通过分析过往执行轨迹,同时提升任务成功率并降低运营成本,还将传统基于大语言模型的评估方式替换为生成测试用例,最终生成三种适配不同需求的harness版本。当搭配组合模型使用时,HarnessPro的高性能版本相较于基线系统,平均成功率高出2.0个百分点,成本降低了26.1%。
研究背景:忽略效率的隐性代价
编程智能体的harness层决定了智能体能访问的信息、可调用的工具以及动作的执行方式,直接影响性能和资源消耗。现有的harness递归自改进方法往往只关注提升成功率,导致成本意外上升。例如,某早期系统在某编程基准上将成功率从59%提升至80%,但单任务平均成本却上涨了42.6%(从1.88美元增至2.68美元)。这表明,仅关注性能而忽略成本会导致部署不可持续,即便性能提升显著。
为解决这一问题,研究人员将该问题转化为双目标优化任务:创建在最大化成功率的同时最小化单任务成本的harness,且要求成功率不低于初始版本。成本按token使用量计算,区分未缓存输入、缓存输入和输出三类价格;延迟仅作为辅助指标,因为它受服务器负载和网络波动等外部因素影响。该方法面临两大挑战:harness组件的巨大离散空间无法用基于梯度的方法优化,且性能提升往往伴随成本增加,过度削减成本又可能降低成功率。关键在于区分必要计算和可避免的开销,这需要分析过往执行轨迹。
方法学:双目标导向的迭代优化
HarnessPro方法在迭代周期内运作,每个周期包含三个主要步骤:轨迹诊断、计划生成、评估与选择。每个周期开始时,会从训练任务中选出10个多样化的任务,兼顾难度和失败模式的多样性。对于每个候选harness,在每个训练任务上独立运行3次,轨迹分析工具会识别具体问题、它们对成功率和成本的影响,以及轨迹文件中的证据位置。分析三次运行结果可避免将偶然失败误认为harness的缺陷。
针对每个候选,会生成三份基于不同优先级的方案:一份专注于降本,一份兼顾成本与性能,一份专注于性能同时消除可避免的开销。规划器还会参考其他候选与自身的代码差异及诊断结果,判断哪些机制有效。harness编辑器在独立工作区实现每份方案,并通过版本控制工具追溯和回滚。所有方案必须使用外部固定评估器测量成本和性能,而非依赖预测结果,且需对未见任务具备泛化能力。
该方法未采用基于大语言模型的评估方式(此前发现这种方式过于乐观,常批准有缺陷的实现),而是引入测试生成智能体。对于每道训练和验证任务,该智能体仅读取任务描述和初始harness的轨迹,生成10个可执行测试用例,在初始harness上运行并修正自身缺陷。测试用例生成后在整个进化过程中保持不变,确保所有候选在同一标准下比较。
每个周期结束后,候选在验证集上运行一次,采用固定测试计算成功率和成本。筛选分两步:首先淘汰验证成功率低于初始harness的候选,再淘汰被帕累托支配的候选(即存在另一候选在两项指标上均不差且至少一项更优)。剩余候选将成功率和成本归一化到0-1范围,计算与“最高成功率、最低成本”理想点的加权平方距离,权重在省钱(1,2)、均衡(1,1)、求稳(2,1)三档分别设置。
实验结果:性能与成本的权衡
该方法在三个覆盖不同编程任务类型的基准上进行了测试。测试集分别包含59、100、100个任务,训练集各10个任务,在两个基准上运行3轮,第三个基准运行4轮。基线包括标准模型、现有harness方法,以及两个用于拆分因素的基线变体。
指标口径在不同基准间略有差异,HarnessPro结果为多次运行的均值,基线为单次结果。HarnessPro的高性能版本在所有基准上均表现出色:在第一个基准上,成功率达80.8%(±1.0),比基线高4.5个百分点,单任务成本从1.09美元降至0.72美元,降幅33.9%;在第三个基准上,成功率69.6%,比基线高0.8个百分点,成本降低17.8%。三个基准平均来看,高性能版本比基线成功率高2.0个百分点,成本低26.1%。
均衡档和省钱档主要在成本方面体现价值。在某基准上,均衡档成功率79.0%,比基线低1.0个百分点,但成本从2.68美元降至1.26美元,降幅53.0%。省钱档在三个基准上均优于标准模型,成本降低17.7%至57.4%,但存在边界:在某基准上,省钱档平均耗时985秒,高于标准模型的669秒;均衡档67.9%的成功率也低于部分基线。省钱并非总是同时省时间,三档也并非在每个基准上都优于所有基线。
多轮迭代对提升结果至关重要。在某基准上,高性能版本的测试成功率从第一轮的74.6%升至第三轮的80.8%,单任务成本从0.91美元降至0.72美元。消融测试显示,移除测试生成组件影响最大:三档在两个基准上的成功率下降3.4至10.0个百分点,其中某基准均衡档从79.0%降至69.0%。移除规划器在多数设置下也会导致成功率下降、成本上升,而该方法的有效性来自多种机制的配合,而非单一改变。
进化出的harness采用针对性策略,而非简单压缩上下文或降低推理强度。例如,某基准的均衡档会将任务分为五种执行档位,对应不同推理强度和工具调用阈值,运行时按阶段介入提醒避免重复检查、截断工具输出等。这些机制在不同基准间差异较大,跨基准迁移仍需改进,且未追踪进化环节本身的成本,仅统计部署后的单任务成本。
结论:对开发者的实用启示
HarnessPro将轨迹诊断、计划生成、固定测试评估和帕累托选择串联成一条链:先识别失败和浪费,再分别朝省钱、均衡、求稳三个方向修改harness,用不变的生成测试衡量,保留不被支配的候选进入下一轮。该方法真正优化的是harness在成功率与成本平面上的前沿位置,而非仅聚焦于成功率。
对搭建编程智能体或维护内部harness的开发者而言,可借鉴的出发点包括:诊断轨迹时将“做对但成本高”视为问题,按任务描述分档分配推理强度和工具预算,将预算提醒放在工具返回结果中以保留缓存;评估时为每类任务准备固定可执行测试,不只依赖大语言模型评估,对新旧harness多次运行并报告方差。将“同等成功率下更便宜”作为可测量、可交付的产物,自改进系统就能拥有比“最高分”更贴近部署的目标。

