FLARE:用生成式奖励模型为长程编码智能体提供全生命周期稠密监督 —— 精读

论文链接:https://arxiv.org/abs/2609.23808

标题:FLARE: A Full-Lifecycle Dense Supervision Paradigm for Long-Horizon Coding Agents via Generative Reward Model

发表时间:arXiv:2609.23808v1,2026 年 9 月 20 日

发表机构:北京大学、南京大学、北京邮电大学、独立研究者(纯学术研究,无企业合著)

作者:Jingxuan Xu、Gang Wu、Yanan Wu、Yutao Mou 等(四人等量贡献,通讯作者 Ariel Deng)

备注:本文提出 FLARE(Full-Lifecycle Alignment and Reward Engine),核心是一个轻量生成式奖励模型 GRM 驱动的「全生命周期稠密监督」范式,把测试时干预与训练时对齐统一到同一诊断信号。


一、背景与问题:长程编码智能体为何陷入「信用分配危机」

1.1 什么是长程编码智能体

今天的代码智能体(Coding Agent,例如 SWE-agent、AutoCodeRover、Agentless,以及接入 Claude Code、Cline 的编程助手)已经不再只是「补全一行代码」,而是能自主浏览代码仓库、执行测试、反复修改补丁去解决真实软件工程问题的智能体。一个典型的任务(如 SWE-bench 上的 issue 修复)往往需要模型连续做出几十步决策:读文件、定位函数、写补丁、跑测试、根据报错再改。

这种任务被称为长程(long-horizon)任务——链路长、与环境反复交互、单步结果高度依赖前面所有步骤。

1.2 稀疏奖励与信用分配危机

强化学习里有个核心矛盾:奖励越稀疏,越难知道「哪一步该奖、哪一步该罚」。

传统评测给智能体的反馈只有一个二元结果(Pass/Fail):整条轨迹跑完,测试过了就成功,没过就失败。问题在于——当智能体在第 40 步才因为一处语法错误挂掉,二元结果完全不告诉你「失败的根因在第 5 步的错误规划,还是第 40 步的拼写错误」。

这就是论文反复强调的信用分配危机(credit assignment crisis):

一个跑了几十步后失败的轨迹,二元结果无法指向具体的失败点;社区被迫把大量「虽然失败但信息量极大」的探索轨迹直接丢弃。

打个比方:你让一个人组装一台复杂机器,他忙了三小时没装好。如果你只说「失败」,他下一次仍然不知道是哪颗螺丝拧错了。而 FLARE 想做的,是在每一步完成后立刻告诉他「这一步风险等级是 critical,错误类型是选错工具,建议这样改」。

1.3 测试时缩放(TTS)的两难

近年进步的一大驱动力是测试时缩放(Test-Time Scaling,TTS):在推理阶段多花算力(多次采样)来换取更高质量的解。但标准 TTS 很贵——它会从初始状态完整重采样整条轨迹。

现有优化方法各有结构性瓶颈:

  • 启发式状态复用(如 SWE-Replay):在某个中间步「分叉」继续探索,但只靠推理段落数量等结构代理来选分叉点,没有真正的因果诊断,本质是「猜」。
  • 离线进化搜索 / 多智能体辩论(如 Satori-SWE、SWE-Search):依赖延迟的标量奖励或重型协商,要么只给轨迹级分数,要么产生指数级 token 开销,无法在轨迹第一次跑偏时动态介入。

FLARE 的核心洞察是:真正的效率来自给智能体装上一套「自我诊断」能力,用生成式奖励模型在每一步给出可执行的、步级的风险反馈,而不是事后给一个不可解释的标量分。


二、相关工作:从测试时缩放到过程奖励模型

FLARE 站在三条研究线的交汇处,理解这三条线有助于看清它的位置。

2.1 测试时缩放与轨迹优化

仓库级编码智能体把 TTS 当作提升长程表现的核心机制。代表优化包括启发式状态复用(SWE-Replay)与离线进化搜索(Satori-SWE)。FLARE 的不同之处是:把分支选择直接耦合到步级诊断——一个在线的 GRM 识别关键偏离并给出针对性反馈,实现「主动脚手架(Active Scaffold)」。

