Harness A/B
同一个底层模型,放进两种编码 Agent 外壳。三轮任务、冻结评分器、隐藏测试;比较功能正确性、完成时间和工具调用,并把不成立的比较写清楚。
控制变量
两侧跑在同一台 Windows 主机、同一 Python 3.12 环境中,解析出的底层模型相同(gpt-6-luna),推理强度同为 high。因此轮内两侧的差异只能归因于 Harness 外壳、环境与单次随机性,不能归因于模型能力。
评分器、隐藏测试与 reference 在实验期间冻结;分析者不参与任何一轮的实现,也不修改评分规则。这个约束比多跑几轮更能决定结论是否可信。
三轮任务
| 轮次 | 任务 | 工作区 | 验收 |
|---|---|---|---|
| HB-01 | 从零开发单页前端看板(localStorage、导出、移动端) | A 1 文件 21 KB;B 4 文件 | Playwright 真实浏览器,10 项 × 10 分 |
| HB-02 | 修复 Python 包中 3 个不同根因的缺陷 | 各 12 文件(11 seed + 1 新增测试) | 隐藏单测 10 项 × 10 分 |
| HB-03 | 工单批量更新:状态机、乐观锁、原子性、幂等、审计一致性 | A 12 文件;B 11 文件 | 隐藏单测 7 项,权重合计 100 |
结果
| 轮次 | A 得分 | B 得分 | A 用时 | B 用时 |
|---|---|---|---|---|
| HB-01 | 70 | 100 | 363.4 s | 332.5 s(计时不可比) |
| HB-02 | 100 | 100 | 83.7 s | 161.3 s |
| HB-03 | 100 | 100 | 79.2 s | 355.3 s |
三个观察
规范字面保真度会先于功能能力决定分数
HB-01 中 A 把规范逐字给定的简体文案写成了繁体,评分器按规范文案定位元素,导致状态切换和 390px 视口两项连带失败。功能本身完整可用,但「任一断言失败即 0 分」的规则把单一失误放大成 30 分差。准确说法是:功能完整度相当,规范字面保真度 B 更好。
时间是单样本,不能外推
HB-02 与 HB-03 中 A 明显更快(83.7 对 161.3 秒,79.2 对 355.3 秒)。但每轮各只有一次样本,且 HB-01 的 B 侧官方计时因权限拒绝没有落盘,两侧计时口径不齐,不能据此得出稳定的效率结论。
Token 与工具调用次数都不是现成的成本指标
工具调用次数为 A 33/10/10、B 36/45/47,但两侧工具粒度不同,次数不能直接当作效率。Token 方面,历史报告中 B 的数字存在重复计数,最终报告按同一基准重算,并明确不据此得出成本结论。
边界
- 三轮任务性质与评分规则不同,总分不能相加,也不宣布绝对胜者。
- 每轮 n = 1,结论只描述这三轮,不证明两种 Harness 的普遍优劣。
- 两侧模型相同,实验回答不了「哪个模型更强」。
能复用的是方法:冻结评分器、隐藏测试、保留原生会话日志,并把「不可比」直接写进结论,而不是留给读者猜。