HyperAgents:让「改进机制」本身可被改进的自指 Agent(DGM-Hyperagents)
一句话总结:把 Darwin Gödel Machine(DGM)里那套"分析历史 → 决定去哪自我改进"的手工固定 meta 机制也变成可被 Agent 自己改写的代码——通过把 task agent(解题)+ meta agent(改自己和 task agent)合并进同一个可编辑程序(称为 hyperagent),实现"元认知自我修改(metacognitive self-modification)";于是系统不仅越改越会解题,还越改越会"改进自己改进的方式",从而摆脱 DGM"只在编码域才自加速"的对齐假设,在编码 / 论文评审 / 机器人奖励设计 / IMO 数学评分四个域都超过了不带自我改进或不带开放式探索的基线以及原版 DGM。
- 来源:Jenny Zhang、Bingchen Zhao、Wannan Yang、Jakob Foerster、Jeff Clune、Minqi Jiang、Sam Devlin、Tatiana Shavrina(UBC / Vector Institute / Edinburgh / NYU / FAIR at Meta / Meta Superintelligence Labs),arXiv:2603.19461v1,2026-03-19(前三位共同一作,实习于 Meta 期间完成)
- 代码:https://github.com/facebookresearch/Hyperagents
- 本地 PDF:ref24_hyperagents.pdf
TL;DR 速览
- 问题:现有递归自我改进系统(含 DGM 及其衍生)都依赖一个固定、手工设计的 meta 级机制("该往哪改"的指令生成器)。这堵墙限死了系统能改进多快:加一层 meta-meta 只是把问题上推,最终陷入无穷 meta 层级的倒退。更要命的是,DGM 之所以能"越改越会改",靠的是一个编码域专属的巧合——因为"评测任务"和"自我修改"都是编码任务,所以编码能力涨了,自改能力也跟着涨。这个"任务技能 = 自我改进技能"的对齐假设,出了编码域基本不成立(例如:会写诗不等于会改自己的代码)。
- 方法: 1. hyperagent = 把 task agent 与 meta agent 装进同一个可编辑的 Python 程序(图灵完备),使得"生成未来改进的那段机制"本身也在可修改范围内——这就是自指(self-referential); 2. 元认知自我修改:一次修改可以同时改"怎么解题"和"怎么生成下一次的自我改进"; 3. 用它扩展 DGM → DGM-Hyperagents(DGM-H):保留 DGM 的开放式、种群式、带 archive 的探索(防早熟收敛),但把整个 meta 级修改机制变成可编辑; 4. 外环仍刻意保留手工的 parent selection / evaluation(为隔离效果 + 安全稳定),只让 hyperagent 自我修改——但附录 E.5 证明连 parent selection 也能交给它自己改。
- 关键数字:
- 编码(Polyglot):DGM-H 训练集 0.140→0.340、全集 0.084→0.267,与专门为编码手工设计的原版 DGM(0.140→0.380 / 0.142→0.307)相当——尽管 DGM-H 完全没为编码定制。
- 论文评审:测试集 0.0→0.710(超开源静态基线 AI-Scientist-v2 的 0.630);原版 DGM 直接搬过来 = 0.0(不对齐,废掉)。
- 机器人奖励设计:0.060→0.372,超"直接优化评测指标的默认奖励"(0.348);且在 held-out 的"最大化躯干高度"任务上 DGM-H 几乎总能发现跳跃行为,而 DGM-custom 常卡在"站直"的局部最优。
- 跨域迁移能力(最重要):把在"评审+机器人"上优化出的 hyperagent 迁到全新域 IMO 数学评分,imp@50 = 0.630;而把 DGM 的迁移 agent 同样迁过去 = imp@50 = 0.0——DGM 学不到可迁移的 meta 级改进,hyperagent 能。
- 跨运行复利:从迁移 hyperagent + ProofAutoGrader 继续在数学评分上跑,把 ProofAutoGrader 全集准确率 0.561→0.601、MAE 0.178→0.175。
- 成本:100 迭代自我修改阶段约 33M token,加评测共约 88.6M token/run。
- 一句话评价:这是 DGM 之后最"狠"的一步——DGM 把"改代码的能力"做成可自我改进,但留了一块不可改的手工地基(指令生成器);HyperAgents 直接把这块地基也浇进可编辑的程序里,用"自指"消灭了无穷 meta 倒退,并用四个异构域证明"改进机制本身可被改进"能带来可跨域迁移、可跨运行累积的 meta 级增益。它和 [[ref09_meta-harness]](外部强 Agent 优化 harness)、[[ref17_self-harness]](模型自我优化 harness)构成"自动 harness/agent 优化"三角的第三极:把 meta 层也纳入进化。真正的 insight 不是"agent 改 agent",而是"agent 改'agent 怎么改 agent'"。
tags: #自我改进 #self-referential #元认知自我修改 #open-endedness #darwin-godel-machine #meta-learning #harness工程
related: [[ref23_darwin-godel-machine]](本文直接扩展的基座)· [[ref13_adas-automated-design-agentic-systems]]("w/o self-improve" 基线 = ADAS)· [[ref09_meta-harness]](外部 Agent 优化 harness 的对照极)· [[ref17_self-harness]](模型自优化 harness 的对照极)· [[ref20_alphaevolve]](进化式编码 Agent 谱系)· [[ref16_stop-self-taught-optimizer]](递归自改代码的先声)· [[ref11_scientistone]](AI Scientist / 自动科研谱系)
摘要
自我改进 AI 力图通过"学会改进自己的学习与解题过程"来降低对人类工程的依赖。现有递归自我改进方法通常依赖固定、手工的 meta 级机制,从根本上限制了系统改进的速度。Darwin Gödel Machine(DGM) 证明了开放式自我改进在编码域可行:从单个编码 agent 出发,反复生成、评估自我修改的变体,形成不断增长的 archive 作为未来改进的"垫脚石"。因为评估与自我修改都是编码任务,编码能力的提升可以转化为自我改进能力的提升。但这种对齐在编码域之外一般不成立。
我们提出 hyperagents——把 task agent(解目标任务) 与 meta agent(修改自己与 task agent) 整合进单个可编辑程序的自指 agent。关键在于meta 级修改流程本身也是可编辑的,从而实现元认知自我修改:不仅改进解题行为,也改进"生成未来改进的机制"。我们据此扩展 DGM 得到 DGM-Hyperagents(DGM-H)。通过让改进流程本身可进化,DGM-H 消除了"任务表现与自我修改技能之间的域专属对齐假设",原则上可对任何可计算任务支持自加速进步。在编码、论文评审、机器人奖励设计、IMO 级数学评分四个域,DGM-H 随时间提升表现,超过不带自我改进 / 不带开放式探索的基线以及 DGM 等先前系统;其学到的 meta 级改进(如持久记忆、性能追踪)可跨域迁移、跨运行累积。所有实验都在安全约束下进行(沙箱、人类监督)。
1 介绍:无穷 meta 倒退,与"对齐假设"这堵墙
论文的问题意识分两层,都很锋利。
第一层——无穷 meta 倒退。 大多数自我改进架构依赖一个固定的 meta agent(改 base 系统的高层系统)。这天然设了个上限:base 系统只能在 meta agent 设计所划定的边界内被改进。想加一个 meta-meta 去改 meta?——那只是把问题上推一层,最终导致无穷的 meta 层级倒退(infinite regress)。要真正打破这堵墙,让系统能修改自己的任何部分而不受初始实现约束,系统必须是自指的(self-referential):能分析、修改、评估它自己(Kirsch & Schmidhuber 2022;Zhang et al. 2025b)。当"改进的机制"本身也成为被改进的对象,进步就可能变得自加速、乃至无界。
[!TIP] 什么是"自指(self-referential)"与"元认知自我修改"? - 自指:一个系统能把自己当作被操作的对象——读自己的源码、改自己的源码、跑自己看结果。经典源头是 Schmidhuber 的 Gödel Machine(当"可证明有益"时重写自己)。 - 元认知自我修改(metacognitive self-modification):本文造的词。普通自我修改只改"我怎么做事"(task 层);元认知自我修改同时能改"我怎么决定怎么改自己"(meta 层)。类比人:不只是"练题",而是"反思并改良自己的学习方法论"。 - 在本文里,实现手段就是把 task agent 和 meta agent 塞进同一份可编辑代码,于是"生成改进指令的那段逻辑"和"解题的那段逻辑"没有本质区别,都能被 diff 掉重写。
第二层——DGM 的"对齐假设"。 DGM([[ref23_darwin-godel-machine]])是递归自我改进在编码域的实用范例:agent 生成并评估对自己代码的修改,成功变体留进 archive 当垫脚石。但 DGM 有个手工、固定、不可改的指令生成步骤(附录 B):它分析过去评测结果 + 当前代码库,产出一条"该往哪自我改进"的指令。DGM 之所以能"改进自己改进的能力",靠的是一个巧合式对齐:
[!IMPORTANT] DGM 的隐含假设:"解评测任务所需的技能 = 有效自我反思/自我修改所需的技能。" 这在编码域恰好成立——因为评测任务是编码,自我修改也是改代码,两者都是"编码"。所以编码 agent 变强 → 它改自己的代码也变强 → 递归自加速。 但出了编码域,这个等式就崩了:如果评测任务是写诗,那"提升写诗能力"不必然提升"修改自己代码的能力"。于是 DGM 在非编码域无法真正改进自己的改进机制。
本文的解法:hyperagents 不假设这种对齐,因为自我修改机制完全可修改、且不绑定任何特定任务域。于是 hyperagent 能在任何可计算任务上同时改进"任务表现"和"改进过程本身"。一句话点题(原文结尾句):hyperagents 让系统"不只是搜索更好的解,而是持续改进它'如何搜索改进'的方式"。
2 相关工作:三条线,本文站在"自指 meta-learning × 开放式 × 自我改进"的交点
[!TIP] ① 开放式(Open-Endedness) - 定义(Stanley et al. 2017;Hughes et al. 2024):系统能持续发明新的、有趣的、越来越复杂的产物,不断扩展自己的发现前沿,没有固定目标或预定终点。 - FM 作为"有趣度"代理(Zhang et al. 2024 的 OMNI;Faldor et al. 2025 的 OMNI-EPIC):用基础模型近似"人类觉得有趣"的判断,来驱动新行为的生成与评估。 - 质量-多样性(QD)算法(MAP-Elites 等):不只追单一最优,而是照亮整个"行为空间",产出多样且各自强的解。
本文取用的点:DGM/DGM-H 的 archive + parent selection 就是一套开放式、种群式探索,用来防早熟收敛、留垫脚石。本文的野心是让开放式系统不只产出更好的产物,还改进产生新颖与进步的机制本身(Clune 2019 的 "AI-GAs";Jiang et al. 2023)。
[!TIP] ② 自我改进 AI(本文的主战场) - Gödel Machine [Schmidhuber 2003]:当"可证明有益"才重写自己——理论优雅但现实不可行(证明太难)。 - 权重 / 学习动态层的自改:differentiable plasticity、backpropamine、self-referential weight matrix(Irie et al. 2022)等,通过 meta-learning 改自己的权重。 - self-play [Silver et al. 2017 (AlphaZero)]:自我对弈迭代提升,但底层学习算法本身固定、人类设计。 - FM 驱动的自改:改 prompt(Promptbreeder)、改推理轨迹(STaR)、改整个代码库(DGM / Huxley-Gödel / Live-SWE-agent)、用自生成数据更新权重(Self-Adapting LM)。 - DGM [Zhang et al. 2025b]:编码域递归自我改进的实用范例,但依赖固定手工 meta 机制。见 [[ref23_darwin-godel-machine]]。
[!TIP] ③ 自指 meta-learning(本文精神上的直系祖先) - 研究"学会改进'学习本身发生的机制'"的系统:神经网络里(Kirsch & Schmidhuber 2022;Jackson et al. 2024)、进化方法里(Lu et al. 2023 的 arbitrary-order meta-learning)。 - FM 版自指改进:STOP([[ref16_stop-self-taught-optimizer]])、A Self-Improving Coding Agent(Robeyns et al. 2025)、Gödel Agent(Yin et al. 2025)、DGM 及其后继(Huxley-Gödel、Live-SWE-agent、Group-Evolving Agents)。
共同短板:这些递归自我改进主要只在编码任务内"改进自己改进"。HyperAgents 的差异:因为自我修改机制"完全可修改、不绑定任务域",所以它能在任何可计算任务上同时改进任务表现与改进过程本身——不再需要"评测任务 ≈ 自我修改任务"的对齐。
把祖源一句话说清:本文把"开放式探索(DGM 的 archive)"和"自指 meta-learning(改进机制可自改)"焊在一起——前者提供跨代累积的垫脚石,后者让"怎么产生垫脚石"这件事本身也进化。
3 方法:hyperagent + 元认知自我修改 + DGM 的开放式外环
3.1 三个定义(本文的概念地基)
| 概念 | 定义 |
|---|---|
| Agent | 任意可计算程序,可选地调用 FM、外部工具、学习组件。不限表示(不必是神经网络 / prompt),可含任意算法逻辑、记忆、控制流。 |
| Task agent | 被实例化去解一组任务的 agent(如:给 repo 出 code diff、预测论文接收/拒稿、给机器人任务设计奖励函数)。按任务经验性评测。 |
| Meta agent | 唯一任务就是"修改现有 agent、生成新 agent" 的 agent。给它整个历史 archive + 评测结果,它提出旨在提升未来表现的改动——这些改动可以针对 task 逻辑,也可以针对 meta agent 自己。 |
| Hyperagent | 把 task agent + meta agent 整合进单个可编辑程序的自指 agent。因为 meta agent 是同一份可编辑程序的一部分,它能重写自己。于是 hyperagent 能同时改进 (1) 怎么解题、(2) 怎么生成未来的自我改进。用 Python(图灵完备)故可构造任意可计算机器。 |
[!TIP] 为什么"合并成一个程序"是关键设计,而不是"两个分开的 agent"?(讲透 + 举例) 分层系统(meta 在上、task 在下,层级固定)永远有"最顶层那个不可改"的问题(= 无穷倒退)。hyperagent 把层级"拍平"进同一份代码:
meta agent和task agent只是同一个 repo 里的不同函数/文件,meta agent 改代码时没有任何东西禁止它去改自己那部分。 举例:初始 hyperagent 里,meta agent 只会调一次 FM 说"改这个 repo 吧"。某一代它可能给自己加一个PerformanceTracker类(记录每代分数、算移动平均趋势)——这是在改 meta agent 自己(改进"我如何决定下一步改哪");下一代它又给 task agent 的评审 prompt 加一套多阶段 checklist——这是在改 task agent。两种改动用同一套 edit 工具、在同一份代码上完成,没有本质区别。这就是"元认知自我修改"落地的样子。
3.2 优化框架:DGM-H(图 5 是全文最重要的图)

