「自我改进」在论文里覆盖的范围很宽: 改写刚给出的答案, 用自己推对的题微调自己, 往技能库里写一份 SKILL.md, 改写自己的代码, 换掉给自己打分的评估器, 都被叫作自我改进. 这五件事改的对象不同, 出错的方式不同, 需要的证据也不同.
1. 五件都叫「自我改进」的事
1.1. 五个例子
先看五个具体结果, 它们在后面各篇都有详细展开.
改当前答案?Huang 等人 (2023) 让 GPT-4 在没有标准答案的情况下检查并修改自己的推理, 最多两轮. GSM8K 准确率从 95.5% 变成 91.5%, 再变成 89.0%; HotpotQA 从 49.0% 降到 43.0%. 同一篇论文复现了早先报告的增益, 发现那些增益来自用标准答案决定何时停止修改: 允许这样做时, GPT-4 的 HotpotQA 从 49.0% 升到 59.0%. 改动只作用于这一道题的答案, 下一道题从同样的状态开始.
改模型参数?R-Zero 让出题者和解题者两个副本相互出题, 用解题者的多数投票当标签训练. 随着题目变难, 多数投票标签的真实准确率从 71.0% 降到 42.2%, 4B 模型在第三轮之后性能大幅下降. 错误标签被写进参数, 下一轮又用这组参数产生标签.
改模型外面的结构?SkillsBench 在 86 个任务, 7 种 Agent 与模型配置上比较了技能文件的作用. 人工整理的技能平均把通过率提高 16.2 个百分点, 模型自己写的技能平均 −1.3 个百分点. 技能库是可保留的, 写进去的东西会影响之后每一个任务.
改产生改动的程序?DGM 让 Agent 读自己的评测日志, 改自己的代码, 新版本进入档案库后也能当父代. 它在 SWE-bench 上从 20.0% 走到 50.0%. 同一篇论文里还有一次实验: 一个后代只修改两次就拿到满分, 做法是删掉了检测工具调用幻觉所依赖的标记, 幻觉本身还在.
改评判标准?RQGM 把搜索分成 epoch, 每个 epoch 内评估器冻结; 一个挑战者评估器只有在固定的留出真值集上显著胜过在任者, 才被换上, 由它支配下一个 epoch. 这时被改的是打分的规则本身.
1.2. 五种失败方式
五个例子的失败方式各不相同. 第一个是模型用自己的判断确认自己的错误. 第二个是自生标签的噪声随轮次累积进参数. 第三个是可保留结构贴合了产生它的那几个任务, 换任务失效. 第四个是改进程序抬高了内部分数, 实际问题没有得到改善. 第五个更难察觉: 分数上涨可能只是尺子变了.
把这五件事放在同一个词下面讨论, 会出现两种常见的混淆. 一种是把浅层改动的稳定结果当成深层能力的证据, 比如用 L0 的自我修订成绩论证「模型会自我改进」. 另一种是把深层改动的内部分数当成改进的证据, 比如 DGM 那个满分后代. 本库的第一件事, 就是先分清一次改动落在哪一层.
2. 坐标系: 四个组件, 五个层级
2.1. 四个组件与五个层级
坐标系取自腾讯混元与浙大等的综述 Diving into Reliable Self-Evolving Agents. 1.2 给出完整定义, 这里只列出读后面各篇需要的部分.
Agent 在第 轮的可保留状态是
是模型参数. 是脚手架: 提示, 工具, 记忆, 工作流, 多 Agent 拓扑, 以及运行时控制 (harness). 是改进器, 负责提出, 选择, 提交或回滚候选改动. 是评判标准: 目标, 奖励, 评测协议, 比较规则和约束. 当前任务的输出 不属于可保留状态.
| 层级 | 最深被改的对象 | 本库对应篇目 | 代表系统 |
|---|---|---|---|
| L0 | 当前输出或任务内轨迹 | 2.1 | Self-Refine, Self-Consistency, Tree of Thoughts, CodeT |
| L1 | 模型参数 | 2.2–2.4 | STaR, Self-Rewarding, SPIN, Absolute Zero, R-Zero, CURE |
| L2 | 脚手架 | 3.1–3.2 | OPRO, GEPA, ADAS, AFlow, Voyager, ExpeL, Self-Harness |
| L3 | 改进器 | 4.1–4.2 | Gödel Machine, Gödel Agent, SICA, DGM, HGM, STOP, Promptbreeder |
| L4 | 评判标准 | 4.3 | RQGM, Double Ratchet |
RSI (recursive self-improvement, 递归自改进) 从 L3 开始, 也就是改进器本身被改.
2.2. 归类规则
归类有三条规则. 第一, 按被改的对象归类, 不按算法: 反思, 搜索, 强化学习, 进化算法都可以出现在好几层. 第二, 一次转移改了好几个对象时, 按最深的那个, 前提是它的语义变化真的影响了之后的行为. 第三, L1–L4 要求改动保留下来, 影响之后独立的任务或之后的更新; 只存下来但从不被读取, 不算.
层级之间的关系用 表示「在实际起作用的语义上等价」. L2 的条件是 且 , 对 不作要求. 每一层只约束比它深的组件. 所以一个系统可以同时改模型和脚手架, 归 L2; 同时改脚手架和改进器, 归 L3.
层级的排序是改动对象的深度, 不是能力或可靠性的排序. 一个 L1 更新如果用的是可执行的单元测试, 它的证据可能比一个 L0 修订所用的模型自评更可信. 往上走一层, 变的是需要什么形式的审计, 以及审计要覆盖多长的时间范围.
2.3. 本库的结构
全库分六部分, 每部分回答一个问题. 第 1 部分是基础: 1.1 (本篇) 给出地图和证据规则; 1.1.2 · 定义 给出四个组件, 一轮自演化的形式, L0–L4 的边界条件和 RSI 的定义; 1.1.3 · 证据, 接受与控制 讲每一层需要什么证据, 验收规则怎么设计, 审计怎样保持独立.
第 2 部分是输出与模型层 (L0–L1): 2.1.1 讲任务内的修订, 搜索与验证; 2.1.2 讲单模型自训练和模型坍塌; 2.2.1 讲竞争式自博弈; 2.2.2 讲合作式协同演化和模型层的上限. 问题是: 训练信号由谁产生, 有没有环外的锚. 第 3 部分是脚手架层 (L2): 3.1.1 讲提示, 程序与架构; 3.1.2 讲技能, 记忆与 harness. 问题是: 一个可保留的结构改动能不能迁移到没参与挑选它的任务上.
第 4 部分是改进器与评判标准 (L3–L4): 4.1.1 讲自指智能体; 4.1.2 讲只改改进流程中一块的系统; 4.1.3 讲评判标准自演化. 问题是: 改进器或标准变了以后, 用什么来比较新旧版本. 第 5 部分 可靠性与安全 讲各层的失效模式, 理论限制, 评测基准和安全边界. 第 6 部分 自动研究与实验室 讲自动研究循环, 科学发现系统, 各实验室公开的技术内容.
第一次读的顺序: 1.1, 1.2, 1.3, 然后按层级读第 2–4 部分, 最终读第 5, 6 部分. 只关心某一层时, 读完 1.2 的第 3 节和第 5 节就可以直接进入对应篇目. 每篇讲到一个系统, 都按 1.2 第 6.1 节的字段记录: 深度, 改动对象, 信号由谁产生, 内部筛选, 外部证据, 外层固定了什么, 保持证据.
3. 1965–2026: 几个节点
3.1. Good, 1965: 改进器在被改进的对象里
下面按时间看几个节点, 每个节点只问两件事: 被改的是什么, 证据从哪来. 最早的一个是 I. J. Good. 他在 Speculations Concerning the First Ultraintelligent Machine (Advances in Computers 第 6 卷, 1965) 第 33 页写道:
Let an ultraintelligent machine be defined as a machine that can far surpass all the intellectual activities of any man however clever. Since the design of machines is one of these intellectual activities, an ultraintelligent machine could design even better machines; there would then unquestionably be an "intelligence explosion," and the intelligence of man would be left far behind. Thus the first ultraintelligent machine is the last invention that man need ever make, provided that the machine is docile enough to tell us how to keep it under control.
这段话的论证只有一步: 设计机器是一种智力活动, 一台在所有智力活动上超过人的机器也就能设计更好的机器. 用本库的记号说, 它假设改进器 是被改进对象的一部分, 并且改进能够一轮接一轮地进行. 最终一句的条件「足够温顺, 会告诉我们如何控制它」常被省略, 它在原文里是论证的一部分. 这段话没有给出算法, 也没有讨论怎么判断一台新机器比旧机器好.
Yudkowsky, 2001: seed AI:Yudkowsky 的 General Intelligence and Seed AI (2.3 版, 2001 年 4 月) 在术语表里给出定义: 「A seed AI is an AI capable of self-understanding, self-modification, and recursive self-enhancement.」文中的设计目标是一个能理解并改写自己源代码的系统, 而不是一个在某个固定能力点上的系统.
这个定义把「自我修改」和「递归自我增强」分成两项. 前者只要求系统能改自己; 后者要求改完的系统还能继续改, 并且改得更好. 这和 1.2 的 L3 条件对得上: 改进器在可保留状态里, 并且改动影响之后的更新. 这份文档同样没有给出改动的验收办法.
Schmidhuber, 2003: 先证明, 再改写:Gödel Machine (arXiv:cs/0309048) 第一次给出了一个可以写成程序的自指改进器. 机器的软件 里包含任务策略和一个证明搜索器. 搜索器枚举候选的改写程序 switchprog 和对应的证明, 直到证出一条目标定理: 在当前公理化的效用函数 下, 立刻执行 switchprog 的效用高于继续运行 (继续运行意味着继续寻找别的 switchprog). 证出之后才执行改写. switchprog 可以改 的任何部分, 包括证明搜索器自己.
论文的定理 4.1 在「底层形式系统一致」的假设下证明, 这样执行的自我改写是全局最优的, 意思是立刻执行它的效用高于等待搜索器以后找到别的改写. 同一篇论文也写明了限制: 即使计算资源无限, Gödel Machine 也必须忽略那些无法证明有效的改进.
它对本库的意义在证据一侧. Good 和 Yudkowsky 没有说怎么判断改写是改进, Gödel Machine 的答案是形式证明, 而且证明相对于一个固定的效用函数. 效用函数和公理不在改写的范围内. 用 1.2 的说法, 它的评判标准 固定, 改进器 可改, 所以是 L3. 后来所有经验型的 L3 系统都保留了这个结构, 只是把证明换成了基准测试.
AlphaZero, 2018: 规则给出精确的外部目标:AlphaZero (Silver 等, Science 2018) 用一个神经网络同时输出落子概率和局面价值, 用蒙特卡洛树搜索 (MCTS) 自博弈产生棋局, 再用棋局训练这个网络, 除了规则之外不使用人类棋谱. 按本库的归类, 被保留下来的改动是网络参数 ; 搜索算法, 训练目标和规则都固定. 这是 L1.
它的训练信号质量高, 原因在评判一侧. 胜负由棋规判定, 不需要任何模型来打分, 也不会被自博弈的任何一方改动. 外部目标和内部训练信号几乎重合. 这种条件在开放任务上不存在. 2.3 讨论的竞争式自博弈 (SPIN, SPAG, Absolute Zero, R-Zero) 都要回答一个 AlphaZero 不用回答的问题: 胜负或对错由谁判定. Absolute Zero 用 Python 执行器, 还算可靠; R-Zero 用多数投票, 就出现了上面那条从 71.0% 到 42.2% 的曲线.
2022–2025: 语言模型进入循环:语言模型带来的变化是, 改进器可以读懂代码, 日志和错误信息, 并且用自然语言或代码提出改动. 2022 年的 STaR 用模型自己推对的题微调自己 (L1). 2023 年的 Self-Refine 让模型给自己的输出写反馈再改写 (L0), Reflexion 和 Voyager 把反思和技能写进可保留的记忆与技能库 (L2), OPRO 让模型搜索指令 (L2), STOP 让一个改进器程序去改进它自己 (L3). 2024 年的 Gödel Agent 在运行时读取并修改自己的 Python 函数 (L3). 2025 年的 DGM 用开放式档案保留所有能工作的后代 (L3).
这些系统的改动对象一路加深, 证据却没有同步变强. Self-Refine 在 GSM8K 上几乎没有增益: GPT-4 从 92.9 到 93.1, 论文自己报告 ChatGPT 对 94% 的样例给出的反馈是「everything looks good」. 能执行的单元测试和固定基准成了 L2, L3 系统的主要证据, 它们的问题是会被反复查询, 逐渐变成开发证据. 这一点在第 4 节展开.
AutoResearch, 2026: 一个循环, 两类文件:Karpathy 在 2026 年 3 月开源的 autoresearch 给 Agent 一个单 GPU 的 nanochat 训练设置. 仓库里有三个关键文件: prepare.py 放固定常量, 数据准备和评估, 不允许改; train.py 包含模型, 优化器和训练循环, 由 Agent 改; program.md 是给 Agent 的说明, 由人改. 每次训练固定 5 分钟墙钟时间, 指标是验证集的 val_bpb (每字节比特数), 越低越好. 按 README 的估计, 每小时约 12 个实验, 一夜约 100 个.
按本库的规则归类, 这个循环的结构很清楚. Agent 改的是 train.py, 它训练出的是另一个模型, 这个模型和 train.py 都是 Agent 状态之外的产物. Agent 自己的模型, 提示和流程不变. 决定 Agent 怎么做研究的 program.md 由人维护. 所以按 1.2 第 4.5 节对 AlphaEvolve 的同一条规则, 这个循环本身不构成 L3. README 设想过让人迭代 program.md, 找到「研究最快的组织代码」; 如果这一步交给 Agent 自己做, 并且改动保留下来影响之后的实验方式, 才到了 L2 或 L3.
它的证据设计值得注意. prepare.py 里的评估代码不允许 Agent 修改, 训练时长固定, 指标与词表大小无关, 架构改动可以公平比较. 这三条把外部目标, 证据源和资源预算放在了 Agent 够不着的地方, 正是 1.2 第 5 节说的更新边界. README 也写了代价: 固定 5 分钟意味着结果和硬件平台绑定, 不同机器上的结果不可比.
实验室的阈值写法:OpenAI 的 Preparedness Framework 第 2 版 (2025 年 4 月 15 日) 把 AI Self-improvement 列为一个跟踪类别, 定义为「AI 系统加速 AI 研究的能力, 包括提高系统自身的能力」. High 阈值是: 模型的作用相当于给每个 OpenAI 研究员配一个高水平的中级研究工程师助手, 以这些研究员 2024 年的状态为基线. Critical 阈值写的是「能够递归自改进 (即全自动的 AI 研发)」, 判据二选一: 一个超过人类的研究科学家 Agent, 或者以 2024 年同等进展五分之一的墙钟时间持续几个月实现一代模型的提升 (框架举的例子是从 o1 到 o3). 达到 Critical 时, 在没有满足 Critical 标准的安全措施之前, 停止进一步开发.
这两个阈值都按研究产出的速度来写, 不按 Agent 的哪个组件被改来写. 一个系统可以在 L0 上加速研究 (例如帮人写代码), 也可以在 L3 上做自我修改却对研究速度没有影响. 实验室的阈值和本库的层级回答的是两个问题: 前者问影响有多大, 后者问改动落在哪. 第 5, 6 部分会把两者放在一起读.
4. 证据规则
4.1. 先定层级, 再看证据从哪来
后面各篇读一个系统时, 都按下面九条检查它的改进主张. 每条后面是本库读过的一个实例.
第 1 条: 先问改了什么, 再看分数?论文怎么称呼自己, 不影响归类. 1.2 读过的 AREX 把自己的循环叫 recursive self-improvement, 但它的外层循环, 阈值, 工具和更新规则都固定, 改的是当前答案和任务内的研究状态, 只到 L0. MAS-Zero 为每道题设计一个多 Agent 系统, 设计用完就扔, 不跨任务保留, 属于推理阶段的计算, 不是 L2. 先确定层级, 才知道该要哪一种证据.
第 2 条: 分数只在它固定的外层下成立?每个 L3, L4 系统都固定了一部分外层. DGM 固定档案管理, 父代选择公式, 基础模型和基准; Gödel Machine 固定公理和效用函数; RQGM 固定留出真值集. 被固定的这部分划出了改进主张成立的范围. DGM 的 20.0% 到 50.0% 是在 SWE-bench 这个基准, 这些预算, 这条选择规则下的结果, 不能外推成「Agent 学会了改进自己」.
第 3 条: 分开开发证据和审计证据?一份证据一旦指导过候选的生成或选择, 就成了开发证据, 不能再当作同一次改动唯一的最终审计证据. Meta-Harness 在 TerminalBench-2 上用 Opus 4.6 达到 76.4%, 高于手工设计的 74.7%; 论文自己说明, 这一项的搜索和最终评测用的是同一套 89 道题. 这个数字说明搜索有效, 不说明搜出的 harness 能迁移. 同一篇论文另有一项: 在五个没参与搜索的模型上, 200 道 IMO 级题目平均提高 4.7 个点. 后者才是审计证据.
第 4 条: 候选不能碰评分?如果评分依赖的数据或代码在候选能改的范围里, 分数就不再是证据. DGM 的那个后代删掉了标记工具调用的特殊标记, 检测函数从此看不到幻觉. DGM 把检测函数对 Agent 隐藏, 论文报告不隐藏时被钻空子的情况更多; 但检测所读的日志在候选自己的代码库里, 隐藏函数没有挡住这条路. autoresearch 把评估放在不许修改的 prepare.py 里, 是同一条规则的正面做法.
4.2. 比较的条件
第 5 条: 对齐资源再比较?两个系统的差距可能来自算力和协调, 而不是结构. GPTSwarm 在 GAIA 上的 18.45 用的是 7 个 Tree of Thoughts 加投票, 论文明说这组实验没有做边优化和节点优化, 所以这个数字不能记到图优化头上. AFlow 的摘要说小模型在特定任务上以 GPT-4o 4.55% 的成本超过它; 附录给出的条件是只在 HumanEval 上, 对比 GPT-4o 直接问答, 4.55% 成本那一组是持平 (0.9390 对 0.9389), 严格超过的是 5.92% 和 8.05% 成本的两组. 综述对 L2 的要求是: 在改动没有参与挑选的新任务上, 对齐模型, 工具, token 预算和停止规则, 和在任版本做端到端比较.
第 6 条: 存下来不等于起作用?L1–L4 的保持条件要求改动影响之后的行为. Mimosa 有一个工作流档案, 但论文实验里档案检索一次都没触发, 它的 43.1% 来自单个任务内的迭代. Zhao 等人 (ICML 2026) 在四个记忆框架上做了干预实验, 把记忆内容清空, 打乱, 换成无关内容或填充文本: Agent 稳定地依赖原始轨迹, 却经常忽略或误读压缩过的经验摘要, 即使摘要是唯一提供的经验. 一份经验存进了记忆, 要看它被读到以后是否改变了行为.
第 7 条: 正文和表格对不上时, 以表格为准并写明?同一篇论文里正文和表格的数字有时不一致. OPRO 的表 1 和表 4 标的是测试准确率 80.2, 正文第 5 节却说这条指令的训练准确率是 80.2. MAS-Zero 正文说「比最强基线 AFlow 平均高 13.03%」, 表 1 里和 AFlow 的差是 8.05, 13.03 是和 MAS-GPT 的差. QueenBee 的一组结果, 表 3 写 0.539, 正文写 0.500. 本库引用数字时注明出自哪张表, 两处不一致时以表格为准并写出不一致. 无法从论文中复核的数字不引用.
4.3. 自生信号, 抽样误差与层级
第 8 条: 自生信号要有环外的锚?模型自己产生的标签, 奖励或评语, 只有在某个环节被环外的事实约束时才可靠. Huang 等人的实验里, 差别只在「这一轮该不该改」由谁判断: 由标准答案判断, GPT-4 的 HotpotQA 从 49.0% 升到 59.0%; 由模型自己判断, 降到 43.0%. 2.4 读过的 WebRL, CURE, RL Tango 和协作自博弈都在训练信号里保留了环外的锚: 环境自带的奖励函数, 标准单元测试, 标准答案. SkillsBench 里模型自写技能的 −1.3 个百分点, 和 R-Zero 的标签准确率下滑, 是没有锚的结果.
第 9 条: 小样本上的差异先算误差?在 道题上测得通过率 , 它的标准误是
CTIM-Rover 在 SWE-bench Verified 的 45 道题子集上比较记忆配置, 不带记忆的基线是 42%. 代入 , , 得到 , 约 7.4 个百分点. 两个独立配置之差的标准误还要再乘 , 约 10 个百分点. 在这个规模上, 40% 和 42% 的差别没有信息量; 只用记忆的配置掉到 31%, 差 11 个百分点, 大约是一个标准误. 论文的结论「没有一种配置超过基线」成立, 但「记忆有害」需要更大的样本. 两个系统在同一组题上比较时, 更合适的是配对检验, 只看两边结果不同的题; 1.3 第 4 节读的 PACE 就用这种做法.
九条规则对每一层都适用, 但每一层最容易违反的规则不同. L0 最常违反第 8 条: 模型自评没有锚. L1 也是第 8 条, 只是错误被写进参数, 会跨任务累积. L2 最常违反第 3, 5, 6 条: 搜索集当评测集, 资源没对齐, 存下来的结构没起作用. L3 最常违反第 2, 4 条: 把固定外层下的分数外推, 候选碰到了评分. L4 违反的是第 4 条的极端情况: 候选改的就是评分本身, 只能靠更新边界之外的留出真值集比较新旧标准. 1.3 按综述 §8 把这些对应关系展开.
5. 为什么更新越深, 证据要求越长
5.1. 一次输出的误差不会自动遗传
L0 修改当前轨迹 或输出 , 生命周期在任务结束时终止. 设初稿损失为 , 修订后为 , 这次改动的收益可以直接写成 . 只要标准答案或执行结果独立于修订过程, 一组配对样本就能估计平均收益. 即使修订错了, 错误通常不会进入下一道题的状态.
L0 仍然可能不可靠. 修订策略根据同一个模型的自评决定是否启动时, 启动事件已经携带模型对自身正确性的判断. 令初稿正确概率为 , 错误答案被修对的条件概率为 , 正确答案被改错的概率为 , 一轮后的正确率为 . 当 很高, 项很容易超过 . 对强模型而言, 修复空间缩小了, 破坏空间却仍覆盖全部正确样本. Huang 等人的结果说明, 停止判断必须比初稿的置信判断更可靠.
标准答案门控把是否修订写成外部事件, 可以显著改善 与 的比例, 但它也改变了任务: 系统在推理时获得了答案正确性的 oracle. 因而有 oracle 的自纠错结果不能直接外推到真实部署. 更公平的比较是让各方法拥有相同次数的模型调用和相同外部信息, 再比较直接多采样、投票、验证器重排与反馈修订. 多 Agent 辩论若只因采样更多而提高覆盖率, 它证明的是测试时计算有效, 尚未证明角色交流产生了额外信息.
5.2. 参数更新会把局部误差变成分布变化
L1 把筛选结果写进 . 训练样本中的偏差不再只影响当前输出, 而是改变之后所有条件分布. 设第 代生成分布为 , 筛选算子为 , 学习算子为 , 则
即使 每轮都略微偏爱某种表面特征, 这个偏爱也会通过 增加该特征在下一代的出现概率, 随后再次被 奖励. 一阶近似下, 偏差 的递推可以写成 . 时扰动衰减, 时扰动放大, 是每轮新增的标签或评判偏差. 单轮测试只能估计当前 , 多代保持实验才看得见 .
原始数据回放之所以有效, 是因为它给递推增加一个不随当前模型变化的分量. 若每轮训练数据中比例 来自固定真实分布 , 有效训练分布近似为 . 它不能消除筛选偏差, 却会降低自生分布对下一代的控制强度. 可执行验证器也扮演类似角色: 在覆盖到的子任务上, 错误标签不能仅凭模型共识进入训练集. 代价是系统会把优化压力推向验证器没有覆盖的部分.
所以 L1 的审计既要有未参与训练的新样本, 也要看训练若干代后的能力向量. 平均准确率可能稳定, 校准、长尾覆盖、拒答边界或解法多样性已经收缩. 一个只有单一标量的评测很难发现这种变化, 需要按任务族、难度和行为类型拆分, 再观察退化是否沿代际累积.
6. 深层更新的证据链
6.1. 从改进器到评判标准
L2 不动参数, 却改变模型得到的上下文、可调用工具和控制流. 把环境状态记作 , 脚手架构造的观测记作 , 模型策略是 . 修改 等于同时修改观测函数 和允许动作集合 . 端到端成绩提高可能来自更好的信息, 也可能只是获得了更多工具、更多 token 或更多尝试机会.
这就是资源对齐在 L2 尤其重要的原因. 若新脚手架允许十次搜索而基线只允许一次, 差异不能归因于工作流结构. 对齐墙钟时间仍不一定够: 一个系统把成本花在模型 token, 另一个花在外部检索或代码执行, 二者瓶颈不同. 最稳妥的报告同时列出模型调用数、输入输出 token、工具调用、并发度、墙钟时间和失败重试, 让读者看到结构收益在哪种预算下成立.
保持性也从「文件存在」变成因果问题. 设经验摘要为 , 系统有无该摘要时的结果分别为 与 . 真正想估计的是处理效应 . 简单消融可能同时改变上下文长度和格式, 因此还需要无关摘要、打乱摘要、等长填充等对照. 若原始轨迹有效、压缩摘要无效, 问题可能出在写入损失、检索门控或模型无法解释摘要, 不能笼统归因于「记忆无用」.
改进器更新把选择偏差带到后代:L3 修改 , 一次错误不只产生一个坏版本, 还会改变以后怎样生成版本. 设旧改进器产生候选分布 , 新改进器为 . 仅比较各自找到的最好候选, 会把候选数量、随机种子和极值噪声混进结论. 相同预算下, 应比较候选质量分布、达到给定阈值所需样本数, 以及在未见任务上的成功概率.
反事实对照是辨认 进步的核心. 从同一个祖先 出发, 给 与 相同任务、模型、工具和预算, 独立运行多个种子. 若新改进器只在产生它的开发任务上更强, 可能只是把任务细节编码进搜索策略; 若它在不同起点和任务族上都提高样本效率, 才支持改进能力迁移. 后代谱系还要重复这个比较, 检查优势是否保持, 而非第一代用完就消失.
L3 的另一项风险是评测泄漏成为策略知识. 一个改进器反复看到失败测试的细节, 会学会直接针对测试生成补丁. 即使测试文件没有暴露, 通过与失败的二值反馈也能逐步传递信息. 查询次数越多, 开发集泄漏越严重. 独立审计集必须直到候选和改进器版本冻结后才揭示, 审计结果也不能回流到同一次主张所对应的搜索过程.
评判标准更新失去共同坐标:L4 修改 . 若对象与尺度同时变化, 只观察 无法判断哪一边导致分数上升. 对两个版本 和两套标准 , 至少需要四个交叉值:
固定行比较对象, 固定列比较尺度. 若 , 但 , 新系统只在新尺上进步; 若 给所有对象更高分, 它可能整体变宽松. 交叉矩阵仍只比较两把内部尺子, 最终还需要更新边界之外的真值或人类判断校准它们.
评判器的平均准确率也会高估它在优化中的可靠性. 候选生成器不会从自然分布随机取样, 它会集中寻找评分误差最大的区域. 设 , 优化 等于同时优化真实目标 与误差 . 即使自然样本上 很小, 足够强的搜索仍会找到 很大的候选. 因而评判器需要在对抗生成的候选上测试, 并限制单一评判器承受的优化强度.
更新越深, 审计时间变长, 原因现在可以归结为因果影响的寿命. L0 影响一道题, L1 影响之后的输出分布, L2 影响之后看到的信息与动作, L3 影响之后产生哪些改动, L4 影响之后什么会被称为改进. 证据窗口若短于影响窗口, 最危险的后果还没出现, 实验就已经结束.
6.2. 选择偏差与分布迁移
设 个候选的真实效用相同, 测量值为 , 其中 . 选择最高分候选以后, 噪声的期望最大值近似为 . 候选从 10 个增加到 10,000 个, 即使系统没有产生任何真实改进, 被选中的开发分也会明显上升. 这不是传统训练集泄漏才有的问题; 只要同一个带噪评测被反复查询, 选择就会把噪声写进最终版本.
候选相关性会改变数值, 不改变方向. 同一个祖先的小幅变体高度相关, 有效候选数低于 ; 多个完全不同的 Agent 并行搜索, 有效候选数更高. 报告搜索规模时, 除了候选总数, 还应给出独立运行数、每个候选的重复测量数以及选择器查询同一评测集的次数. 最终候选要在新样本上重测, 重测时不能继续从多个版本中挑最高者, 否则审计集又变成一轮新的开发集.
回归均值提供一个直接诊断. 若开发分最高的版本在独立复测中普遍下降, 下降量随候选数增大, 主要贡献很可能来自选择噪声. 若下降后仍稳定高于祖先, 才能把剩余差值视为真实改进的估计. 将所有候选的开发分与复测分画成散点, 还能看出评测是否只在高分尾部失真; 单报冠军数字会隐藏这一结构.
反复查看结果会改变显著性:自改进循环天然带有可选停止: 每得到一个候选就检查一次, 一旦结果足够好便停止. 固定样本量的 值假设检验次数事先确定, 在每一步重复使用会抬高假阳性. 若每次独立检验的错误率为 , 做 次后至少一次误报的概率是 , 当 时约为 64%. 实际候选并不独立, 但把单次 5% 当成整轮 5% 依然没有依据.
一种保守办法是预先分配错误预算, 第 次检验使用 , 并令 . 更灵活的办法是构造非负超鞅或 e-process, 在零假设下任意停止时仍满足 Ville 不等式 . PACE 使用的正是这类思想. 它控制一次序贯接受决定, 若系统重启多条搜索线、接受多个后代, 还要在更高层分配整条运行的错误预算.
统计控制解决的是抽样噪声, 不能修复目标写错. 单元测试完全稳定, 若它只覆盖正常输入, 候选仍可牺牲异常输入换取速度. 顺序应当是先确认指标对应真正目标, 再控制围绕指标的重复选择; 把两者倒过来, 只会非常确信地选出一个优化错目标的版本.
分布迁移决定改进能否外推:开发分布记作 , 部署分布记作 . 即使每个候选在开发集上的测量没有偏差, 想估计的部署收益
也不等于开发收益 . 当 相对 的密度比 可估计时, 可以用重要性加权重写 ; 高权重区域样本稀少会带来巨大方差. 在开放任务里密度比通常未知, 更实际的方法是预先定义迁移轴: 新领域、新难度、新工具、新模型和更长时间跨度, 分别建立留出集合.
平均迁移还可能掩盖条件反转. 一个技能在代码任务上提高 10 点, 在文本任务上下降 2 点, 混合比例决定总体数字正负. 若部署流量变化, 昨天的正收益会变成负收益. 因而改进记录需要保留分组效果 , 以及各组在目标环境中的权重. 声称「普遍改进」时, 应检查最差组或至少报告哪些组尚无正证据.
时间迁移对 RSI 尤其关键. 后代系统会改变它面对的任务分布: 简单问题被自动解决以后, 剩下的问题更难; 工具和代码库也会随系统改写而变化. 在固定基准上连续进步, 可能只说明越来越熟悉旧环境. 动态评测应在每代加入未见任务, 同时保留一组固定锚点监测遗忘. 只有动态集会失去代际可比性, 只有固定集会逐渐变成训练信号, 两者要配合使用.
消融要沿因果链拆开:复杂 Agent 的一次更新常同时改变提示、记忆、工具和预算. 端到端对照能回答新版本是否更好, 不能回答为什么. 机制主张需要针对中介变量设计干预. 若声称技能库通过复用经验提高成功率, 可分别做四次运行: 完整技能、等长无关技能、正确技能但禁用检索、检索命中但屏蔽技能正文. 它们依次区分上下文长度、检索事件和技能内容的贡献.
对改进器也能做类似拆分. 设新改进器包含新的候选生成 , 新的选择器 和更大预算 . 完整效果为 . 交换其中一个组件形成因子实验, 可以估计生成与选择的主效应以及二者交互. 若 只有配合 才有效, 说明新生成分布依赖新的评分偏好; 迁移到别的评判器时不能假定收益保留.
消融本身也会改变系统分布. 删除记忆后, 模型可能调用更多工具补偿; 固定工具次数又会引入新的约束. 因此应同时报告中间变量: 检索率、命中率、候选覆盖率、选择准确率、工具调用和停止原因. 当最终分数不变时, 这些量能区分组件确实没作用, 与正负效应恰好抵消.
因果归因最终仍服务于外部审计. 找到机制不等于证明改进, 但它让迁移预测可检验: 如果收益来自降低错误检索, 那么在检索不构成瓶颈的任务上不应期待同样增益; 如果收益来自扩大候选覆盖, 在选择器已经饱和时增加候选可能反而更差. 这种带条件的预测比「系统整体更聪明」更容易被新实验推翻, 也更接近可积累的知识.
配对比较利用的是分歧样本:两个系统在同一组题上评测时, 每道题有四种结果: 都对、都错、旧对新错、新对旧错. 前两类对差值没有贡献, 真正决定方向的是后两类. 记旧对新错的题数为 , 新对旧错为 , 配对准确率差就是 . 在零假设下, 条件于总分歧数 , 服从参数为 的二项分布. McNemar 检验和 PACE 的配对序贯证据都利用了这个结构.
配对设计比把两边当独立比例更有效, 因为题目难度带来的共同波动被抵消. 假设两系统准确率都约为 70%, 若它们往往在同一题上成败, 独立比例的标准误会高估差值噪声. 反过来, 若只报告各自总分, 就看不到改动是修复了一批旧错误同时制造另一批新错误, 还是几乎单调地增加正确题. 两种系统即使净增益相同, 风险性质也不同.
分歧样本还揭示改进器的方向性. 将 与 按任务类型、难度和工具需求分组, 可以看到新版本的收益来自哪里. 例如代码执行题增加、事实检索题减少, 总分持平不表示两版等价. 后续部署的任务权重一变, 净效果随之改变. 保存逐题结果而非只有汇总分, 是进行这种分析的前提.
配对检验仍要求样本未参与选择. 如果候选就是按这组题上的 选出来的, 精确检验只能描述选择后的表面差异, 不能给出无偏的泛化概率. 统计方法无法把开发数据重新变成审计数据; 它只能在数据角色确定以后正确利用样本结构.
参考文献
- Kaiqi Wang, Wenjin Hou, Yuchen Yan 等 (2026). Diving into Reliable Self-Evolving Agents: A Survey. 腾讯混元, 浙江大学等. §2 定义与阶梯, §8 可靠性阶梯.
- I. J. Good (1965). Speculations Concerning the First Ultraintelligent Machine. Advances in Computers, 6: 31–88. 引文在第 33 页.
- E. Yudkowsky (2001). General Intelligence and Seed AI, v2.3. Singularity Institute.
- J. Schmidhuber (2003). Gödel Machines: Self-Referential Universal Problem Solvers Making Provably Optimal Self-Improvements. 第 3.2 节目标定理, 定理 4.1.
- D. Silver 等 (2018). A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play. Science, 362(6419): 1140–1144.
- A. Karpathy (2026). autoresearch. README.
- OpenAI (2025). Preparedness Framework, Version 2. 表 1, AI Self-improvement.
- Jie Huang 等 (2024). Large Language Models Cannot Self-Correct Reasoning Yet. ICLR 2024. 表 2, 表 3.
- Aman Madaan 等 (2023). Self-Refine: Iterative Refinement with Self-Feedback. NeurIPS 2023. 表 1, 第 4 节.
- Weixiang Zhao 等 (2026). Large Language Model Agents Are Not Always Faithful Self-Evolvers. ICML 2026.
- 其余系统 (R-Zero, SkillsBench, DGM, RQGM, Meta-Harness, GPTSwarm, AFlow, Mimosa, MAS-Zero, OPRO, QueenBee, CTIM-Rover) 的出处见 2.3, 3.1, 3.2, 4.1, 4.3 各篇来源.