本集对应课程:PART 5 · Harness 与自我改进 ·《让 Harness 改进自己》《进化搜索:让最强 Harness 存活》《未来挑战:自我改进的七道关》《立三条长跑规矩》
音频与本文配套,本文为文字版深度解读,可独立阅读。
STOP 递归改善器 + Self-Harness 的 propose-evaluate-accept 循环;进化搜索在庞大 Harness 设计空间中让最强者存活;七道关未过;三条长跑规矩今天就能立。
| 层次 | 方法 | 改善对象 | 关键机制 |
|---|---|---|---|
| 元层 | STOP(Zelikman et al. 2023) | 改善器本身(文本/代码) | 递归脚手架改进:I_t = I_{t-1}(û, I_{t-1}; M) |
| 运行时层 | Self-Harness(Zhang et al. 2026) | Agent 的运行时编排(system prompt / 工具调度 / 验证规则) | Weakness Mining → Harness Proposal → Validation |
| 种群层 | Promptbreeder / GEPA | task-specific prompt | 变异、元进化、反思 + 进化算子 |
| 代码层 | AlphaEvolve(Novikov et al. 2025) | 候选程序池中的程序 | LLM 生成 diffs → 评估 → 适者保留 |
| 自我层 | DGM(Zhang et al. 2025) | Agent 自己的 harness 代码 | 选父代 → 反思 → 变异 → 评估 → 回池 |
| 联合层 | SIA(Hebbar et al. 2026) | harness + 模型权重 | Meta / Task / Feedback 三 Agent 同循环 |
| 落地层 | 三条长跑规矩 | 你的 Agent 的上下文治理 | 压缩阈值 / 永不删除清单 / 落盘笔记 |
STOP(Zelikman et al. 2023)是递归脚手架改进的早期范例。它不直接改善一个解 s,而是不断改善产生更好解的那个改善器 I 本身。
种子改善器 I₀ 接受三个输入:初始解 s、效用函数 u、黑盒语言模型 M,返回改善后的解 s'。
关键洞察:改善器本身也是文本(一段 prompt 或代码),因此可以把同样的改善逻辑作用在改善器自身上。
I_t = I_{t-1}(û, I_{t-1}; M)
别被符号吓到,它只有一句话:让今天的自己去升级昨天的自己。就像你用 3.0 版的学习方法总结出 4.0 版的学习方法。
改善后的改善器自动发现了遗传算法、分解改进、多臂 Prompt Bandit、模拟退火、Beam Search 等经典优化策略,无需人类预设。
| 模型 | 表现 |
|---|---|
| GPT-4 | 能持续改善 |
| GPT-3.5 / Mixtral | 反而退化 |
递归结构只给出改善的可能性,不保证收敛。弱模型在元级操作中缺乏足够的编程直觉,反而会放大噪声。
推论:自我改进系统的安全性,必须建立在对基座能力的准确评估之上。不是所有模型都配跑这套循环。
三阶段循环(Zhang et al. 2026)。与 STOP 不同,它直接操作 Agent 的运行时编排系统。
把失败轨迹聚类为 verifier-grounded 失败模式。每条失败记录需包含三样东西:
三样都有,才算一条能用的失败模式。
模型获得四样东西:可编辑面、失败模式摘要、通过行为记录、已尝试编辑的历史。优先选择可寻址的重复错误模式。
用 held-in 和 held-out 数据集验证候选编辑。只接受没有回归的编辑,确保改进不以牺牲已有能力为代价。
在 Terminal-Bench-2 上对 MiniMax M2.5、Qwen3.5-35B-A3B、GLM-5 进行实验。Self-Harness 为每个模型学到了模型特定的 harness 指令。
同一个框架对不同基座产生了不同的优化路径 → Harness 改进确实是上下文敏感的,不存在一套通吃的最优配置。
如果程序被允许编辑 OS 系统层面的配置,抽象边界就会被打破。
可编辑面需要合理设计:权限控制和安全层必须在改进循环之外,由人类或不可篡改的监管机制保障。没有边界的自我改进是失控的自我改进。
能打分、不能求解的问题,正是「养一群、留最强」最擅长的领域。
第三条常被忽略:我们最终要的不是某一个最强解,而是一批能应对不同场景的解。
维护候选程序池,用冻结的 LLM 生成代码 diffs 来改进程序,反复评估子程序并保留表现最好的。谷歌用它发现了比人类已知更快的矩阵乘法算法。
值得学的设计细节:
| 细节 | 说明 |
|---|---|
| 进化标记 | 用显式标记圈出可改进区域,不是整个文件随便改 |
| Meta-prompt | 指令和上下文本身也参与共同进化,不会固定不变 |
| 消融实验 | 证明进化流程、上下文 prompt、meta-prompt、全文件进化、更强 LLM 各自有独立贡献 |
比 AlphaEvolve 更激进:进化的对象是 Agent 自己的 harness 代码。
流程:初始化 → 按性能概率选父代(概率与子代数量成反比,鼓励探索)→ 反思评估日志 + 提议 → 变异 harness 代码 → 评估 → 性能足够高才回池 → 重复。
实验(基于 Claude 3.5 Sonnet):
| 基准 | 起点 | 终点 | 提升 |
|---|---|---|---|
| SWE-bench Verified | 20% | 50% | +30 pp |
| Polyglot | 14.2% | 30.7% | +16.5 pp |
全程无需人类介入。
| 适用 | 不适用 |
|---|---|
| 候选解可自动评估 | 评估速度慢(每次需数小时) |
| Fitness 易量化 | 评估标准模糊或主观 |
| 矩阵乘法加速 / GPU kernel 优化 / 算法竞赛 / 数据中心调度 | 主要基于启发式判断 / 计算预算有限 / 需要人类审核环节 |
计算效率(每代多少次评估)与进化效果(每代提升多少)的平衡,仍是开放问题。
Meta-Agent 提出新 harness → Task-Specific Agent 执行 → Feedback-Agent 决定下一步更新 harness 还是模型权重。
方向有趣,但证据暂时性:训练稳定性与 Goodhart 效应(优化代理指标导致真实目标退化)仍是开放挑战。
| # | 关卡 | 核心问题 | 比喻 |
|---|---|---|---|
| 1 | 弱且模糊的评估器 | 编程有单元测试、数学有证明,但研究声明没有快速精确的验证器。研究品味、新颖性、长期价值极难衡量 | 健身有体重秤,代码有测试,但「这篇论文有没有价值」没有秤可称 |
| 2 | 上下文与记忆生命周期 | 记忆需求随自主性爆炸式增长;当前上下文工程大多停留在软件系统层,应成为智能的核心部分 | 不能管理自己记忆的 Agent,无法完成跨天跨周的复杂任务 |
| 3 | 多样性坍缩 | 进化与 RL 天然倾向利用已知高奖励模式,种群坍缩为同一方案的微小变体时创新停止 | 全班都抄第一名的作业,短期分数好看,再没人想新解法 |
| 4 | 奖励黑客 | 优化单元测试→过拟合;优化评判模型→reward hacking;优化榜单→利用漏洞 | 出卷人和改卷人绝不能是学生自己 |
| 5 | 长期成功 | 优化目标太短期,很少捕获可维护性、所有权边界、迁移成本、向后兼容性 | 只追求测试通过的 Agent 可能在技术债里埋定时炸弹 |
奖励黑客是自我改进循环中最危险的反模式之一。唯一解法:评估器和权限控制由独立机制维护,不参与被优化的过程。
人类的角色:在栈中向上移动,继续留在循环之中——设定目标、判断方向、守住底线。完全自主的 AI 不是最终目标,人机协作的质量才是。
系统可以写出看似合理的论文,却可能包含虚假引用、实现漂移或薄弱的实验结果。
Trehan & Chopra (2026) 系统测试了 LLM 从想法到论文的全流程,发现六种反复出现的失败模式(结构性瓶颈,非偶发 Bug):
最后一条尤其值得琢磨:科学品味恰恰最难写成评估指标,而它恰恰决定了整个循环的方向对不对。
上下文占用一轮一轮往上爬,爬满之后系统只能悄悄扔东西——扔的往往是最早的消息,也就是你一开始交代的最重要的规矩。
不做任何管理,连续对话 20 轮,第 14 轮就撞上阈值。之后每一轮都在悄悄丢最早的消息,用户感受就是「它把我最开始说的话忘了」。
| 规矩 | 管什么 | 具体要求 |
|---|---|---|
| 压缩阈值 | 「爆掉才处理」 | 占用到线就压,别等报错 |
| 永不删除清单 | 「压缩压过头」 | 用户原话、定好的需求、安全约束——这些进了摘要就找不回来,必须钉死 |
| 落盘笔记 | 「跨会话失忆」 | 重要结论写进文件,下次开工先读文件 |
第三条份量最重:这是文件系统持久记忆,也是 Harness 自我改进的起点。它连自己上次学到什么都记不住,就谈不上改进自己。
*来源:xueai.miyang.cn(小山学堂 · 洛小山《学 AI 产品,从入门到精通》)*