PAPER DEEP DIVE
RRSI:面向智能体框架的规范化递归自我改进
RRSI 将智能体框架视为冻结基础模型之上的可编辑程序,并规范化其递归演化。方法在提议端使用退火编辑预算、证据化信用分配与停滞时的结构化探索,在选择端通过泄漏筛查、噪声下限、增益约束成本和结构剪枝过滤候选。在八个编码、工作区与工程设计基准上,RRSI 持续提升分布外表现,并将策略令牌成本较无正则演化降低约 30%。
论文:RRSI: Regularized Recursive Self-Improvement of Agent Harnesses
作者:Peng Xia、Rujun Han、Zifeng Wang、Yanfei Chen、Yufan Zhuang、Yoonho Lee、Chengsong Huang、Han Yu、Zhongying CuiZhu、Yifei Ming、Huaxiu Yao、Burak Gokturk、Tomas Pfister、Chen-Yu Lee
全文:https://arxiv.org/abs/2609.24972 项目页:https://regularized-rsi.com/ 代码:google-research/rrsi(Apache 2.0,公开可运行)
版本:v3,2026 年 10 月 4 日修订。本文解读以该版本全文、附录算法和公开仓库为准。
一句话总结
RRSI 不限制智能体框架能改哪些部分,而是规范化“怎样搜索”和“哪些改进能被永久接受”,用退火编辑预算、历史证据、泄漏筛查、噪声门槛与成本约束,把一个容易拟合测试集的递归演化过程,变成更可能跨基准迁移的搜索过程。
研究背景:被忽略的演化过拟合
大模型智能体的能力不只由权重决定。系统提示、任务提示、控制流、工具接口、记忆文件、上下文压缩策略以及子智能体编排,共同构成了模型之外的智能体框架。论文把策略记作 $\pi$,把框架记作 $H$,于是智能体是二元组 $A=(\pi,H)$。当权重冻结时,框架就是新的可优化对象。
框架演化的典型做法很直接:在开发集上运行当前框架,让提议模型根据失败轨迹改写提示或代码,再在原开发集上评估候选,最后保留分数最高者。这个过程可以反复递归,表面上像是智能体在改进自己。
问题在于,同一批开发任务被反复用于提议和选择。候选在第 $t$ 轮出现,依赖前面几轮在同一有限任务集上得到的反馈,因此它不是一次独立评估,而是自适应经验优化。搜索空间又包含自然语言、控制代码、工具描述和记忆结构,表达力极强,足以把任务名称、实体、答案模式甚至评审偏好写进框架。
于是三个风险同时出现。第一,演化分数可能上升,迁移分数却下降;第二,选择过程可能追逐评估噪声,把偶然波动固化为永久状态;第三,候选可能不断增加工具、上下文与流程,却无法证明新增复杂度带来了真实收益。
RRSI 的出发点是把机器学习中的稀疏、收缩与选择思想移到搜索轨迹上。论文明确说明,这里不是对固定连续参数向量做 $L_0$、$L_1$ 或 $L_2$ 罚项优化,而是用这些名称描述离散框架编辑中的三类控制作用:限制一次更新包含多少独立编辑、删除长期无收益结构、抑制没有收益支撑的资源增长。
这一点很重要。很多自动智能体改进方法把“允许修改”当作能力,却很少讨论“修改资格”。RRSI 保留了开放式编辑空间,却要求每个候选先通过证据与资源门槛,才可能从临时候选变成下一轮框架。
预备知识:把框架质量写成可测目标
对一个任务 $x$,智能体产生轨迹 $\tau$,验证器给出 $r(x,\tau)\in[0,1]$。在任务集 $D$ 上,框架 $H$ 的期望性能和策略令牌成本分别为:
$$S(H;D)=\mathbb{E}_{x\sim D}\mathbb{E}_{\tau\sim A(\cdot\mid x)}[r(x,\tau)],\qquad C(H;D)=\mathbb{E}_{x\sim D}\mathbb{E}_{\tau\sim A(\cdot\mid x)}[c(\tau)]$$其中 $c(\tau)$ 只计算策略轨迹消耗的令牌。论文的主要目标不是单纯最大化 $S$,而是在迁移时保持性能,同时避免把测试时计算量无上限地推高。
普通框架演化可写成下面的提议与贪心选择:
$$\mathcal{H}_t=\lbrace H_t^{(1)},\ldots,H_t^{(m_t)}\rbrace\sim P_0(\cdot\mid H_t,F_t),\qquad H_{t+1}=\arg\max_{H'\in\mathcal{H}_t\cup\lbrace H_t\rbrace}\hat{S}(H';D_{\mathrm{evolve}})$$这里 $F_t$ 是当前轮反馈,$P_0$ 是无约束提议分布。有限次随机运行得到经验估计:
$$\hat{S}(H)=\frac{1}{k\lvert D_{\mathrm{evolve}}\rvert}\sum_{x\in D_{\mathrm{evolve}}}\sum_{j=1}^{k}r(x,\tau_x^{(j)}),\qquad \hat{C}(H)=\frac{1}{k\lvert D_{\mathrm{evolve}}\rvert}\sum_{x\in D_{\mathrm{evolve}}}\sum_{j=1}^{k}c(\tau_x^{(j)})$$公式本身并不复杂,真正的问题是 $D_{\mathrm{evolve}}$ 被自适应复用。RRSI 因此把搜索定义成对可达框架集合 $\Omega(H)$ 的转移过程:集合仍保持开放,转移概率和接受集合受到约束。
方法详解:两侧正则化如何改变搜索