2.2 轨迹诊断与失败归因

另一支研究关注「智能体为什么失败」。CodeTracer 让智能体状态可追踪;TRAIL、AgenTracer、TRACER 研究错误定位与失败归因;还有工作识别多智能体失败中「该负责的那个智能体 / 那一步」。FLARE 借助 RADAR 把离线因果链分析转换成「前缀可接地」的在线 GRM 监督,其结构化风险、错误分类、修复理由可直接复用于断点干预与策略训练。

2.3 过程奖励模型(PRM)与关键步学习

为对抗奖励稀疏,PRM 被广泛用于评估中间推理步(详见第六部分交叉验证)。在智能体 SWE 领域,STeCa、ATLaS 证明「抽取关键步」能胜过整轨迹行为克隆。标量过程分只汇总中间决策质量,而文本诊断还能暴露失败机制与修正方向——这正是 FLARE 采用「条件生成式」表述的动机:GRM 产出结构化步级反馈,既支持可执行的干预,又能在之后转成稠密奖励用于训练时对齐。


三、FLARE 总览与 RADAR 双轨数据合成

FLARE 的整体思路分两块:先有 RADAR(离线因果感知诊断框架)造出高质量的步级监督数据,再据此训出 GRM(轻量生成式奖励模型),最后用 GRM 贯穿「推理时 + 训练时」全生命周期。

3.1 轨迹语义压缩

给定一条轨迹 τ = (s₁, …, s_T),RADAR 先把每一步 s_t 压缩成结构化语义表示:

$$\tilde{s}_t = (\mathcal{I}_t, \mathcal{A}_t, \mathcal{O}_t) = \phi(s_t)$$

其中 ℐ、𝒜、𝒪 分别是**意图(intent)、动作(action)、观测(observation)**的自然语言摘要。这一步统一了后续双轨诊断的输入基础。

3.2 双轨诊断蒸馏(核心创新)

RADAR 的关键挑战是:从只有少量步骤真正导致失败的轨迹里,拿到因果一致、步级对齐的监督。它用两条互补的轨道:

轨道 1:逆向因果错误链分析(Reverse Causal Error Chain Analysis)——针对失败轨迹

对失败轨迹,RADAR 通过**向后回溯(backward tracing)**找出「根因优先」的因果相关步骤集合:

$$\mathcal{C} = \mathcal{B}(\tau; \mathcal{G}) = (\tilde{s}_{t_1}, \dots, \tilde{s}_{t_k})$$

其中 𝒢 是全局信号(如补丁差异、失败测试用例)。RADAR 先锚定一个「行为或契约不一致」,再沿引入、传播、放大该不一致的步骤向后追溯,优先保留最早、有证据支持的源头用于重放,排除无关探索。注意它瞄准的是「可解释的错误链」,而非形式化的最小因果集。

链条中每一步被赋结构化标签:

$$y_{t_i} = (z_{t_i}, c_{t_i}, d_{t_i}) = \mathcal{A}(\tilde{s}_{t_i}; \mathcal{C}, \mathcal{G})$$
  • $z_{t_i}$:风险等级(safe / trivial / critical)
  • $c_{t_i}$:在预定义错误分类法下的错误类型(如 E1.1 误解需求、E1.4 选错工具)
  • $d_{t_i}$:基于全局信号的离线诊断分析

轨道 2:主动错误注入(Active Error Injection)——针对成功轨迹

成功轨迹天然缺乏「失败样本」,导致错误类型长尾不均衡。RADAR 反其道而行:往成功轨迹的高影响步骤注入错误,扩充长尾错误类型、提升监督多样性。

关键步骤选取:

$$\mathcal{K} = \{ \tilde{s}_t \mid s_t \in \tau^+,\ \kappa(\tilde{s}_t) \in \mathcal{H} \}$$

