Darwin Godel Machine: Open-Ended Evolution of Self-Improving Agents
Darwin Gödel Machine:让 Agent 改写自己
通过修改自身代码、在编程 benchmark 上验证效果,并保留多样化的 Agent 档案,探索开放式 self-improvement。
Classification & RSI Relation 1 Variant · Editorial Assessment
主题标签用于检索;以下按实际 Experiment / Variant 判断更新对象与证据。Not Demonstrated 表示这项研究未提供相应证据。
Main Method
- Update Target
- Architecture Evolution · Tool & Skill Evolution
- Loop Role
- Solver · Proposer · Integrator
- Persistence
- Across Improvement Rounds
- Recursive Reuse
- Demonstrated
- Evidence
- Task Gain · Recursive Reuse · Held-out Transfer
- System Boundary
- Agent Code;以该论文实际可更新组件为边界,固定部分见下方判定。
- Feedback
- 来自编程 benchmark 的执行结果、测试得分与评估日志;通过外部可执行任务验证候选 Agent。
- Evidence Scope
- foundation model weights 冻结,开放探索中的档案维护与父代选择也固定;benchmark 得分提升是代码系统改进证据,不能直接推出全系统无约束 recursive evolution。 已核验固定版本的相关方法与主要结果;未独立复现。
Agent 后代进入后续 self-modification;FM weights、archive maintenance 和 parent selection 保持固定。Recursive Reuse 记录结构,有限任务成绩不能证明无限改进。
检查原文设置 ↗原论文明确提出或报告的内容
相关文献中已有的知识与结论
基于证据的解释、重建或教学推演
待验证的猜测、实验计划或新研究提案
Idea Reconstruction 是从已知背景出发的推演,不代表作者真实心理过程。Follow-up 是研究提案;相关工作比较不等于已证实 Novelty。教学示例与原文案例在正文中区分。
Contents · 12 Questions
Core Intuition
用一个清楚的视角抓住方法本质。
self-modification 可能需要先保留暂时不领先的方案,再把它们作为后续创新的起点。DGM 将经验验证与多分支档案结合,使新工具或流程有机会在后代中发挥作用;recursion 之处在于负责修改代码的 Agent 也使用演化后的自身实现。
Method & Worked Example
沿着输入、处理、输出走完 Pipeline。
沿用论文真实的 Code Editing 场景:输入是一个父代 Agent 的源码、历史版本与编程任务日志。初始实现只能整文件编辑,修改者据此加入更精细的编辑工具。候选先通过基本运行与自我编辑检查,再在指定任务上执行,输出新版源码及成绩,进入 Archive。下一轮可以选用这个 Agent 修改另一个版本。这里被保存的是 Agent 工具实现;用户仓库中的补丁只是评估其能力的产物。
Mathematical Foundations
从符号、直觉与简单例子理解理论。
这篇论文没有给出开放式进步的收敛定理。先理解最简单的 Fitness:N 道题每题通过记 1,否则记 0,加总后除以 N 就是成功比例。这个值用于比较候选,但 Archive 还保留不领先的可运行版本。若测试集很小,两个分数之差可能来自采样噪声;若测试集被反复用于选择,最高分还会包含 Selection Bias。因此,Fitness 上升与真实泛化提高需要两组数据分别测量。
J(A) = (1/N) Σᵢ 𝟙[A solves task i] A: Agent implementation; N: evaluation tasks 𝟙[condition] = 1 if true, otherwise 0
Experiments & Claims
Research Question → Experiment → Answer
Question:Archive 探索与自我修改是否真的有帮助?→ Experiment:与移除开放探索或自我改进的设置比较,并检查跨任务、跨 Model 的迁移。→ Answer:作者报告完整系统得到更强的候选,部分改进可迁移;这些对照支持两种机制在所测设置中的贡献。它们没有单独估计每一代 Improver 在完全相同起点下的后继质量。
论文报告,冻结 foundation model 后,通过代码 self-modification,SWE-bench Verified 的 200 题子集成绩由 20% 提升至 50%;完整 Polyglot benchmark 由 14.2% 提升至 30.7%。原文还报告跨 benchmark、未参与 search 任务的迁移,结论仍限于所用 model、任务与 search 预算。
Takeaways
这篇论文改变了哪些判断?
阅读 DGM 时应同时保存三条轨迹:当前最强 Solver、Archive 的组成、实际承担修改工作的父代。只看最佳分数曲线会隐藏绕路与失败,也无法解释后继从哪里来。代码中的 Recursive Reuse 有直接机制证据;长期改进速度是否提高,需要更强的因果对照。
One-Week Reproduction
用一周检验一个最小且明确的命题。
Day 1–2:建立 20 个开发任务和 20 个隐藏测试任务,固定 Model、Token Budget 与初始 Agent。Day 3–5:各运行三次短搜索,比较保留完整 Archive 与只保留当前最佳版本。Day 6–7:统一重测隐藏任务,记录候选数、总成本及有效祖先。只验证“保留中间版本是否帮助搜索”,不尝试复现整个大规模结果。
Counterexample Design
如何构造有辨识力的反例?
构造一组任务:加入专用字符串规则即可提高开发集得分,但这些规则会让 Agent 的源码更长、更难修改。将该高分 Agent 与较简洁的低分 Agent 放在相同新任务起点、相同改进预算下。如果高分父代产生的后继更差,就反驳了用 Solver Fitness 代理 Improveability 的充分性。
Follow-up Research
从缺陷与需求推导新的研究问题。
后续相关工作 HyperAgents 已研究可编辑 Meta-Agent,并用受控的 Improvement@k 比较产生更好后继的能力。因此,仅增加 Improver 评测不足以支撑新颖性。
研究“改进组件的可迁移因果作用”:从演化源码中分离工具、记忆管理与修改策略,把每个模块交叉移植到不同父代,再测后继产生能力。目标是找到可跨 Agent 保留的 Improvement Primitive,而非继续扩大 Archive。STOP 与 SICA 展示整套 Improver 的复用,但模块移植后的因果贡献仍需独立识别;若模块只能在原始家族生效,提案的可组合性假设就失败。 相对 HyperAgents,待检验的缺口是改进机制在何种条件下可分解、移植与继承;需要同起点、同预算的组件交叉实验,识别机制作用及交互项。这个缺口尚未完成穷尽式检索,不能宣称已确认 Novelty。
Sources & Verification
阅读已固定版本的原文 Background、方法与主要结果,结合下列相关文献撰写。Paper Claim 表示作者报告,未独立复现;Inference 包括数学教学推演与 Idea Reconstruction。One-Week Reproduction、Counterexample 和 Follow-up 均为待执行提案,Novelty 尚需更全面的文献与实验检验。
- [1] Darwin Godel Machine: Open-Ended Evolution of Self-Improving Agents · v3 ↗原文 Background、Method / Formalization 与主要实验或理论结论。数字沿用原文设置;未独立运行完整实验。
- [2] Automated Design of Agentic Systems ↗相关方法与研究背景;用于说明具体差异,不能替代对本篇结论的验证。
- [3] Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation ↗相关方法与研究背景;用于说明具体差异,不能替代对本篇结论的验证。
- [4] A Self-Improving Coding Agent ↗相关方法与研究背景;用于说明具体差异,不能替代对本篇结论的验证。
- [5] HyperAgents ↗Follow-up 的相关工作核查;晚于原论文的研究仅用于评估提案,不作为作者当时的知识或动机。