Figure 5 逐行解读(这张图把"新在哪"讲得最透,务必逐行看):每一行都是一个"archive → 选 parent → self-modify → evaluate → 加回 archive"的循环,差别在meta 机制是什么、是否可改、评测任务与自改是否对齐。
- 第 1 行「DGM|编码域」:同一个 Coding Agent 既当 task agent 又当 meta agent。self-modify 由一个手工固定 prompt 的 LLM call("Handcrafted instruction-generation")驱动。因为"评测=编码"且"自改=改代码",右侧标注 aligned, self-accelerating——这是 DGM 能自加速的原因。
- 第 2 行「DGM|非编码域」:评测任务不再是编码(需要单独的 Task agent),但 meta agent 仍是那个手工固定的 Coding Agent。于是"任务表现"不再可靠反映"meta agent 生成更好 task agent 的能力"——右侧标注 not aligned, not self-accelerating。对齐被打破。
- 第 3 行「DGM-custom|非编码域」:把手工指令生成器针对目标域定制("Customized instruction-generation"),表现变强,但仍不可修改——所以依旧 not aligned, not self-accelerating,且依赖人类工程。
- 第 4 行「DGM with Hyperagents」:task agent + meta agent 合并成 Hyperagent,self-modify 变成 Metacognitive Self-modify,evaluate 在任意可计算任务上。右侧标注 no need to be aligned, self-accelerating——因为 meta 机制可自改,不再需要"任务技能=自改技能"的巧合。
[!NOTE] Algorithm 1|DGM-H 外层循环(伪代码复述)
输入: 初始 agent a0, 任务集 T, 最大迭代 T 输出: 打了分的 agent archive A s0 ← Evaluate(a0, T) A ← {(a0, s0)} # 从单个初始 hyperagent 起 for t = 1..T: P ← SelectParents(A) # 概率式选 parent(正比表现、反比已编译子代数) for (a, ·) in P: a' ← a.Modify(a, A) # 元认知自我修改:a 用自己的 meta agent、看整个 A 来改出 a' s' ← Evaluate(a', T) # 在任务上评测 if IsValid(a'): # 能编译/通过接口校验 A ← A ∪ {(a', s')} # 加回 archive return A关键点:注意a'←a.Modify(a, A)里,是 parent 自己的 meta agent 在改(不是外部固定机制)——这正是"元认知"所在。跑固定轮数(编码 80、评审/机器人 100、数学评分最多 200),最后只在 archive 里选表现最好的 agent 做一次 test-set 评测。
DGM-H = 两个部件:(1) 从 DGM 继承的开放式、种群式探索(archive + parent selection,防早熟);(2) 一个初始 hyperagent,通过自生成变体随时间进化。
[!TIP] Parent selection 怎么选?(附录 A.2,讲透 + 符号) 每轮从 archive 采 parent,概率大致正比于表现、反比于"已成功编译的子代数"(灵感来自 Go-Explore 的 Ecoffet et al. 2019)。具体: $\(s_i = \frac{1}{1+\exp\!\big(-\lambda(\alpha_i - \alpha_{\text{mid}})\big)},\quad h_i = \frac{1}{1+n_i},\quad w_i = s_i\, h_i,\quad p_i = \frac{w_i}{\sum_j w_j}\)$
符号 含义 \(\alpha_i\) agent \(a_i\) 的表现分 \(\alpha_{\text{mid}}\) 动态中点 = 当前 top-\(m\)(\(m{=}3\))最强 agent 的均值,反映"当前前沿" \(\lambda\) sigmoid 陡度(\(\lambda{=}10\)),越大越"贪婪地偏向超过前沿的 agent" \(n_i\) \(a_i\) 已成功编译的子代数;\(h_i\) 是新颖度奖励,压制"已经生了很多娃"的 agent \(s_i,\ w_i,\ p_i\) sigmoid 后的表现权重、未归一化权重、最终采样概率 直觉:既想利用"当前最强且能生强娃"的 agent(\(s_i\) 大),又不想反复薅同一个 agent(\(h_i\) 随子代数衰减),于是在利用与探索间平滑权衡,并随 archive 变强自动上移中点。主实验里这套 parent selection 是手工固定、不可改的——为的是隔离"hyperagent 自我修改"的净效果;但附录 E.5 把它也开放给自改(见 §5 末)。
3.3 初始 hyperagent:刻意极简(附录 A.1)
初始 hyperagent 围绕一个冻结的 FM + 外部工具构建,FM 每步自主决定调哪个工具。它只配两个工具:
- bash:跑 shell 命令(无网络,但有本地 apt/pip 镜像,状态跨调用持久)。
- editor:查看 / 创建 / 编辑文件(view/create/str_replace/insert/undo_edit)。
- 初始 task agent:收到任务输入 → 一次 FM call → 按
{"response": ...}的 JSON schema 输出。极其朴素。 - 初始 meta agent 的 prompt 简单到只有一句:
"Modify any part of the codebase at '{repo_path}'."——外加告诉它 repo 位置、历史评测结果位置、剩余迭代数。
[!NOTE] 为什么初始实现要"简单到近乎不作为"? 作者明说:刻意保持简单,以获得宽广的搜索空间、避免过早约束"可能的改进范围"。这与 [[ref17_self-harness]] / [[ref09_meta-harness]] 的"从极简初始 harness 起步"一脉相承——把结构留给系统自己长出来,而不是人类预先塞满。初始 task agent 在评审上得 0.0(连输出格式都不对,因为没有任务专属解析),机器人上仅 0.060——故意留出巨大改进空间。
3.4 基线设计:三刀切开三个贡献(§4.1,图 5 + Table 1)
| 方法 | 自改 meta agent | 开放式探索 | 元认知自改(hyperagent) | 它检验什么 |
|---|---|---|---|---|
| DGM-H(本文) | ✓ | ✓ | ✓ | — |
| DGM-H w/o self-improve | ✗ | ✓ | ✓ | = ADAS:meta agent 全程锁死为初始版;测"增益是否只来自 task 层优化" |
| DGM-H w/o open-ended exploration | ✓ | ✗ | ✓ | 去掉 archive,新 agent 直接替换旧的;测"是否需要累积/复用中间解" |
| DGM | ✓ | ✓ | ✗ | 原版,手工指令生成器(为编码设计),测非编码域会不会废 |
| DGM-custom | ✓ | ✓ | ✗ | 把手工指令生成器为每个域定制;测"要多少人类工程才能跟上" |
[!TIP] "DGM-H w/o self-improve = ADAS"这个等价很重要 [[ref13_adas-automated-design-agentic-systems]](ADAS)用一个固定的 meta-agent 从历史发现里编程出新 agent。当你把 DGM-H 的 meta agent 锁死、只让它生成/评估新 task agent(但 meta 机制本身不进化),得到的就正是 ADAS 那套"固定 meta 级机制"的范式。所以 DGM-H vs DGM-H w/o self-improve 的差距 = "让 meta 机制可进化"带来的净收益 = 本文最核心的消融。
4 实验:四个异构域,逐一压过基线
4.1 设置速览(附录 C、D)
| 域 | 输入 → 输出 | 指标 | Train/Val/Test | 自改用的 FM | 评测用的 FM |
|---|---|---|---|---|---|
| 编码 Polyglot | repo+指令 → code patch | Pass@1 | 60 / – / 165 | Claude 3.5 Sonnet(New) | o3-mini |
| 论文评审 | 论文全文 → accept/reject | Accuracy | 100/100/100 | Claude 4.5 Sonnet | GPT-4o |
| 机器人奖励设计 | 任务描述 → 奖励函数 | 策略表现 | 6 / – / 6 | Claude 4.5 Sonnet | Claude 4.5 Sonnet |
| IMO 数学评分 | 题+候选解+参考解 → 分数(0/1/6/7) | Accuracy | 100/100/100 | Claude 4.5 Sonnet | o4-mini |
- 分阶段评测(省算力):先在小子集(如 10 题)上过一遍,只有够好的 agent 才评全训练集;不够的直接记 0。
- 协议:每方法跑 5 次,报中位数 + 95% bootstrap CI(1000 次重采样),显著性用 Wilcoxon signed-rank。
- 成本:100 迭代自改约 33M token;评审+机器人评测 0.506M token/迭代;100 迭代 run 合计约 88.6M token。
[!TIP] 为什么选"论文评审"和"机器人奖励设计"这两个古怪的域? - 论文评审 = hard-to-verify(无客观 ground truth,评审本就主观)。作者不想改评审制度,只测"hyperagent 能否自动学出与观测到的人类判断对齐的决策程序"。这检验 DGM-H 在没有干净可验证信号时是否还 work。 - 机器人奖励设计 = 走出"纯语言任务",要求 agent 调外部物理仿真器(Genesis)+ RL 训四足机器人。训练任务="走起来",held-out 测试="最大化躯干高度"——妙点在于:能让机器人走路的奖励函数不会诱发跳跃(跳才是"抬高躯干"的更优解),所以测试的是"同一个 agent 能否为不同机器人任务设计合适奖励",而非死记一个奖励。
4.2 任务表现:四个域都赢(图 2)

