乐于分享
好东西不私藏

AI 能自己改自己代码了?Darwin Gödel Machine 解读

AI 能自己改自己代码了?Darwin Gödel Machine 解读

如果 AI 能自己进化,还需要程序员吗?

2025 年 5 月,Sakana AI 与英属哥伦比亚大学(UBC)联合发表了一篇论文——Darwin Gödel Machine: Open-Ended Evolution of Self-Improving Agents(arXiv: 2505.22954)。

它回答了一个科幻级问题:

AI 能不能不依赖人类,持续修改自己的代码、让自己变得更强?

论文给出的答案,比「能」更具体——能,而且已经在编程基准上跑出了实打实的数据。

80 轮自我迭代后,一个简陋的编程 Agent,在 SWE-bench 上的通过率从 20.0% 涨到 50.0%,在 Polyglot 上从 14.2% 涨到 30.7%——追平甚至超越了人类手工打磨的开源 Agent。

代码已开源:https://github.com/jennyzzt/dgm[1]

论文要解决什么问题?

今天几乎所有 AI 系统,都有一个共同天花板:

架构是人设计的,改进靠人推动。

  • Transformer 是人发明的
  • Prompt 模板是人写的
  • Agent 工具链是人拼的
  • 每次升级,背后都是工程师在加班

Schmidhuber 在 2007 年提出过理论方案——Gödel Machine(哥德尔机):一个能反复修改自身代码、且每次修改都数学可证明有益的 AI 系统。

想法很美好,现实很骨感:在真实 AI 系统上,你几乎无法形式化证明「改这段代码一定更好」。

比如给 Agent 加一个测试工具,在 A 项目里提速,在 B 项目里可能反而把它搞糊涂——没有通用证明,只有具体场景下的经验结果。

Darwin Gödel Machine(DGM)换了一条路:别追求数学证明,用实验数据说话,用进化算法探索。


核心思路:达尔文 + 哥德尔

论文名字里藏着两个关键词:

名字来源 贡献什么
Gödel(哥德尔) 自我指涉、自我改进——系统改的是自己的代码
Darwin(达尔文) 开放式进化——不靠单线爬坡,靠种群多样性和自然选择
传统优化(爬山算法):
  当前最优 → 改一点 → 更好就留,不好就丢
  问题:容易困在局部最优,错过「先退步再飞跃」的路径

DGM(开放式进化):
  维护一个 Agent 档案库 → 从任意历史版本分支 → 并行探索多条路径
  即使某条路径暂时退步,也继续探索——因为「垫脚石」可能在未来组合出突破

论文里有个经典案例:SWE-bench 实验第 4 轮和第 56 轮,新 Agent 分数一度低于父代。传统方法会直接放弃这条路,但 DGM 继续探索,到第 70 轮,这条线上的后代超越了所有前辈。

进化不怕暂时的退步,怕的是过早关掉探索。


DGM 怎么工作?一个循环讲清

DGM 的初始状态极简:一个只有 Bash 和文件编辑两个工具的编程 Agent,底层模型冻结(不自训练权重)。

然后进入无限循环:

┌─────────────────────────────────────────────────┐
│  1. 从档案库选一个「父代 Agent」                    │
│     (高性能 + 探索不足 的优先)                    │
├─────────────────────────────────────────────────┤
│  2. 自我修改阶段                                   │
│     父代读自己的代码 + 评测日志                      │
│     → 提出改进方案 → 改写自己的代码库                │
│     → 产出一个「子代 Agent」                         │
├─────────────────────────────────────────────────┤
│  3. 评测阶段                                       │
│     子代能编译吗?还能改代码吗?                     │
│     → 在 SWE-bench / Polyglot 上跑分              │
├─────────────────────────────────────────────────┤
│  4. 入库                                         │
│     合格的子代加入档案库,成为未来分支的起点           │
└─────────────────────────────────────────────────┘
          ↑                              │
          └──────── 重复 80+ 轮 ─────────┘

关键设计:档案库只增不减。

每个 Agent 都是进化树上的一个节点,任何节点都可以被选中继续变异。这形成了一棵不断分叉的树,而不是单链条的「最新版覆盖旧版」。


它自己发现了什么改进?

人类工程师花数月打磨的 Agent 工具链,DGM 在 80 轮迭代里自己摸索出来了:

工具层改进

  • 精细文件查看:从「只能看整个文件」进化到「按行号查看」
  • 精准编辑:从「整文件替换」进化到「字符串级别局部替换」
  • 更合理的 Bash 命令使用策略

工作流改进

  • 多次尝试:同一任务生成多个方案,选最优
  • 同行评审机制:用另一个大模型评估并筛选解决方案
  • 历史记忆:后续尝试会参考之前失败的经验

这些不是人类写死在 Prompt 里的,是 Agent 分析自己的失败日志后,自主决定要实现的功能。


硬数据:提升了多少?

SWE-bench Verified

阶段 通过率
初始 Agent 20.0%
80 轮进化后 50.0%
人类手工开源 SOTA ~50%(可复现版本)

