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 | 平均轮数 |
|---|---|---|---|---|
| GR | N=1 | 7.80 | 22,738 | 103.9 |
| GR | N=5 | 13.72 | 66,711 | 307.8 |
| Blind-BKR | N=1 | 0.50 | 19,046 | 86.6 |
| RADAR-DBKR | N=1 | 10.89 | 20,814 | 92.8 |
| GRM-DBKR | N=1 | 14.10 | 12,517 | 57.6 |
| GRM-DBKR | N=5 | 19.59 | 61,718 | 284.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(稠密奖励)在四个基准上全面优于纯稀疏结果奖励:
| 奖励信号 | Verified | Pro | Multilingual | Compass | Avg. |
|---|---|---|---|---|---|
| 稀疏结果奖励 | 57.40 | 27.63 | 42.00 | 24.05 | 37.77 |
| 稠密 FLARE 奖励 | 60.20 | 31.60 | 44.67 | 28.50 | 41.24 |
即平均 +9.19 个百分点(论文表述为相对 9.19%)。由于两变体仅奖励不同,这稳定支持「稠密过程监督是终端正确性的有用补充」。
7.4 三问合一的帕累托前沿
FLARE 在智能体生命周期上建立了新的帕累托前沿:N=1 的 GRM 引导分支胜过 N=5 全局重采样并省约 5× token;同一诊断信号用于 SFT 筛选(+19.13% 相对)与稠密 RL(+9.19% 平均),分别缓解长程 SWE 中的稀疏奖励难题。
八、贡献、局限与展望
8.1 主要贡献
- RADAR 框架与 GRM 蒸馏:用因果链回溯从复杂轨迹抽取高保真、无后见之明的步级监督,训出能输出结构化步级诊断的轻量 GRM。
- 统一全生命周期范式:GRM 既作推理时主动脚手架(实时在线干预),又把同一诊断信号复用于 SFT 数据筛选与 RL 稠密奖励。
- 全面实证:测试时 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× 弯路、在训练时拿到可用的稠密奖励,首次把测试时干预与训练时对齐闭环到同一套信号。