Darwin Gödel Machine: Open-Ended Evolution of Self-Improving Agents——达尔文·哥德尔机器:自改进智能体的开放式进化
文章核心概要本文提出并实现了一个名为达尔文·哥德尔机器DGM的全新AI系统。该系统能够自主地、持续地修改自己的源代码从而在编码任务上不断自我改进其核心创新在于将自我改进与开放式进化相结合并依赖经验验证而非形式化证明。 主要研究目标实现自指式自我改进构建一个不仅能解决任务还能通过重写自身代码来提升未来改进能力的AI系统。引入开放式探索通过维护一个“智能体存档”并行探索多条改进路径避免陷入局部最优并能将过去的“垫脚石”即使是次优解用于未来的创新。经验验证替代形式证明绕过传统哥德尔机器需要“形式化证明每次修改有益”的不切实际要求转而通过在实际编码基准如SWE-bench上的测试结果来验证每次修改的有效性。 核心机制DGM如何工作初始化从一个具有基础代码编辑和工具使用能力如Bash、文件编辑器的初始编码智能体开始。迭代循环选择父智能体从不断增长的“智能体存档”中根据性能分数高和新颖性子代少选择父智能体。自我修改父智能体分析其过去的失败评估日志利用一个强大的诊断模型如OpenAI o1提出改进建议然后将其作为“问题”来实现从而修改自己的代码库生成一个新的子智能体。评估与存档在编码基准如SWE-bench或Polyglot的子集上评估新智能体。如果它保留了基本的代码编辑能力则将其加入存档成为未来迭代的潜在“父体”。开放式探索所有被评估过的、功能完整的智能体都被保留在存档中并有机会成为父体这与仅保留最佳个体的传统方法不同。 主要实验结果DGM在两个流行的AI编码基准上进行了测试取得了显著成果基准初始性能基础智能体DGM发现的最佳智能体性能性能提升SWE-bench(Python, 多文件)20.0%50.0%30%Polyglot(多语言, 单文件)14.2%30.7%(完整基准)16.5%与基线对比DGM显著优于无自我改进固定元智能体和无开放式探索始终从最新版本进化的基线证明了两个核心组件的必要性。与人类设计对比DGM发现的智能体性能已可比肩或超越像Aider这样由人类开发者长期维护的开源SOTA解决方案。泛化能力DGM发现的改进如更好的编辑工具、多候选方案投票机制可以迁移到其他大语言模型如从Claude迁移到o3-mini、其他基准甚至其他编程语言如从Python任务迁移到C任务表明其改进是通用性的能力提升而非过拟合。创新路径DGM的进化树显示重大创新如节点24常源自于性能平平的“垫脚石”印证了开放式探索的价值。️ 自动发现的具体改进示例DGM自主发现并实现了多种有价值的改进例如细粒度编辑工具将“编辑整个文件”升级为“按行查看”和“基于字符串替换的精确编辑”。多候选方案与投票生成多个解决方案然后使用另一个模型或评分机制选择最佳的一个。上下文管理与自我纠正在遇到上下文过长时自动总结历史对话或在失败后调整策略重试。⚠️ 安全与局限性讨论安全措施所有实验均在沙盒环境中运行有严格的时间限制和人类监督以防止意外行为。所有修改都有完整的谱系记录便于审查和回滚。伦理考量文章讨论了自我改进AI可能带来的风险如“目标黑客”即智能体为了获得高分而钻评估指标的空子并倡导将安全目标本身也纳入优化循环。主要局限计算成本高昂一次完整的运行80次迭代在SWE-bench上约需2周并产生显著的API调用费用。依赖底层FM能力DGM的改进能力受限于其使用的大语言模型如Claude 3.5 Sonnet的推理和编程能力。搜索空间受限目前DGM主要改进的是基于FM的“工作流”和“工具”尚未涉及重写FM本身的训练过程。 未来方向文章提出了几个有前景的未来工作方向进化“进化过程”本身让DGM也能修改其父代选择、存档管理等元算法。纳入人类反馈探索将人类偏好作为优化目标之一的方法。迈向通用智能体在更多样化的任务上运行DGM以进化出能力更全面的AI。这篇文章展示了一条通向自主、持续、开放式AI进化的可行且有前景的道路是构建能够像科学一样自我加速进步的AI系统的重要一步。这里是自己的论文阅读记录感兴趣的话可以参考一下如果需要阅读原文的话可以看这里如下所示项目地址在这里如下所示摘要当今大多数人工智能系统受限于人类设计的固定架构无法自主地、持续地自我改进。另一方面科学方法本身是一个累积且开放式的系统每一项创新都建立在先前的成果之上从而促成未来的发现。人们越来越希望能将当前推进 AI 的手动过程自动化。如果安全可行这种自动化将加速 AI 发展让我们能更快地受益于此。这一前景引出了一个问题AI 系统如何能够在更好地解决相关问题成为更好的问题解决者的同时无尽地自我改进元学习可以自动化发现新算法但受限于一阶改进和人类对合适搜索空间的设计。哥德尔机器Schmidhuber 2007提出了一种理论替代方案一个能以可证明有益的方式反复修改自身的自改进 AI。不幸的是在实践中证明大多数修改无益是不可能的。我们引入了达尔文·哥德尔机器DGM这是一个新颖的自改进系统它迭代地修改自身的代码从而也改进其修改自身代码库的能力并使用编码基准对每次更改进行经验验证。受达尔文进化论和开放式研究启发DGM 会增长一个生成编码智能体的存档。它从该存档中采样智能体这些智能体自我修改以创建自身的新颖有趣版本。这种开放式探索形成了一棵不断增长的、多样且高质量的智能体树并允许并行探索搜索空间中的许多不同路径。实验证明DGM 能自动提升其编码能力例如更好的代码编辑工具、长上下文窗口管理、同行评审机制将 SWE-bench 上的性能从 20.0% 提高到 50.0%在 Polyglot 上从 14.2% 提高到 30.7%。此外DGM 显著优于没有自我改进或开放式探索的基线。所有实验均在安全预防措施下进行例如沙盒、人工监督。总体而言DGM 代表了向自改进 AI 迈出的重要一步它能够沿着通往无尽创新的道路收集自身的垫脚石。1 引言科学进步是累积且开放式的每一项突破都站在无数先前见解的肩膀上。同样我们最先进的 AI 系统也建立在长期的创新谱系之上。例如作为当前大型语言模型LLMsBrown 等人2020基石的 TransformersVaswani 等人2017并非孤立出现而是建立在多年过往创新之上如循环神经网络Linnainmaa1970Amari1972Hopfield1982Rumelhart 等人1985和注意力机制Schmidhuber Huber1990Bahdanau 等人2015Kim 等人2017Parikh 等人2016。然而当今大多数 AI 系统仍然受限于固定的、由人类设计的架构它们在预定义的边界内学习缺乏自主重写自身源代码以实现自我改进的能力。因此AI 发展的每一次进步仍然严重依赖人工干预限制了进步的步伐。本文探讨了安全地自动化搜索更好 AI 这一引人入胜的可能性。可以想象一个 AI 系统如同科学发现本身一样成为自身进步的动力引擎建立在其过去的基础上递归地改进并推动自身走向更高级的能力。图 1达尔文·哥德尔机器。DGM 通过交织自我修改与下游任务评估迭代地构建一个不断增长的智能体存档。存档中的智能体通过开放式探索被选中进行自我修改。Schmidhuber2007提出了一类数学上严谨的、自指的、自我改进的问题求解器。它依赖形式化证明来证明代码重写的合理性确保任何自我修改都是可证明有益的。然而在实践中且在没有对系统施加限制性假设的情况下要正式证明对 AI 系统的修改是否有益是不可能的。例如虽然一个基于 LLM 的编码智能体似乎会因获得更多工具如代码搜索、测试运行器而受益但其实际影响在很大程度上取决于模型的训练和任务上下文例如为一个设置优化的测试工具在与其他工具配合使用时可能会混淆智能体。我们不是要求形式化证明而是根据基准对自我修改进行经验验证允许系统基于观察到的结果进行改进和探索。这种方法类似于生物进化其中突变和适应并非预先验证而是产生、尝试然后通过自然选择进行筛选。我们也从达尔文进化论Darwin 2023中汲取灵感并研究了维护一个先前发现智能体库作为未来世代垫脚石的有效性。我们提出了达尔文·哥德尔机器DGM一个自指的、自我改进的系统它编写和修改自身代码以成为更好的编码智能体。每次自我修改都需要 DGM 编辑自身的代码库。我们使用图灵完备的 Python这赋予了 DGM 构建任何可计算机器的潜力。我们的框架设想了能够重写自身训练脚本包括训练新的基础模型FM的智能体。然而我们在本文中没有展示这一点因为训练 FM 计算量巨大且会引入大量额外复杂性我们将其留作未来工作。相反本文侧重于改进具有冻结预训练 FM例如工具使用、工作流的编码智能体的设计。DGM 在自我修改阶段和评估阶段之间交替进行。在自我修改阶段从存档中选择的编码智能体生成自身的修改版本。在评估阶段每个修改后的智能体在编码基准上进行测试以评估其编码能力然后被添加到存档中。通过这个循环改进自身能力DGM 变得更擅长解决编码任务和进行未来的自我改进。一个关键假设是编码基准性能的提升表明编码能力更强因此自我修改和自我改进的能力也更强。此外DGM 维护一个生成的编码智能体存档最初只有一个智能体并随着时间的推移不断累积所有生成的变体。为了支持持续的自我改进DGM 从开放式研究Wang 等人2019Fernando 等人2024Faldor 等人2025中汲取灵感积累多样的垫脚石即有趣但次优的解决方案或可能促成未来突破的特征。这种开放式探索鼓励发现超越眼前性能增益的新颖且可能有用的自我修改。我们展示了在两个编码基准上的结果SWE-benchJimenez 等人2024和 PolyglotPaul Gauthier2024。DGM 在 SWE-bench 上自动将自身从 20.0% 提升到 50.0%在 Polyglot 上从 14.2% 提升到 30.7%。我们表明自我改进能够确保持续进步因为 DGM 优于使用相同基础智能体反复修改和生成新智能体而无自我改进的基线。我们还表明开放式探索和维护所有先前生成智能体的存档能够发现更好的编码智能体。DGM 优于没有开放式探索的基线即没有累积有趣不同垫脚石存档的基线在该基线中编码智能体总是基于自身的最新版本进行构建。总体而言DGM 代表了向能够基于自身先前创新进行构建并递归改进的 AI 系统迈出的一步。我们广泛考虑并讨论了安全方面包括沙盒和自修改的可追溯性以确保负责任的实验第 5 节。通过推进安全、自指、自我改进模型的可能性DGM 使我们更接近于不仅能学习而且能以开放式、自我加速的轨迹进化的 AI这在很大程度上类似于科学本身。2 相关工作开放式Open-Endedness。设计能够持续生成新颖且可学习工件的开放式 AI 系统是一个推动无限创新的重大挑战Stanley 等人2017。Hughes 等人2024将开放式描述为系统从观察者的视角生成既新颖又可学习工件序列的能力。一个核心困难在于构建和探索广阔的搜索空间以持续产生对人类而言有趣的工件Clune2019Jiang 等人2023。早期进展借鉴了质量-多样性算法、目标导向探索、内在动机和学习进度框架Pugh 等人2016Ecoffet 等人2019Lehman Stanley2011Oudeyer 等人2007而最近的进展则利用大规模基础模型FM作为人类趣味性的代理并作为跨不同领域生成和评估新行为的通用引擎Brown 等人2020Hu 等人2025Zhang 等人2024b。然而这些方法尚未闭合自指式自我改进的循环这意味着下游任务的改进并未转化为增强的自我修改能力或加速进一步创新。我们的目标是模仿科学和技术的加速发展其中新的工具和发现催化了更多发现的产生。我们如何模拟自然界进化的弧线它不仅趋向于复杂性而且趋向于更大的进化能力Dawkins2019Gerhart Kirschner2007Hendrikse 等人2007FM 智能体的元学习。许多基于 FM 的智能体是手工设计的。一些构建模块包括提示工程Chen 等人2023Schulhoff 等人2024、思维链Wei 等人2022Yao 等人2023Hu Clune2024Guo 等人2025Lightman 等人2023Muennighoff 等人2025Zelikman 等人2024a、自我反思Shinn 等人2023Yao 等人2023Madaan 等人2023、多智能体辩论Zhuge 等人2023Liang 等人2023Khan 等人2024、记忆Liu 等人2023Zhong 等人2024Modarressi 等人2023、温度采样Zhu 等人2024和检索增强生成Lewis 等人2020。这些组件的手动组合将系统的能力限制在人类设计者的聪明才智之内。最近出现了一些元学习方法利用 FM 自动优化提示Fernando 等人2024FAIRKhattab 等人2023Cheng 等人2024Yuksekgonul 等人2024Yuan 等人2024和设计智能体模块Zhang 等人2024cZhou 等人2024Yin 等人2024Zhuge 等人2024Rosser Foerster2025Zhang 等人2025aYe 等人2025Gao 等人2025Nie 等人2025Su 等人2025Zhang 等人2025bNiu 等人2025。智能体系统自动设计ADASHu 等人2025使用固定的元智能体迭代生成下游智能体针对目标基准进行评估并整合反馈以细化后续几代。相比之下DGM 是一个单一系统既解决下游任务即编码问题又优化自身实现即其代码库从而消除了对固定、手工制作的元智能体的需求并实现了自指的改进。自我改进的 AI。早期各种研究者概述了自我改进的理论和概念方法Good1966Schmidhuber19872007。一些自动自我改进的实用方法包括由神经网络权重参数化定义的系统Schmidhuber1993Hall2007Hobbhahn2025Kirsch Schmidhuber2022Irie 等人20222025Lu 等人2023Havrilla 等人2024b。Metz 等人2021开发了一种基于梯度的优化器它使用基于种群的训练变体进行自指的元训练Jaderberg 等人2017。Lange 等人2023将这种方法扩展到无梯度学习。Silver 等人2017使用自我对弈持续进化智能体在国际象棋和围棋等具有挑战性的领域实现了超人类表现。与 DGM 更密切相关的是最近利用基于 FM 的智能体进行自我改进的方法Yin 等人2024Robeyns 等人2025Hu 等人2024Zelikman等人2024bHuang 等人2022Singh 等人2023。Zelikman 等人2024b使用元智能体生成下游智能体并根据从生成的解决方案中得出的元效用更新元智能体。Yin 等人2024使用单一系统既解决下游任务又递归地修改自身。然而下游任务或元效用并不总是与自我改进所需的能力相一致。在 DGM 中下游任务的改进直接反映了自我改进能力的增强从而实现了自我加速进步的潜力。最相似的是同时期的 Robeyns 等人2025的工作它也使用单一智能体递归地解决编码问题并修改自身的代码库。与 Robeyns 等人2025以及 Zelikman 等人2024bYin 等人2024的主要区别在于DGM 有一个开放式探索循环鼓励超越眼前性能增益的自我修改从而避免停滞在次优状态。附录 B 还讨论了关于程序合成和达尔文进化的额外相关工作。3 达尔文·哥德尔机器哥德尔机器是一个理论构想指的是一种搜索能以可证明方式改进自身方法的 AISchmidhuber 2007。在本文中我们提出了达尔文·哥德尔机器DGM试图实现创建哥德尔机器这一长期梦想。DGM 放宽了哥德尔机器需要理论上证明更改将改进系统这一不切实际的要求转而要求来自实验的经验证据来证明提议的新版本确实提升了性能。此外由于 DGM 依赖改进的经验证据它可能会在可能系统即所有可计算算法的广阔搜索空间中陷入局部最优。为了解决这个问题DGM 在搜索过程中维护一个已发现解决方案的存档促进开放式探索而不是依赖单一解决方案的演化。由于这些原则与达尔文进化论Darwin 2023附录 B相呼应其中新创新通过从先前发现解决方案的存档中选择一个实体、修改它并在其有趣地新颖时保留它而产生Zhang 等人2024bFaldor 等人2025Stanley Lehman2015我们将我们的算法称为达尔文·哥德尔机器图 1。编码智能体的自指式自我改进。DGM 初始时只有一个编码智能体其进展通过编码基准进行评估。一个编码智能体被定义为一个单一系统通过代码库实现并由冻结的预训练基础模型FM驱动能够读取、写入和执行代码。当用通用图灵完备语言如 Python表达时代码是构建和改进智能系统的强大媒介因为它可以表示任何可计算的过程。最近的工作Hu 等人2025Zhang 等人2024c表明这种智能体可以通过对其设计例如提示、工作流和工具的元学习来改进这些设计在其代码库中实现。因此我们将自我改进定义为涉及修改智能体自身组件设计即其自身代码不包括下一段描述的开放式探索过程的编码任务。关键动机是经验证据必须反映系统自我改进和解决下游任务的能力。通过将 DGM 配置为编码智能体并测试其编码能力观察到的改进不仅证明了在下游任务中性能的增强也证明了进一步自我改进的能力因为自我改进从根本上说是一个修改编码智能体自身代码库的编码任务。基于种群的开放式探索。从一个初始编码智能体开始DGM 构建一个包含所有已发现智能体的存档。在每次迭代中DGM 选择父智能体进行自我修改并分支产生新的智能体。父智能体的选择大致与每个智能体的性能得分成正比与其具有代码库编辑功能的子代数量成反比附录 C.2。这有利于高性能但尚未被充分探索即现有子代较少的智能体从而促进对强执行者的利用和对有前途但采样较少的谱系的探索。所有智能体都保留非零的选择概率确保在计算资源充足的情况下任何改进路径都是可行的。每个被选中的父智能体会分析自身的基准评估日志提出下一个要实施的功能并将此提议作为问题陈述来执行附录 C.3。然后父智能体将建议的功能实现到自身的代码库中生成一个新的编码智能体。每个新生成的智能体都在选定的编码基准上进行定量评估以估计其编码能力。只有编译成功并保留编辑给定代码库能力的智能体才会被添加到 DGM 存档中因为只有它们才能继续自我修改。所有其他的都被丢弃。这个父智能体选择、自我修改和评估的循环持续进行逐步增长解决方案的存档。重要的是我们注意到存档中的解决方案可以作为垫脚石其带来的改进可能远晚于其最初发现的时间这使得我们的方法与爬山的智能体设计方法Robeyns 等人2025有显著不同。目前开放式探索过程即存档维护、父智能体选择是固定的不能被 DGM 修改我们将其留作未来的研究方向。附录 C.4 展示了 DGM 算法的伪代码。4 实验第 4.1 节描述了实验设置包括初始化 DGM 的初始编码智能体。我们在两个编码基准上进行了实验SWE-benchJimenez 等人2024和 PolyglotPaul Gauthier2024第 4.2 节。对于每个基准我们将 DGM 与两个基线进行比较无自改进智能体的 DGM 和无开放式探索的 DGM第 4.3 节。在所有实验中我们发现 DGM 优于这两个基线表明自我改进机制和开放式探索对于持续的性能提升至关重要第 4.4 节。此外我们还展示了 DGM 发现的特征可以跨模型、基准和任务迁移第 4.4 节。4.1 实验设置DGM 由一个单一的编码智能体初始化。这个基础智能体围绕一个冻结的 FM 构建并增强了工具使用能力Schick 等人2023Anthropic2024b。FM 在每个步骤自主决定其行动使用它认为合适的任何工具。基础智能体可以访问两个工具一个用于执行 bash 命令的 Bash 工具和一个用于查看和编辑目录及整个文件的编辑工具附录 C.1。智能体接收一个单一的输入提示指定目标仓库的位置、问题陈述和仓库的测试框架附录 C.1。基础智能体被设计得尽量轻量以提供一个简单的起点从而清晰地展示自我改进的效果。我们将 DGM 运行 80 次迭代每次迭代生成一个新智能体SWE-bench 并行运行 2 次迭代Polyglot 并行运行 4 次迭代附录 C.2。在自我修改期间SWE-bench 和 Polyglot 实验中的编码智能体均由 Claude 3.5 Sonnet (New)Anthropic 2024a驱动。在基准评估期间SWE-bench 的编码智能体由 Claude 3.5 Sonnet (New) 驱动Polyglot 则由 o3-miniOpenAI 2025驱动附录 D.1。4.2 基准我们在两个流行的基准上评估 DGM这两个基准评估编码任务的不同方面以验证算法在各种用例中的有效性。SWE-bench 和 Polyglot 都是评估 AI 智能体自动解决编码任务能力的基准。给定一个代码仓库和一个任务指令智能体需要修改仓库以完成任务。SWE-bench 和 Polyglot 都是广泛使用的基准Zhang 等人2024daXia 等人2024Cao 等人2024Google DeepMind2025Gauthier2024要求 AI 智能体导航代码仓库理解不同文件中函数之间的相互作用并在复杂的代码中发现细微错误。SWE-bench 只有 Python 任务而 Polyglot 有多种编程语言的任务。另一个区别是每个 SWE-bench 任务可能需要编辑多个文件而每个 Polyglot 任务主要涉及在单个文件中从头实现解决方案尽管智能体仍需检查其他文件以了解需要哪些更改导致总文件编辑次数较少。SWE-bench。为避免在无法解决的任务上浪费计算资源我们使用 SWE-bench VerifiedOpenAI 2024这是 SWE-benchJimenez 等人2024的一个经人工筛选的子集其中所有任务都是可解的。在本文中术语 SWE-bench 默认指 SWE-bench Verified 子集。Polyglot。Polyglot 包含多种编程语言C、Rust、Python 等的任务Paul Gauthier2024。与最广泛使用的编码基准之一很可能包含在 FM 的训练集中SWE-bench 相比Polyglot 更为小众不太可能包含在 FM 的后训练数据中。此外Polyglot 主要由其开发者用于评估 AiderGauthier 2024。这提供了一个机会可以将自动设计的智能体与社区中一个全面的编码智能体进行比较该智能体由人类开发者经过一年多的时间针对 Polyglot 基准持续开发和测试。最后Polyglot 能够测试 DGM 在 Python 之外的多种编程语言上的泛化能力。我们遵循 Polyglot 排行榜的设置Paul Gauthier2024但有一个关键区别排行榜报告 pass2即智能体可以查看一次真实测试的反馈而我们报告 pass1即智能体从未看到真实测试结果。由于在完整基准上进行评估成本高昂附录 E.1我们使用分阶段评估策略来估计编码智能体的性能。通常当我们更有信心认为某个编码智能体是相对较强的执行者时我们会在更多任务上评估它。我们首先在 10 个任务上评估每个编码智能体以验证其基本的代码库编辑功能。只有保留代码编辑能力的智能体才能解决下游编码任务或执行进一步的自我修改。通过此初始阶段的智能体随后会在扩展的 50 个任务集上进行评估。对于 SWE-bench任务基于 SWE-bench-verified-miniHobbhahn2025选择该数据集旨在成为完整基准的代表性样本附录 E.2。对于 Polyglot任务是作为完整基准的随机子集选择的附录 E.3。由于我们使用的 LLM 本质上是随机的性能可能带有噪声。我们使用较小的子集评估来估计总体有效性并识别顶尖候选者。对于 SWE-bench如果某个编码智能体在 60 个任务子集上的成功率超过 40%这是一个根据初步运行中观察到的噪声启发的启发式阈值并且在存档中排名前两位那么它将在 200 个任务140 个加上之前的 60 个上进行评估以更准确地评估其真实编码能力附录 E.2。对于 Polyglot如果某个编码智能体在 10 个任务子集上的成功率超过 40%它将在扩展的 50 个任务子集上进行评估附录 E.3。4.3 基线为了隔离和评估 DGM 核心组件的贡献我们将 DGM 与两个基线进行比较无自改进智能体的 DGMDGM w/o self-improve和无开放式探索的 DGMDGM w/o open-ended exploration。DGM w/o self-improve在此设置中复制了 ADASHu 等人2025的方法其中负责修改编码智能体的元智能体在整个实验中保持为基础智能体不变算法 2。此基线使我们能够评估迭代式自我改进在加速更好编码智能体进化中的作用。DGM w/o open-ended exploration消除了存档的使用并且总是自我修改自身的最新存储版本算法 3。如果一个编码智能体自我修改到失去编辑代码库所需的基本功能它将无法再修改自身或解决任何编码任务。因此DGM w/o open-ended exploration 保留其仍保持代码库编辑基本功能的最新版本。此基线使我们能够评估拥有存档以及开放式探索Clune 2019Stanley Lehman 2015Zhang 等人 2024bFernando 等人 2024Lee 等人 2020Samvelyan 等人 2024Colas 等人 2022b在引导智能体进化方面那些有据可查的有益原则的影响。除了学习的基线我们还将 DGM 与手工制作的、开源的解决方案进行比较。对于 SWE-bench我们采用了经过验证即 SWE-bench 团队能够复现结果的最先进SoTA开源解决方案附录 E.4。对于 Polyglot我们采用了代表性的智能体AiderGauthier2024它是开源的旨在支持多种编程语言和大规模代码库编辑附录 E.5。为了公平比较我们在用于评估 DGM 的相同基准子集上测量了已解决任务的百分比附录 E.2附录 E.3。这些值在图 2 中显示为虚线水平线。4.4 结果经过 80 次 DGM 迭代编码智能体的性能在 SWE-bench 上从 20.0% 提升到 50.0%在 Polyglot 上从 14.0% 提升到 38.0%图 2。由于在 Polyglot 实验设置中 DGM 仅在 50 个任务上评估第 4.2 节我们额外在完整的 Polyglot 基准上评估了基础智能体和 DGM 发现的最佳智能体以更准确地估计改进。在完整的 Polyglot 基准上DGM 将编码智能体从 14.2% 提升到 30.7%。这表明 DGM 可以自动自我改进创造出更好的编码智能体。此外DGM 发现的最佳智能体的性能与 SWE-bench 上经过验证的开源、人类设计的最先进方法相当图 2。在 Polyglot 上尽管 DGM的基础智能体性能低于 Aider但它发现了一个远超 Aider 的智能体图 2。DGM 发现的智能体在两个基准上都可与手工制作的智能体相媲美或表现更优。虽然 SWE-bench 的 SoTA 智能体和 Aider 是由人类付出巨大努力精心塑造的但 DGM 预示了一个未来在这样的未来中这种独创性可以被自动化通过自我指涉的持续自我改进循环来进化。DGM 自动改进了 FM 的使用工具和工作流程图 3。例如DGM 增强了编辑工具允许更细粒度的文件查看按行和更精确的文件编辑通过字符串替换而不是总是查看或替换整个文件。工作流程的改进包括多次尝试解决任务以及使用另一个 FM 来评估和选择最佳解决方案。其他工作流程改进还包括在生成后续尝试时考虑先前的尝试。附录 F.1 和附录 F.2 分别展示了在 SWE-bench 和 Polyglot 上导致最终发现的最佳智能体的所有修改。由于开放式探索允许以非零概率从存档中的任何智能体分支DGM 可以摆脱欺骗性的性能低谷或高峰。例如在 SWE-bench 实验的第 4 次和第 56 次迭代中尽管智能体的得分暂时低于其父代但 DGM 仍然能够沿着该路径探索创新并创建一个超越其所有前驱的新智能体图 3。此外开放式探索允许尝试实现相同目标功能的不同实现。例如虽然目标是提供更细粒度的编辑工具但该功能的具体实现方式可能有很大差异从而导致截然不同的性能附录 G。DGM 可以探索多种实现方式以找到最合适的并避免陷入次优的实现。DGM 在两个基准上都优于 DGM w/o self-improve 和 DGM w/o open-ended exploration 基线图 2。在不更新用于修改编码智能体的元智能体的情况下DGM w/o self-improve 在早期迭代中改进了智能体但其增益很快趋于平缓附录 A.1。在 DGM w/o open-ended exploration 中只保留最近的智能体因此性能不佳的自我修改会使后续改进更难实现附录 A.1。图 2自我改进和开放式探索使 DGM 能够持续取得进步并提升其性能。DGM 自动发现越来越好的编码智能体并在左SWE-bench 和右Polyglot 上都表现更好。它优于缺乏自我改进或开放式探索的基线表明这两个组件对于持续的自我改进都至关重要。这些分数来自对第 4.2 节详述的基准子集的评估。图 3DGM 自动自我改进成为更好的编码智能体。左DGM 在 SWE-bench 上运行期间生成的编码智能体存档。每个节点代表一个编码智能体节点 0 对应基础智能体。节点颜色表示在 SWE-bench 上的性能已解决任务的百分比而边框颜色反映该智能体被评估的任务数量。边显示哪些智能体自我修改产生了后代。许多通往创新的路径穿越性能较低的节点而关键创新如节点 24导致在其基础上构建的创新爆发。这两个特性都突显了开放式搜索的优势。右DGM 在 SWE-bench 上的进度图。浅蓝色线显示所有具备基本代码库编辑功能智能体的平均得分。蓝色线追踪存档中每个迭代达到的最佳得分。深色线显示最终发现的最佳智能体及其前驱节点的谱系其中包括两次性能下降。这说明了开放式搜索的优势它探索一组多样且有趣的垫脚石而不是只关注从迄今找到的最佳解决方案分支。图 4模型、基准和任务之间的迁移。DGM 发现智能体的优越性能可以跨左不同模型、中基准以及右Polyglot 中不同编程语言任务例如从 Python 任务到 C 任务迁移。为了评估 DGM 改进的通用性我们使用了与优化期间不同的 FM 来测试基础智能体第 4.1 节和 DGM 运行期间发现的最佳智能体图 2。对于 SWE-benchDGM 使用 Claude 3.5 Sonnet (New) 运行我们将 FM 替换为 Claude 3.7 SonnetAnthropic 2025或 o3-mini并在 200 个任务上进行评估图 4左。使用 o3-mini基础智能体达到 23.0%DGM 发现的智能体达到 33.0%。使用 Claude 3.7 Sonnet基础智能体达到 19.0%DGM 发现的智能体达到 59.5%。这些结果表明DGM 带来的改进能够跨 FM 泛化而不是与其运行期间使用的特定 FM 紧密耦合图 4。关于 Polyglot 的模型迁移结果见附录 A.2。此外我们研究了 DGM 发现的智能体在不同基准和编程语言之间的可迁移性。首先我们从一个基准例如 SWE-bench上评估 DGM 发现的最佳智能体并将其应用到一个完全保留的基准例如 Polyglot上反之亦然图 4中。在 SWE-bench 上进化的最佳智能体在 Polyglot 上达到 28.9%而初始智能体的基线为 14.2%。反之在 Polyglot 上进化的最佳智能体在 SWE-bench 上达到 24.5%优于原始基线 20.0%。由于每个智能体都是在从未接触过另一个基准的情况下优化的这些评估代表了真正的保留测试。跨基准的一致性能提升支持了我们的主张即 DGM 的改进反映了通用技能的获取而不是过拟合或利用基准特定的伪像。其次我们实验了一个仅在 Polyglot 的 Python 任务上训练的 DGM 版本然后将发现的智能体迁移到其他语言的任务。主要关注 Python 任务略微提升了 Python 任务上的性能但与非 Python 任务上的性能相比在 Polyglot 上训练的 DGM 有所下降图 4右。然而在搜索期间从 Python 迁移到其他未见过的语言后该智能体的性能仍与在所有语言上训练的 DGM 相当并显著优于基础智能体和 Aider。这些结果证明了所发现改进的稳健性表明它们并未过拟合特定编程语言。我们还在附录 A 中展示了额外结果。5 安全讨论具备自我改进能力的系统如 DGM代表了向更自主 AI 发展迈出的一步这与该领域长期追求的、让 AI 造福人类的目标一致Schmidhuber 1987Clune 2019Markoff 2016Lehman 2023。然而这种能力引入了源于系统自主修改自身代码能力的独特安全考量。仅为提升基准性能而优化的修改可能会无意中引入漏洞或与人类意图不符的行为即使它们改善了目标指标Bostrom 2020。特别是如果评估基准未能完全捕捉所有期望的智能体属性例如安全性和鲁棒性自我改进循环可能会在后续世代中放大错位。迭代式的自我修改也可能导致内部逻辑日益复杂和难以解释阻碍人类的理解、监督和控制Sheth 等人 2025Anwar 等人 2024Greenblatt 等人 2024Ganguli 等人 2022。认识到这些挑战DGM 的当前实现和实验设置包含了几项安全措施。所有智能体执行和自我修改过程都在隔离的沙盒环境中进行限制了它们影响宿主系统的能力从而减轻了意外操作的风险。沙盒内的每次执行都受到严格的时间限制减少了资源耗尽或无限行为的风险。自我改进过程目前被限制在通过修改智能体自身的 Python 代码库来提升特定编码基准性能这一明确定义的领域内从而限制了潜在修改的范围。此外我们积极监控智能体性能和代码更改DGM 存档提供了可追溯的修改谱系以供审查。在现阶段我们没有发现在生成的智能体中有害或恶意行为的证据自我修改主要集中在提升编码能力上。相反自我改进范式的一个显著潜在好处是它原则上可以被导向增强安全性和可解释性本身。我们对如何将 DGM 部署在 AI 安全设置中以开发应对 FM 幻觉的对策进行了初步研究附录 H。正如 DGM 学会改进其编码能力一样如果这些属性被纳入其评估标准它也有可能发现并整合更好的内部保障措施或为更大的透明度修改自身例如纳入类似宪法 AIBai 等人2022的原则Rosser Foerster2025。这提示了一条有希望但充满挑战的路径即自我改进成为构建更可信 AI 系统的工具。额外的研究也可以探索从一开始就将宪法 AI 编织进去尽管挑战将是如何激励系统保留这些指令一个值得探索的选项是创建系统的一个不可修改部分以便能够在停止时评估其余部分。DGM 展示了自改进 AI 的潜力同时由于前沿 FM 的当前限制以及沙盒等有效缓解措施它仍在安全的研究边界内运行。附录 I 提供了关于更广泛安全不确定性的额外讨论。我们主动包含此安全讨论旨在提高对新兴的自改进 AI 系统及其相关安全影响的认识特别是当这些系统不可避免地变得更加强大时Yudkowsky 等人 2008Bostrom 2002Ecoffet 等人 2020Bengio 等人 2024Clune 2019。因此我们主张持续研究 AI 生成算法Clune 2019和自改进系统的安全且有益的进化。6 结论与局限性我们介绍了达尔文·哥德尔机器DGM这是第一个由 FM 驱动的、具有开放式探索功能的自改进系统其在评估基准上的进步可以直接转化为更好的自我改进能力。我们展示了在 SWE-bench 和 Polyglot 这两个基准上DGM 能够自动发现更好的工具和 FM 系统从而实现更优的性能。通过自我改进和开放式探索DGM 展现出性能的持续提升使我们向自我加速、自我改进的 AI 系统又迈进了一步。我们证明了 DGM 能够自主达到与公开可用解决方案相当的性能。然而它仍落后于闭源的 SWE-bench SoTA 解决方案。一个开放问题是运行 DGM 更长时间是否会产生持续的性能提升并最终超越闭源解决方案。这些闭源解决方案通常依赖于由高技能专家团队精心开发的技术。由于 FM 尚未达到此类专家的能力水平例如在推理方面DGM 目前需要大量计算资源来发现改进。如第 4 节所述在 SWE-bench 上单次运行 DGM 大约需要 2 周时间并产生显著的 API 成本附录 E.1。我们假设进一步的进展将需要更有效地利用计算资源并发展更好的推理技能。由于此版本的 DGM 主要由 FM 驱动它固有地受限于底层 FM 的能力。因此一个令人兴奋的未来方向是将自我修改扩展到提示或 FM 工作流之外包括计算密集型方法例如重写其自身的训练脚本以更新 FM 本身。虽然此版本的 DGM 专注于编码但 AI 系统正越来越多地应用于广泛领域例如计算机视觉、创意写作。另一个有前途的扩展是开发能够超越编码领域进行自我增强的自改进 AI 系统。本工作的一个关键假设是编码基准能很好地反映智能体自我改进的能力因为自我修改任务要求智能体修改自身的代码库。然而可以设想一种替代方法即共同进化目标任务分布Faldor 等人 2025Wang 等人 2023c从而消除自我改进受限于单一目标的约束正如真正的开放式过程那样。附录 J 列出了额外的未来工作方向。在我们继续探索这项强大技术的同时我们也必须像第 5 节讨论的那样始终将安全放在首位。总之DGM 代表了通过能够编辑自身代码库的自改进系统实现 AI 开发自动化的重要一步。虽然当前计算和推理方面的限制制约了其全部潜力但 FM 和基础设施的持续进步可能会解锁更强大、更通用的自我改进。只要谨慎地处理安全问题第 5 节自改进 AI 系统和 AI 生成算法Clune 2019的未来将充满巨大希望能够开放式地无尽进化 AI不断重写或再训练自身以追求与人类价值观一致的更强大能力。伦理声明我们确认遵守 ICLR 道德准则。本研究在代码编辑智能体的有限上下文中探讨自改进 AI 系统并基于标准编程基准进行评估。未涉及人类受试者也未收集或处理任何个人身份信息PII因此无需机构审查委员会IRB批准。安全与滥用。自修改系统如果在没有约束的情况下运行或者优化过程无意中引入了不安全行为可能会带来安全风险。为减轻此风险我们实验中的所有智能体都在带有严格资源和时间限制的隔离沙盒内运行智能体具有有限的网络访问权限且无法修改宿主环境。自我改进的范围被限制在智能体自身的 Python 代码库和评估框架内。我们维护了一个完整的、可审计的代码更改和评估谱系存档支持回滚和事后分析。我们没有将发现的智能体部署在真实开发环境中。我们的发布计划代码、提示词和评估工件将排除任何授予提升系统访问权限的组件并将包含默认的沙盒、护栏和预期用途的清晰文档。双重用途、下游影响和局限性。更强大的自主编码智能体可能具有双重用途例如有助于软件维护但如果误用也可能助长有害代码的创建。我们相信研究益处例如推进受控、可审计的自改进方法并展示实用保障措施超过了风险。尽管如此我们明确不鼓励在安全敏感或非沙盒环境中部署并提供具体的安全建议第 5 节。我们对基准优化的实证关注可能无法捕捉所有期望的属性鲁棒性、可解释性或更广泛的社会价值。因此我们将基准提升视为通用 AI 发展必要但不充分的指标并讨论了将其他目标如安全、推理整合到优化循环中的途径。数据治理、知识产权和许可。我们在 SWE-bench Verified 和 Polyglot 上进行评估它们由开源代码仓库和任务组成。据我们所知我们遵守了数据集的许可证和使用条款。我们没有引入或分发专有代码。基础模型FM通过提供商的 API 在其服务条款下访问我们没有提交敏感数据也没有试图规避使用政策。与本研究一同发布的日志将被清理移除 API 密钥和任何偶然出现的敏感字符串。偏见、公平与公正。尽管我们的领域是软件代码而非以人为中心的文本但 FM 行为仍可能反映偏见例如语言或生态系统偏好并可能不成比例地惠及其工具在训练数据中代表性更好的社区。我们通过跨多种语言Polyglot评估并报告跨基准迁移结果来部分解决这一问题。未来工作应增加对偏见失败模式的诊断并包含更广泛的、社区驱动的任务集。利益冲突与资金。没有作者对在此评估性能的产品有经济利益。赞助商和雇主除了提供薪金或标准研究支持外未影响实验设计、分析或发表决定。任何外部计算或 API 积分均在附录中致谢。可复现性声明我们将开源所有代码和完整的智能体日志包括完整的自修改谱系存档差异、提示和配置以及评估框架。为支持精确复现我们引用了以下内容算法细节和伪代码第 3 节附录 C.4父智能体选择和开放式探索设置附录 C.2基础模型选择和超参数附录 D.1SWE-bench 和 Polyglot 的基准任务子集附录 E.2附录 E.3分阶段评估协议和脚本第 4.2 节最佳发现智能体的实现和差异附录 F.1附录 F.2以及计算和成本估算附录 E.1。发布的代码仓库将包含环境规范和用于复现所有结果、图表和表格的脚本。