自我改进 · 当 Harness 开始自我改进

进化搜索:让最强 Harness 存活

AlphaEvolve / DGM / SIA,用进化算法在庞大设计空间中发现最优 Agent

本页解决的问题

先给结论

「进化搜索:让最强 Harness 存活」要解决的关键问题是什么?

AlphaEvolve / DGM / SIA,用进化算法在庞大设计空间中发现最优 Agent

判断标准

让这个结论先证明自己值得留下。 把这一页当成决策工具,而不是需要背下来的定义。把概念连到一个真实任务、一个可观察结果,以及一个能改变你判断的失败上。

下一步

写下一个问题:试完这个方法后,你能用什么证据回答它?

常见误区

结论听起来很完整,却没有检查最关键的假设。

Evolutionary Search for Harness

搜索空间太大、梯度不可用,进化是唯一务实的答案

Harness 由 prompt、工具调用策略、上下文管理逻辑和代码片段共同组成。这些组件的组合空间庞大且形状奇特,无法用梯度直接优化,但可以轻松评估一个候选 harness 的好坏。这恰恰是进化搜索最擅长的领域。
为什么进化搜索适合 Harness 优化?
💬 说人话:进化搜索就是大自然选育庄稼的套路:种一大片,长得好的留种,长得差的淘汰,偶尔杂交变异一下,一代代下来庄稼越来越好。为什么用这招?因为 Harness 是由 prompt、代码、配置混搭出来的东西,没法用数学公式算出最优解(术语叫梯度不可用),但很容易比出谁好谁差。能打分、不能求解的问题,正适合「养一群、留最强」。
三个契合条件
1. 搜索空间庞大且形状奇特:Harness 的组件包括自然语言 prompt、代码逻辑、工具配置,组合爆炸且高度离散。

2. 梯度不可用,但评估容易:无法对 prompt 文本求导,但可以直接在基准测试上跑出分数。

3. 多样性有价值:不同任务可能需要不同风格的 Harness,进化天然维护种群多样性。
Prompt 进化的先驱
Promptbreeder & GEPA
Promptbreeder(Fernando et al. 2023):用丰富的变异操作进化 task-specific prompts。关键创新:变异 prompt 本身也通过进化改进,形成元进化。

GEPA(Agrawal et al. 2025):结合 reflection-based prompting 和进化搜索。Agent 先反思当前 prompt 的不足,再通过进化算子产生候选改进,最终选择最优。

这两项工作为后续更大规模的 Harness 进化奠定了基础。
AlphaEvolve:编码 Agent 的进化搜索
💬 说人话:AlphaEvolve 就是把上面的「选育庄稼」用在程序代码上:维护一个代码农场(候选程序池),让 AI 每轮给表现好的代码提修改意见(生成 diffs),改完跑分,分高的留下继续繁衍。谷歌用它真的发现了比人类已知更快的矩阵乘法算法:庄稼选出了新品种
AlphaEvolve(Novikov et al. 2025)
核心思路:维护一个候选程序池,用冻结的 LLM 生成代码 diffs 来改进程序,反复评估子程序并保留表现最好的。

Novikov et al. "AlphaEvolve: A coding agent for scientific and algorithmic discovery." 2025.

AlphaEvolve 系统架构
AlphaEvolve 系统架构:候选程序池 → LLM 生成 diffs → 评估 → 适者保留。
Prompt 设计
父程序 + 评估结果 + 指令 + 元信息共同构成进化 prompt
进化标记
# EVOLVE-BLOCK-START / # EVOLVE-BLOCK-END 显式标记可改进区域
Meta-prompt
指令和上下文本身也参与共同进化,不会固定不变
消融实验
证明进化流程、上下文 prompt、meta-prompt、全文件进化、更强 LLM 各自有独立贡献
AlphaEvolve 消融实验结果
AlphaEvolve 消融实验:各组件对最终性能的贡献。
Darwin Gödel Machine(DGM)
💬 说人话:DGM 比 AlphaEvolve 更激进:进化的对象是 Agent 自己的「操作系统」(它自己的 harness 代码),已经超出了改别人代码的范畴。相当于一群机器人,每个都可以看自己的考试错题、然后动手改造自己的大脑回路,改得好的机器人留下来继续繁衍后代。名字里的「达尔文」就是这个意思:物竞天择,最强的自我改造方案存活。
DGM(Zhang et al. 2025)
与 AlphaEvolve 不同,DGM 显式针对可编辑的 harness 代码仓库进行进化:Agent 被允许修改自己的 harness 代码。