Figure 2 逐元素解读: - (左) 训练曲线(纵轴 = 评审+机器人的最佳 agent 表现,横轴 = 迭代):DGM-H(蓝)一路爬到最高(0.77),且爬得最快;DGM-custom(紫)次之(0.55);DGM(红)、DGM-H w/o open-ended exploration(橙)、DGM-H w/o self-improve(绿)几乎躺平(≤0.2)。蓝线明显在 20 迭代前就把其余甩开。 - **(右上) 论文评审测试集柱状:DGM-H(蓝)≈0.71,高过灰虚线的代表性基线(Yamada et al. 2025 = 0.63);DGM(红)≈0、两个消融(橙/绿)≈0,只有 DGM-custom(紫)≈0.59 能打。 - (右下) 机器人奖励设计测试集柱状:DGM-H(蓝)≈0.37,高过灰虚线的默认奖励("standing tall" = 0.348);Initial agent(灰)≈0.06、DGM≈0、w/o open-ended≈0.12、w/o self-improve≈0.21——都被 DGM-H 显著超过(p<0.05)。 - 一句话:两块面板分别对应"评审(hard-to-verify)"和"机器人(需外部仿真器)",DGM-H 在两处都超静态基线;且两个消融的塌陷证明——元认知自改 和 开放式探索缺一不可。
关键定量(测试集,中位数):
| 域 | 初始 | DGM | DGM-custom | DGM-H w/o self-improve | DGM-H w/o open-ended | DGM-H | 静态基线 |
|---|---|---|---|---|---|---|---|
| 论文评审 | 0.0 | 0.0 | 0.590 | 0.0 | 0.0 | 0.710 | 0.630 (AI-Scientist-v2) |
| 机器人奖励 | 0.060 | 0.0 | 0.348 | 0.213 | 0.116 | 0.372 | 0.348 (默认奖励) |
| 编码 Polyglot(全集) | 0.084 | — | — | — | — | 0.267 | (DGM 原版 0.307) |
[!NOTE] 定性:从"表面 prompt 微调"走向"结构化决策机器"(附录 E.2) - 论文评审:从"贴一个'rigorous'人设"这种表面行为指令,进化到显式多阶段评估流水线(checklist + 决策规则 + 明确判据)。看附录里的真实 diff:早期版本只是
"You are a critical academic reviewer... Default to REJECT";进化后变成7 条 acceptance criteria + 8 条 rejection criteria + 5 步 review process + 明确 40%/60% 阈值的结构化框架,判断更一致、质量更高。 - 机器人奖励:DGM-H 逐步搭建并精炼一个内部知识库(环境约束、合法状态变量、奖励缩放启发式),消灭编译失败、减少奖励错配——把领域知识沉淀进越来越复杂的决策框架,不靠人手工做域专属工程。 - 最漂亮的对比:在 held-out"最大化躯干高度"上,DGM-H 几乎总能生成诱发跳跃的奖励,而 DGM-custom 常卡在"站直"的局部最优——说明元认知自改能匹配甚至超过手工域专属机制。
4.3 "改进'改进的能力'":meta 级增益可跨域迁移(图 3,本文最强证据)
这一节回答:DGM-H 相对 "w/o self-improve" 的优势,证明了它改进了 meta agent(自改+生成新 agent 的能力)——但这种改进是通用的还是域专属的?
[!TIP] improvement@k(imp@k)指标:怎么量化"一个 meta agent 有多会造更好的 task agent"? 给定初始 meta agent \(M\)、初始 task agent \(A\)、一个 agent 生成算法、一个固定任务:让 \(M\) 从 \(A\) 及其后代最多生成 \(k\) 个新 task agent,imp@k = 最佳生成 agent 相对 \(A\) 在 test 上的表现增量(按 val 分选最佳)。 关键控制:为把"meta agent 改 task agent 的能力"和"meta agent 改自己的能力"隔离开,全程冻结 meta agent(生成新 task agent 的永远是初始 \(M\))——于是算法退化为
DGM w/o self-improve与DGM-H w/o self-improve。本节全跑 50 迭代,测 imp@50。 直觉:imp@k 衡量"一个 meta agent 在有限预算内造出改进变体的效率"。

