一图版 🏠 返回首页
前沿科技洞见 · 2026-09-08

Harness-of-Harness 把 Coding Agent 的代码版本与验收证据绑在一起

阅读时间 6 分钟 · 3,271 字 · 基于 9 个来源
背景
先把 Harness 说清楚。语言模型只负责生成下一步文字;真正让模型查看代码仓库、编辑文件、调用终端、运行测试,再把结果送回模型的外层运行系统,通常叫 Agent Harness。
今日事件
9 月 1 日,上海人工智能实验室团队提交 HoH 论文。研究让三套 Coding Agent 连续开发三轮:Codex + GPT-5.5、OpenCode + DeepSeek-V4-Pro、Pi + MiniMax-M3。
核心判断
核心判断: HoH 的增量来自代码版本与测试证据的绑定,以及没有写权限的 QA 独立验收,不应归因于简单增加运行轮数。现有消融支持这条证据链有贡献;主实验缺少重复运行和完整开源实现,因此还不能把 52.25% 当作生产收益。

先把 Harness 说清楚。语言模型只负责生成下一步文字;真正让模型查看代码仓库、编辑文件、调用终端、运行测试,再把结果送回模型的外层运行系统,通常叫 Agent Harness。Codex、OpenCode 和 SWE-agent 的差别不只在模型,也在这层系统怎样提供工具、整理上下文和反馈执行结果。

一次修复可以在一个会话里完成,长项目却会跨越多轮甚至多个会话。这里最容易出问题的是代码和证据脱节,而非“下一轮忘了聊天记录”:第一轮测试通过的是版本 A,第二轮改出版本 B 后,旧测试结果已经不能证明 B 仍然可用;如果下一轮只读到“测试通过”,就可能在未经验证的版本上继续开发。

Harness-of-HarnessHoH)是在多次 Harness 运行之外再加一层交付控制。Planner 只负责确定下一轮做什么,Developer 修改代码,系统随后冻结候选版本,只读 QA 针对这个版本运行检查并保存证据;下一轮 Planner 同时读取代码版本和对应的通过、失败记录。它关心“哪个版本经过了什么验收”,不负责协调“几个 Agent 怎么聊天”。

9 月 1 日,上海人工智能实验室团队提交 HoH 论文。研究让三套 Coding Agent 连续开发三轮:Codex + GPT-5.5、OpenCode + DeepSeek-V4-Pro、Pi + MiniMax-M3。它们在 GameCraft-Bench、FrontierSWE 和 ProgramBench 组成的九组实验条件中,最终成绩都高于各自第一轮;作者报告平均相对增幅为 52.25%,最高为 82.86%

这些数字不能直接证明 HoH 一定更好。三项基准的计分口径不同,52.25% 是跨口径计算的相对增幅;普通 Agent 多跑两轮同样会提高成绩。真正需要比较的是:在相近预算下,把版本冻结、独立验收和证据交接加入流程,是否比同一 Agent 继续修改更可靠。

演进主线: 真实仓库评测解决“代码能不能修” → 工具接口解决“模型怎样操作仓库” → 跨会话记录解决“下一轮怎样接着做” → HoH 再解决“下一轮依据哪个版本、哪份验收证据继续”。

核心判断: HoH 的增量来自代码版本与测试证据的绑定,以及没有写权限的 QA 独立验收,不应归因于简单增加运行轮数。现有消融支持这条证据链有贡献;主实验缺少重复运行和完整开源实现,因此还不能把 52.25% 当作生产收益。

四代方法依次解决任务、接口、状态和验收

HoH 的位置要放回 Coding Agent 四年的演进中看。

每一代方法都在补前一代留下的一个可复现缺口:

阶段代表工作新解决的问题仍然缺少什么
2023:真实任务SWE-bench用真实代码库问题代替短代码题,检查补丁能否修复仓库没有统一约束 Agent 怎样看仓库、用终端和接收反馈
2024:运行接口SWE-agent证明终端接口与反馈循环会显著改变同一模型的修复成绩多轮、跨会话开发时,现场与进度仍容易丢失
2025:状态交接Anthropic 长时 Agent 实践用进度文件、Git 提交和单次小增量降低会话重建成本“做过什么”有记录,“哪个版本已经被谁验收”仍不清楚
2026:独立验收Harness-of-Harness冻结候选版本,由只读 QA 生成与版本绑定的证据,再交给下一轮 Planner独立复现、重复运行和生产缺陷数据仍不足

这条演进线说明,Coding Agent 的评测对象已经从“模型能否生成正确补丁”扩展到“一个持续变化的软件版本能否留下可追责的交付证据”。聊天记录只能保存模型说过什么,代码仓库保存模型改了什么;执行日志、截图、回放和测试结果才说明某个版本是否可用。代码继续变化后,旧测试结果不能继续替新版本背书。

