PAPER · 论文信息
标题Self-Evaluating Recursive Agents
作者Tianyi Lyu¹*、Xiaozhe Li¹*、Yang Li²、Yongkang Chen³、Kefei Tian⁴、Junbo Niu⁵、Zican Hu⁶、Hongbo Liu¹、Mingliang Xiong¹、Qingwen Liu¹†(* 共同一作,† 通讯作者)
机构¹同济大学;²独立研究者;³上海人工智能实验室;⁴上海交通大学;⁵北京大学;⁶南京大学
原文https://arxiv.org/abs/2610.04902
INSIGHT · 核心洞察
递归 Agent 已经能把一个大任务拆成子任务,交给同一套权重的"分身"去做,再把结果收回来汇总。这篇论文给出的判断框架是:一个递归 Agent 同时在做三件事——拆任务、做任务、评任务,三种能力共用一套参数,每一种都需要自己的训练信号,而评估信号必须锚定在可核验的结果上。这直接决定了训练这类 Agent 时,该给哪些 token 什么奖励、外部评委该用在哪里、推理时多花的算力由谁来挑选。
一个子 Agent 按要求把食材搬进了厨房,外部评委判定"成功";父 Agent 在派活之前写下的评分细则还会看它有没有多拿资源,只给了 0.6 分。如果这种细则经过训练、真能区分好坏,同一套权重下次执行时也会朝细则指向的方向改进。让"学会评判"反过来改善"把事做好",正是论文关注的路径。
论文在两个合成文本环境上验证:TextCraft-Synth(632 道测试题)和作者自建的 TextWorld-Sync(1,400 道测试题),基座模型只有 Qwen3-4B-Instruct-2507 一个,主表结果为 3 个种子的均值与标准差。这是一篇 arXiv 预印本,未注明经过同行评审,训练代码和 TextWorld-Sync 尚待发布。下文的提升幅度都应理解为"4B 模型、合成任务、单一检查点"条件下的结果。
📌 一句话总结 本文提出 Self-Evaluating Recursive Agents(SERA),围绕"自创子任务没有标准答案时怎样分配奖励"与"外部评委该用在哪里"两个问题,区分分解、执行与评估三种共享权重的能力,并为每一种配上独立的训练信号。
01
BACKGROUND
研究背景:子任务越多,标准答案越少
递归 Agent 的工作方式可以用一棵树来描述:根节点接到原始任务,它可以自己动手,也可以发出一个委派动作,生成一个子 Agent 去处理自己设计的子任务;子 Agent 运行的是同一个策略,还可以继续往下委派。图 2 用一个做菜任务把这棵树画了出来:根 Agent 先读菜谱,再并行派出"检查院子"和"去储藏室取食材"两个子 Agent,然后派出一个主厨,主厨又把五道菜分给五个厨师。这种结构不是论文的发明,作者在引言里把它和前沿的编程、研究型 Agent 归为同一类设计;它也不等于一种训练方法。
图 2|同一个策略在三层深度上扮演根 Agent、检查员、采集员和厨师,每个子 Agent 旁边并列外部判定与细则得分;这是示意样例,其中的分数不是实验统计。
这棵树的难点在于监督信号分布得很不均匀。根任务通常能核验——菜有没有全部做好,环境说了算;但"检查院子"这类中间子任务是策略临时发明的,没有现成的标准答案。常见做法是给每个节点单独请一次核验器或 LLM 评委,作者指出这样做有三个问题:信号太粗,二值判定分不出"干净利落"和"勉强及格";成本太高,树上每个节点都要调用评委;对分解保持沉默,只问子任务做没做成,不问这个子任务该不该被创建。图 2 里的采集员就是第一个问题的例子:外部判定给 1,细则得分 0.6,因为它多拿了用不着的橄榄油。
1.1 三种能力,挤在同一套权重里
由此,作者把问题归结为结构性的:递归 Agent 不是在做一件事,而是三件——把难题拆成可处理的子任务、解决拆出来的子任务、判断委派出去的工作是否真的完成。因为每个子 Agent 都是父 Agent 的新实例,这三种功能都住在同一个策略 πθ 里。训练好这样的 Agent,就要给每种能力一份自己的信号,同时防止三者在共享参数上互相干扰。
这个拆分是全文的判断框架。后面的每个设计都可以放回去定位:细则得分训练"做",叶覆盖率训练"拆",基于核验结果的排序训练"评"。需要提前说明的是,"三种能力需要各自的信号"是作者的建模选择,论文用消融实验支持它,但没有证明其他拆法一定更差。
1.2 和已有工作的区别在于信号的形态
在递归训练这条线上,最接近的前作是 Recursive Agent Optimization(RAO):它支持一层以上的递归、异步执行子 Agent,并端到端地用强化学习同时训练根节点和子节点。SERA 沿用 RAO 的设定并把它当作主要基线,区别只在每个节点收到什么信号——RAO 用核验器或评委给出二值成败,SERA 给每个节点一份经过训练的连续细则分,并单独奖励分解。
另外两条相关路线各有侧重。过程奖励一类方法把稀疏的结果奖励加密到中间步骤,但处理的是线性轨迹,中间信号来自单独的评论模型;经典分层强化学习虽然跨层分配信用,却假设子任务类型或层数固定。基于细则(rubric)的强化学习已经有人把细则生成器和策略一起训练,例如 RubricEM、EvoRubrics 等,但它们的细则模型与策略是分开的,计算结构也是平的或固定阶段的。SERA 把细则生成交给策略本身,作用在拓扑每次都不同的递归树上,并用核验结果来训练细则。这些差异是作者在相关工作里给出的定位,论文没有在同一实验里直接对比这些细则方法的完整版本。
02
METHOD
方法解析:给三种能力各配一份信号
图 1 是整个方法的总览。左上角对每个根任务并行采样多棵树(训练中每个根任务 K = 8 棵),右上角展示一棵树里调用与返回的关系,下半部分是三个交替进行的训练阶段:执行、委派、细则生成。每个阶段只给一部分 token 计算梯度,图中带锁的模块就是本阶段不更新的部分。
图 1|SERA 的三阶段交替训练:执行阶段用细则分奖励子节点,委派阶段用"任务成功 × 叶覆盖率",细则阶段奖励把成功排在失败前面的细则;这是流程示意,不包含实验数据。
2.1 先看评估:细则在子 Agent 开跑之前就冻结
父 Agent 每委派一个子任务,就先写一份带权重的成功标准:若干条自然语言准则,权重非负且加起来等于 1。关键的约束是"事前承诺"——细则生成时只能看到委派那一刻的信息,一旦写好就冻结,子 Agent 的轨迹和最终状态都不会反过来影响它。这样做是为了防止评估标准迁就它将要打分的结果,也就是避免先射箭后画靶。
子 Agent 跑完后,同一策略的另一次调用(不计梯度)拿冻结的细则去打分,输出分两层:先是一个二值闸门,判断子任务是否完成;没完成(比如耗尽步数或没有可用输出)就直接记 0,不再逐条评分,因为对半途而废的尝试打细分只会引入噪声;完成了再给每条准则打 0 到 1 的分,按权重加总。根节点仍然用环境给的真实成败。执行阶段里,细则的生成和打分都不更新,只更新执行轨迹。这一设计解决了"信号太粗"的问题,但细则本身准不准,要靠下一步来保证。
2.2 评估本身怎么学:拿核验结果给细则排座次
未经训练的策略写出的细则,未必和真实成败对得上。最顺手的训练信号是根任务奖励,但作者明确拒绝了它:细则生成器和执行者共享参数,如果用任务奖励去训练细则,两者可能一起"放水",细则分节节升高,实际质量却没有变化。
SERA 的做法是在每个委派点克隆环境状态,对同一个子任务采样 B 次(实验中 B = 8),其中一次沿用原来的递归执行,其余 B − 1 次只作为反事实样本用于训练细则。每次采样由环境核验器或外部评委给出成败,冻结的细则给出得分,然后用 margin ranking loss 要求细则把核验成功的样本排在失败样本之前,并至少拉开一个间隔 δ。因为只比较同一子任务内部的样本,细则不需要在难度不同的子任务之间校准绝对分数;整组全成功或全失败的样本没有可比对的配对,直接跳过。外部评委只在这里出现,从不直接给节点发奖励——这是 SERA 减少外部监督的来源,但克隆状态和反事实采样也意味着这一步需要能复制环境状态的模拟器,在真实环境里未必可行。
2.3 从执行到分解:按叶子数给委派记功
执行奖励评的是"决定之后做得怎样",不评"这次委派在结构上有没有用"。作者为每个委派事件单独定义叶覆盖率:这次委派所建子树里的叶节点数,除以整棵树的叶节点数,再乘以根任务的成败。叶节点是不再往下委派、直接解决原子子问题的节点,所以覆盖率衡量的是有多少最终工作经由这次委派完成。
于是,一次承担了大块、边界清楚的工作的委派得分高,随手转交的琐碎任务接近 0,失败的树里所有委派都记 0。这份奖励只作用在写委派目标的那些 token 上,不碰执行 token 和细则 token。作者也承认这是一个粗糙的度量:所有叶子权重相同,没有区分哪个叶子更关键;而且它只在根任务成功时才有信号,对"拆得好但没做成"的树不给任何正反馈。
2.4 三个目标轮流上场,而不是加在一起
三份原始奖励各用一组留一法(LOO)基线变成优势值:执行奖励以同一根任务其他树的根成败为基线,叶覆盖奖励先在每棵树内平均再做留一,避免委派次数多的树主导基线;细则奖励以同批其他有效委派事件为基线。三者共用 CISPO 损失,并按递归深度做逆频率加权,让每一层对梯度的贡献相当。
作者没有把三份梯度加在一起,而是每个优化步只激活一个目标,按执行 : 分解 : 细则 = 16 : 2 : 2 循环。理由是三个目标的尺度不同、可能互相干扰,而执行覆盖了树中大部分 token,在预实验中是性能的主要来源。需要注意,执行优势用的是树间基线,一个中间节点即使所在的树失败,只要细则分高也能拿到正的优势——这是作者权衡后的"实用折中",它把执行信号的质量几乎完全押在细则是否对齐上,这也解释了为什么 2.2 节的细则训练如此关键。
03
EXPERIMENTS
实验解析:学会评判究竟带来了什么
3.1 两个基准,差在子任务能不能单独核验
先看评测协议。两个基准的选取刻意覆盖了方法最依赖的那个属性:中间子任务能不能被独立核验。TextCraft-Synth 是程序化生成的合成制作环境,每个子任务都有确定性的程序核验器,所以细则训练不需要外部评委;训练只用 852 道 Medium 题,测试覆盖四个难度共 632 道(147 / 213 / 136 / 136),考察从中等难度向更深配方的迁移。TextWorld-Sync 是作者在 TextWorldExpress 的 CookingWorld 上扩展的多 Agent 共享状态环境,子任务无法单独核验,细则训练改用 LLM 评委给出二值标签;训练集 1,500 道(900 Medium / 150 Hard / 450 Extreme),测试集 1,400 道、每档 350 道。表 8 列出它的七类协作结构。
表 8|TextWorld-Sync 的七类任务族,从相互独立的分支到资源冲突和多层嵌套;它说明了基准考察的协作类型,不代表各类任务的题量或难度分布。
由此可以看出两个基准的训练与测试关系不同:TextCraft 只在 Medium 上训练、在四档上测试,TextWorld 训练集本身就含 Hard 和 Extreme 题。另外,TextWorld-Sync 由作者构建、尚未公开,主要提升也出现在这个基准上,外部复现之前应保留判断。
对照组分三类:只靠提示的单 Agent 与多 Agent(开放委派)、不委派的单 Agent 强化学习(GRPO、CISPO),以及递归多 Agent 强化学习 RAO。为拆分各组件的作用,作者还给 RAO 单独加分解或细则训练,并从 SERA 中去掉分解、或同时去掉分解和细则训练。表 6 列出了每个变体的执行奖励来源、更新比例,以及外部标签用在哪里。
表 6|各变体的执行奖励、执行:分解:细则的更新比例和外部标签用途;比例只表示各目标轮到的频率,不是奖励加权系数。
所有递归方法在同一基准内总优化步数相同,分解和细则训练占用的是执行步数,而不是额外增加的预算;TextCraft 报告第 250 步、TextWorld 报告第 400 步的检查点,每个 Agent 最多 20 步、递归深度最多 3 层。最终成功率都由环境对根任务做确定性核验,不经过任何 LLM 评委,这一点让主表数字和训练中使用的评委相互独立。
3.2 数字要与测试对象一起读
表 1 是主结果,平均列是四档难度按题数加权的成功率,±为 3 个种子的标准差。
表 1|两个基准上单 Agent、多 Agent 各方法的分档成功率;加粗与下划线是逐列最好与次好,不同列之间的排名不能合成总分。
先看递归本身。只靠提示开放委派,多 Agent 比单 Agent 仅提高 3.27(TextCraft)和 3.79(TextWorld)个百分点;而经过训练的 RAO 比单 Agent GRPO 高 39.97 和 12.64 个百分点。这支持"委派必须专门训练"的判断,但单 Agent 方法没有委派接口,这组对比混合了"能不能递归"和"有没有训练递归"两个因素。
再看主结论。SERA 在 TextWorld-Sync 上的平均成功率为 65.07%(±3.48),比 RAO 的 51.93%(±1.42)高 13.14 个百分点,Hard 档从 20.19% 到 54.29%,Extreme 档从 2.95% 到 22.86%。在 TextCraft-Synth 上,SERA 为 74.31%,比 RAO 的 68.93% 高 5.38 个百分点,但它在这一列只排第二,最好的是去掉分解奖励的 SERA w/o D(74.84%)。TextWorld 上的差距远大于种子间波动,但只有 3 个种子,论文也没有做显著性检验;而 SERA 在 TextWorld Hard 档的标准差达 7.78,分档数字要比平均值更谨慎地读。
更关键的证据来自消融,它把"细则"和"训练细则"拆开了。只把二值奖励换成未训练策略写的细则分(SERA w/o D & RT),TextCraft 比 RAO 高 3.33 个百分点,TextWorld 反而低 0.83 个百分点——更密的信号本身不保证有用。在此基础上加入细则训练(SERA w/o D),TextCraft 再提高 2.58、TextWorld 再提高 9.16 个百分点,TextCraft 的 Hard 和 Extreme 档分别提高 6.62 和 7.60 个百分点。反过来,只给 RAO 加细则训练、执行仍用二值奖励(RAO + RT),TextWorld 跌到 45.62%,比 RAO 低 6.31 个百分点。两组对照合起来说明:训练好的细则只有在真正充当执行信号时才起作用。作者据此提出"共享权重让学会评判改善了执行",这是对结果的合理解释,但论文没有设置"评估器用独立权重"的对照,这一机制尚未被直接验证。
分解奖励的作用则依赖任务结构。SERA 比 SERA w/o D 在 TextWorld 上高 4.81 个百分点,增益集中在 Hard(+8.58)和 Extreme(+17.43);在 TextCraft 上反而低 0.53 个百分点,Extreme 档从 11.52% 降到 6.13%。单独加给 RAO 时,两个基准上的平均变化分别是 0.00 和 −0.60 个百分点。这与作者"子任务相互依赖时分解奖励才有用"的说法一致,但不能据此认为叶覆盖率在所有协作任务上都有正收益。
3.3 自评能不能替代外部评委
表 3 只在 TextCraft-Synth 上做细则设计的消融,所有行都用细则分作为执行奖励,只改变三个维度:谁写细则(Generator)、谁打分(Scorer)、细则生成是否训练。
表 3|TextCraft-Synth 上细则生成方、打分方和训练方式的消融,3 个种子;结论只覆盖这一个有程序核验器的基准。
在不训练细则的条件下,策略自己写、自己打分得到 72.26%,换成外部前沿模型 Kimi 写细则、策略打分是 71.41%,Kimi 写且 Kimi 打分是 73.10%,三者差距在种子波动范围内。把每个子任务专属的细则换成一份全局通用细则,成绩降到 67.77%,低 4.49 个百分点,说明细则要贴着具体子任务写。训练细则后达到 74.84%,比 Kimi 自写自评高 1.74 个百分点,差距主要在 Hard(79.90% 对 77.45%)和 Extreme(11.52% 对 4.17%)。作者据此称训练后的 4B 策略给出的执行奖励优于前沿外部评委;需要注意 Kimi 这一行没有经过任何训练,比较的是"训练过的自评"与"未训练的外部评委",并且只在一个基准上测过。
同一张表的最后一行是一个有价值的反例。参照 EvoRubrics 加入"区分度"奖励——鼓励细则把一组样本的分数拉开——成功率降到 65.77%,比只用排序目标低 9.07 个百分点。作者的解释是:分数方差在排序整体颠倒时保持不变,把同样失败的样本拉开也会增加方差,在树结构里分数离散更多反映子任务难度差异而不是细则质量。这一结果支持"细则训练要锚定成败对比,而不是奖励离散程度",但它测试的是作者改写的方差版本,不等于对原方法的完整复现。
成本方面,表 2 统计了整个训练过程累计的外部监督。
表 2|训练全程累计的外部监督:TextCraft 只计程序核验器调用次数(千次),TextWorld 计评委调用次数与输入输出 token(百万);只反映标签开销,不含自评细则的本地推理成本。
在 TextCraft 上,SERA 把核验器调用从 RAO 的 550.94K 次降到 257.96K 次,约 2.1 倍;在需要 LLM 评委的 TextWorld 上,评委调用从 147.80K 次降到 35.79K 次(约 4.1 倍),输入 token 从 633.80M 降到 125.32M(约 5.1 倍)。完全不训练细则的变体不调用评委,但 TextWorld 成功率只有 51.10%,所以论文主张的是"把外部标签集中用在训练评估器上",而不是"不需要外部标签"。
省下的外部调用并不总是换来更短的训练时间。表 7 记录了在同一套 2×8 H200 硬件上训练到评测检查点的墙钟时间。
表 7|各方法训练到评测检查点的墙钟时间;与实现和硬件相关,只能在同一基准内做相对比较。
TextCraft 上 SERA 用时 24h06m,少于 RAO 的 29h36m,也远少于每步都用细则打分的 SERA w/o D & RT(47h02m);TextWorld 上 SERA 却要 24h14m,接近 RAO 13h08m 的两倍。作者归因于 TextWorld 的共享状态迫使交互串行,反事实采样也要穿过这些依赖,本地生成和应用细则还会给每一步增加开销。因此 SERA 在 TextWorld 上换来 13.14 个百分点,是以更长的训练时间为代价的,评委调用的减少不能直接等同于总成本下降。
3.4 推理时再用一次细则,以及尚未回答的问题
训练出来的细则还被拿到推理阶段做选择器。表 4 在 TextWorld-Sync 上对比未经 SERA 训练的 Qwen3-4B-Instruct 和 SERA 训练后的策略:N = 2 表示在每个选择点多分出一个候选分支,自底向上保留细则分更高的那个,打分方可以是策略自己或外部的 Kimi-K3;N = 1 是不分支、不选择的单次运行。
表 4|TextWorld-Sync 上按细则自底向上选择节点的推理期扩展,三次运行的均值与标准差;N = 2 意味着推理开销增加,表中未报告具体算力。
SERA 训练后的策略用自己当评委,平均成功率从 65.07% 提高到 67.50%,即 2.43 个百分点,Extreme 档从 22.86% 到 28.95%;用 Kimi-K3 当评委为 67.29%,两者几乎相同。未经训练的基座模型用自己当评委反而下降 0.22 个百分点,用 Kimi 也只提高 1.21 个百分点,Hard 和 Extreme 档始终是 0。这说明选择要起作用,既需要候选里有好答案,也需要评委分得出好坏,SERA 训练同时改善了这两点。但 N = 1 基线自身的标准差就有 3.48,2.43 个百分点的平均增益落在一个标准差以内,只有三次运行,不能据此判断显著;论文也只测了 N = 2 一种分支数。
最后是作者在结论里列出的局限,它们划定了上面所有数字的适用范围:只测了 Qwen3-4B 和两个合成基准,向更大模型和真实 Agent 任务的推广没有验证;策略既写细则又用细则,自评可能被"刷分",作者用核验结果锚定来缓解,但在更稀疏或更嘈杂的核验条件下是否稳健仍是开放问题,细则训练本身也仍然依赖外部核验;叶覆盖率对所有叶子一视同仁。此外,两个基准都依赖可克隆的模拟环境来做反事实采样,这一前提在真实代码仓库或网络检索中需要另行解决。
04
TAKEAWAY
总结:把"会评判"做成可训练、可复用的能力
这篇论文把递归 Agent 的训练接到一条链上:父 Agent 拆出子任务,并在子 Agent 开跑前写下冻结的细则;子 Agent 执行后用细则自评,得到连续的执行奖励;少量外部核验结果只用来训练细则,让它把成功排在失败前面;委派则按叶覆盖率单独记功;训练好的细则最后还在推理时挑选候选分支。SERA 真正的研究对象,是共享权重的策略里那份"评估能力"——它决定了执行信号的质量,也决定了推理期多花的算力能不能变成成功率。
对训练多 Agent 或递归 Agent 的读者,一个可借鉴的出发点是:先列出系统里有哪几种能力,检查每一种是否有自己的信号,尤其是中间评估——它是用任务奖励顺带训练的,还是锚定在可核验的成败对比上;外部评委是在给每个节点打分,还是只用来校准一个可以复用的评估器。评估时,再把"评估器分数上升"和"环境核验的根任务成功率上升"分开看,并同时报告外部调用量和墙钟时间。把"会评判"当作一项需要单独训练、单独验收的能力,就能更具体地决定外部监督花在哪里、推理期的算力由谁来分配。
— END —
我是大语言模型论文跟踪。
如果你觉得今天这篇有收获,欢迎关注、点赞、转发、喜欢四连,我们下篇见。