图 1:RRSI 总览。提议侧控制搜索容量如何分配,选择侧控制哪些测量到的改进有资格成为永久框架状态。
1. 提议侧:让每轮编辑逐渐变得可归因
无约束提议器可以在一个候选里同时改写系统提示、工具描述、控制流和记忆策略。这样的“大包”更容易拟合当前反馈,但即使分数提高,也无法判断究竟是哪一处机制起作用。RRSI 首先限制一轮候选中可独立归因的编辑数量。
在第 $t$ 轮,编辑预算按余弦曲线从 $b_{\max}$ 退火到 $b_{\min}$:
$$b_t=\left\lceil b_{\min}+(b_{\max}-b_{\min})\cdot\frac{1}{2}\left(1+\cos\left(\frac{\pi t}{T}\right)\right)\right\rceil$$前几轮允许多个协同修改,以便发现新机制;后几轮逐渐收缩到一至两个编辑,使后续证据更容易归因。若用 $z_t\in\lbrace0,1\rbrace^{\lvert E_t\rvert}$ 表示本轮原子编辑池中哪些编辑被采用,则约束是:
$$\lVert z_t\rVert_0\le b_t$$这不是禁止框架最终包含许多组件,而是限制单次更新能够同时改变多少组件,因此更接近对“更新稀疏度”的约束。
2. 提议侧:失败假设必须留下证据
RRSI 为每次被有效测量的编辑保存一条历史记录,包括轮次、组件、假设、源码差异、分数变化、成本变化和是否被接受。历史可概括为:
$$\mathcal{L}_t=\lbrace(t_i,\ell_i,h_i,d_i,\Delta S_i,\Delta C_i,a_i)\rbrace_{i\le n_t},\qquad a_i\in\lbrace0,1\rbrace$$其中 $a_i=1$ 只表示该编辑所属候选成为当轮最终赢家。失败候选仍保留为负证据,下一轮提议器不能假装没有试过。这个设计针对递归搜索中常见的“重复绘制同一失败假设”问题。
对每个组件 $\ell$,实现记录它在最近窗口内的最佳实测增益:
$$g_t(\ell)=\max\lbrace\Delta S_i:\ell_i=\ell,\ t-t_i\le n_{\mathrm{prune}}\rbrace$$当 $g_t(\ell)\le 0$ 时,组件被加入剪枝目标集合 $B_t$。提议器会收到过去已接受的机器结构以及删除提示,从而主动移除不再支付收益的工具、记忆或子智能体。
3. 提议侧:停滞时转向未探索结构
如果连续 $w$ 轮的性能变化始终落在噪声带 $\delta$ 内,搜索被标记为停滞:
$$\sigma_t=\mathbf{1}[\hat{S}_t-\hat{S}_{t-w}\le\delta]$$记已尝试组件为 $T_t$,可编辑词汇表为 $\mathcal{K}$,则未尝试集合为 $U_t=\mathcal{K}\setminus T_t$。停滞时,提议器保留一个探索槽,优先试验未触及的组件。实现中的词汇表覆盖提示、控制流、配置、输出管线、上下文管理、客户端工具、技能、记忆与子智能体。
该机制类似搜索上的多样性或熵正则化,但它只重定向提议容量,不会把某些合法组件从最终框架中永久删除。
4. 选择侧:先抓泄漏,再看分数
候选测量之前,泄漏批评器先读取源码差异。它拒绝显式写入开发任务名、实体名、任务专属数值、答案或基准特有分支的编辑,也拒绝只增加惰性机器的改动。关键点在于筛查发生在完整评估之前。
如果先评估再筛查,泄漏候选会得到虚高的开发集分数,并可能进入后续反馈,污染历史。批评器针对的是“任务专属逻辑”,不是某一类组件,因此通用提示改进和工具描述改进仍可被接受。
5. 选择侧:噪声下限阻止连续小退步
演化开始前,论文重复评估未改变的基础框架,用重复测量差异估计噪声带 $\delta$。若历史最佳分数为 $S^\star$,候选必须满足:
$$\hat{S}(H')\ge S^\star-\delta$$这个下限不是要求每轮都超过历史最佳,而是阻止搜索通过一连串“看起来像噪声”的小退步逐渐走向更差框架。通过下限后,候选还要进入成本或结构分支。
6. 选择侧:增益必须支付成本
相对当前框架 $H_t$,候选的分数变化和相对成本变化定义为:
$$\Delta S=\hat{S}(H')-\hat{S}(H_t),\qquad \Delta C=\frac{\hat{C}(H')-\hat{C}(H_t)}{\hat{C}(H_t)}$$当分数增益超过噪声带,即 $\Delta S>\delta$ 时,要求:
$$\Delta C\le\beta_0+\beta_1\Delta S$$$\beta_0$ 容忍微小增益下的少量成本增加,$\beta_1$ 决定较大性能提升可以购买多少额外策略令牌。由于策略令牌只衡量运行成本,这条规则直接防止“分数略升、上下文和轨迹长度大幅膨胀”的候选入选。
7. 选择侧:噪声带内只奖励省成本或结构新颖
若候选通过稳定性下限,但分数变化仍在噪声带内,则不把微小分数变化当作充分证据,而使用:
$$w_s\Delta S-w_c\Delta C+w_n\nu_t(H')>0$$其中 $\nu_t(H')$ 统计候选触及的、此前从未进入赢家路径的结构型组件数量,只计算客户端工具、技能、记忆和子智能体。减少成本提供正贡献,试验新结构也提供正贡献。编码任务把 $w_s$ 设为 0,因此噪声带内的分数小涨本身不能成为入选理由。
8. 统一转移规则
完整一轮可写成:
$$\mathcal{H}_t\sim P_{\mathrm{reg}}\left(\cdot\mid H_t,F_t,\mathcal{L}_t,b_t,E_t,B_t\right),\qquad H_{t+1}=\arg\max_{H'\in\mathcal{H}_t\cap\mathcal{A}_t}\hat{S}(H')$$若可接受集合 $\mathcal{A}_t$ 为空,则保留 $H_t$。这个形式把改动分成两层:$P_{\mathrm{reg}}$ 决定“搜索如何花容量”,$\mathcal{A}_t$ 决定“哪些增益值得固化”。
flowchart TD
A[当前框架 H_t] --> B[开发集轨迹与失败反馈]
B --> C[按退火预算生成候选]
D[完整编辑历史 L_t] --> C
C --> E[停滞则探索未试组件]
E --> F[泄漏批评器读取源码差异]
F -->|拒绝| R[不进入完整评估]
F -->|通过| G[在开发集测量分数与策略令牌]
G --> H{历史最佳减噪声下限}
H -->|未通过| R
H -->|通过| I{增益超过噪声带}
I -->|是| J[成本必须由增益支付]
I -->|否| K[省成本或结构新颖必须为正]
J --> L[可接受候选]
K --> L
L --> M[选最高分候选成为 H_t+1]
M --> N[记录假设 差异 分数 成本 结果]
N --> A
9. 代码映射
公开仓库把论文算法拆成纯函数与运行编排两部分。退火预算在 rrsi/schedule.py 中直接实现,编辑预算由提议器结束时强制检查,而不是只写在提示里。
def edit_budget(t: int, T: int, b_min: int, b_max: int) -> int:
v = b_min + (b_max - b_min) * 0.5 * (1.0 + math.cos(math.pi * t / T))
return int(math.ceil(round(v, 9)))
选择规则位于 rrsi/selection.py。下面的节选展示两个分支:超过噪声带的成本预算,以及噪声带内的塑形准入。
if delta_S > delta:
budget = cfg.beta0 + cfg.beta1 * delta_S
ok = delta_C <= budget
else:
shaped = cfg.w_s * delta_S - cfg.w_c * delta_C + cfg.w_n * nov
ok = shaped > 0
仓库还将每个候选放在独立 git worktree 中,以提交表示版本;接受候选时快进演化分支。由此,框架状态、差异、测量记录和失败原因都可审计,而不是只留下最终提示文本。
实验设计:三个领域、八个基准
编码领域使用包含 89 个容器化终端任务的 Terminal-Bench 2.1,并用仓库级缺陷修复的 SWE-bench Verified 测分布外迁移。工作区领域使用 Harvey LAB,其中 120 个任务用于演化,40 个任务作为同分布留出集;JobBench、GDPval 与 APEX-Agents 用于分布外测试。
工程设计领域使用 61 个由冻结模拟器评分的 EngDesign 任务,并用 Frontier-Eng 测迁移。所有主实验冻结 Claude Opus 4.8,提议器、分析师和泄漏批评器也使用同一模型;三个领域从相同的基础框架与候选预算出发。
工程设计的价值在于评分不经过语言模型裁判。Harvey LAB、JobBench 和 GDPval 都存在裁判模型,因此理论上可能出现“迎合裁判”的框架改进;EngDesign 与 Frontier-Eng 由模拟器或测试台确定性判定,能部分排除这一替代解释。
评估时,基础框架与演化框架在相同时间窗口、相同工具环境、相同裁判和相同试验次数下比较,避免基础设施漂移被误认为演化收益。
主要结果:开发集少赢,分布外多赢