其中 κ 是步类型分类器(给每条压缩步赋予功能角色),ℋ 是预定义的高影响类别集合(计划创建、关键观测、关键动作、自我修正)。对每个选中步骤,采样一个错误标签 ℓ∼p(ℓ) 并施加标签专属的扰动策略,生成错误步 $\tilde{s}^{\text{err}}_t = \mathcal{I}(\tilde{s}_t \mid \ell, \pi_\ell)$。

随后通过断点 rollout 重新执行被扰动轨迹,产生随机 rollout 并统计经验恢复率 $\hat{p}_t$。最终按恢复阈值 θ 归类:

$$z_t = \begin{cases} \text{critical}, & \hat{p}_t \le \theta \\ \text{trivial}, & \hat{p}_t > \theta \end{cases}$$

也就是说,轨道 2 的严重度不是只看注入的错误类型,而是看在该延续策略与 rollout 预算下「实际能不能恢复」——把监督锚定在可观察的可恢复性上。

两条轨道互补:自然失败提供「观测到的错误链」,成功前缀的扰动暴露「未被充分代表的失败模式」。

3.3 因果前缀蒸馏与「无后见之明」边界

最终每条轨迹被转成标注序列 $\{(\tilde{s}^{(i)}_t, y^{(i)}_t)\}^T_{t=1}$。这里有个微妙但关键的设计——因果前缀蒸馏:

$$\tilde{d}_t = \mathcal{M}(d_t; q, s_t, \mathcal{H}_t),\quad \mathcal{H}_t = (s_1, \dots, s_{t-1})$$

函数 ℳ 只用语义合规门(检查分类法一致性、不支持的锚点、补丁/未来/测试预言泄露)把离线分析重写为「仅依赖任务、当前步、前置历史」的形式。参考补丁与最终结果可以参与离线归因,但绝不能出现在运行时 GRM 可见的前缀之外——这定义了「无后见之明(hindsight-free)监督」的运行信息边界,避免 GRM 在线上「作弊」地看到答案。


四、生成式奖励模型 GRM:4B 模型与结构化 XML 诊断

4.1 为什么要「生成式」而不是「判别式」

在 Qwen3.5-4B 上做监督微调,FLARE 把 GRM 训成一个条件生成模型:

$$p_\psi(\tilde{y}_t \mid q, s_t, \mathcal{H}_t)$$

actor(被训练的智能体)和 critic(GRM)解决的是不同问题:actor 负责搜索并实现修复,GRM 只负责针对任务、可用证据和固定错误分类法,诊断一个已完成步。结构化监督把小模型的能力集中在「诊断」这一角色上,不必让它独立解决整个 issue。

4.2 结构化 XML 输出契约

GRM 用固定 XML 输出合同,使同一份信号能复用于在线修复、轨迹打分、稠密奖励构建。对高风险步,它输出因果分析、一个或多个分类法支撑的问题标签、以及一个严重度标签:

<risk>
  <analysis>[详细的因果分析与可执行的修复建议]</analysis>
  <issue rubric="E1.1" label="Misunderstood Requirements"/>
  <issue rubric="E1.4" label="Wrong Tool Selection"/>
  <severity>critical</severity>
</risk>

这个设计刻意不让 GRM 退化成一个整体标量重排序器,而是暴露「风险等级 + 错误分类 + 修复指引」三层结构,供下游直接使用。

4.3 一个诊断模型,三种下游用途

GRM 的共享诊断表示承担三种互补功能:

  • **严重度(severity)**决定「何时介入」;
  • **诊断理由(diagnostic rationale)**指明「修什么」;
  • 严重度 + 分类法信息定义「用于 SFT 筛选与稠密奖励构建的过程分」。

下面三种机制复用同一个诊断模型,而不是为每个阶段单独训练一个评估器。


五、全生命周期闭环:推理时断点再生 + 训练时 SFT/RL

5.1 推理时:主动脚手架式断点再生

每一步,智能体提出试探动作 $\hat{s}_t$,GRM 异步诊断已完成的 $s_{t-1}$,产出三元组。干预发生在「下一个动作提交之前」的边界上——它不假设已经执行过的工具操作可以撤销(这一点很务实,因为真实环境里文件改动、测试运行往往无法回滚)。

