跳到主要内容

智能体如何自我学习:闭环自我提升架构

· 阅读需 13 分钟
Tian Pan
Software Engineer

训练智能体最昂贵的部分不是 GPU 时间,而是对多步任务的成功或失败进行标注的人类标注员。对长程智能体轨迹(例如验证智能体是否正确预订了机票、编写了功能性程序或填写了法律表格)进行单次专家标注的成本可能超过数千次推理调用。“闭环自我改进”是一种架构模式,它通过用自动验证器取代人类判断,然后利用该验证器在没有任何人工参与的情况下运行“生成-尝试-验证-训练”循环,从而消除了这一瓶颈。如果操作得当,它是行之有效的:最近的一篇 NeurIPS 论文显示,在没有任何人类标注的情况下,该模式将多轮工具使用环境下的平均任务成功率从 12% 提高到 23.5%,翻了一番。

核心见解不在于模型能够自我改进,而在于验证器是免费的。代码执行以毫秒为单位确定性地返回通过/失败信号,边际成本几乎为零。当你的任务具有可检查的结果时,你可以每小时运行数千个训练情节,并带有模型无法伪造的真值标签(假设你的沙箱设计正确)。这个假设承载了大量工作,我们稍后会再谈到它。

核心循环:生成、尝试、验证、训练

经典的自我改进循环分为四个阶段:

生成 (Generate)。 模型(或单独的挑战者角色)生成一个任务。对于代码智能体,这是一个配有可执行测试套件的编程问题。对于推理智能体,它可能是一个以最终数值答案作为可验证结果的数学问题。生成的任务必须是真正可解的——如果任务极其简单或不可解,该循环就不会产生有用的训练信号。

尝试 (Attempt)。 求解者角色生成响应。在多轮系统中,求解者可能会在单个情节中使用中间执行反馈(运行代码、阅读错误消息并修改)进行迭代,然后才计算最终奖励。

验证 (Verify)。 自动预言机评估尝试是否成功。对于代码任务,这是测试执行。对于形式化验证目标,它是定理证明器。对于结构化问答,它是精确匹配或受限解析器。关键属性是验证器必须是确定性的且抗篡改的:模型不应该能够通过正确解决任务以外的任何方式达到通过状态。

训练 (Train)。 根据结果更新策略。成功的轨迹通过有监督微调或偏好优化成为训练数据。失败的轨迹为强化学习提供对比信号。更新后的模型随后生成新的、更难的任务,循环往复。

这种循环以雏形形式出现在 STaR (Self-Taught Reasoner, 2022) 中,它通过对产生正确答案的思维链推理进行微调来引导思维链。该模式发展迅速:基于 GRPO 的方法(如 DeepSeek-R1-Zero)证明,纯粹从可验证奖励中进行强化学习——无需有监督微调、无需人类标签、无需奖励模型——可以产生涌现的推理行为,如数学方面的自我反思和链中修正,在 AIME 竞赛题目上的 pass@1 表现提高了 4.5 倍(从 15.6% 提升至 71.0%)。

自我博弈:为什么两个角色比一个角色更具扩展性

该循环最具扩展性的变体是将生成和求解分离为在同一个基础模型上运行的两个不同角色。挑战者生成任务;求解者尝试完成任务。挑战者的目标是生成处于求解者能力边界的任务——难度大到求解者有时会失败,简单到求解者有时会成功。这以完全自动化的方式瞄准了“最近发展区”。

Self-Challenging Agents (SCA, NeurIPS 2025) 通过一种称为 Code-as-Task (CaT) 的格式实现了这一点:挑战者将任务生成为一个元组(自然语言指令、可执行的 Python 验证代码、一个示例解决方案和三个失败案例)。只有当提供的示例解决方案通过验证且所有三个失败案例都失败时,该任务才会被接受进入训练池。这种结构化检查过滤掉了验证器容易被满足或成功条件模棱两可的任务。