Zhang et al. "The Darwin Gödel Machine: Open-Ended Evolution of Self-Improving Agents." 2025.

  1. 初始化:从池中一个 coding agent 开始
  2. 选择父代:按性能概率选一个父代(概率与子代数量成反比,鼓励探索)
  3. 反思 + 提议:父 agent 检查自己的 benchmark 评估日志,提出 harness 改进方案
  4. 变异:修改 harness 代码,产生新 agent
  5. 评估:新 agent 在基准测试上评估,只有性能足够高才被加回池中
  6. 重复:循环直到达到停止条件
DGM 工具与实验结果
工具集:bash + editor(view / create / edit)

实验(基于 Claude 3.5 Sonnet):
· SWE-bench Verified:20% → 50%(+30 pp)
· Polyglot:14.2% → 30.7%(+16.5 pp)

无需人类介入,Agent 自主进化出更强的 harness 设计。
适用范围与局限

适用场景

  • 候选解可自动评估
  • Fitness 易量化(数值化指标)
  • 矩阵乘法加速
  • GPU kernel 优化
  • 算法竞赛
  • 数据中心调度

不适用场景

  • 评估速度慢(每次需数小时)
  • 评估标准模糊或主观
  • 主要基于启发式判断
  • 计算预算有限
  • 需要人类审核环节
效率关注点
进化搜索的计算开销不可忽视。AlphaEvolve 和 DGM 都需要大量评估轮次,每轮都涉及 LLM 推理 + 代码执行 + 基准测试。计算效率(每代需要多少次评估)和进化效果(每代提升多少)之间的平衡仍是开放问题。
联合优化:模型权重 + Harness
💬 说人话:前面所有方法都只改工作流程,不动 AI 的大脑(模型权重)。SIA 想两个一起改:既优化流程,也顺便重新训练大脑。听起来很美,但风险也大:就像一边改赛车引擎一边改赛道,两边同时变化容易失控(这就是文中说的训练稳定性问题)。
SIA(Hebbar et al. 2026)
SIA 将 harness 改进和模型参数更新放入同一优化循环

· Meta-Agent:提出新的 harness 设计
· Task-Specific Agent:在新 harness 下执行任务
· Feedback-Agent:根据结果决定下一步是更新 harness 还是更新模型权重

方向有趣,但证据暂时性:训练稳定性Goodhart 效应(优化代理指标导致真实目标退化)仍是开放挑战。

Hebbar et al. "Self-Improving Agents." 2026.

SIA 联合优化架构
SIA 架构:Meta-Agent 提出 harness → Task Agent 执行 → Feedback Agent 决定优化方向。
核心观点:当搜索空间庞大、梯度不可用、但评估容易时,进化搜索是优化 Harness 的自然选择。从 Promptbreeder 的 prompt 进化,到 AlphaEvolve 的程序进化,再到 DGM 的 harness 代码自我改写,进化压力正在让最强的 Agent 存活。未来的 SIA 方向则试图让 harness 和模型权重协同进化,但稳定性挑战仍待解决。

「搜索空间太大、梯度不可用,进化是唯一务实的答案」里的算法代价曲线

「Novikov et al.」真正训练的不是背诵步骤,而是识别重复工作:输入变大时,程序到底多做了多少次比较、移动或递归。

先找重复工作,再谈快慢

