"换个 Harness,Agent 立刻变强"是接入圈流传最广的传说之一。一份受控对照实测把这个传说按在了数据上:平均成绩几乎不动,单任务成本反而可能上涨两到六成。
一、一个把假设量化的受控实验
我注意到一份相当扎实的方法论示范:在一套私有、防污染的任务套件上(256 个仓库任务与模型截止日期之后的竞赛题),把同一个模型分别跑在厂商原生 Harness 与第三方中性 Harness 上做配对对照。计划 800 次运行,792 次由隔离的评分程序完成判分。
结果分两层。平均层:两组成对对照的差值分别为 -1.25 个百分点(48.8% 对 50.0%,置信区间 [-10.0, +7.5])与 +1.25 个百分点(55.6% 对 54.4%,置信区间 [-4.4, +6.9]),置信区间都跨过零——"原生 Harness 平均更好"这个默认假设没有被支持。分层层:仓库任务上原生落后 9.0 个百分点,竞赛任务上原生领先 23.7 个百分点,两个符号相反的分层合并出一条看似持平的平均线。
成本层更扎心:按挂牌价对原始用量重新计价,中性 Harness 每解一题的成本是原生配置的 1.3 到 1.6 倍,另一组是 1.2 倍。换 Harness 不是免费实验,是先涨成本、再谈成绩的实验。
二、Harness 到底承担什么
编码 Agent 系统等于模型加 Harness:工具集、提示词模板、控制流、重试与上下文管理,共同把一个对话模型变成自主软件工程师。拆开看,Harness 至少管五件事:
| 组件 | 职责 | 换掉的影响面 |
|---|---|---|
| 工具集与 schema | 定义 Agent 能做什么动作 | 成功率与失败模式直接变化 |
| 提示词与系统框架 | 决定模型看到什么任务描述 | 行为风格与指令遵从漂移 |
| 控制流 | 步骤编排、重试、终止条件 | Token 消耗与延迟结构改变 |
| 上下文管理 | 历史、压缩、窗口策略 | 长任务稳定性差异最大的地方 |
| 权限与沙箱边界 | 能访问什么、能执行什么 | 安全态势与审批链路 |
这五件事里没有一件是"模型能力",但每一件都会改变模型能力的兑现程度。这就是 Harness 选型复杂性的根源:它不是换一个模型,而是换一整套兑现环境。
三、原理速览:选型实验应该长什么样
那次受控对照的实验设计,比结论本身更值得抄。把设计抽象成请求流与实验流两张图:
三个设计要点。第一,任务集必须防污染:模型训练数据里见过的题目会把对照变成默写比赛,截止日期之后的题目与私有仓库任务是底线。第二,评分必须与执行隔离:让执行方自己判分,等于让考生改自己的卷子。第三,成本口径必须事先定义:按 raw usage 乘挂牌价计,每解一题摊一次,而不是只看单次请求价格。
四、"平均持平"的正确打开方式
平均不显著不等于换了白换,它意味着答案在分层里。仓库任务与竞赛任务的相反符号(-9.0 对 +23.7 个百分点)给出一个务实的路由假设:贴近真实仓库、长周期、多文件的任务,可能更适合重上下文管理的 Harness;短周期、结构化的竞赛型任务,原生的深度推理编排可能占优。
但那份实验自己也写得诚实:这个分层是看过数据之后才选定的,需要专门设计的重复实验确认。接入方应该学会同样的克制——分层路由的依据要用预注册的分层标准(任务时长、文件数、是否多仓库)提前定义,而不是事后挑一个好看的切法。事后切出来的分层,十次里有几次是过拟合。
五、接入教程:Harness 影子对照器
下面这段 Python 示例以 4sapi 提供的 OpenAI 兼容接口为例,实现最小化的 Harness 影子对照:同一任务在两套编排参数下各跑一次,记录成绩与用量,输出分层的对照报告。4sapi 统一管理密钥与端点,两套编排只差本地配置。
两个实现要点。第一,分层字段 kind 在跑实验之前写死进任务定义,报告只按预注册的分层出数,杜绝事后挑分层。第二,cost_ratio 与 score_gap_pp 并排出——只看成绩不看成本,正是那份实测里"平均持平、成本上涨"被忽略的原因。样本量按每层至少三十个任务起算,少于这个量级的置信区间宽得没有决策价值。
六、成本对比:选型决策的完整账
延续那份实测的成本结构,把选型决策的账算全(估算口径,实际以用量账单为准):
| 决策 | 成绩影响 | 每解一题成本 | 隐性成本 |
|---|---|---|---|
| 维持原生 Harness | 基线 | 1.0× | 供应商锁定,迁移能力退化 |
| 换中性 Harness | 平均持平 | 1.2~1.6× | 换来迁移自由与工具自主权 |
| 按任务分层双 Harness | 分层各自取优 | 约 1.1×(混合后) | 两套编排的维护成本 |
第二行的成本上涨不是浪费,买的是两样东西:供应商变更时的迁移能力,以及工具链的自主可控。第三行的混合路由是多数团队的终态,但前提是分层标准经过预注册实验验证,否则维护两套编排只是把不确定性复杂化。
七、被取消的任务也是信号
那份实测里还有个容易被略过的数字:81 次因时限被取消的运行中,22 次其实已经产出了能通过测试的补丁。这说明一部分"失败"不是能力不足,而是时间预算与终止条件的错配——Harness 的控制流在任务完成前就把它掐掉了。
接入方的对照实验里要专门记录这类样本:取消时是否已有可通过的产出、终止条件是步数还是时钟、超时前的最后一步在做什么。把终止参数从"固定步数"改成"产出验证 + 步数上限"双条件,一部分成本与失败可以同时消失。
八、成本与风险提示
第一条风险是用量核算的黑洞。那份实测有一组运行在供应商侧没有留下用量记录,导致按账单重定价的结论在两个倍数之间摇摆。接入侧的对策是把请求级 usage 逐条落库、与账单对账,不能默认账单永远可解释。
第二条风险是污染。任务集一旦进过公开数据集或被缓存,对照就作废。私有任务与截止后题目要定期轮换,防污染是评测资产的一部分。
第三条风险是过度工程。Harness 对照的结论有半衰期:模型版本一动,编排层的相对优势就可能翻转。与其追求"一次选对",不如把影子对照做成季度例行动作,选型始终跟着最新数据走。
红线不变:对照实验用正当接入的通道与配额跑,不做并发轰炸,不绕过任何上游限制;私有仓库任务不出域,防污染的前提是数据本身合规。
九、Harness 选型自查清单
- 任务集防污染:私有任务加截止后题目,定期轮换,评分程序与执行隔离。
- 分层预注册:任务分层标准在实验前写死,报告按预注册口径出数。
- 成本口径统一:raw usage 乘挂牌价,每解一题摊销,与账单对账核验。
- 样本量达标:每层至少三十任务,置信区间能支撑决策。
- 终止条件双保险:产出验证加步数上限,取消运行单独归因。
- 季度例行重测:模型版本更新后自动触发影子对照,选型不靠记忆。
十、总结
这一期想沉淀的结论是:Harness 选型是一个成本问题,不是一个信仰问题。受控对照给出的三层数据——平均持平、分层相反、成本上浮——说明"原生最好"的默认假设值得用自己任务上的影子实验重新审一遍,也说明换编排层的真实代价藏在每解一题的成本里而非平均分里。预注册分层、统一成本口径、把终止条件调成产出导向,是把这类实验做对的三块基石。我在 4sapi 看到的稳定团队,都是把 Harness 当成需要持续验证的架构资产,而不是一次性的选型决定。对分层标准或影子实验的规模有不同做法,欢迎在评论区聊聊。