$$s_t = \begin{cases} \hat{s}_t, & z_{t-1} \in \{\text{safe}, \text{trivial}\} \\ \pi(d^{\text{diag}}_{t-1}; \mathcal{H}_t), & z_{t-1} = \text{critical} \end{cases}$$

即:低风险就照常继续;critical 就基于诊断反馈再生下一步。

5.2 训练时:步级风险校准奖励

为把 GRM 信号变成训练可用的稠密奖励,论文定义了风险严重度因子与错误重要度因子,二者都来自离线断点 rollout 统计的经验成功率/失败率:

$$\omega^{\text{risk}}_t = \begin{cases} \max\big(0,\ \frac{P_{\text{succ}}(z_t)-\bar{P}_{\text{succ}}}{\bar{P}_{\text{succ}}}\big), & z_t=\text{safe} \\ \max\big(0,\ \frac{P_{\text{fail}}(z_t)-\bar{P}_{\text{fail}}}{\bar{P}_{\text{fail}}}\big), & z_t \in \{\text{trivial}, \text{critical}\} \end{cases}$$$$\omega^{\text{err}}_t = \max\Big(0,\ \frac{\bar{P}_{\text{succ}}-P_{\text{succ}}(c_t)}{\bar{P}_{\text{succ}}}\Big)$$

再叠加三个动态调节系数:位置感知权重(越靠近最终提交权重略高,但用对数增长限制过度集中)、动作稀有度权重(高频动作降权)、复发惩罚(同类错误反复出现则加重惩罚)。最终步级奖励:

$$r^{\text{step}}_t = \begin{cases} \omega^{\text{risk}}_t \cdot \eta^{\text{pos}}_t \cdot \eta^{\text{act}}_t, & z_t=\text{safe} \\ -\omega^{\text{risk}}_t \cdot \omega^{\text{err}}_t \cdot \eta^{\text{pos}}_t \cdot \eta^{\text{act}}_t \cdot \eta^{\text{rec}}_t, & z_t \in \{\text{trivial}, \text{critical}\} \end{cases}$$

轨迹级奖励是步级信号的归一化聚合 $R(\tau) = \frac{1}{T}\sum_t r^{\text{step}}_t$。

5.3 两条训练用途

  • SFT 数据筛选:不再随机抽轨迹,而是按 $R(\tau)$ 选 top-K 高质量示范,让模型更好地内化稳定推理与自我修正行为。
  • 稠密奖励集成:在稀疏的二元 Pass/Fail 之外,叠加重排序奖励 $r^{(i)} = R(\tau^{(i)}) + R^{\text{out}}(\tau^{(i)})$,再做组内的 z-score 归一化优势,套用标准 GRPO。这里「稠密」指整条轨迹上构造的监督,而不是逐 token 的优势——同终端结果的轨迹也能因过程质量不同而拿到不同奖励。

六、WebSearch 交叉验证:PRM、步级监督与因果归因

FLARE 的「生成式过程监督」并非凭空而来。我们用检索确认它与下列工作的方法相似度与结论相近度。

6.1 数学推理里的过程奖励模型(PRM)

  • Math-Shepherd(Wang et al., 2023,arXiv:2312.08935):用「自动蒙特卡洛估计」给每个推理步打过程分,无需人工标注,用于 Best-of-N 重排序与步级 PPO。它首次大规模验证了「自动过程监督」有效,但产出的是标量步分,且面向数学解题。
  • OmegaPRM(Luo et al., 2024,arXiv:2406.06592):用「分治式 MCTS + 二分查找」高效定位 CoT 中第一个错误步,收集 150 万过程标注,把 Gemini Pro 在 MATH500 从 51% 提到 69.4%。它同样产标量 PRM,且侧重数学,与 FLARE 的「智能体轨迹 + 文本诊断」不同。

