论文解读·

[2026-08-03] Harness-R1: Learning to Edit Executable Runtime Harnesses from Agent Failure Trajectories

Harness-R1 把 harness 修补训练成一个 9B 模型的专门能力:从 failure packet 生成 lifecycle-wide patch,再用冻结 target agent 的真实重跑收益做 GRPO。本文区分训练目标、四个 hooks、迁移结果与同批奖励的局限。

页数
10
形式
交互图解
更新
2026.10.07
文章目录

arXiv:2608.02276v1 · 最早公开于 2026-08-03

10 页交互图解 · 任务、机制、真实案例、结果与边界大屏阅读 ↗

使用按钮或 ← → 翻页,F 进入或退出全屏按 Esc 退出全屏;独立打开后可返回文章

Harness-R1 把 harness 修补训练成一个 9B 模型的专门能力:从 failure packet 生成 lifecycle-wide patch,再用冻结 target agent 的真实重跑收益做 GRPO。本文区分训练目标、四个 hooks、迁移结果与同批奖励的局限。

博客作者兴趣度 9.1 / 10评分只表示博客作者本人对“写、修、演化 harness code”这条研究线的阅读兴趣,不是论文质量评级
9B专门的 harness engineer
44.3 → 53.6vanilla target 平均成功率
877SFT 冷启动样本
+8.9 ± 1.5 pp稀疏失败 held-out 增益

Q1. 为什么要专门训练一个 harness engineer?

论文把“读失败—改 runtime—重跑验证”从一次性 prompt 技巧变成可训练策略。通用 frontier editor 有时能写出好 patch,也会把已有能力改坏;固定规则又不能从新失败中学习。Harness-R1 用单独的 Qwen3.5-9B engineer 学习什么失败该改、改哪个生命周期位置、什么代码才会带来真实任务收益。

Q2. 它与 Self-Harness、HarnessFix 和直接微调 target 有什么不同?

它的独特之处是在线强化学习直接奖励 patch 后的 target-agent 成功率。Self-Harness 用同一个模型提出并筛选自己的修改;HarnessFix 先构造 HTIR 做结构化诊断;直接 SFT target 则更新任务模型权重。Harness-R1 不碰 target weights,而是训练另一个模型编辑四个 runtime hooks。

因此结果要解释为“学习到的工程师对冻结 target 的增益”,不是 target model 本身更聪明。论文也展示 target 做过 SFT 后,专门 engineer 仍能继续增益,指向 model 与 harness 两条更新轴。

Q3. failure packet 如何变成可执行 patch 和在线奖励?

每个 failure packet 包含失败轨迹、环境反馈和当前 harness;engineer 输出四处 hook 的补丁。它们分别是 on_init、make_pre_hint、on_before_action、on_post_step,覆盖初始化、决策前提示、动作前守卫和动作后反馈。

  1. SFT877 个冷启动例:WebShop 381、ALFWorld 248、DBBench 248。
  2. SAMPLE每个 packet 采样 8 个 patch。
  3. VALIDATE必须可解析、可安装、能完成完整 rerun;no-op 与不完整 patch 奖励为 0。
  4. REWARD比较同一完整 batch 修补前后的 realized success,再做 GRPO。

这个奖励路径很实在,却也是最关键的边界:patch 直接针对产生 failure packet 的同一 batch 优化,是 transductive objective;训练目标没有单独惩罚 held-out regression 或推理成本。

Q4. 三个环境与迁移实验支持多强的结论?

在三个训练环境上,vanilla Qwen3.5-9B 从 44.3% 提到 53.6%,增加 9.3 个百分点;target 先 SFT 后再修 harness,则从 59.2% 到 64.2%。在 20 个 unseen targets 上平均 +7.06 pp,21×3 个 model-environment 配对中 56/63 改善。只给稀疏失败的 1,270 个 held-out tasks,提升为 +8.9±1.5 pp,而两个 frontier editor 的平均改动为负。

patch 具体改了什么?

WebShop patch 在颜色未选择时阻止 Buy Now;ALFWorld 组合 stage state、hint 与 placement guard;DBBench 保留 verifier 需要的 4 Hours 大小写。相反,一个 Gemini patch 把 ALFWorld 从 41.6% 降到 35.4%,说明“能写合理代码”不等于行为会改善。

ablation 显示 pre-action 与 post-feedback 最重要,但贡献随环境变化,不能相加成一条普遍排序。

Q5. 下一步怎样避免同批过拟合与回归?

应把奖励从 same-batch delta 扩展成 train gain、held-out non-regression 与运行成本的多目标函数。每个 patch 应在相邻任务和不同 seed 上重放,并设置自动 rollback。还需要研究 engineer 是否迁移到不同 hook API、不同 target model 和更大代码库。

官方仓库可访问,本文固定核验 commit 94f2e087…;模型权重也公开。可复现性优于只给论文的工作,但在线 RL 的完整计算成本和跨版本依赖仍需谨慎记录。

Q6. 最后怎样评价 Harness-R1?

Harness-R1 的贡献不是“RL 又赢一次”,而是把 executable patch 的真实后果接回训练环。证据表明专门化 engineer 比通用一次性 editor 更稳定;但同批奖励仍可能鼓励局部修补,尚不能证明它学会了普遍的软件维护能力。

最可复用invalid / no-op patch 归零,以及冻结 target 的真实 rerun 奖励。
最大限制same-batch transductive reward。
可靠结果稀疏失败 held-out 增益给出 ±1.5 pp。
推荐对象研究 harness repair post-training 与 model–harness co-evolution 的读者。

主要来源:论文全文与附录、arXiv v1 元数据;代码或项目页于 2026-10-08 核验。固定来源状态:94f2e087f573e1b82fc9568bb634d4ae9a887e28。

留言

留言正在载入…

搜文章