Figure 3 逐面板解读(在全新域 IMO 数学评分上测): - (左) 训练曲线:深绿「DGM-H w/o self-improve + transfer」一枝独秀,爬到 ~0.6;其余三条(DGM w/o self-improve、DGM w/o self-improve+transfer、DGM-H w/o self-improve 从初始起)全部躺在 0 附近。 - (中) DGM 侧柱状:无论从初始 agent 还是迁移 agent 起,DGM w/o self-improve 的 imp@50 ≈ 0.0——原版 DGM 学不到可迁移的 meta 级技能。 - (右) DGM-H 侧柱状:从初始 agent 起 imp@50≈0.0,但从迁移 hyperagent 起 imp@50 = 0.630(那根深绿高柱),显著高于初始(p<0.05)。 - 结论:"在评审+机器人上优化出的 hyperagent"迁到"数学评分"后,仍然很会造更好的 task agent——证明 DGM-H 学到的是通用、可迁移的自我改进策略,而 DGM 学到的增益只是域专属定制。
[!IMPORTANT] 迁移增益从何而来?两个 DGM-H 自主长出的"通用 meta 能力"(§5.2 + 附录 E.3,含真实代码): 1. 性能追踪基础设施(PerformanceTracker):不再只看孤立评测结果,而是跨代记录/聚合/对比指标,识别"哪些改动持续有效、哪些导致回退",据此优先有希望的方向、避开无效方向。论文给了真实自动生成的
class PerformanceTracker:把每代(generation_id, domain, score, timestamp)存进performance_history.json,还有get_improvement_trend()(近 window 均值 − 更早 window 均值,正数=在进步)和get_statistics()。 2. 持久记忆(persistent memory):不只记数字,而是存综合洞见、因果假设、前瞻计划(如"哪几代最好、诊断过度纠正、如何组合成功策略"),并在后续自改时主动查阅,让后代在前人发现上累积、不重犯旧错。论文贴了真实记忆条目,例如:"Gen55: 63% acc … (too harsh);Gen64: 61% acc … (BEST BALANCE)。Key Insight: 需把 gen55 的批判性推理 + gen64 的平衡结合。" "Gen 66: 52% acc(比 gen64 的 61% 更差),94% accept rate(极端 accept 偏置)。CRITICAL: gen65 的改动过度纠正了。" "Iteration 66 Improvement: 纠正 gen65 的过度纠正,新方案:(1) 明确 REJECT 触发条件 (2) 决策协议带 40%/60% 阈值 (3) 边界情况默认 REJECT。"
这几条记忆读起来就像一个研究者在做实验日志 + 复盘——这正是 [[ref09_meta-harness]] 里"提议者对失败做因果推理"的同款证据,但这里是系统给自己自动长出来的记忆机制,而非人类设计的文件系统。
4.4 跨运行复利:自我改进能累积(图 4)

