← 返回资料站  /  Recursive Self-Improvement
论文 自我修改代码

Mendel Gödel Machine: Recursive Self-Improving Coding Agents via Comparative Evolution

Mendel Gödel Machine:用对照式进化改进自改写编码智能体
一句话LMU Munich 团队在 HGM 基础上给自改写编码 agent 增加两个'对照式'自修改算子(同一 agent 跨任务对照、不同谱系同任务对照),在相同 200 次评测预算下,Polyglot-60 从 50.8% 提到 93.2%(HGM 只到 77.9%),SWE-bench Verified-60 从 68.3% 提到 78.3%;代码全开源,但目前无第三方复现,且多数结论建立在 60 题小子集单次运行上。

这是什么

MGM 是 Gödel Machine 谱系(DGM → HGM)2026 年 8 月的最新一环。这条路线的共同点是:维护一棵编码 agent 的进化树,让 agent 反复改写自己的 scaffold 源码(prompt、工具、控制逻辑),用 SWE-bench / Polyglot 上的表现做选择。DGM 用固定代际预算,HGM 引入 Thompson sampling 做评测/扩展的预算分配,MGM 沿用 HGM 的整个树搜索框架,只改动一个环节:扩展(自修改)时给 LLM 编辑器看什么证据。

作者的观察是:已有方法每次自修改只看'一个 agent 在一个任务上的一条失败轨迹',而进化树的档案里其实积累了大量可对照的轨迹。借用孟德尔遗传学'控制变量比较'的思路,MGM 把单一的自修改算子拆成三个:保留原来的单轨迹 Clonal Mutation,新增同一 agent 跨多任务对照的 Reaction-norm Mutation,和跨谱系同任务对照的 Cross-lineage Hybridization。名字里的 hybridization 有点误导——它并不拼接两个 agent 的源码,只是把参考 agent 的轨迹当诊断材料。

论文投 ICLR 2026 格式(源码用 iclr2026_conference.sty),arXiv 2026-08-07 挂出,S2 引用数暂为 0。作者来自 LMU Munich(Volker Tresp 组),代码基于 DGM/HGM 代码库改造,Apache-2.0 开源。

MGM 总体流程:左侧是进化树档案(每个节点是一个 agent 版本,附带各任务成败记录),右侧是三种自修改操作——Clonal Mutation 只看自己的一条失败轨迹,Reaction-norm Mutation 对照同一 agent 在两个任务(τ_t, τ_r)上的轨迹,Cross-lineage Hybridization 引入另一谱系的参考 agent a_r 在同一任务上的轨迹。π-sampling 决定下一步做评测还是扩展。
MGM 总体流程:左侧是进化树档案(每个节点是一个 agent 版本,附带各任务成败记录),右侧是三种自修改操作——Clonal Mutation 只看自己的一条失败轨迹,Reaction-norm Mutation 对照同一 agent 在两个任务(τ_t, τ_r)上的轨迹,Cross-lineage Hybridization 引入另一谱系的参考 agent a_r 在同一任务上的轨迹。π-sampling 决定下一步做评测还是扩展。

机制与做法

三个自修改算子:证据不同,操作相同

三个算子做的事都是'把若干条 (轨迹, 成败) 证据喂给 LLM,让它诊断并改写目标 agent 的源码',区别只在证据的构造方式。Clonal Mutation(A):单条失败轨迹,即 HGM/DGM 的原始做法,档案还小时的兜底。Reaction-norm Mutation(B):同一 agent 在两个不同任务上的轨迹对照(要求该节点至少评过 m_RM 个任务、含至少一条失败),意图是区分'genotype 层面的真实弱点'和'任务特有的偶然错误'。Cross-lineage Hybridization(C):两个谱系的 agent 在同一共享任务上的轨迹对照——若参考 agent 解出了该任务,就让失败方从参考轨迹里提炼可迁移的行为特征并适配进自己的代码;若两者都失败,则对照互补的失败模式。

