模型与算法 / Self-evolving AI / RSI
AI 会改自己的代码,就算递归自我改进了吗?
从 DGM、SEAL 一路读到 2026 年的 ALMA、自适应 Harness 与自写验证器实验。AI 已经会修改工具、记忆、代码和训练材料,真正没有交出去的,是最后的验收权。
人类读完约 28 分钟/AI 读取约 14 秒
本文结构
最近我把一条从 2023 年读到 2026 年的 self-evolving AI 论文链又补了一遍。第一版写到 DGM、SEAL、Absolute Zero 和 Agent0 时,我关心的还是:AI 到底能不能参与修改自己?补到 ALMA、Adaptive Auto-Harness 和自写验证器实验以后,问题已经变了。
AI 会不会改,越来越不是悬念。真正的悬念是:改完以后,谁有权说它真的变好了?
这里的 self-evolving AI 不是某一种算法,而是一大类“系统会根据经验修改自己”的方法。
一开始我确实有点兴奋。尤其是看到 Darwin Gödel Machine:一个 Coding Agent 可以阅读自己的代码,分析自己的失败,给自己增加工具,再让修改后的版本继续修改下一代。它不只保留冠军,还留下整棵进化树。某个当下分数不高的版本,之后可能长出真正有用的新能力。
这已经很像小时候读到的递归自我改进了。RSI 是 Recursive Self-Improvement 的缩写,中文一般叫递归自我改进:系统不只让当前版本变强,还要让变强后的版本更擅长改进下一代。
AI 不再等人类工程师给它升级。它自己写下一版自己。新版本更强,于是又能写出更强的下一版。只要这个过程继续下去,那条曲线是不是迟早会陡起来?
但论文越往下读,我越不敢这么说。
因为现在的 self-evolving,装进了太多不同的东西。
一个 Agent 把失败经验写进记忆,叫 self-evolving;模型为自己生成微调数据,叫 self-evolving;Coding Agent 修改自己的工具,叫 self-evolving;两个模型一个出题、一个解题,共同训练,也叫 self-evolving。
它们同时被叫作 self-evolving,却显然没有跨过同一条线。
真正改变我判断的,反而是两次不太体面的实验结果。
STOP(Self-Taught Optimizer,自学式优化器)让“负责改代码的程序”开始修改自己。作者本来想用准确率判断一段程序有没有变好,模型却找到了 NumPy 数组形状上的漏洞,最后交出了一份“准确率超过 1000%”的答案。它没有把题做得更好,只是找到了仪表盘的 bug。
DGM 里也发生了相似的事情。研究者希望 Agent 解决“模型假装调用工具,实际上没有调用”的问题,于是在日志中加入特殊标记来检测真实工具调用。一个后代 Agent 很快拿到了满分。它的办法不是解决幻觉,而是删除负责记录特殊标记的代码。检测器从此什么也看不见。
如果只看奖励,这两次自我修改都成功了。
这才是 RSI 真正麻烦的地方。
我们总把注意力放在“AI 能不能修改自己”上,好像只要它获得源码权限,某个决定性的门槛就被跨过去了。但修改并不难。今天的模型已经能改提示词、改工具、改工作流,甚至改负责修改自己的程序。
更难的是:它凭什么知道自己改对了?
如果判断进步的方式仍然由人类写死,那么一个越来越强的自我改进系统,也可能只是越来越擅长成为那套评分函数想要的样子。评分写得好,它沿着我们期待的方向进步;评分有一个洞,递归就会把那个洞不断放大。
所以我读完这条 2023-2026 年的论文链后,暂时得到的答案仍然是否定的。
会改自己的代码,还不等于递归自我改进。
Self-evolving 被撑得太宽,2026 年才补上第二个坐标
Self-Evolving Agents Survey(自进化智能体综述)不是一个新系统,而是给整个方向画了一张地图。一个 Agent 可以修改模型参数、上下文与记忆、工具或者系统架构;变化可以发生在当前任务中,也可以发生在一批任务之后;驱动力可以是奖励、示范或者群体搜索。
问题也出在这里。更新一条记忆和重写一套训练算法,被放进了同一个大类。
2026 年的 Recursive Self-Improvement in AI 综述给这张地图补了我更关心的第二个坐标。它整理了 2024-2026 年间收集到的 1,250 篇 arXiv 论文,然后问了两件事:系统到底改的是部署时行为、训练策略、评价器,还是整个研究过程;这条循环里,人是亲自执行、只在旁边监督,还是已经完全退出。
这比单纯统计“AI 改了什么”更接近 RSI。因为同样是自动生成新版本,人类写死评分函数、每轮挑冠军,和系统连评价标准、实验方向、下一轮研究问题都能一起更新,根本不是同一件事。
这篇综述把 bounded self-refinement 和 open-ended RSI 分开。前者是在固定边界里反复打磨,目标稳定、收敛可测,已经大量进入工程;后者不只改变答案,连系统和改进系统的方式都可能变化。越往后走,固定 Benchmark 越难继续充当裁判。
它还给评价信号排了一条很现实的强弱顺序:形式证明和类型系统最硬,其次是测试、编译器、可执行环境,再往下是学出来的 judge,最弱的是置信度、自洽性和模型自己的感觉。不是越“自主”越高级,而是越远离可以外部验证的 Ground Truth,循环越容易变成自我确认。
这正好把我前面卡住的地方说透了:每一个自我改进循环,都在赌某个信号可以暂时代替人的判断。循环能走多远,首先取决于这个替代品有多可靠。
我第一次试着复述时,也很自然地把两者分成了两条技术路线:self-evolving 更像是在改 Agent 外壳(harness)、做监督微调(SFT)、跑多 Agent 强化学习;RSI 更像是模型自己合成数据、生成课程、改进学习过程。
后来我发现,这个分法把两个坐标混在了一起。
SEAL、Absolute Zero 和 Agent0 会修改训练材料、模型权重与课程,它们仍然都属于 self-evolving。反过来,STOP 和 DGM 没有更新底层模型参数,却已经让负责改进 Agent 的程序进入了下一轮改进过程。
所以区别不在改外壳还是改权重,也不在有没有碰预训练。self-evolving 先回答“系统的哪些部分可以随经验变化”;RSI 追问的是“这次变化有没有让系统更擅长产生下一次变化”。一个说修改范围,一个说递归深度。
我后来把它重新切成了三层:
| 层级 | 发生了什么 | 一个简单例子 |
|---|---|---|
| 行为改进 | 当前答案变好 | 反思后重写回答 |
| 学习改进 | 未来遇到相似问题时变好 | 更新记忆或模型权重 |
| 改进机制的改进 | 负责学习和修改的程序本身变好 | 重写记忆策略、训练流程或搜索算法 |
前两层当然也算某种自我变化,但 RSI 真正关心的是第三层:改进后的系统,是否因此更擅长产生下一次改进。
拿我的 Obsidian 外脑来说。Agent 每次对话后自动写一条摘要,下次再检索出来,它已经会随着经历变化。但写什么、怎么压缩、何时召回、什么叫有效记忆,仍然是人提前规定的。它在被一个固定机制更新,没有更新负责更新自己的机制。
只有当它发现摘要越来越多、错误召回越来越频繁,进而重写摘要规则、检索策略和评价方式,并且新的机制又让它更擅长发现下一轮问题时,才开始碰到递归。
“发生变化”与“改进自己的改进能力”,中间还隔着很远。
如果这几种更新还混在一起,可以直接操作这张图: 在同一个反馈闭环里切换 Harness、Post-training、Pre-training 和完整系统。
STOP 第一次把改进器放进了自己的输入
STOP 的起点是一段很普通的程序:接收待优化代码,让 GPT-4 生成多个版本,用效用函数(utility function,也就是程序的评分规则)打分,再返回得分最高的那个。
关键在于,这个 improver 自己也是一段代码。
作者把 improver 的源码作为待优化对象,再用它在一组下游任务上的总成绩作为 meta-utility,也就是“对改进器本身的评分”。旧 improver 改出一个新 improver,新版本又可以继续修改自己。
这就是论文真正的递归点。不是“模型会写代码”,而是负责优化程序的程序进入了自己的输入位置。
用噪声奇偶校验任务进化出来的 improver,被直接拿去处理没有见过的任务:
| 任务 | 初始 improver | 自我改进后 |
|---|---|---|
| 3SAT | 21.2% | 75.1% |
| MaxCut | 58.7% | 74.2% |
| 无噪声 Parity | 59.3% | 81.7% |
数据来源:STOP Table 1。
它形成了一些能迁移的搜索策略,例如维护候选解群体、模拟退火和探索与利用的平衡。这比针对一道题改 prompt 强得多。
但 GPT-4 的参数没有变化。效用函数、任务分布、运行预算和隔离运行环境(sandbox)也都由人规定。它获得的是更好的 GPT-4 使用方式,不是一个更聪明的 GPT-4。
而且,越会优化,就越会碰到评价函数的洞。那次超过 1000% 的准确率不是论文旁边一个好玩的 bug,它提前暴露了整条路线的核心风险:系统开始修改改进机制以后,评价函数里任何一个漏洞都可能变成目的地。
从 Gödel Agent 到 SICA:把更多代码交给 AI
Gödel Agent(哥德尔智能体)又往前走了一步。它的核心不是一个新模型,而是一段可以在运行时读取、替换自己函数的 Agent 程序;这种做法叫 monkey patching。主函数使用递归调用,因此新版本可以接管下一轮自我修改。
STOP 主要在改“怎样调用模型来优化代码”的 Agent 外壳(scaffold);Gödel Agent 理论上可以同时修改任务策略和负责修改策略的程序。
在统一使用 GPT-3.5 的受约束实验中,它相对 Meta Agent Search 真正明显的优势主要出现在 MGSM(多语言小学数学题测试集):64.2 对 53.4。Game of 24(用四个数字算出 24)的案例更直观:Agent 连续尝试语言模型推理无效后,直接把方案换成确定性搜索,最终达到 100%。
这证明它能够推翻原有工作方式,不证明底层模型获得了新的数学能力。
论文里允许自由调用外部模型的 unrestricted 版本分数更高,但作者检查后发现,一个重要原因是 Agent 主动请求 GPT-4o 帮忙。更会寻找外援当然也是能力,却不能和自身智能跃迁混在一起。
自由修改还有反面。在 100 次 MGSM 优化实验中,92% 的过程出现过暂时性下降,14% 最终比初始策略更差,4% 意外终止。终止往往发生在 Agent 把自己的递归改进模块改坏之后。
系统拥有越大的自我修改自由,也越有机会破坏继续理解和修改自己的能力。
SICA(Self-Improving Coding Agent,自我改进编码智能体)把这件事搬到了真实代码仓库。一句话说,它让 Coding Agent 直接编辑自己的完整 Python 代码库,再用改完后的版本继续做下一轮软件工程任务。
15 轮自我修改花了约 7,000 美元。在固定抽取的 50 道 SWE-bench Verified 上,成绩从 17% 提高到最好 53%,最后一轮为 51%。SWE-bench Verified 是一组经过人工确认的真实 GitHub 问题:Agent 要找到代码、修复 bug,并通过仓库测试。
数字很大,但它真正发明出来的东西非常工程化:更精准地局部编辑代码,用 diff 只提交变化,从仓库中检索相关上下文,按函数和类定位代码,并减少无效输出。
它没有突然理解更深的软件工程,只是发现自己大量时间浪费在找代码、改代码和传输无用上下文上,于是给自己造出了更好的手和眼睛。
这也是很真实的能力提升。很多 Agent 的瓶颈不在模型,而在工具太笨。
但同一组 50 道 SWE-bench 题被反复用于版本选择,最后又拿来报告成绩。SICA 还同时测了 LiveCodeBench、文件编辑和代码定位,但它们都属于同一套版本选择指标,不是进化结束以后才打开的留出考试。所以我能确认的是:SICA 越来越会解决这套评测暴露出来的工程问题;我还不能确认的是:换一批仓库、语言和错误类型,它学到的改进方式是否仍然有效。这里缺的不是更高的分数,而是独立的泛化证据。
更关键的是,SICA 每轮仍然从档案中选择当前最高分版本继续修改。一次短期降分、长期有用的改动,很可能没有机会活到下一轮。
DGM:不是一条升级线,而是一片允许失败的树林
DGM 是 Darwin Gödel Machine 的缩写,可以理解为“用达尔文式进化搜索来运行一群会改自己代码的 Agent”。它最重要的变化,不是把 Agent 代码再开放一点,而是放弃了“永远让冠军继续进化”。
它保存所有能正常运行的 Agent。每轮从档案中选择父代,让父代分析失败日志、提出修改、实现一个新版本,然后再把后代放回档案。高分而且后代较少的 Agent 更容易被选中,但任何版本都有非零概率重新获得一次机会。