方法相似:都用自动化手段造步级监督、都用于「重排序 + RL 奖励」。结论相近:步级监督优于纯结果监督。差异:Math-Shepherd / OmegaPRM 是判别式标量 PRM、面向数学;FLARE 是生成式文本诊断、面向长程 SWE 轨迹,并显式区分「风险等级 / 错误类型 / 修复理由」。

6.2 智能体里的过程奖励模型

  • AgentPRM(Xi et al., 2025,arXiv:2511.08325):明确指出智能体动作没有「对错分明」的标签,应按「离目标多近、进展多大」评估,提出用 TD + GAE 估计步级价值,比基线计算效率高 8×。这与 FLARE「用生成式而非判别式、给智能体动作打分」的方向一致。
  • SWE-PRM / SWE-TRACE / rubric-supervised critic(Gandhi et al. 2025;Han et al. 2026;Wang et al. 2026):也都做智能体里可解释的过程反馈或 rubric 引导的批评器。

方法相似:都把 PRM 扩展到智能体决策。结论相近:过程反馈能支撑轨迹选择与数据筛选。差异:AgentPRM 等多数仍是「值 / 标量」视角;FLARE 强调结构化文本诊断可直接转成可执行修复指令,并把同一信号闭环到推理与训练两端。

6.3 因果归因与轨迹诊断

  • CodeTracer(Li et al., 2026,arXiv:2604.11641):把异构运行产物解析成层级追踪树,做「失败起点定位」,并证明重放其诊断信号能在同等预算下恢复失败轨迹。这与 FLARE 的 RADAR「失败链归因 → 断点重放」目标高度一致。
  • TRAIL / AgenTracer / TRACER:聚焦错误定位、失败归因、轨迹级风险。

方法相似:都做「长程智能体里的失败归因与可恢复性」。差异:CodeTracer 是离线追踪与评测架构;FLARE 的 RADAR 进一步把归因结果蒸馏成「无后见之明、前缀可接地」的在线 GRM 训练数据,并把诊断推理进生命周期闭环。

同日另一篇精读(Critical-State RL,arXiv:2609.24985,Salesforce AI Research)从多轮工具调用角度切入同一主题「过程监督与信用分配」:它用训练前三闸门诊断 + 嵌套采样选出「值得训练的模型调用」,做 occurrence-local RL。两篇互为映照——FLARE 解决「长程 SWE 轨迹上何时干预、如何给稠密奖励」,Critical-State RL 解决「多轮工具交互里该对哪一调用下梯度」。详见另一篇文章第六部分。


七、实验结果与关键发现

实验围绕三个研究问题,对应 GRM 在全生命周期的三类用途,在四个仓库级 SWE 基准(SWE-bench Verified / Pro / Multilingual / SWE-Compass)及四个模型(GLM-5、Kimi K2.5、Qwen3.5-Plus、DeepSeek V3.2)+ 两类脚手架(Claude Code、Cline)上评测。

7.1 RQ1:推理时修复与效率(F2P 修复率)

在失败任务子集(F2P)上,比较四种修复策略:GR(全局重采样,标准 Pass@N)、Blind-BKR(盲断点 rollout,无诊断)、RADAR-DBKR(离线诊断引导重放)、GRM-DBKR(FLARE 在线 GRM 引导断点 rollout)。

方法预算F2P (%)Agent 输出 token平均轮数
GRN=17.8022,738103.9
GRN=513.7266,711307.8
Blind-BKRN=10.5019,04686.6
RADAR-DBKRN=110.8920,81492.8
GRM-DBKRN=114.1012,51757.6
GRM-DBKRN=519.5961,718284.2

关键结论:

  • 单分支 GRM-DBKR 达到 14.10% F2P,约为 N=1 全局重采样(7.80%)的 2 倍,甚至超过 N=5 的全局重采样(13.72%)。
  • 对应 Agent 输出比约 66,711 / 12,517 ≈ 5.33×,即约 5× 的 token 节省(严格单分支预算下)。
  • 在已成功任务子集(P2P)上,GRM-DBKR 也拿到最高保持率 88.43%,说明引导式延续没有牺牲成功行为的稳定性。
  • 增益跨模型、跨脚手架、跨语言一致;在能力边界的更难任务桶上提升最大(最低基线成功桶从 1.0% 升到 10.6%)。