从入门水平追到了人类顶尖工程师花大量时间打磨的水平。

Polyglot(多语言编程)

阶段 通过率
初始 Agent 14.2%
进化后(全集评测) 30.7%
人类手工 Aider 被超越

起点比 Aider 低,终点比 Aider 高——自动化设计追上了人类持续一年的手工优化。

消融实验:两个机制缺一不可

变体 结果
完整 DGM 最佳
去掉自我改进(修改者自身不进化) 早期有提升,很快停滞
去掉开放式探索(只改最新版) 一次改坏了就很难恢复,整体更低

自我改进让系统越改越会改;开放式探索让系统不怕走弯路。


和现有 Agent 技术比,新在哪?

方向 代表工作 局限 DGM 的突破
手工 Agent Cursor、Copilot、Dify 架构固定,升级靠人 架构自己进化
元学习优化 Prompt ADAS 等 元 Agent 固定,只做一阶优化 修改者自身也在进化
单链自我改进 部分自参照 Agent 只从最新版分支,易困局部最优 档案库 + 多路径并行探索
Gödel Machine 理论 Schmidhuber 2007 需要数学证明,无法落地 用实验验证替代证明

DGM 的本质:把「AI 研发」本身也变成了一个可搜索、可进化的问题。


安全吗?论文花了整整一节讨论

自改代码的 AI,听起来像天网雏形。论文对此非常谨慎:

措施 说明
沙盒执行 所有 Agent 活动在隔离环境运行
时间限制 防止无限循环消耗资源
范围限定 仅限 Python 代码库和编程任务,不能随意改任何东西
修改可追溯 档案库保留完整进化树,每步改动可审计
人工监督 实验全程有人类研究者监控

论文也坦承:当前安全措施针对研究环境,离生产级自治还有距离。 未来方向包括把自我改进导向安全性和可解释性增强,类似 Constitutional AI 的思路。


三个需要冷静的局限

局限一:只进化 Agent 设计,不进化模型权重

底层大模型(Claude 3.5 Sonnet 等)是冻结的。DGM 改的是工具、工作流、Prompt 逻辑——不是重新训练一个更强的 FM。论文明确说,训练新基础模型留作未来工作。

局限二:目前只在编程任务上验证

自我改进能力是否迁移到医疗、法律、机器人等领域,尚无证据。

局限三:算力成本不低

80 轮迭代,每轮都要跑编程基准评测,背后是大量 API 调用和计算资源。这不是个人开发者能在笔记本上复现的实验。


对普通人意味着什么?

对开发者

短期不会取代程序员。但「设计 Agent 架构」这件事,未来可能部分自动化——你写的工具链,AI 可能自己摸索出更好的版本。

价值转向: 从「手写每一个 Agent 模块」→「设计进化环境和评测标准」。

对 AI 行业

如果自我改进闭环成立,AI 能力的提升速度可能从「人类研发周期(月/年)」压缩到「机器迭代周期(天/周)」。

Good 1965 年提出过「智力爆炸」假说——DGM 是这条路上第一个有可复现实验数据支撑的工程尝试。

对所有人

不必恐慌,但值得正视:

  • AI 不再只是「被人使用的工具」,正在变成「能改造自己的系统」
  • 评测基准 + 安全沙盒 + 人类监督,是这套系统能不能安全放大的三根支柱
  • 开源代码意味着全球研究者都能参与——加速进展,也放大风险

怎么读这篇论文?

必读部分:

  1. Abstract + Introduction——理解动机
  2. Section 3——DGM 算法核心
  3. Section 4.4——实验结果和消融
  4. Section 5——安全讨论

可以跳过的部分:

  • 附录里的伪代码细节(除非你要复现)
  • 与 Program Synthesis 相关的冗长 Related Work

配合资源:

  • 论文:https://arxiv.org/abs/2505.22954[2]
  • 代码:https://github.com/jennyzzt/dgm[3]
  • Sakana AI 官方解读:https://sakana.ai/dgm/[4]

写在最后

Darwin Gödel Machine 不是「AGI 到了」的信号,但可能是「AI 能自己帮自己进化」的第一个扎实证据。

它把两个古老思想拧在了一起:

  • 哥德尔式的自我指涉——改的是自己的代码
  • 达尔文式的开放探索——不怕绕路,只怕停步

80 轮迭代,20% 到 50%——数字背后,是一个简陋 Agent 靠自己发现了精细编辑、多次尝试、同行评审这些人类工程师习以为常的技巧。

问题不再是 AI 能不能自我改进,而是:我们准备好用什么样的评测标准和安全边界,来约束这种自我改进了吗?


免责声明

本文内容仅供学习交流参考,不构成任何投资、法律、医疗或其他专业建议。文中所述观点、方法及案例基于公开信息整理,可能存在时效性或局限性。读者应结合自身情况独立判断,因参考本文内容所产生的任何后果,由读者自行承担。

引用链接

[1]https://github.com/jennyzzt/dgm

[2]https://arxiv.org/abs/2505.22954

[3]https://github.com/jennyzzt/dgm

[4]https://sakana.ai/dgm/

相关学习资料