不要照抄 expert 的整条轨迹:只修 student 自己的第一个错误 turn
为弱模型演化出 h* 后,完整 imitation 把 Qwen 从 78.0% 拉到 63.1%;single-turn on-policy correction 保住 planning fit,并达到 79.7%。
论文检查训练数据是否来自 student 部署时真正会访问到的 states,而不是只比较 teacher 的能力。
先把四个 actor 分开,才能看懂“谁在给谁造数据”
Qwen3-Coder
产生 harness-evolution rollout,也是 LoRA-SFT 的对象。
Gemini 3.1 Pro
提出 harness edit,生成完整 trajectory 或单 turn correction。
Evolved harness
Prompt、tools、hooks 与 context 围绕 Qwen 的失败轨迹演化。
Binary success
Task rollout 通过记 1,否则记 0;test split 保持 held out。
Expert 能把 h* 用到 93.6%,却不代表 student 能复制它的 plan
同一段 harness code,对不同 planning cadence 不是同一个系统
h* 期待的节奏
- 按 scaffold 拆分 subtask
- 在指定位置调用 tool / hook
- 一次 verify 后 finish
- 遇错按 Qwen 常见方式恢复
能力没有同步迁移
- 更短、更早作答
- 跳过 h* 依赖的中间步骤
- 或把一次检查扩成循环
- 知识增加,task success 仍下降
这篇论文保留 evolved harness;它不是 harness removal 或跨接口迁移
| 路线 | 优化对象 | 部署产物 | 与本文的区别 |
|---|---|---|---|
| Meta-Harness / Better Harnesses | Harness code | Model + evolved harness | 不做 weight update。 |
| Co-Harness / WHALE / HarnessForge | Harness + weights | Matched pair | 联合增益;本文隔离 imitation regression。 |
| On-policy correction | Student-visited states | Model + fixed interface | 本文加入 model-specific h* 的 compatibility 问题。 |
| Harness-Zero | Cross-interface behavior transfer | Model + minimal target harness | 移除 source harness;本文不移除 h*。 |
| Grow the Harness | Executable control code | Model + specialist harness | 把重复策略留在代码,不做 model correction。 |
作者把 co-evolution 拆成 harness update 与 compatibility-preserving model update

七类 enterprise tasks 共用客观 verifier,但本文没有重新发布 task package
Attendance + Budget
Payroll auditing 与审批协议;依赖聚合规则和受控数据访问。
Stock + Anomaly
枚举低库存项;完成 query-detect-report-upload workflow。
Playwright + Website
浏览器自动化与 Magento Admin;需要 structured finish。
Refactor
代码重构;winning harness 增加 global search tool。
每个任务单独演化;validation 变好才保留 edit
完整 imitation 把 expert 的知识与 planning path 一起复制
保留 student 的整条轨迹,只替换定位出的失败 turn
每条训练数据都是 student 轨迹中的一个局部补丁
# Based on Appendix B; names are explanatory. def make_example(student_rollout, failed_checkpoint): turn = localizer.first_wrong_turn( rollout=student_rollout, checkpoint=failed_checkpoint, ) candidates = [ expert.rewrite_only_this_turn( task=student_rollout.task, prefix=student_rollout.before(turn), failed_checkpoint=failed_checkpoint, ) for _ in range(3) ] patch = quality_judge.select_best(candidates) return student_rollout.replace(turn, patch)
答案已经算对,却在重复检查中耗尽 78 steps
目标是 Approved=346,模型却把未筛选总数 351 提前交了
最大的提升来自 h*;correction 的作用是保住它,而不是追平 expert
Full imitation 七项全退;correction 五项上升、两项接近持平
Imitation 增加 recipe adoption,也同时制造新的 planning failures
负结果可信度较强,local correction 的可复现性仍有限
训练 artifacts
没有官方 repo、task files、≈500-row correction set、checkpoint 或原始 logs。
Failure taxonomy
未披露 classifier identity、prompt、人工 agreement 或 confusion matrix。
+1.7 points
Correction 的强证据是避免 −14.9 回退,不是大幅超过 h* baseline。
Co-evolution
Figure 1 画多轮循环,实验主要验证一次 harness update 后的一次 SFT。
训练数据要尊重 learner 的 state distribution,也要重新验证旧 harness 的兼容性
一条清楚的设计规则
在 student 自己访问到的失败 state 上做局部 correction;不要默认成功 expert trajectory 是安全的训练单位。Model 版本变化后,对 prompt、tool、hook 与 finish behavior 做 compatibility regression。
完整 coding harness 实验
同一批 sealed repo tasks 上比较 full imitation、single-turn correction 与 short-window correction;人工复核 first-failure localization,并把补丁放回真实环境重新执行。