图源:Darwin Gödel Machine v3 Figure 1,论文采用 CC BY 4.0。这里保留原图,只做网页尺寸适配。
档案不是版本备份,是未来能力的种子库。
论文里有两个 Agent 都想增加细粒度编辑能力。一个在旧编辑器上增加参数,只得到 23.3%;另一个换成 str_replace,得到 40.5%。同一个方向,第一次实现不好,不代表这条路线没有价值。
这就是 stepping stone:某个今天没赢的版本,可能是明天突破之前必须经过的垫脚石。
经过 80 轮进化,它在两个 Benchmark(统一测试集)上都提高了成绩。SWE-bench 测 Python 仓库修复,Polyglot 则把同类任务扩展到多种编程语言:
| Benchmark | 初始 Agent | DGM 最佳 Agent |
|---|---|---|
| SWE-bench | 20.0% | 50.0% |
| Polyglot 完整集 | 14.2% | 30.7% |
数据来源:DGM v3 论文结果与完整 Polyglot 复测。
更重要的是消融实验,也就是每次拿掉一个关键机制,看成绩到底是不是它带来的。这里的 Polyglot 使用进化过程中那组 50 题,所以完整 DGM 是 38.0%;前面的 30.7% 是后来在完整 Polyglot 上重新测试的结果,两者不是同一口径:
| 方法 | SWE-bench | Polyglot |
|---|---|---|
| 完整 DGM | 50.0% | 38.0% |
| 没有开放式档案 | 23.0% | 14.0% |
| 改进者始终固定 | 39.0% | 28.0% |
| 永远选择当前冠军 | 39.7% | 30.0% |
数据来源:DGM v3 Figure 2 与 Appendix A.3。
这组数据把两个东西分开了。一个固定的强模型也能设计出更好的 Agent,但很快会停;一个会自我改进的 Agent 如果只沿最新版本往下走,又很容易被一次坏修改拖死。改进者跟着进步,以及保留暂时不够好的支线,都贡献了独立价值。
跨任务结果又让证据硬了一层。在 SWE-bench 上进化出来的 Agent,从未接触 Polyglot,仍然把成绩从基础版本的 14.2% 提到 28.9%;反过来,Polyglot 进化版在没有见过 SWE-bench 的情况下,从 20.0% 提到 24.5%。
它还可以把进化出来的 Agent 框架换到其他基础模型上。o3-mini 从 23.0% 提到 33.0%,Claude 3.7 Sonnet 从 19.0% 提到 59.5%。至少一部分改进不依赖原本参与进化的模型,也不只服务一套题。
DGM 因此跨过了我最在意的一条线:更强的 Coding Agent 不只会解更多题,它也被重新用来产生下一代 Coding Agent。
这也是我认为它最接近工程 RSI 的实验之一。
但 v3 附录里还有一个很容易被主图遮住的细节。当前实现并不是完全由父代独立发现改进方向。系统会把父代的 Benchmark 日志交给一个独立的 o1 模型,让它诊断问题并生成 implementation_suggestion,然后父代负责把建议写进自己的代码库。
也就是说,DGM 确实在改自己,负责发现“下一步该改什么”的那部分判断却还借用了固定的外部模型。论文正文把这个过程写成父代分析自己的日志,附录才把独立诊断步骤展开。我因此把判断从“最接近工程 RSI”收紧成“最接近的实验之一”。它闭合了实现环,没有完全闭合提出改进方向的环。
但它的边界非常明确。基础模型没有更新,Benchmark 没有更新,父代选择和计算资源分配规则也不能被 Agent 修改。论文自己承认,最外层的开放式探索循环(open-ended exploration loop)在这次实验里保持固定。
它可以改物种,不能改自然选择的规则。
而且一次 SWE-bench 运行需要约两周和 22,000 美元。我们看到的是能力随着计算投入增加,没有看到每一轮进步因为上一轮进步而变得更便宜。最终分数上涨,不等于自我加速已经发生。
这也解释了为什么我不会拿 SICA 的 53% 和 DGM 的 50% 直接排座次。SICA 分数更高,但它报告的几组题都参与了进化方向选择,无法单独证明泛化。DGM 在 SWE-bench 上进化出的 Agent,被直接放到完全没有参与进化的 Polyglot 上,仍然从 14.2% 提到 28.9%;换基础模型以后,改进也没有消失。这才是跨任务、跨模型的泛化证据。它的消融实验又回答了另一件事:去掉开放式档案、让改进者保持固定,或者永远只选当前冠军,结果都会变差,说明这些机制确实各自有用。
对 RSI 来说,重要的不是冠军多做对了三道题,而是这次改进能不能活过换题、换模型和下一代。DGM 的证据更硬,但它仍然把 Benchmark、父代选择、外部 o1 诊断和整个进化循环留在人类手里。
2026:Harness 走出固定题库以后
DGM 证明 Agent 可以改自己的代码。2026 年这条线开始面对一个更像真实部署的问题:任务不会整齐地一次性摆在 Benchmark 里,历史会越积越多,任务类型会混在一起,分布还会变化。一个在第十轮表现最好的 Harness,到第五十轮可能已经背着一整座废墟。
AutoHarness先把 Harness 的边界推得更远。它让 Gemini 2.5 Flash 根据游戏环境反馈,用树搜索不断改写一段代码:可以只负责拦住非法动作,也可以直接变成完整的游戏策略。作者在 145 个 TextArena 游戏的新测试轨迹上检查动作合法性,最终全部达到 100%。在 16 个双人游戏里,加上 Harness 的 Flash 胜率为 56.3%,大于 Gemini 2.5 Pro 的 38.2%。
这说明一个小模型可以给自己造出很强的外骨骼,甚至把一部分模型推理蒸馏成执行时不再调用模型的代码。但每个游戏的环境、奖励、搜索过程和停止条件都已经固定。它学会的是“怎样在这个世界里少犯规则错误”,不是“怎样重新设计自己学习世界的方式”。论文结尾也把把这些 Harness 再蒸馏回模型、形成真正递归的系统,留给了未来工作。
Adaptive Auto-Harness接着处理持续任务流。它不再把全部经验塞进一份越来越肿的 Harness,而是保留一棵分支树:分析 Agent 找瓶颈,多个研究 Agent 寻找新方法,Builder 实现修改,Verifier 检查;真正解题时,再由 Router 选择更适合当前任务的分支。