HoH 比普通续跑多出一条版本—证据闭环

HoH 每轮由三个角色接力。

Project Planner 读取需求、当前软件和上一轮证据,只选择一个边界清楚的增量,没有代码写权限。Developer 建立修改前基线、实现功能并运行测试。系统随后冻结候选版本,QA Tester 以只读权限做黑盒与白盒检查,发现问题也不能顺手改代码。

这套分工把“开发者声明完成”和“独立证据证明通过”分成两件事。下一轮 Planner 读取的是与冻结版本绑定的成功项、失败项和执行记录,不是一句“上一轮已经完成”。测试通过后若代码又被修改,新版本必须重新验收。

项目页展示了一次超过 70 轮的第一人称射击游戏开发:系统登记 81 个问题,65 个最终关闭,16 个仍打开,其中 17 个曾在关闭后因后续修改重新打开。问题重开比累计功能数更能说明长程开发风险——新功能会破坏旧功能,而“通过”只对当时的代码版本有效。这段演示证明 HoH 能持续维护问题与回归记录,但尚无外部质量审计,不能据此判断商业软件已经达到交付标准。

同预算对照比“三轮提升 52.25%”更有解释力

GameCraft-Bench 的消融实验把 HoH 的关键环节逐一移除,结果直接回答哪些机制在起作用:

三轮运行方式得分相对完整 HoH 的缺口
完整 HoH71.52动态规划、证据回传和工作区延续全部保留
固定第一轮计划63.39后续轮次不能按新证据调整任务
不向 Planner 回传执行证据65.23下一轮知道做过什么,却不知道哪些检查通过或失败
每轮清空工作区63.67模型必须重新理解代码状态;token 从 841 万升至 1112 万

HoH 多得 13.28 分,也多用 32.9% token,因此“最终分更高”仍混入了计算量影响。

更干净的预算对照来自 HoH 两轮:567 万 token 得到 64.84,计算量低于普通续跑三轮,成绩仍高 6.60 分。这组结果比 52.25% 的跨基准汇总更能支持“证据交接不仅是多跑几轮”。不过主实验每个任务和条件只运行一次,6.60 分是否稳定仍不知道。

与三类 Harness 研究相比,HoH 专门检查跨轮交付

同期研究分别测运行框架的不同层,分数不能直接互比,但可以对齐它们回答的问题:

研究核心问题已报告结果对 HoH 的限定
Harness-Bench同一批任务更换运行框架会差多少六种 Harness、八种模型;NanoBot 聚合分 76.2,OpenClaw 52.4模型相同仍不能忽略外层系统
Same Model, Different Harness上下文管理会改变多少任务完成数Qwen3.6 在 20480 token 下由 43 个增至 72 个;窗口扩大后差距消失某些框架优势只在上下文受限时成立
HarnessDev模型能否自己设计 HarnessOpus 4.8 自评 67.8,人类工程系统参考分 86.2;换执行模型后 SWE-Pro 从 69.3 降至 33.0Harness 可能与开发它的模型强绑定
Harness-of-Harness多轮开发怎样交接版本和验收证据同预算的 HoH 两轮比普通续跑三轮高 6.60 分尚缺重复运行、异构 QA 和生产缺陷数据

这组横向对齐给出了清楚边界:Harness-Bench 测整体框架差异,Same Model 检查上下文,HarnessDev 检查自动设计,HoH 检查跨轮交付链。HoH 不替代前三种测试;它补的是“当前版本由什么证据证明可继续开发”。

复现结果将决定它是生产控制还是研究原型

HoH 仍处在 arXiv v1 阶段。

三个角色由同一模型与 Harness 分别调用,可能共享相似盲点。截至 9 月 6 日,GitHub 仍注明 HoH-lite 后续开放,外部团队暂时无法按公开代码完整复制主实验。

下一轮验证应固定总 token 与墙钟预算,让普通续跑和 HoH 各自重复多次,并报告成绩分布。QA 还应分别使用同模型、异构模型、确定性测试器和人工验收,记录持续集成失败、发布后缺陷、问题重开次数和人工验收时长。

如果普通续跑在同预算下达到相近质量,HoH 的收益主要来自额外计算;如果异构 QA 没有减少回归或人工验收时间,角色独立只增加流程开销。只有外部团队稳定复现质量提升,并同时降低发布后缺陷或人工验收成本,HoH 才能从研究原型进入生产开发流程。

信息来源(9)
图文卡片 ⬇️ 一键下载图文卡片