别再只盯着一条失败轨迹改代码了:Mendel Gödel Machine 用「孟德尔式杂交」让编程智能体自己进化
你有没有发现一个挺拧巴的现象:现在那些号称能"自我进化"的 coding agent,每次改自己代码的时候,其实只看了一条失败记录?
档案库里明明躺着几十上百条历史轨迹——哪些任务反复翻车、隔壁谱系的 agent 是怎么把同一道题做对的——这些信号全在那儿,但现有方法基本只拿它们当排行榜用。这就好比你复盘考试只盯着最新那张卷子,前面十张卷子的错题本全扔了。
这篇 Mendel Gödel Machine(MGM,arXiv:2608.07645)就是冲着这个浪费来的。说实话我挺喜欢它的切入点:不是去发明更强的编辑器,也不是加大搜索预算,而是问了一个更基础的问题——喂给自我修改步骤的"证据",本身能不能更好?
核心摘要:MGM 把自我修改拆成三种"孟德尔式"算子——常规的克隆变异之外,新增反应规范变异(同一 agent 跨任务对比多条轨迹,找复发性缺陷)和跨谱系杂交(同一任务上对比不同 agent 的轨迹,迁移可复用的行为特质)。理论上用加性适应度景观模型证明了比较证据能压缩诊断候选集、提高有效修复概率。实验上,同样的 200 次评估预算下,Qwen3.6-35B-A3B 在 Polyglot 上从 50.8% 飙到 93.2%,以约 117 倍更少的参数超过 GPT-5;进化出的 scaffold 冻结后迁移到 DeepSeek-V4-Pro,在完整 Polyglot-225 上干到 96.89%。我的判断:这不是底层范式突破,而是对现有进化框架一次很聪明的"证据工程"升级,但胜在改动小、收益实打实,工程上可以直接抄。
论文信息 - 标题:Mendel Gödel Machine: Recursive Self-Improving Coding Agents via Comparative Evolution - 作者:Changzhi Liu、Yilun Liu、Sikuan Yan、Volker Tresp、Yunpu Ma - 提交日期:2026 年 8 月 7 日 - 链接:https://arxiv.org/abs/2608.07645 | 代码:https://github.com/RealLcz/MGM
📖 背景:自改进 agent 这条线走到哪了
让 AI 递归重写自身代码来变好,这个想法老得可以——Schmidhuber 1987 年就提过,2003 年的 Gödel Machine 把它形式化成"只有能证明有收益才允许自我修改"的严格框架。当然,那停留在理论构想。
真正把这事做出来是最近两年的事。SICA(Robeyns et al. 2025)证明一个只有基础文件编辑工具的 agent 就能重构自己的代码库并越改越好;DGM(Darwin-Gödel Machine)把这个循环改造成开放式进化,维护一棵不断扩张的 agent 变体树,每轮从档案里采一个变体出来改;HGM 更进一步,用后代 clade 的聚合表现做 Thompson 采样,把"改谁、评谁"变成了固定预算下的树搜索问题。
但你注意到没有——这条线卷的全是档案库怎么维护、下一个节点怎么采。至于自我修改本身(agent 实际动手改代码那一步),从 SICA 到 HGM 全都长一个样:拿一个 agent 在一个任务上的一条(通常是失败的)轨迹,丢给 LLM 编辑器,改。
论文里这句话说得很直白:自我修改过程"essentially underexplored",每步修改只条件化于单 agent、单任务、单轨迹。
问题在于,这个设定浪费了两类现成的比较信号:
| 比较信号 | 生物学对应 | 能诊断出什么 |
|---|---|---|
| 同一 agent 在多个任务上的表现剖面 | 反应规范(reaction norm,Woltereck 1909) | 基因型层面的稳定缺陷 vs 任务特定的偶然失误 |
| 不同 agent 在同一任务上的轨迹对比 | 受控杂交实验 | 可迁移的行为特质,减少重复踩坑 |
这就是孟德尔遗传学的核心思想——通过受控比较隔离可遗传效应。MGM 干的事,就是把这套思想搬进 agent 的自我修改里。
🧬 方法:三种自我修改算子
先给直觉。MGM 没有推翻 HGM 的"选择—评估—扩展"框架,而是把原来那一个扩展算子 \(\varPhi\) 拆成了三个专门化子算子,按档案里可用的证据类型各管一段。