「Zhang et al.」可以拆成输入规模、每轮做什么、以及是否能缩小下一轮范围三个问题。Big-O 是描述增长趋势的语言,不是对每台机器的精确计时;常数、内存和真实数据分布也会影响最终结果。

  • 初始化 :从池中一个 coding agent 开始
  • 选择父代 :按性能概率选一个父代(概率与子代数量成反比,鼓励探索)
  • 反思 + 提议 :父 agent 检查自己的 benchmark 评估日志,提出 harness 改进方案

别把理论最优当成无条件最优

面对 AI 写出的算法,先用小输入手算一遍,再用逐渐放大的数据做基准测试。这样才能把「Hebbar et al.」从一句结论变成可检查的性能判断。

从「搜索空间太大、梯度不可用,进化是唯一务实的答案」走到「为什么进化搜索适合 Harness 优化」

「搜索空间太大、梯度不可用,进化是唯一务实的答案」先把问题落在「Harness 由 prompt、工具调用策略、上下文管理逻辑和代码片段共同组成。这些组件的组合空间庞大且形状奇特,无法用梯度直接优化,但可以轻松评估一个候选 harness 的好坏。这恰恰是进化搜索最擅长的领域」上;到了「为什么进化搜索适合 Harness 优化」,讨论继续推进到「💬 说人话: 进化搜索就是 大自然选育庄稼 的套路:种一大片,长得好的留种,长得差的淘汰,偶尔杂交变异一下,一代代下来庄稼越来越好。为什么用这招?因为 Harness 是由 prompt、代码、配置混搭出来的东西, 没法用数学公式算出最优解 (术语叫梯度不可用),但很容易比出谁好谁差。能打分、不能求解的问题,正适合「养一群、留最强」。 三个契合条件 1. 搜索空间庞大且形状奇特 :Harness 的组件包括自然语言…」。两段连起来,重点就不只是记住一个结论,而是看清它成立所依赖的条件。

把这条判断带到下一个场景

算法题换成真实任务后,先找出重复工作,再问输入规模如何变化,最后用一个小基准验证理论判断。这样不会把复杂度记成脱离场景的标签。

  • 「搜索空间太大、梯度不可用,进化是唯一务实的答案」:Harness 由 prompt、工具调用策略、上下文管理逻辑和代码片段共同组成。这些组件的组合空间庞大且形状奇特,无法用梯度直接优化,但可以轻松评估一个候选 harness 的好坏。这恰恰是进化搜索最擅长的领域
  • 「为什么进化搜索适合 Harness 优化」:💬 说人话: 进化搜索就是 大自然选育庄稼 的套路:种一大片,长得好的留种,长得差的淘汰,偶尔杂交变异一下,一代代下来庄稼越来越好。为什么用这招?因为 Harness 是由 prompt、代码、配置混搭出来的东西, 没法用数学公式算出最优解 (术语叫梯度不可用),但很容易比出谁好谁差。能打分、不能求解的问题,正适合「养一群、留最强」。 三个契合条件 1. 搜索空间庞大且形状奇特 :Harness 的组件包括自然语言…
  • 「最后的要点」:评估 :新 agent 在基准测试上评估,只有性能足够高才被加回池中

最后的「最后的要点」把讨论落到「评估 :新 agent 在基准测试上评估,只有性能足够高才被加回池中」。回看这条线索时,最值得保留的是:当输入、规模或风险改变,哪些判断需要重新做一遍。

标记为已学完 阅读进度会自动记录
← 上一篇下一篇 →

继续阅读

同一条线上的下一篇。

文章讨论

读到这里,留下一个判断。

把刚想明白的地方、还没想通的问题,留给下一位一起学习的人。

正在讨论 进化搜索:让最强 Harness 存活 当 Harness 开始自我改进
3条讨论文章讨论 · 与共学社区同步
在共学社区查看
AM
Asha Morgan内容编辑
观点实践记录

我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。

文章讨论7 有帮助
LH
Lin Harper独立开发者
观点观点

读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。

文章讨论5 有帮助
KM
Kiki Moore产品运营
问题问题

如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。

文章讨论4 有帮助