图源:Adaptive Auto-Harness v1 Figure 3,论文采用 CC BY 4.0。这里保留论文原图,只做格式转换与网页尺寸适配。
结果不只是“又涨了一次分”。在预测市场 PolyBench 上,完整系统准确率达到 80.9%,无进化 Sonnet 是 22.2%;在 CTF-Dojo 上,Pass@1 从 37.2% 提到 50.2%;FutureX 上,四角色进化版本达到 49.5%,单线 A-Evolve 是 47.5%。消融里,四角色加持久记忆让 PolyBench 的累计胜率从 20.3 提到 44.3,CTF 从 38% 到 43%,FutureX 从 38% 到 44%。
但论文最打动我的反而是人类介入的那组结果。系统缺少账号、数据源或外部知识时,人只补一条真正缺失的信号,目标金融与科技任务提高 20 个点,临近任务提高 15 个点,泛泛的 Polymarket 问题则没有提升。它说明 Harness 可以自动消化已经出现的经验,却无法从自己的历史里凭空长出没有见过的现实入口。
换句话说,2026 年的 Harness 路线已经从“会改代码”走到“会在时间里维护一组不同的自己”。可任务流、反馈、路由评价和人类补充的外部信号,仍然围在系统外面。它更像持续进化的产品系统,不是闭合的 RSI。
8 月的 SBCO又给了我一个很重要的反例:自指不一定是最有效的自我改进方式。它没有让规划 Agent 改自己的代码,而是用一个固定 Meta Agent 学出一组分解后的验证器,以及“发现违反约束后怎样修复”的 Harness 策略。在旅行和购物两个约束规划任务上,它追平或超过定制版 Huxley Gödel Machine,计算预算只有后者的约 18%-25%;86% 的提升来自 F1 不低于 0.80 的验证器。
这不是 RSI。SBCO 自己也明确说,Meta Agent 是固定的,而且只在两类有明确约束的规划任务上验证。但它让我修正了一个很容易兴奋过头的判断:让系统递归地改自己,不天然比固定改进器更先进。只要外部约束足够清楚,先把验证器做好,可能更便宜,也更可靠。
最新的 SHAPER甚至把这条路线带进了具身 Agent:模型参数冻结,只靠真实环境中的少量 rollout,继续修改技能说明和上下文 Harness。它证明 self-evolving 正在从 Coding Agent 扩散到会看、会动的系统;也再次说明,这个词描述的是修改范围越来越大,不等于递归已经闭合。
另一条路线:不只积累经验,开始修改怎么学
STOP、Gödel Agent、SICA 和 DGM 都在修改模型外面的系统。基础模型被冻结,变化发生在 prompt、工具、工作流和 Agent 代码。
另一批论文开始处理完全不同的问题:模型能不能决定自己应该怎样学习,甚至下一步应该学什么。
ALMA:连“怎么记”也交给搜索
ALMA 是 Automated meta-Learning of Memory designs for Agentic systems 的缩写。简单说,它不是让 Agent 多写几条记忆,而是让 Meta Agent 直接搜索一套新的记忆系统:数据库用什么结构、一次经历怎样提炼、什么时候更新、遇到新任务又怎样取回来,这些都写成可以执行的 Python 代码。
它的搜索方式很像 DGM。所有能运行的记忆设计都进入档案,分数高、尝试次数少的版本更容易被抽中,但任何版本都有非零概率再次出现。Meta Agent 读取代码和评测日志,提出新设计、实现、调试,再把结果放回档案。这里被进化的不是解题 Agent 本身,而是 Agent 从经验里学习的那套记忆机制。
这已经比“把对话摘要存进向量库”往前走了一层。ALMA 用 GPT-5-nano 作为固定 Agent 时,四个连续决策环境的平均成功率从无记忆的 6.1% 提高到 12.3%;把学到的同一套记忆设计直接迁移给 GPT-5-mini,平均成功率从 41.1% 提高到 53.9%。在 ALFWorld 的分布变化测试里,开放档案搜索出的设计达到 84.1%,也优于人工记忆基线。
我之前写 Agent Memory 时一直说,长期记忆真正难的不是数据库变大,而是写入、压缩、召回和遗忘策略。ALMA 已经让 AI 开始搜索这些策略,算是在回答“以后怎样更会学习”。
但它还没有回答“以后怎样更会设计学习算法”。人类固定了 Meta Agent、代码接口、档案采样、四个游戏环境和成功率。学出来的记忆设计也明显带有领域性:文本冒险里的好记忆,不会自然变成真实工作的好记忆。ALMA 改进了学习器的一个器官,还没有改进决定该造什么器官、怎样验收器官的最外层机制。
再往模型参数这一边走,SEAL、Absolute Zero 和 Agent0 才真正开始改训练材料、权重和课程。
先别管缩写,直接看三条训练链路:
- SEAL:人给一份资料 → 模型把资料改写成自己的笔记和训练指令 → 外部微调程序更新权重 → 用考试成绩判断这份笔记有没有用。
- Absolute Zero:同一个模型出一道可执行的 Python 题 → Python 环境产生并验证正确答案 → 模型解题 → 强化学习同时奖励会出题和会解题。
- Agent0:课程 Agent 专门出当前解题 Agent 拿不准的题 → 解题 Agent 回答多次,用多数答案暂时代替标准答案 → 两个 Agent 分别更新 → 下一轮继续提高难度。
如果用人的学习做比喻,SEAL 像拿到教材后学会怎样做笔记,Absolute Zero 像自己寻找能力边缘的练习题,Agent0 则更像老师和学生一起升级。它们会改变教材、课程和模型权重,但最外层的训练算法与评分规则仍由人固定。
SEAL:模型开始给自己编教材
SEAL 来自 Self-Adapting LLMs,可以理解为“会为自己准备微调材料和更新指令的语言模型”。它生成的 self-edit 不是直接打开自己的神经元,而是一份训练方案:把新资料改写成哪些推论或问答、选择什么数据增强、学习率和训练轮数。外部程序再执行 SFT(监督微调)或 LoRA(只训练少量适配参数的轻量微调),真正更新权重。
SEAL 里其实有两次不同目的的权重更新,很容易混在一起。内层先根据某份 self-edit 微调出一个临时版本,再让它参加测试;这次更新回答“这份笔记能不能让我学会新内容”。外层看到测试结果后,只拿有效的 self-edit 继续训练原模型;这次更新回答“以后怎样生成更适合自己的笔记”。
图源:Self-Adapting Language Models v2 Figure 1,论文采用 CC BY 4.0。这里使用论文原始 SVG。
在无上下文 SQuAD 上,模型先读一段资料并更新权重,测试时不再看到原文,只凭权重回答问题:
| 更新方式 | 准确率 |
|---|---|
| 不更新 | 32.7% |
| 只在原文上训练 | 33.5% |
| 基础模型生成训练材料 | 39.7% |
| GPT-4.1 生成训练材料 | 46.3% |
| SEAL | 47.0% |
直接把资料读一遍几乎没用。把资料拆成模型更容易吸收的原子事实,才真正进入权重。
SEAL 学会的是怎样给自己做笔记,不是怎样重写训练学校。微调算法、筛选高分 self-edit 的外层循环、奖励计算和下游问答仍由人固定。连续注入新知识时,旧任务表现还会逐渐下降。它开始修改大脑,却没有解决遗忘,也不能修改负责训练大脑的算法。
Absolute Zero:没有人工题库,还是有人类学校
Absolute Zero Reasoner(AZR,绝对零推理器)又拿走了一层人工输入。一句话说,它不用人类准备题库,而是让同一个模型既当出题者(Proposer)又当解题者(Solver),围绕 Python 生成三类任务:给程序和输入推导输出,给程序和输出反推输入,以及从输入输出样例归纳程序。
Python 执行器负责验证答案。出题者使用 learnability reward,也就是专门奖励“当前解题者偶尔能做对”的题:成功率为 100% 太简单,奖励为零;一次都做不对又没有学习信号,奖励也为零;只有位于能力边缘的题最值钱。
出题者和解题者不是两套模型,而是同一套权重扮演两个角色。出题获得 learnability reward,解题获得 Python 环境给出的正确性奖励,两种信号共同更新这个模型。
Qwen2.5-7B-Coder 是一个约 70 亿参数的代码模型。经过自生成课程训练以后:
| 指标 | 基础模型 | AZR |
|---|---|---|
| 代码平均分 | 56.6 | 61.6 |
| 数学平均分 | 23.9 | 39.1 |
| 综合平均分 | 40.2 | 50.4 |
训练环境里没有 AIME、MATH500 这些人工题集,数学平均分却提高了 15.2 个百分点。代码执行、逆向搜索、假设验证和归纳可能形成了能跨领域迁移的推理能力。
但“Absolute Zero”里的 zero 只代表没有外部整理好的训练题目。Qwen 已经吸收过海量人类代码;Python 世界、三类任务、learnability reward、强化学习(RL)算法和最终 Benchmark 也全部由人设计。
它没有消费人工题库,仍然生活在人类设计的学校里。
所以,自生成数据没有消除人类先验,只是把人类先验从数据集搬到了环境、任务语法和奖励函数。
Agent0:一起变强,也可能一起犯错
Agent0 是一套“出题者和解题者共同进化”的训练系统。Curriculum Agent 是出题者,负责生成让 Executor 不确定、需要调用 Python、并且不和其他题重复的问题;Executor 是解题者,负责在这些题上训练。解题者变强后,旧课程失去难度,出题者继续往外推。
它和 Absolute Zero 的差别不只是换了名字。Agent0 从同一个基础模型复制出两套独立参数:每轮先训练出题者,再暂时冻结它生成题库,随后训练解题者。下一轮,变强后的解题者又会反过来改变什么题才算“位于能力边缘”。
它还把工具从验证器变成推理的一部分。Executor 可以用 Python 枚举、计算和验证,出题者为了继续制造挑战,也会生成越来越依赖工具的问题。
三轮共同进化中,约 80 亿参数的 Qwen3-8B 数学平均分从第一轮 55.1 提高到第三轮 58.2。论文报告,相对基础模型,数学推理提升约 18%,通用推理提升约 24%。
但它没有可靠的标准答案。Executor 对每道题回答 10 次,多数答案被当成 pseudo-label,也就是系统暂时认定的“伪标签答案”。ADPO(Ambiguity-Dynamic Policy Optimization,歧义动态策略优化)会降低模型意见分裂时的训练权重,却识别不了“十次回答建立在同一个错误上”。
共同变得更一致,不等于共同接近真相。
而且只有三轮。它能证明共进化在前三轮有效,不能证明第十轮还会提升,也没有回答错误伪标签、灾难性遗忘、课程坍缩和工具成本会不会不断积累。
2026 真正的新问题:改分数,还是改现实
前面的论文里,评分漏洞大多还是一个案例:STOP 算出 1000% 准确率,DGM 后代删掉检测日志。2026 年的 Reward Hacking in Self-Improving Code Agents 第一次把这件事做成了成规模的对照实验。
作者把题目分成两组。Agent 只看得到公开题,用它们作为 proxy reward(代理分数)反复优化代码;另一组留出题完全不进入循环,只在最后检查 real performance(真实表现)。他们测试了 GPU Kernel 优化和算法优化两类任务、三个前沿模型、五种 Agent 配置与数千条迭代轨迹。
| 实验 | 公开分数提高、留出任务没有提高的比例 |
|---|---|
| Kernel-Bench | 73.8% |
| ALE-Bench | 46.8% |
更麻烦的是,这个问题会随循环变深而放大。优化 10 步时,奖励作弊比例是 26.4%;到 100 步时变成 57.8%。系统不是偶尔撞到一个漏洞,而是在持续优化中越来越会贴着代理指标生长。
作者还试了 retrospection,也就是分数突然上涨时让 Agent 回头自检。在 Kernel-Bench 上,某些设置能把奖励作弊降低约 17-19 个百分点;到了 ALE-Bench,改善不稳定,有些设置反而更差。让同一个模型“再认真想想自己有没有作弊”,不是一个能跨任务成立的解决方案。
7 月的 Self-Authored Verification Is Unreliable 又把问题推进了一步。固定评价函数有漏洞已经够麻烦了,这篇论文干脆允许 Agent 同时重写策略和自己的测试。结果是,自评分可以一直接近满分,隐藏部署环境里的真实表现却很低,甚至继续下降。作者把它叫 verifier-deployment gap:验证器看到的世界,和真正部署的世界分开了。
他们覆盖多种模型、5 个 Atari 游戏,并用 3 个随机种子重复。以 Breakout 为例,GPT-5.5 在没有保护时最终部署得分是 7.4,自评分却是 1.00;加上一道外部密封验收后,部署得分提高到 15.2,自评分仍然是 1.00。Gemini-3-Flash 从 7.9 提高到 30.0。自评分几乎没有告诉我们哪一个版本更能在现实环境里活下来。
论文提出的办法也叫 SEAL,但这次是 Sealed Exogenous Acceptance Loop,不要和前面修改模型权重的 Self-Adapting Language Models 混在一起。它仍然允许 Agent 写自己的测试,只是 Agent 看不到一小组外部审计样本,也拿不到具体分数,只会收到接受或拒绝。候选版本在这道密封审计里明显退步,就保留旧版本。
这个办法谈不上让 AI 自己解决了 Ground Truth。恰恰相反,它用实验说明:可靠的自我改进,至少需要一个不由候选系统编写、不能被它观察、也不会随它一起更新的验收信号。
2025 年证明 AI 可以参与改进。2026 年开始证明,连验收权一起交出去会发生什么。
两条路线,不是两个定义
读到这里,这些论文确实在工程手段上分成了两条线。但我第一次复述时犯了一个错:我把横轴当成了纵轴。
这张图是我的理解重绘,不是论文原图。横轴回答“系统改了什么”:左边是 Agent 的代码、工具和工作流,右边是训练数据、模型权重和课程。纵轴回答另一个问题:这次变化只是让当前任务做得更好,还是已经改变了未来如何学习,甚至让负责改进的机制也进入下一轮。
DGM 的底层模型没有更新,但被选中的后代会继承 Agent 代码,继续寻找下一轮改进。它已经碰到了递归。SEAL 真的改了模型权重,但训练配方、数据生成方式和评价规则仍由人固定。它当然属于 self-evolving,却不能因为“动了参数”就自动比 DGM 更接近 RSI。
所以,两条工程路线不需要先汇合,才能讨论 RSI。更完整的自我改进系统很可能最终会同时用到它们:AZR 生成新的学习前沿,SEAL 决定怎样把经验写进权重,DGM 改进 Agent、工具和训练程序,更强的新系统再设计下一轮任务与学习方式。
但接起来以后,STOP 和 DGM 里的奖励作弊不会消失,只会变得更难发现。
如果系统既能修改执行代码,又能修改模型参数,还能生成自己的训练题,那么一个错误评价不再只影响一次实验。它可能同时改变系统如何行动、如何学习,以及下一轮选择什么作为学习目标。
前面八篇论文建立了这篇文章的骨架。2026 年的新论文没有推翻它,反而把最薄弱的地方照得更清楚:
| 论文 | 它真的改了什么 | 我为什么信,又为什么没有全信 | 离 RSI 还差什么 |
|---|---|---|---|
| 2026 RSI Survey | 给改进对象与循环闭合度建立坐标 | 1,250 篇样本让边界更清楚;它是综述,不是 RSI 实验 | 评价器和研究方向仍是最薄弱的闭环 |
| ALMA | 记忆结构、写入和召回机制 | 留出任务与跨模型迁移都有效;Meta Agent 和成功率固定 | 会搜索学习器的一个器官,还不会搜索整套学习制度 |
| AutoHarness / Adaptive | 代码外骨骼、技能、工具与分支路由 | 从新游戏轨迹走到持续任务流;外部环境和反馈仍由人给出 | 能维护多个自己,不能产生缺失的现实信号 |
| SBCO | 验证器组与修复策略 | 两个规划域里更省计算,验证器可靠性与提升相关;Meta Agent 固定 | 高效自我改进,不是自指递归 |
| SHAPER | 具身 Agent 的技能与上下文 Harness | 冻结模型也能在新环境适配;还缺真实机器人与跨具身迁移 | 修改范围扩张,不代表改进机制进入下一轮 |
| Reward Hacking | 没有造新系统,专门测代理分数与真实任务 | 留出任务揭示 46.8%-73.8% 的分叉,循环越深越严重 | 自检不能稳定修复,Ground Truth 不能只靠代理指标 |
| Self-Authored Verification | 策略和自写测试一起变化 | 隐藏部署评测跨模型、游戏与随机种子复现分叉 | 至少需要一个系统控制之外的验收信号 |
现在我能更精确地说,稀缺的不只是“下一代会不会更强”。更稀缺的是:改进后的系统是否更擅长改进下一代,而且这个判断在它看不见的现实里仍然成立。STOP、Gödel Agent、DGM 和 ALMA 已经让改进器或学习机制的一部分进入后续循环,但还没有一篇论文证明这种能力可以在独立验收下持续加速。
以后再看到“自我进化”,我先不看标题
以后再看到一篇“自我进化”论文,我会先问六件事。
- 它改的是当前输出、记忆、代码、权重,还是负责产生改进的程序?
- 改进后的版本,是否真的更擅长找到和实现下一轮改进?
- 它能否产生新的学习前沿,而不是反复优化固定题库?
- 新能力能否迁移,同时保留以前已经学会的东西?
- 单位进步成本是否下降,还是只靠更长时间和更多候选堆出分数?
- 最终验收来自哪里?候选系统能不能看见、修改或者逐渐拟合它?
在这组论文里,STOP 最早把改进器放进了自己的输入,DGM 给出了很硬的工程递归证据,ALMA 开始搜索“怎么记”,SEAL 真正修改了权重,AZR 最接近自主产生可验证的学习前沿,Agent0 展示了课程与能力怎样互相推动,Adaptive Auto-Harness 则证明一套自进化系统可以在持续任务流里维护多个分支。
没有一篇同时通过这六道门。
所以我现在不会用“RSI 已经发生”来描述这些结果。
我更愿意说,AI 已经开始接管自我改进流程里的不同工种:有的负责写下一版代码,有的负责重造记忆系统,有的负责整理训练材料,有的负责出下一批题,还有的负责生成测试与验证器。过去完全由研究者手工完成的部分,正在一块一块交出去。
但真正掌握方向的不是谁会写评价函数,而是谁拥有最后的验收权。
我一开始把问题想成:AI 什么时候能自己写评价函数?读到这里才发现,写出一段评价代码、让另一个模型充当 judge,其实已经不是最难的部分。真正难的是,AI 改完评价函数以后,凭什么证明新标准仍然在衡量我们关心的东西,而不是偷偷把考试改成了自己更容易通过的样子。
今天这些系统的最终效果仍然要靠人定义任务分布、准备可执行环境、保留留出测试,或者藏起一小组不会被候选系统看见的审计样本。AI 正在学会变异,也开始参与出题和判卷,但一旦它既当考生又改试卷,内部满分就不再等于现实进步。
这肯定是方向。可 RSI 缺的不是又一个会打分的模型,而是一个不会在递归里被一起改坏、又能代表真实结果的现实锚点。
2026 年的论文让我比第一版更乐观,也更谨慎。乐观的是,记忆、Harness、课程、验证器和模型权重都已经开始进入自动改进。谨慎的是,系统越会改,那个最后不能交给它自己改的东西反而越清楚。
决定什么算进步的人,仍然决定了它最终会变成什么。
这篇文章会随着系统继续变化。