图 1:MGM 框架。左侧档案库维护 agent 谱系树,每个节点存源代码(基因型)和评估结果(表型,绿=成功、红=失败、灰=未知);中间是 π 采样驱动的 φ 评估与 Φ 扩展循环;右侧是三种修改算子——克隆变异只看目标任务 τt 的单条失败轨迹,反应规范变异叠加同一 agent 在参考任务 τr 上的轨迹,跨谱系杂交则引入另一谱系参考 agent ar 在同一任务上的轨迹。
形式化上,agent \(a\) 是基因型,在任务 \(\tau\) 上跑出轨迹 \(\varphi(a,\tau)\) 和二元结果 \(r(a,\tau)\in\{0,1\}\) 是表型。期望效用就是任务分布上的平均成功率:
自我修改写作 \(a' \leftarrow \varPhi(a, E)\),关键全在证据集 \(E\) 里装了什么。
克隆变异 \(\varPhi_{\mathrm{CM}}\) 是老配方:\(E\) 里只有一条失败轨迹,编辑器诊断它并改代码。档案小的时候只能靠它,保底用。
反应规范变异 \(\varPhi_{\mathrm{RM}}\) 开始有意思了。当某个 agent 已经在至少 \(m_{\mathrm{RM}}\) 个任务上被评过,就把它的目标任务轨迹和另一条参考轨迹(优先选同样失败的)一起喂给编辑器:
编辑器被要求找出两条轨迹共享的复发性行为模式,然后做一般性修复。你想,一个 agent 在三道题上都因为"改完不跑测试就提交"翻车,那这个缺陷大概率是 scaffold 层面的真问题,值得动刀;而单看一条轨迹,你分不清这是基因缺陷还是这题运气差。
跨谱系杂交 \(\varPhi_{\mathrm{CH}}\) 是我觉得最妙的一个。条件是另一个谱系的 agent \(a_r\) 试过同一任务 \(\tau_t\),且没被双方都做对。两种情况:\(a_r\) 做对了、\(a_t\) 翻车了——那两者的行为差异就是现成的纠正信号;两个都翻车了——对比能识别互补的失败模式,相当于两份错题报告交叉验证。
这里有个容易误读的点,论文特意强调了:杂交不是把一个 agent 的源文件剪贴到另一个 agent 里,而是让目标 agent 自己读参考轨迹、提取可迁移的行为特质、再适配到自己的代码库。是诊断,不是嫁接。这个设计挺克制的——直接拼代码大概率会引入风格冲突和隐式依赖,让 LLM 自己"读懂再重写"反而干净。
算子怎么选?档案里对每个父节点构造合格算子集合 \(\Omega_i\)(CM 需要有失败记录,RM 需要轨迹数达标,CH 需要存在跨谱系的共享未解任务),然后按可配权重采样:
另外还有个不起眼但关键的设计:失败任务池。任何 agent 翻车过的任务进池,后续给别的 agent 派任务时池内任务加权 \(\beta_{\mathrm{fail}}\)。一石二鸟——评估预算集中砸在"已知能暴露弱点"的任务上,同时刻意制造跨谱系的任务重叠,给 \(\varPhi_{\mathrm{CH}}\) 创造条件。没有重叠任务,杂交就是空转。
🔬 理论:比较证据为什么有用
光说"更多信息更好"是没说服力的,MGM 给了一个干净的玩具模型。
把 agent 基因型建模成 \(L\) 个二元位点的向量 \(\mathbf{g}\in\{0,1\}^L\),每个位点对应一项最小 scaffold 能力(定位、推理、编辑、验证之类)。oracle 基因型 \(\mathbf{g}^*\) 全对,agent 的水平用它和 oracle 的 Hamming 距离 \(d(\mathbf{g})\) 度量。每个任务检查 \(k\) 个位点,全对才算过,所以距离为 \(d\) 的 agent 单任务成功率是:
关键一步在这儿:编辑器看不到哪些位点错了,它只能根据证据 \(E\) 构造一个候选位点集合 \(C_\sigma(E)\)——"嫌疑犯名单"。假设瞄中真凶后以概率 \(s\) 修复,那有效修复概率就是:
名单里真凶的密度越高,修复概率越大。现在看三种算子的名单差异:
- \(\varPhi_{\mathrm{CM}}\):单条失败轨迹只能说明"任务涉及的位点里有错",名单是整个 \(R_{\tau_t}\);
- \(\varPhi_{\mathrm{RM}}\):两条失败轨迹的共同解释被压缩成交集 \(R_{\tau_t} \cap R_{\tau_r}\),名单显著变短;
- \(\varPhi_{\mathrm{CH}}\):参考 agent 成功了,它的轨迹充当对照组,把任务相关但非因果的位点从名单里滤掉。
由此得到 Proposition 1:\(p_f^{\mathrm{RM}} > p_f^{\mathrm{CM}}\) 且 \(p_f^{\mathrm{CH}} > p_f^{\mathrm{CM}}\)。
注意这个理论的定位——它没有说比较证据让编辑器变聪明,说的是诊断不确定性被压缩了。编辑器还是那个编辑器,但搜查范围从整栋楼缩到了两间房的交叉区域。这个抽象挺漂亮的。

图 2:加性适应度景观示意。agent 的基因型由一串位点构成(绿=与 oracle 一致,红=错配),φ 评估通过任务探测位点子集并在表型条上留下成败记录,Φ 扩展根据表型记录翻转受检位点,逐步逼近全绿的 oracle \(a_\infty\)。
作者还跑了 Monte Carlo 代理仿真:固定总预算、所有算子等成本(\(c_{\mathrm{CM}}=c_{\mathrm{RM}}=c_{\mathrm{CH}}=c_\varphi\)),扫描初始距离 \(d_0\in\{80,40,20,10\}\) 和修复优势比 \(\rho\in\{2.0,1.5,1.2,1.0\}\)。结果是 MGM 在所有 \(d_0\)、所有 \(\rho>1\) 的设置下收敛更快、终态更好,而且最终性能的分布均值最低、方差最紧。零假设 \(\rho=1\) 时 MGM 退回 HGM 行为——说明仿真里的收益确实来自诊断质量,不是框架差异。还有一个细节:\(d_0\) 越小(越接近收敛、需要的修复越精准),MGM 优势越明显,这和"诊断压缩在精细修复阶段更值钱"的直觉对得上。
🧪 实验:同预算下的正面硬刚
实验设置的公平性做得不错:HGM 和 MGM 用完全相同的 200 次 φ 评估 + 24 次 Φ 扩展预算,基座都是 Qwen3.6-35B-A3B,跑在 8 张 H100 上。预算一样,性能差距就没法甩锅给"你搜得更多"。
主实验(Table 1):
| Benchmark | Initial | HGM | MGM |
|---|---|---|---|
| SWE-bench Verified-60 | 68.3 | 73.3(+5.0) | 78.3(+10.0) |
| Polyglot-60 | 50.8 | 77.9(+27.1) | 93.2(+42.4) |
| 平均 | 59.6 | 75.6 | 85.8 |
时间成本几乎一样(平均 68.61h vs 68.12h,Polyglot 上 MGM 还更快一点:40.14h vs 44.20h),token 消耗同数量级。也就是说,MGM 多拿的将近 10 个点平均分,纯粹来自"每次修改时喂的证据更好"。
Polyglot 上 50.8% → 93.2% 这个数确实猛。横向看,这个 scaffold 让 35B 的开源模型超过了闭源 GPT-5(参数量约为后者的 1/117)。当然得泼点冷水——这是 scaffold 针对 Polyglot 分布进化后的结果,不是模型本身的通用编码能力超过了 GPT-5,两者不直接可比。但换个角度,这恰恰说明 scaffold 这个搜索空间有多大油水。
消融(Polyglot-60):
| 变体 | Accuracy | 相对 Initial |
|---|---|---|
| Initial | 50.8 | – |
| MGM 完整 | 93.2 | +42.4 |
| 去掉 \(\varPhi_{\mathrm{RM}}\) | 79.7 | +28.9 |
| 去掉 \(\varPhi_{\mathrm{CH}}\) | 74.6 | +23.8 |
两个新算子都有实质贡献,但 \(\varPhi_{\mathrm{CH}}\) 明显是大头——去掉它掉 18.6 个点,去掉 \(\varPhi_{\mathrm{RM}}\) 掉 13.5 个点。作者的解释是杂交"有助于跨迭代保留和复用有用的进化信息",我觉得这个解释靠谱:跨谱系的技能迁移等于把别的分支试出来的好东西直接嫁接进当前最强谱系,避免每条 lineage 独立重复造轮子。
泛化性是这篇论文最让我意外的部分。
跨基准零样本迁移(Polyglot 上演化 → SWE-bench Pro / Multilingual):
| Benchmark | Initial | HGM | MGM |
|---|---|---|---|
| SWE-bench Pro | 16.7 | 13.3(−3.4) | 26.7(+10.0) |
| SWE-bench Multilingual | 41.7 | 43.3(+1.6) | 55.0(+13.3) |
HGM 在 Pro 上居然负迁移——说明单轨迹进化出的 scaffold 相当程度上是在过拟合源任务的失败模式。MGM 两个基准都正迁移,而且幅度不小。跨模型迁移(SWE-bench 上演化的 scaffold 冻结、只换 backbone):DeepSeek-V4-Flash 从 50.0 到 66.7,DeepSeek-V4-Pro 从 45.0 到 75.0,均优于 HGM 的 60.0 和 70.0。冻结的 Polyglot scaffold 配上 DeepSeek-V4-Pro 在完整 225 题上拿到 96.89%。
这组数字支撑了论文最核心的论断:比较证据进化出的不是"针对某任务的补丁",而是可复用的工作流级技能——比如"修改前先定位调用方"、"改完必须跑相关测试"这类跟具体任务无关的工程习惯。习惯当然比补丁容易迁移。

图 3:跨谱系杂交的定性案例。右侧谱系在节点 6 处涌现出一项技能(SKILL EMERGE,绿色=任务解决),左侧谱系的节点 3 一直失败(红色);通过以节点 8 为参考的杂交,技能被迁移到左侧谱系,节点 15 一举解决任务(SKILL TRANSFER)。
再看进化树的形态对比,挺直观的:
![]() | ![]() |
图 4:HGM(左)与 MGM(右)在 Polyglot-60 上的进化树。节点颜色从红到绿表示效用从低到高。HGM 的树全靠红色的克隆变异边扩张,高效用节点零星出现;MGM 的树上黄色的反应规范变异和绿色的杂交边占了很大比例,灰色箭头标示杂交的跨谱系参考关系,右下方一簇绿色高效用节点(20、23 等)明显是杂交密集发生的区域。
🤔 我的判断
先说亮点。这篇论文最值钱的地方在于它把"自我改进"这个被过度包装的领域往下拆了一层:大家卷采样策略、卷档案结构的时候,它指出修改步骤的输入证据才是真正的瓶颈,而且给出了不需要额外评估预算的解法——证据本来就在档案里躺着,你只是之前没用它。理论部分虽然是玩具模型,但"诊断压缩"这个抽象给得比较干净,Proposition 1 的方向性结论和实验趋势是自洽的。同预算对比 + 消融 + 双维度泛化,实验矩阵在算力约束下算是有诚意了。
再说我皱眉的地方。
一,主实验是 60 题子集 + 看起来单个演化种子。作者自己也承认独立种子数和超参扫描受限——93.2 对 77.9 这个差距里有多少是演化随机性,不好估。进化类方法的种子方差从来都不是小问题。
二,那个"117 倍参数超越 GPT-5"的说法,传播上肯定会被截出来当标题党素材,但它比的是"针对 Polyglot 进化过的 scaffold + 35B 模型"对"裸 GPT-5",不是同条件对比。论文正文其实挺克制的,这个锅主要在未来引用它的人。
三,\(\varPhi_{\mathrm{CH}}\) 依赖跨谱系的任务重叠,而这个重叠是失败任务池"刻意制造"出来的。在任务分布更稀疏、或者失败模式高度异构的场景里,杂交的触发率会不会掉到形同虚设?论文没有给算子实际调用频率的统计,这是个我想看但没看到的数。
四,理论模型的加性假设(位点独立、任务检查固定子集)离真实 scaffold 的差距不小——真实代码里改一处可能联动全身。仿真验证了方向,但别指望定量结论能外推。
放在更大的图景里看,MGM 不是 DGM/HGM 的替代者,而是插件——三个算子可以直接嵌进任何档案式进化框架,边际成本几乎为零。如果你在做 agent 自动设计或者 scaffold 搜索,这个"证据工程"的思路几乎是免费的午餐:不用加评估预算,把历史轨迹喂得更讲究就行。反过来它也提醒了一件事——进化系统里最贵的不是算力,是每一次自我修改时你看问题的角度。
最后一个更本质的问题还悬着:现在所有这类方法进化的都是 scaffold,backbone 本身不动。MGM 的跨模型迁移结果(在弱模型上演化、迁移给强模型用)暗示了一条务实的路径—— scaffold 在便宜模型上进化的成本,可以被强模型摊薄。这大概是"自我改进 agent"短期内最现实的落地姿势。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我

