← 返回列表

Darwin Gödel Machine: Open-Ended Evolution of Self-Improving Agents

作者 Jenny Zhang, Shengran Hu, Cong Lu, Robert Lange, Jeff Clune
年份 2025
会议/期刊 arXiv 2025
评分
标签 LLM Agent 自我改进
摘要 提出 Darwin Gödel Machine:维护 Agent 群体档案,通过开放式演化实现自我改进编码 Agent,SWE-bench 从 20% 提升至 50%

核心思想

理论上的 Gödel 机要求对改进进行形式化证明,在实践中不可行。本文提出 Darwin Gödel Machine (DGM):用经验验证替代形式化证明,维护一个 Agent 档案(archive)实现开放式探索,避免局部最优陷阱。

核心假设:编码基准测试上的性能提升表明更好的编码能力,从而意味着更强的自我修改和自我改进能力。

方法详解

1. 系统架构

1.1 自修改循环

DGM 在两个阶段之间交替:

  1. 自修改阶段:选中的 Agent 分析基准日志并生成修改版本
  2. 评估阶段:修改后的 Agent 在编码基准上测试;只有保留代码编辑功能的才进入档案

1.2 群体档案(Population Archive)

  • 维护所有已发现 Agent 的档案(初始化为一个基础 Agent)
  • 允许从档案中任意 Agent 分支(非零概率),不仅限于最佳表现者
  • 这是与贪心方法的核心区别:创新之路可能经过低性能节点

2. 父代选择机制

选择概率综合考虑:

  • Agent 在基准测试上的性能分数
  • 保留代码编辑功能的后代数量
  • 确保多样性同时偏好适应性强的个体

与贪心方法的区别:贪心方法只选择当前最佳 Agent 作为父代,而 DGM 以概率方式选择,允许从看似较差但潜力更大的 Agent 分支。

3. 分级评估策略

利用计算预算的分级评估:

阶段 任务数 目的
Stage 1 10 验证基本代码编辑功能
Stage 2 50 估计通用有效性
Stage 3 200 高置信候选者(Stage 2 > 40%)

这种方法在成本与准确性之间取得平衡,考虑到 LLM 的随机性。

4. 基础 Agent 设计

围绕冻结的基础模型(Foundation Model)构建:

  • 自修改:Claude 3.5 Sonnet (New)
  • SWE-bench 评估:Claude 3.5 Sonnet (New)
  • Polyglot 评估:o3-mini
  • 工具:Bash(命令执行)+ Edit(文件编辑)

5. 消融变体

变体 描述
DGM w/o self-improve 固定元 Agent 重复修改后代(类似 ADAS)
DGM w/o open-ended 只保留最新 Agent;功能丢失则回退
完整 DGM 档案 + 开放式探索 + 自我改进

实验结果

主要性能提升

基准 初始 最终 提升
SWE-bench 20.0% 50.0% +30.0 pp
Polyglot (50 任务) 14.0% 38.0% +24.0 pp
Polyglot (完整) 14.2% 30.7% +16.5 pp

消融对比

  • DGM w/o self-improve:增益快速饱和
  • DGM w/o open-ended:单次差修改后即陷入停滞
  • 完整 DGM 显著优于两种消融变体

跨模型迁移

配置 基线 DGM Agent
Claude 3.7 Sonnet 19.0% 59.5%
o3-mini 23.0% 33.0%

跨基准迁移

方向 表现 基线
SWE-bench Agent → Polyglot 28.9% 14.2%
Polyglot Agent → SWE-bench 24.5% 20.0%

迁移能力说明 DGM 学到的是通用编码能力而非过拟合到特定基准。

自主发现的改进

DGM 自主发现了以下策略:

  • 按行号的精细文件查看
  • 基于字符串替换的精确文件编辑
  • 多次尝试 + 投票策略
  • 跨尝试的学习机制
  • 同行评审评估机制

实验设置细节

  • 迭代次数:80(每次迭代产生一个新 Agent)
  • 并行度:SWE-bench 2 并行,Polyglot 4 并行
  • 计算成本:约 2 周 / SWE-bench 单次运行 + 大量 API 费用

安全考虑

已实施的保障措施

  • 沙箱执行环境
  • 严格时间限制
  • 自改进限制在 Python 代码
  • 所有修改的可追溯谱系
  • 主动性能和代码变更监控

潜在风险

  • 基准优化错位:仅优化指标可能引入漏洞
  • 可解释性退化:迭代自修改可能产生越来越不透明的逻辑
  • 累积错位:连续代际可能放大初始偏差

个人思考

  1. 开放式探索的必要性:档案机制避免了局部最优陷阱,”创新之路经过低性能节点”这一洞察非常深刻。
  2. 经验验证 vs 形式证明:务实的选择——在实践中形式化证明不可行,经验验证是合理的替代。
  3. 自引用对齐:将下游任务性能与自改进能力挂钩,创造了自然的对齐激励。
  4. 迁移性说明 DGM 学到的是通用编码技能,而非针对特定基准的 tricks。
  5. 与 HGM 的关系:DGM 用性能+后代数选择父代,而 HGM 用 Clade-Metaproductivity(更理论化的指标)——两种选择压力的对比很有趣。
← 返回列表