图 2:RRSI 在编码、智能体工作区和工程设计三个领域的主结果。开发集、同分布留出集和分布外测试分别显示。
| 基准 | 角色 | 基础框架 H0 | RRSI | 变化 |
|---|---|---|---|---|
| Terminal-Bench 2.1 | 演化集 | 74.2 | 80.2 | +6.0 |
| SWE-bench Verified | 分布外 | 82.0 | 83.8 | +1.8 |
| Harvey LAB | 演化集 | 89.4 | 90.5 | +1.1 |
| Harvey LAB | 同分布留出 | 86.9 | 89.2 | +2.3 |
| JobBench | 分布外 | 36.0 | 40.7 | +4.7 |
| GDPval | 分布外 | 48.8 | 52.3 | +3.5 |
| APEX-Agents | 分布外 | 34.2 | 37.9 | +3.7 |
| EngDesign | 演化集 | 50.0 | 54.9 | +4.9 |
| Frontier-Eng | 分布外 | 17.7 | 22.0 | +4.3 |
表 1:RRSI 主结果。各基准单位按原论文口径,Frontier-Eng 以 Medal 分数报告。
最醒目的不是 Terminal-Bench 的 6.0 点提升,而是 Harvey LAB 上只比基础框架高 1.1 点,却把同分布留出集提高 2.3 点,并把三个工作区分布外基准的均值从 39.7 拉到 43.6。相较之下,开发集最强的基线 Meta-Harness 达到 93.0,但分布外均值仅高 0.9 点。
论文给出的解释是,正则化主动放弃了部分开发集拟合能力,换取机制层面的可迁移性。这个取舍并非只体现在平均值上:五个分布外基准全部正向变化,Harvey LAB 的同分布留出集也没有退化。
消融:噪声与上下文增长是主要代价
| 变体 | Harvey LAB 演化集 | 同分布留出 | 分布外均值 | 每试验策略令牌(百万) |
|---|---|---|---|---|
| 基础框架 H0 | 89.4 | 86.9 | 39.7 | 1.56 |
| 无正则演化 | 92.8 | 88.9 | 40.3 | 3.80 |
| 去掉提议侧正则 | 90.7 | 88.8 | 41.9 | 2.69 |
| 去掉接受侧正则 | 91.5 | 88.7 | 41.0 | 3.59 |
| 完整 RRSI | 90.5 | 89.2 | 43.6 | 2.42 |
表 2:工作区实例消融。OOD 均值为 JobBench、GDPval 与 APEX-Agents 的平均。
无正则演化在开发集上达到 92.8,比 RRSI 高 2.3 点,但分布外均值只有 40.3,且每试验消耗 380 万策略令牌。RRSI 的 242 万令牌相对前者降低约 36.3%;论文摘要将跨实验的总体成本概括为约少 30%。
去掉提议侧正则只让开发集下降 0.2 点,却让分布外均值下降 1.7 点,说明“搜索去看哪里”与“哪些候选被拒绝”是两个独立作用。去掉接受侧正则后,开发集升到 91.5,但分布外均值降到 41.0,令牌成本升到 359 万,直接印证贪心选择会追逐噪声并固化上下文增长。
成本与跨模型迁移

