Self-Harness 让同一个固定模型既执行任务,也从失败中提出并验证自己的 harness 修改。本文拆解 weakness mining、最小编辑、双 split promotion gate、九组结果,以及 held-out 被反复用于筛选的关键边界。
Q1. 为什么让模型改自己的 harness,而不是交给更强 editor?
因为最佳 harness 往往依赖模型自身的行为习惯,而为每个新模型手工重做 runtime 很难扩展。Self-Harness 让当前模型读自己的失败轨迹、概括反复出现的机制,再提交最小修改;如果修改让任一 split 提升且两个 split 都不退,才进入下一轮。
Q2. 它与 prompt search、Harness-R1 和一般自动修复有何不同?
它优化完整 harness,但搜索策略比开放式代码演化更保守。普通 prompt search 只改文本;Harness-R1 训练另一个 9B engineer;HarnessFix 显式构造 HTIR 并映射到修复算子。Self-Harness 不训练新模型,也不用更强 proposer,依靠 failure clustering 与 regression gate 控制风险。
Q3. Weakness Mining、Proposal 与 Validation 怎样闭环?
一轮分三步:从轨迹提取 weakness signature,并行提出互异的最小 edit,再用 held-in / held-out 双重门验证。signature 由 verifier cause、行为因果状态和抽象 mechanism 组成,只有精确匹配的失败才聚为一类。多个单独通过且兼容的 edit 可以合并。
这个 gate 很直观,但名为 held-out 的 split 每轮都会参与 candidate promotion。它实际是搜索期 validation / regression set,不是最终只看一次的 blind test。
Q4. 九组实验里哪些改动真的留下来了?
MiniMax M2.5、Qwen3.5-35B-A3B、GLM-5 在 Terminal-Bench 2.0、SWE-bench Verified、AppWorld 的九种组合全部同时提高 held-in 与 held-out。最大绝对跃升是 GLM-5 AppWorld 44.4% → 85.0%。
保留下来的机制
Terminal-Bench 的 edit 提前创建必需 artifact、限制无尽 tool loop、先检查 dependency;SWE-bench 加入 diff/test verifier subagent;AppWorld 补 pagination 与“只能在真实 action effect 后完成”的 contract。它们都不是泛泛的“多思考”,而是对具体 runtime failure 的控制。
但每个 candidate 通常只有两次 attempt,随机 agent score 容易让 promotion gate 接受偶然提升。九组结果也都在三个高度工程化 benchmark 内,尚未证明跨域机制迁移。
Q5. 怎样修正 held-out gate 带来的评估偏乐观?
需要增加从未参与筛选的 final test,并用更多 seed 或序贯检验决定 promotion。风险更高的修改还应检查 latency、token、权限和安全回归;pass rate non-regression 无法覆盖数据泄漏、过度工具调用或静默改变任务语义。
官方仓库 commit 2720dbb3… 可访问。后续复现实验应保存所有候选、失败候选与随机种子,而不只发布最终 harness,才能判断搜索效率和选择偏差。
Q6. 最后怎样评价 Self-Harness?
Self-Harness 是最清楚展示“同一个模型也能改自己的执行外壳”的工作之一。它的最小编辑和双 split 门值得直接借鉴;与此同时,论文里的 held-out 已参与搜索,结论应读成“对未用于 weakness mining 的回归集也提升”,而不是完全独立的最终泛化证明。
主要来源:论文全文与附录、arXiv v1 元数据;代码或项目页于 2026-10-08 核验。固定来源状态:2720dbb3f52283684f4b85a1065d642df1779dd8。
留言