扩展时机仍由 HGM 的 Thompson-sampling 策略决定;选中扩展后,先按档案状态判断哪些算子可用(eligibility),再按配置权重采样,默认 A:B:C = 0.1:0.45:0.45(HGM baseline 即 1:0:0)。另有一个失败任务池 P_t:给任意谱系暴露过失败的任务在采样评测任务时加权 β_fail,既把评测预算集中到有诊断价值的任务上,也刻意制造谱系间的任务重叠,让算子 C 的可用条件更容易满足。

Polyglot 成绩 vs 模型规模:MGM 进化后的 Qwen3.6-35B agent 达 93.3%,scaffold 冻结后换 DeepSeek-V4-Pro 达 96.9%,图上高于 GPT-5(88.0)和 o3。注意基线是通用 harness 的裸模型成绩,而 MGM agent 在该 benchmark 的 60 题子集上专门进化过,并非公平对比,看趋势即可。
Polyglot 成绩 vs 模型规模:MGM 进化后的 Qwen3.6-35B agent 达 93.3%,scaffold 冻结后换 DeepSeek-V4-Pro 达 96.9%,图上高于 GPT-5(88.0)和 o3。注意基线是通用 harness 的裸模型成绩,而 MGM agent 在该 benchmark 的 60 题子集上专门进化过,并非公平对比,看趋势即可。

理论与 surrogate 模拟

论文在一个 additive fitness landscape 玩具模型上做理论分析和 Monte Carlo 模拟:genotype 是长度 L 的 0/1 向量,每个任务检查 k 个位点,自修改按概率 p_f 修复错误位点、按 p_b 破坏正确位点。需要注意的是,模拟中'对照式算子更好'是作为参数假设直接注入的(p_f^RM = p_f^CH = ρ·p_f^CM,ρ>1),推导出的结论是'如果对照证据能提高单次修复概率,则收敛更快更稳'——ρ=1 时 MGM 与 HGM 完全一致。所以理论部分证明的是机制的一致性,不是对照证据真的更有效;后者只能靠 benchmark 实验支撑。

实验设置

主实验:与 HGM 相同的 60 题子集(SWE-bench Verified-60、Polyglot-60),预算固定 200 次 φ-评测 + 24 次 Φ-扩展,backbone 为 Qwen3.6-35B-A3B,进化期间 agent 不接触私有测试。泛化实验分两路:一是把 Polyglot 上进化出的 scaffold 冻结后零样本迁到 SWE-bench Pro / Multilingual 子集;二是把 SWE-bench 上用 Qwen 进化的 scaffold 换到 DeepSeek-V4-Flash/Pro 上跑。消融比较去掉算子 B 或 C 的变体。工程上整套流程跑在 Slurm + vLLM + Apptainer 上,8×H100 单次进化约 40-96 小时。

关键结果

实证核查