Figure 4 解读:在数学评分上跑 200 迭代—— - (左) 训练曲线:「DGM-H + transfer」(橙) 比「DGM-H 从初始起」(蓝) 更快收敛、终值更高;「DGM-H + transfer + from ProofAutoGrader」(绿) 起点就在 ~0.6(因为 ProofAutoGrader 本身强),最终最高。 - (右) 测试柱状:DGM-H(蓝)≈0.61 < DGM-H+transfer(橙)≈0.645 < DGM-H+transfer+ProofAutoGrader(绿)≈0.70,超过代表性基线(灰虚线 ProofAutoGrader = 0.67)。 - 定量:从迁移 hyperagent 起 200 迭代得 0.640(CI 0.550–0.720),从初始起得 0.610(虽 p>0.05 不显著,但中位与 CI 都更高)。用 ProofAutoGrader 当 task agent + 迁移 meta agent 继续优化,把它全集准确率 0.561→0.601、MAE 0.178→0.175。 - 意义:DGM-H 的自我改进是可复用、可跨运行累积的;且能站在强现有方案(ProofAutoGrader)肩上继续改。作者特别指出:高分段提升更难(0.7→0.8 比 0.0→0.1 难得多),所以这些"看着不大"的增益是有意义的。
4.5 连外环也能自改:DGM-H 会自己重造 UCB(附录 E.5)
主实验冻结 parent selection 以隔离效果,但附录 E.5 把它也开放给自改(初始给随机选择,让 agent 自己改):
- 测试表现:随机选择 0.030→0.428;可自改选择 →0.491;手工 score-child-prop →0.532(三者差异 p>0.05 但趋势一致)。
- 定性最惊艳:从随机选择起,meta agent 在每次 run 的头几迭代内都独立造出 UCB 风格选择(normalized_score + exploration_weight * sqrt(log(total_children+1)/(children+1)));进而进化出温度可调的 softmax 采样、自适应温度(随 archive 大小/停滞调整)、多分量打分(表现+探索+多样性+recency+elite)、甚至停滞检测(if score_variance < 0.01: exploration_weight *= 1.4)。
- 但:自改版没超过手工 score-child-prop——因为学出的机制更复杂、更敏感,跨 run 不稳定。不过它证明了系统能自主重造经典搜索算法、并加自适应启发式、显式推理停滞等失败模式——即 DGM-H 能改进"开放式优化过程本身"的核心元件。
5 讨论、安全与结论
核心结论
- DGM-H 是一个通用自我改进框架:开放式地进化一个"自我改进 hyperagent"的 archive,对任何可计算任务同时改进"任务表现"和"自我改进机制"。四个域都拿到可泛化到 held-out 的增益,且 meta 级增益跨域迁移、跨运行累积。
- 它用"自指"消灭了无穷 meta 倒退:不再需要"再上面加一层 meta",因为 meta 就在同一份可编辑代码里、能改自己。
局限(作者自陈)
- 固定任务分布:未共演化任务/课程(未来方向:让任务随能力自适应生成)。
- 外环仍部分固定:主实验里 parent selection / evaluation 协议不可改(为稳定+安全);E.5 证明可开放,但还没稳到超过手工。真正无界进步需要连外环也交出去。
安全讨论(§6 + 附录 F,本文主动且认真地写)
- 全程沙箱 + 资源限制(超时、限网)+ 人类监督,把自改限制在实验范围内。
- 可能进化得比人类监督更快:当能力爆炸式增长逼近临界点,需重新思考 AI 在社会中的角色;安全的核心不只是"绝对保证/完全可解释",而是在"AI 作为进步催化剂"与"人类愿意托付的信任度"之间平衡,同时最小化风险。这些保障随系统变强可能越来越吃紧甚至不可行。
- 偏见的澄清与放大:DGM-H 不改任务定义,只忠实优化给定目标——于是既是人类行为的澄清器(让隐含偏好变得显式、可测、可复现),也是放大器(若 benchmark 编码了坏偏见,它会照单全收并加剧)。强调 benchmark 设计/数据 curation/周期性重估的重要性。
- 评测博弈(Goodhart's law):优化经验信号可能发现钻评测空子的策略(测得高但没真进步)。缓解靠鲁棒/多样/周期刷新的评测 + 互补指标 + held-out + 人类监督。作者一句总结很到位:系统越强,安全越取决于评测信号的保真度与鲁棒性,而非仅靠学习算法的透明度或约束。
个人思考
⭐ 放进本项目坐标系:自动 harness/agent 优化的"三极"
HyperAgents 和本项目已读的两篇构成一个清晰的三角。把三者摆一起,能把"谁来改、改什么、改进机制本身可不可改"这个设计空间讲透:
| 维度 | Meta-Harness ([[ref09_meta-harness]]) | Self-Harness ([[ref17_self-harness]]) | HyperAgents (ref24) |
|---|---|---|---|
| 谁来改 | 外部强 Agent(Claude Code+Opus) | 模型自己(同一固定模型当提议者) | hyperagent 自己(内含可自改的 meta agent) |
| 改进对象 | 任务专用 harness(代码) | Agent 运行 harness 的可编辑面 | task agent + meta agent 整个程序 |
| 改进机制本身可改吗 | ❌(外环手工、极简,但固定) | ❌(三阶段闭环手工固定) | ✅ 可改(这是本文的核心突破) |
| 反馈通道 | 全历史文件系统(可 grep) | 当前轮失败聚类证据包 | 全 archive + 评测结果(meta agent 自主查阅) |
| 准入 | Pareto 前沿 | 保守非回退门(两 split 不降) | 能编译即入 archive + parent selection 概率淘汰 |
| 探索结构 | 极简外环 | 显式三阶段 | DGM 开放式种群 + archive |
| 独特招牌 | "不要压缩反馈" | "有据/可测/可逆的状态转移" | "元认知自我修改"消灭无穷 meta 倒退 |
我的判断:三者是"自我改进"光谱上的三个刻度。 - Meta-Harness 押"能力溢出"(强外部 Agent + 无损全历史)——但改进机制固定,天花板受外环设计限。 - Self-Harness 押"对齐+纪律"(模型自诊断 + 回归门)——同样改进机制固定、且刻意收窄到有界编辑。 - HyperAgents 押"自指"——它做了前两者都没做的事:把"改进机制"本身也交出去进化。这也解释了为什么只有它能拿到"meta 级增益跨域迁移"(imp@50 = 0.630 vs DGM 的 0.0)这种结果——因为它优化的恰恰就是"改进的能力"本身,而不只是"某个 harness"。 - 一个自然的合流猜想(可作为本项目"未来方向"落点):用 Self-Harness 的"证据聚类 + 非回退回归门 + 审计日志"当安全外壳,套在 HyperAgents 的"自指 hyperagent + DGM 开放式 archive" 之上——既让"改进机制"能进化(HyperAgents 的野心),又给每步自改上"可测、可逆、非回退"的护栏(Self-Harness 的纪律)。HyperAgents 的 §6 安全讨论其实已经在呼唤这种东西("越强越依赖评测保真度")。
与 DGM / ADAS 的精确关系
- 对 [[ref23_darwin-godel-machine]]:HyperAgents = DGM + 一处关键松绑。DGM 把"改代码的能力"做成递归自改,但指令生成器是手工固定的地基;HyperAgents 把这块地基也浇进可编辑程序。Figure 5 第 1 行(DGM 对齐/自加速)vs 第 4 行(DGM-H 无需对齐/自加速)就是这处松绑的全部含义。
- 对 [[ref13_adas-automated-design-agentic-systems]]:ADAS = 固定 meta-agent 从历史编程出新 agent = DGM-H w/o self-improve。所以本文最核心的消融(DGM-H vs w/o self-improve)本质就是"ADAS 范式 + 让 meta 机制可进化"的增量。这让"HyperAgents 相对 ADAS 强在哪"变得极其可测。
方法论启示(可迁移)
- "消灭无穷 meta 倒退"的通用招式 = 把层级拍平进同一份可编辑对象:只要你的系统有"L0 干活 / L1 决定怎么改 L0 / L2 决定怎么改 L1…"的分层,就永远有"最顶层不可改"的墙。HyperAgents 的解法(L0 与 L1 同居一份代码、L1 能改自己)是任何自改系统都能借的元设计。
- "改进机制可迁移"比"解更好"更值钱:本文最有冲击力的不是"评审 0→0.71",而是"在 A、B 域学的改进方式能加速 C 域"(imp@50 迁移)。这提示:评估自我改进系统时,应该多测 meta 级迁移(imp@k),而不只看单域终值。
- 持久记忆 + 性能追踪是"会自我改进"的涌现标志:DGM-H 自发长出
PerformanceTracker和带因果假设的记忆——说明"把改进当持续过程而非孤立编辑"是通用有效原则。这几乎可以直接抄进任何长程优化 agent。
在我的工作中能怎么用
- 我们这个
pdf-paper-readerskill 就是一个 harness。HyperAgents 给的启发是:与其手动迭代 skill(像我们修render_figures.py那样),可以设计一个"元认知"层——让它不只改"怎么读论文",还改"怎么诊断读论文读得好不好"(自动长出评测 + 记忆)。不过 §6 的安全提醒也适用:评测信号的保真度是关键,笔记质量这种 hard-to-verify 目标尤其危险(Goodhart)。 - 若要复现/借鉴,论文评审域是极佳入口(100 题、纯语言、有 accept/reject 标签),且它是本文"hard-to-verify"的代表——正好对应我们"笔记质量难客观打分"的处境。
开放问题 / 疑问
- 成本:88.6M token/100 迭代 run,跑 5 次 × 4 域,代价不小;预算受限时"元认知自改"相对"只优化 task agent"的性价比没有完整核算。
- 自指的稳定性:E.5 显示自改 parent selection 反而不如手工(太复杂/敏感、跨 run 不稳)。这暗示"把一切都交给自改"未必更好——哪些该固定、哪些该开放本身是个未解的设计问题。这也和 §5 "外环仍固定"的局限呼应。
- 安全的可扩展性:作者诚实承认沙箱+人类监督"随系统变强可能吃紧甚至不可行"。当"改进机制"也在进化时,审计难度可能超线性增长——这是比 Meta-Harness/Self-Harness(改进机制固定、可审计)更严峻的开放问题。
- 对齐假设真被消灭了吗:本文说 hyperagent 不需"任务技能=自改技能"的对齐。但自改仍要靠一个会写代码的 FM(Claude 4.5 Sonnet)——某种意义上,"自改能力"还是寄生在底层 FM 的编码能力上。若底层 FM 编码弱,元认知自改还成立吗?(类似 [[ref17_self-harness]] 里"弱模型自诊断质量存疑"的疑问。)