7.2 RQ2:过程感知轨迹打分与 SFT 数据筛选

先用 18,000 条轨迹(6,379 通过 + 11,621 失败)验证「训练无关」的轨迹分对真实结果的排序能力:FLARE 过程分 ROC-AUC 达 75.74%,高于随机 50% 与启发式 Critical Model 基线 69.34%。

SFT 筛选:从池中按规则各选 3K 轨迹微调同一 Qwen3-30B-A3B。FLARE 过程感知筛选相对随机采样平均通过率相对提升 19.13%(34.38 vs 28.86),在 SWE-bench Pro、SWE-Compass 上增益尤其大。消融显示风险严重度因子与错误重要度因子贡献最大(去掉分别掉 8.52、7.18 个百分点)。

7.3 RQ3:面向智能体 RL 的稠密奖励

同样初始化与训练协议,只换奖励信号。FLARE-RL(稠密奖励)在四个基准上全面优于纯稀疏结果奖励:

奖励信号VerifiedProMultilingualCompassAvg.
稀疏结果奖励57.4027.6342.0024.0537.77
稠密 FLARE 奖励60.2031.6044.6728.5041.24

即平均 +9.19 个百分点(论文表述为相对 9.19%)。由于两变体仅奖励不同,这稳定支持「稠密过程监督是终端正确性的有用补充」。

7.4 三问合一的帕累托前沿

FLARE 在智能体生命周期上建立了新的帕累托前沿:N=1 的 GRM 引导分支胜过 N=5 全局重采样并省约 5× token;同一诊断信号用于 SFT 筛选(+19.13% 相对)与稠密 RL(+9.19% 平均),分别缓解长程 SWE 中的稀疏奖励难题。


八、贡献、局限与展望

8.1 主要贡献

  1. RADAR 框架与 GRM 蒸馏:用因果链回溯从复杂轨迹抽取高保真、无后见之明的步级监督,训出能输出结构化步级诊断的轻量 GRM。
  2. 统一全生命周期范式:GRM 既作推理时主动脚手架(实时在线干预),又把同一诊断信号复用于 SFT 数据筛选与 RL 稠密奖励。
  3. 全面实证:测试时 N=1 胜过 N=5 全局重采样且省 5× token;SFT 相对 +19.13%、RL 平均 +9.19%。

8.2 局限

  • 受限于基智能体语义能力:GRM 擅长定位过程级失误与验证失败,但当失败需要深层语义架构改动或严重目标漂移时,仅定位错误步不足以拯救轨迹。
  • 步级生成诊断的开销:虽然大幅降低 Agent 输出,但诊断推理本身带来额外算力与潜在延迟;文中 token 计数只计 Agent 输出,端到端开销还含 GRM 推理、环境执行等。
  • 依赖预定义错误分类法:固定分类法可能漏掉分类外的新错误;论文通过人类 SWE 专家与更强语言模型的独立审查做泄漏与严重性审计,但这是「残留标注误差的估计」而非「零泄露保证」。

8.3 展望与关联

FLARE 把「轨迹诊断 → 可执行监督」闭环到智能体全生命周期,与同日 Salesforce 的 Critical-State RL(多轮工具调用的训练前信用分配诊断)形成同一主题下的互补视角:一个在长程 SWE 轨迹上做实时诊断与稠密奖励,一个在多轮工具交互里选「对哪个调用下梯度」。两者共同指向一个趋势——过程监督与精细信用分配,正成为把 RL 与测试时缩放扩展到长程智能体的关键基础设施。

一句话总结:FLARE 用一个 4B 生成式奖励模型把「每一步的风险诊断」做成统一货币,让长程编码智能体在推理时少走 5× 弯路、在训练时拿到可用的稠密奖励,首次把测试时干预与训练时对齐闭环到同一套信号。