RSI 最容易说乱的地方不在算法名,而在动词「改进」。同一个词可以指当前答案被重写、模型参数被更新、技能或程序被保存、生成改进方案的过程被改写,也可以指评价目标本身发生变化。这些系统都含有反馈回路,却面对不同的识别问题。若不先说明哪一部分状态跨任务保留,几乎任何带反思、搜索或工具调用的 Agent 都能被包装成递归自我改进。
这一条路线先建立一套可反复使用的坐标。设系统的可保留状态为
其中 是模型参数, 是提示、程序、技能、记忆与 harness, 是提出和选择改动的改进器, 是任务、奖励、比较规则和验收标准组成的评判系统。一次运行产生轨迹 ,更新过程根据轨迹和证据 生成下一状态:
只有输出改变而四个可保留组件不变,归入 L0; 改变是 L1; 改变是 L2; 自己被持久改写并继续参与下一轮改进,才到 L3; 的语义或结构也进入更新回路,则到 L4。一次更新同时触及多个组件时,按最深的改动归类。这套层级描述的是改动对象的深度,不代表能力高低,也不代表可靠性随编号上升。
1. 从闭环到递归
反馈回路只要求后一步读取前一步的结果。递归自我改进还多两个条件:改进器的变化必须被保留下来,变化后的改进器还要能够再次作用于系统。一个 Agent 连续修改十次答案,仍可能只在 L0;一个外部搜索器替模型找到更好的提示,如果搜索器本身没变,系统整体通常到 L2;一段程序能改写自己的源码,也只有在改写过程改变了后续提出或筛选改动的方式时,才触及 L3。
这也是为什么目前 RSI 大行其道之后,概念反而更需要收紧。改个 skill,改段上下文,给 Agent 接一个能自写提示的循环,很快就有人说自己在做 RSI。技能学习和上下文优化当然有用,问题在于把不同深度的改动压进同一个缩写后,读者看不出系统到底跨过了哪条边界,论文也容易用更深的名字包装较浅的实验。
边界由状态转移决定。Self-Refine 改当前回答;STaR 把筛出的推理写回参数;Promptbreeder 保存并演化提示生成过程;DGM 让代码改动进入后代谱系;评判器自演化则把判断好坏的尺子也交给循环。它们分别落在哪个坐标、能否跨任务保留、是否继续参与下一轮,决定各自的层级。
2. 改动与改进之间差一套证据
从 得到 只能证明系统发生了变化。要声称改进,还要在没有参与候选选择的证据上比较新旧版本。设候选集合为 ,选择集上的估计值为
即使所有候选的真实能力 相同,选择 也会把正噪声最大的候选挑出来。候选越多,冠军在选择集上的虚假优势越大。若 且近似独立, 时标准正态最大值的期望约为 ,不能把渐近上界里的 当成期望值。
比较两个版本时还要分清独立样本和同题配对。若两个版本分别在独立题集上估计通过率,差值方差是两边方差之和;若它们回答同一批题,差值方差由每道题上「旧对新错」与「旧错新对」的分歧决定,模型输出之间的协方差不能丢掉。配对通常更省样本,但只有在题目和判定规则都没有参与选型时,才能处理选择偏差。它降低估计方差,不会自动把被反复查看的验证集重新变成留出集。
可靠的接受过程因此至少分三步:开发证据帮助发现候选,选择证据决定哪些候选值得送检,锁定证据只负责比较最终候选与基线。对连续运行的系统,还要记录每次更新的父版本、数据、评判器、随机性和回滚点。否则一次成功无法区分算法带来的稳定变化、搜索预算带来的偶然冠军和评价器被绕开的假进步。
3. 三篇叶子如何配合
面对一个新系统,最省事的判断办法是先画两条边界。第一条围住任务:任务结束后哪些信息消失,哪些信息会进入下一次运行。第二条围住评价:候选能否读取、预测或修改决定它去留的证据。前一条决定层级,后一条决定可信度。比如,一个代码 Agent 在单次任务里重写自己的工作文件,但任务结束后仓库恢复原状,它没有形成跨任务改进;另一个 Agent 只改了一份短提示,但提示随后被默认加载到所有任务,它已经改变脚手架。改动字数和运行轮数都不能代替这两条边界。
再做一次反事实比较。把本轮生成的答案和轨迹全部删除,只保留更新后的状态,下一项陌生任务的行为还会变吗?不会,通常是 L0;会,再定位变化来自参数、脚手架、改进器还是标准。随后把候选选择阶段看过的任务全部拿走,换一批同分布样本,优势还存在吗?不存在,所谓改进多半只是搜索或过拟合。两个反事实分别排除「循环很长所以递归很深」和「冠军分高所以能力提高」这两种错觉。
层级也不该被写成一条必经升级路线。许多系统停在 L1 或 L2 更合理:固定的验证器和人工写好的 harness 能提供稳定锚,没必要为了名字更深把它们也交给循环。L3、L4 的价值出现在改进任务本身变化太快、固定策略成为瓶颈时,同时会增加验证和治理成本。选择哪一层,应由问题的剩余缺口决定,而不是由宣传上的先进程度决定。
导读与证据规则 用具体系统拆开五类改动,并把读论文时最常遇到的证据漏洞放到实例里。它适合第一次进入 RSI 时阅读,用来防止算法名和公司叙事抢走问题本身。
定义与形式化 给出状态、转移、层级与递归条件。遇到一个边界模糊的新系统,可以沿着它的状态转移逐项判断:改了什么、保留了什么、下一轮由谁继续改。
证据、接受与控制 处理「变了以后怎么知道更好」的问题,重点是候选选择、配对比较、序贯检验、谱系和回滚。前两篇决定系统属于哪一层,第三篇决定这一层的改进主张能不能被接受。
这三篇合起来给出一条固定的分析顺序:先划更新边界,再写状态转移;先分开发现和验收,再看分数;先确认评价信号是否在候选可触及的范围之外,再讨论递归次数。后续各章可以换算法、换任务和换实现,但不会再换这把尺子。