有水分代码完整开源、README 数字与论文一致、三算子在代码里可验证,方法本身可信;但所有结论出自 60 题小子集的单次进化运行、无第三方复现、无误差条,理论部分把待证结论当假设,与 GPT-5 等的对比图也存在评测分布不对齐的问题。
论文声称 MGM 的三个自修改算子(默认权重 A:B:C = 0.1:0.45:0.45)带来同预算下对 HGM 的一致提升,代码开源可复现。
代码确实完整:repo RealLcz/MGM 的 hgm.py 中有 --self_improve_weight_a/b/c 参数和三策略加权采样逻辑(hgm.py L266-L518),Slurm/vLLM/Apptainer 全流程脚本齐备,README 的示例结果(Polyglot 210/225=93.3%)与论文一致。但截至 2026-08-30 无任何第三方复现:repo 仅 30 stars、3 forks,全部 3 个 issue 中 2 个是作者自己开的(项目页、BibTeX 更新),剩下 1 个是 HF 的 NielsRogge 例行请求上传 Papers with Code 评测。复现门槛也不低(8×H100 跑 40-96 小时)。
'We prove theoretically ... that the new strategies facilitate a faster and better convergence over single-trajectory baselines.'(摘要)
读 source/tex/simulation.tex 可见,additive fitness landscape 模拟中对照式算子的优势是作为参数直接假设的:p_f^RM = p_f^CH = ρ·p_f^CM 且 ρ>1;论文自己也承认 ρ=1 时 MGM 与 HGM 表现完全相同。即理论证明的前提('对照证据提高修复概率')恰是需要实验证明的核心命题,理论部分对'MGM 更好'没有独立证明力。
主结果表显示 MGM 在 SWE-bench Verified-60 上 78.3% vs HGM 73.3%,Polyglot-60 上 93.2% vs 77.9%。
两个 benchmark 都只用 60 题子集,SWE-bench 上 5 个点的差距只是 3 道题;每个配置只报单次进化运行,无多 seed、无置信区间(进化一次 8×H100 跑约 40-96h,可以理解但仍是单点)。Polyglot 的大幅提升更可信(+42.4 个点 ≈ 25 道题),且消融和全集 225 题评测方向一致。另外全集 225 题评测包含进化时用过的 60 题,'93.3%/96.89%'不是严格的 held-out 数字。
论文 Fig.(fig11)把 MGM+Qwen3.6-35B(93.3%)和 MGM+DeepSeek-V4-Pro(96.9%)画在 GPT-5(88.0%)、o3、Gemini 2.5 Pro 之上,呈现'35B 模型+自进化超过最强闭源模型'。
对比的基线数字来自各模型在 aider Polyglot 排行榜风格的通用 harness,而 MGM 的 agent 是在同一 benchmark 的 60 题子集上专门进化出来的(虽不见私有测试,但见过任务分布和公开测例),scaffold 对 Polyglot 任务格式高度特化。跨 benchmark 迁移结果(SWE-bench Pro 仅 26.7%)说明它离通用最强编码 agent 还很远,这张图的'超越 GPT-5'应打折扣看。

与我们方向的关系

对 RSI(递归自我改进)方向,MGM 的价值在于给出了一个便宜且可验证的增量:自改写的瓶颈之一是每次修改的诊断信号太弱(单条失败轨迹噪声大),MGM 证明只需改变'给 LLM 编辑器看什么证据'——不加评测预算、不加 token——就能显著改变进化效率。特别是消融显示跨谱系对照(算子 C)贡献最大,这与遗传算法里 crossover 的经典地位呼应,但它是'轨迹层面的诊断式 crossover'而非代码拼接,规避了直接合并两份 scaffold 源码的工程难题,这个设计值得借鉴。

另一个值得注意的信号是 HGM 在跨 benchmark 迁移上为负(SWE-bench Pro -3.4 个点)而 MGM 为正:单轨迹自修改容易把 scaffold 改成源 benchmark 的过拟合器,对照证据起到了正则化作用。如果课题组做 agent 自进化实验,'进化产物在 held-out benchmark 上是否退化'应作为标配检查项。作为对照方法,MGM 复用了 HGM 的全部基础设施,repo 可直接当 DGM/HGM/MGM 三代方法的统一实验床(weight 参数一键切换)。

阅读笔记

复现注意:默认配置要求 Slurm + Apptainer + 本地 vLLM(Qwen3.6-35B-A3B),8×H100 一次进化 40-96 小时;也支持 OpenAI/OpenRouter API 后端(llm.py)。repo 2026-04-09 创建、8-16 仍在推送。论文源码是 ICLR 2026 投稿格式,simulation 章节有大段被注释掉的旧版本(含被弃用的 UCB1 预算分配描述),读 tex 时注意区分正文与注释。

材料清单

TeX 源码
已存档:Raw/mendel-g-del-machine/source/
代码仓库github.com/RealLcz/MGM
30★ · 最近推送 2026-08-16
前作 HGMgithub.com/metauto-ai/HGM
MGM 直接继承其树搜索框架与代码库,baseline 即 HGM(策略权重 1:0:0)
前作 DGMgithub.com/jennyzzt/dgm
Darwin Gödel Machine,该谱系的起点,代码库共同祖先
项目页reallcz.github.io/MGM/
含结果图与进化树可视化

同类条目