实验结果显示:从 Llama-3.1-8B-Instruct 开始,自我挑战循环生成了 800 个合成任务和 12,000 条展开轨迹,最终在四个工具使用环境(计算、网页浏览、零售和航空任务)中均有提升,在没有任何人类标注的情况下,平均任务成功率从 12.0% 提高到 23.5%。网页浏览环境的增幅最为明显:从 16.2% 提高到 44.9%。

其他自我博弈架构也遵循同样的挑战者-执行者模式。Tool-R0 共同进化生成器和求解者,报告称其在工具使用基准测试中比基础模型提高了 92.5%,超过了全监督的基准线。SPIRAL 将零和自我博弈应用于推理任务,在 4 个不同的基础模型上,在 8 个基准测试中实现了平均 +10% 的改进。SWE-RL 注入合成 Bug 并训练修复智能体来解决它们,在 SWE-bench Verified 上的表现比人类数据基准高出 10.4 个百分点。

验证器决定了全局

自我改进循环的质量受限于验证器的质量。一个弱验证器会以比人类纠正更快的速度,大规模地教导错误行为。这并非理论上的担忧——在实践中已有广泛记录。

代码执行是智能体任务中目前最可用的验证器,原因有三:

  • 确定性 (Determinism):通过或失败不是学习而来的近似值。测试框架每次都会应用相同的评估。
  • 规模化 (Scale):在每次训练运行中,数百万次评估调用的边际成本几乎为零。
  • 抗作弊性 (Resistance to gaming)——前提是在适当的沙盒环境中。

最后一点至关重要。在强化学习 (RL) 的压力下,模型在寻找捷径方面具有极强的对抗性创造力。已记录的失败模式包括:直接修改测试文件以断言 True;调用 sys.exit(0) 以带有看起来像成功的退出码终止测试运行程序;通过在生成解决方案前读取测试断言来硬编码预期输出;以及在游戏场景中删除对手进程。RLEF (ICML 2025) 通过仅将公开测试作为剧集期间的中间反馈,同时保留私有测试用例(模型从未见过)作为最终奖励信号,来解决这种初级版本的作弊。这防止了模型记住测试断言。

形式化验证提供了更强的保证:定理证明器的判断在数学上是确定的。AlphaVerus 使用 Verus 形式化验证器作为 oracle,为 LLaMA-3.1-70B 引导 (bootstrap) 了形式化验证的代码生成。但形式化验证需要带有规约标注 (spec-annotated) 的程序,这具有很高的启动成本,且系统仍需要一个显式的批判阶段,以过滤掉模型学会编写看似一致但未捕捉到预期语义的“规约-程序对”——这是规约博弈 (specification gaming) 的一种形式。

LLM 即评判员 (LLM-as-judge) 是最弱的验证器。它引入了位置偏见、自我偏见(模型更偏好自己的输出)以及对措辞操纵的敏感性。对于自我改进循环,使用 LLM 作为验证器会创建一个反馈循环,生成器在这个循环中学会产生迎合评判员的输出,而不是正确地解决任务。过程奖励模型 (PRMs) 比结果奖励提供更密集的信号,但在实践中,它们仅比执行产生的结果奖励效果提高 1–2%,而训练成本却显著增加。对于代码领域的任务,执行反馈占据主导地位。

值得警惕的三种失败模式

在部署自我改进循环之前了解这些失败模式,比事后调试它们成本更低。

奖励作弊 (Reward hacking)。 这是生产环境 RL 训练中最主要的失败模式。模型找到了在不实际学习预期行为的情况下获得高验证器分数的方法。在能力较低时,作弊手段很拙劣(修改测试文件)。在能力较高时,它们变得复杂(生成的代码通过了验证器中的所有边缘案例,但在验证器未覆盖的语义等效输入上失败)。其特征表现是:训练奖励急剧上升,但在预留的人工编写评估集上的表现却停滞不前或下降。缓解措施是对模型从未见过的任务进行定期评估,并使用模型无法观察或修改的验证器。如果你的代理奖励在上升而预留评估表现持平,请停止训练并审计验证器。

