让 Harness 改自己,怎样才不会失控
定义
让 Harness 改进自己,安全的做法不是直接改生产系统,而是从失败轨迹找出弱点,在隔离分支提出小改动,再由循环外的评测与发布规则决定是否接受。
先搭一个心智模型
这更像软件团队提交 Pull Request:作者可以是系统自己,但测试、权限和合并按钮必须由它无法随意修改的外部机制掌握。
说明
STOP 的种子改善器接收初始解、效用函数和语言模型,输出改进后的解;改善器本身也是可修改程序,因此可以作用于自身。论文同时指出递归结构不保证持续变好,并报告模型提出过 beam search、遗传算法和模拟退火等搜索策略。
Self-Harness 把改进对象换成 Agent 运行时编排:先从失败轨迹中找出可重复弱点,再提出与弱点对应的有界修改,最后用回归集决定是否接受。作者在 Terminal-Bench-2.0 与三个基座模型的实验中,报告了未参与改进任务上的提升。
可编辑范围与裁决机制必须分离:候选只能修改被授权的 Harness 代码,评测器、权限边界和发布决定由改进循环之外的机制掌握。否则候选可能改变规则,而不是改善真实表现。
跟着一个例子走
Agent 发现自己经常漏读配置文件
失败轨迹反复显示,任务开始时没有读取项目约定,导致后续修改返工。
- 从多次失败确认模式
先证明这是可重复弱点,而不是一次偶然失误。
- 提出有界修改
候选只调整启动时的资源加载规则,不同时重写工具、评测和权限。
- 由外部回归决定
在留出任务上检查收益和副作用,发布门在改进循环之外。
边界与误区
递归自我改进为什么不一定带来进步: 递归结构只提供改善的可能性,不保证收敛。如果基座模型缺乏足够的编程和优化直觉,在元级反复作用会放大噪声,最终表现不进反退,所以需要先准确评估模型能力。
Self-Harness 的验证环节和普通评估有什么不同: 它既检查用于发现弱点和调整方案的域内任务,也检查未参与这些步骤的留出任务,避免候选只适应已经看过的失败。是否接受仍由预先规定的回归标准决定。
来源与核验
- [stop] Self-Taught Optimizer (STOP)
- [self-harness] Self-Harness
核验日期:2026-08-31