图 3:最终框架的策略令牌成本与轨迹步数。RRSI 在同类演化框架中位于更低成本区域。
最终 RRSI 框架每试验运行 26.3 步,前序演化方法为 27.3 至 34.6 步。AHE 是成本极端的反例:每试验 382 万令牌,比 RRSI 多约 58%,分布外均值却低 4.4 点。所有演化框架都比基础框架昂贵,RRSI 的 242 万令牌仍高于 H0 的 156 万,说明演化确实购买了额外测试时计算,正则化只是在决定购买多少。
在编码领域,RRSI 不依赖单一策略模型。Gemini 3.5 Flash 上,Terminal-Bench 2.1 从 64.6 提升到 78.7,SWE-bench Verified 从 76.8 提升到 79.0。用搜索阶段完全没参与的 Gemini 3.1 Flash Lite 运行同一最终框架,Terminal-Bench 仍从 11.2 提升到 14.6,相对提升 30.4%。

图 4:开发集收益与分布外迁移的关系。RRSI 并不追求最大的开发集即时收益,而是选择更可迁移的改进。
重复独立运行也显示总体结论稳定:第二次运行的工作区分布外均值为 43.7,与第一次的 43.6 几乎一致,但单任务和单基准分数仍有波动。这个结果支持“搜索轨迹会变化,但正则化后的平均迁移方向稳定”的解释。
局限与批判性判断
作者明确承认的局限一:权重冻结。论文只研究框架层的递归自我改进,不覆盖演化过程中同时更新模型权重的场景。因此 RRSI 不能直接回答权重与框架共同更新时,噪声、灾难性遗忘和信用分配会怎样相互作用。
作者明确承认的局限二:开发集与超参数依赖。RRSI 仍依赖有限开发集和多个正则化超参数,包括噪声带、编辑预算、成本斜率与剪枝窗口,效果可能受反馈质量和搜索预算影响。
作者明确承认的局限三:架构覆盖仍有限。虽然实验跨越三个领域、多个基准和多个策略模型,论文认为还需要验证更不同的智能体架构、工具生态与更长周期的自我改进。
从工程角度看,成本指标只统计策略轨迹令牌,没有把提议器、分析师、泄漏批评器和反复评估整个演化过程的总计算成本纳入最终部署成本。它能说明演化后的框架更省运行令牌,却不能单独证明整套搜索在经济上已经摊销。
另一个需要继续验证的地方是物理机器人任务。RRSI 的工具、文件和工程评估已经比纯文本问答复杂,但真实机器人还包含连续控制、感知误差、硬件安全和仿真到现实差异。当前证据支持“软件智能体框架”的迁移,不应自动外推到所有具身控制栈。
稳定性门槛以历史最佳分数减噪声带为下限,天然的保守性降低了下行风险,也可能让搜索在出现新机制前长期停留在局部平台。论文用结构新颖奖励缓解停滞,但如何在长期运行中自动校准这一保守程度,仍值得研究。
总结与展望
RRSI 的核心贡献不是提出某个固定框架,而是指出递归框架演化本身需要正则化。它把开放式编辑保留下来,同时约束单轮更新规模、失败假设复用、停滞探索、泄漏进入评估、噪声被误当收益以及无收益复杂度增长。
实验最重要的信号是反向的:开发集上的最大赢家不是迁移赢家。一个开发集只提升 1.1 点的工作区框架,可以在三个分布外基准上平均提升 3.9 点;而开发集提升更多的无约束方法,迁移几乎消失且成本更高。
这为后续智能体系统设计提供了三个可操作方向。第一,把编辑历史当作一等数据,不只保存最终提示。第二,把泄漏筛查放到昂贵评估之前。第三,把模型运行成本写进候选接受条件,而不是上线后再补救。
如果权重也开始演化,RRSI 的原则仍可能有用,但需要重新定义原子编辑、噪声估计和资源预算。对机器人智能体而言,还需要把安全约束、真实硬件成本、仿真误差和长时任务恢复能力加入接受集合。
金句:递归自我改进的关键,不只是允许智能体改变什么,更是决定哪些变化有资格成为永久状态。