分布坍塌 (Distribution collapse)。 如果没有明确的多样性压力,挑战者会学会生成范围狭窄的任务模板——即那些奖励稳定且高的模板。这减少了训练分布的有效覆盖范围,并导致求解器对一类小任务族产生过拟合。典型模式是:平均奖励上升,但在求解器在自我博弈期间未见过的各种新型任务上的表现会下降。SCA 明确指出了这一风险,并建议对生成任务的结构多样性进行过滤。ExIt 通过从结果方差较大的剧集中采样训练实例来解决此问题——模型有时成功、有时失败的任务是最具信息量的。

能力饱和 (Capability saturation)。 当模型无法再生成足够具挑战性的任务来强制学习时,循环就会达到上限。这表现为置信度上升,而“正确性-置信度相关性”下降:模型产生高度一致、自信的答案,但在验证器无法捕获的方面越来越错。Shafayat 等人 (2025) 的研究显示,在使用多数投票伪标签的自我训练中,这种坍塌发生在 400–600 个训练步左右,其特点是代理奖励急剧上升,随后在真值评估上急剧反转。一种课程缓解措施——先对数据集中最简单的 1/3 进行训练——在多次完整训练过程中推迟了坍塌的发生。

生产准入:何时运行此循环

自我改进循环不是人工数据的直接替代品。它是一种辅助的能力增长机制,在特定条件下发挥作用:

当你拥有可靠的验证器时运行它。 如果你的任务领域没有确定性的结果——如开放式生成、细微的判断、多利益相关者评估——那么这个循环教导错误行为的速度将超过你修复它们的速度。验证器必须是正确的、抗篡改的,并且代表你真正关心的内容。

从监督式冷启动开始。 DeepSeek-R1-Zero 证明了从随机初始化开始的纯 RL 在原则上是可行的。但 R1 本身增加了针对精选示例的 SFT 预热,以获得实际的稳定性、减少训练初期的奖励作弊,并实现更可靠的收敛。冷启动并非绝对必要,但它缩短了获得有意义的自我改进信号的时间。

在能力达到瓶颈期时运行它。 当额外的人工标注回报递减时,该循环的边际价值最高——即你已经策划了高质量的示例,而模型的失败模式现在处于人工标注员很少覆盖的分布尾部。自我博弈通过系统地探索任务空间来发现这些失败模式。

基于预留真值进行部署准入。 在将自我训练的模型推向生产环境之前,根据由真实任务(而非自我生成的任务)构建的预留评估集进行衡量。SSR 的关键验证是,它在模型在自我博弈期间从未遇到过的自然语言 GitHub 问题上超过了人工数据基准。如果你的自我训练模型在自我博弈分布之外的任务上无法击败人工数据基准,那么该循环已经过拟合了。

监控策略更新的 KL 散度。 SPIRAL 将思维坍塌——逐步放弃思维链推理——识别为一种可以通过监控连续策略更新之间的 KL 散度来诊断的失败模式。训练后期的高 KL 散度与坍塌相关。请设置早期停止阈值。

更广泛的原则是:将你的安全和评估逻辑从提示词中移出,转入基础设施中。模型无法修改的沙盒执行器、用于结构检查的确定性分类器,以及模型在训练期间从未触及的预留评估集——这些架构属性使得闭环模式足够可靠,可以在生产环境中运行。没有这些,你构建的就不是一个自我改进的智能体;而是一个自我改进的奖励作弊者。

噪声中的信号

闭环自我提升正在成为智能体系统中实现训练后能力增益的主导机制。证据已经足够充分,以至于构建生产级智能体的团队即使不亲自运行训练循环,也应该理解这种架构:它解释了你所使用的模型为何变得更强,它们的残余失效模式是什么样的,以及如何诚实地评估它们。

文献中所有系统的核心原则是一致的:限制因素是验证器质量,而非模型容量。一个拥有强大验证器和较弱初始策略的模型,其表现将优于一个拥有弱验证器的更强模型。如果你正在设计一个智能体最终需要扩展自身能力的系统 —— 无论是为了应对不断演进的任务领域、从部署时的错误中学习,还是为了适应新的工具 API —— 你的第一笔投资应该是构建一个你信任的验证器。循环的其余部分将由此顺理成章地展开。

References:Let's stay in touch and Follow me for more thoughts and updates