面向API边界代码智能体RL训练的调用段因果信用分解轨迹数据工程
将API边界代码智能体RL训练中的信用分配从轨迹级重构为调用段级,利用API调用的功能角色分类与因果依赖结构进行信用分解,解决Polar框架的奖励劫持问题与prefix_merging的信号丢失问题
背景与动机
NVIDIA于2026年5月28日开源的Polar框架(arXiv:2605.24220)标志着代码智能体强化学习训练范式的重大突破:通过在模型API边界设置透明代理(Gateway),Polar使得Codex、Claude Code、Qwen Code等现有代码智能体无需修改执行外壳即可接入GRPO训练,在SWE-Bench Verified上实现了最高594.74%的pass@1提升。
然而,Polar在实验中暴露了两个关键的数据层面问题:
-
per_request策略的奖励劫持:Polar将每次模型API调用视为独立的GRPO训练单元,但同一任务的成功轨迹中包含大量功能异质的调用段——文件读取(信息获取)、代码编辑(行动执行)、测试运行(结果验证)。这些调用段对最终结果的因果贡献截然不同,却被赋予相同的轨迹级奖励信号,导致策略学习到虚假相关性(如将偶然的文件读取时机与成功关联),引发奖励劫持。Polar论文明确将”session normalization and PRM-style credit assignment”列为未来工作。
-
prefix_merging的信号稀释:为提升GPU利用率(从20.4%跃升至87.7%),Polar引入prefix_merging策略将多次API调用合并为单一训练样本。但这将功能异质的调用段压缩为同质序列,丢失了调用段之间的功能边界,使得信用分配更加粗糙。实验表明,prefix_merging虽然大幅提升了训练效率,但在部分harness上的性能增益低于per_request模式。
与此同时,近期多篇文章从不同角度揭示了智能体RL中步骤级信用分配的重要性:FineStep(arXiv:2605.04719)在工具增强Text-to-SQL中引入独立过程奖励与多维步骤级信用分配;PiCA(arXiv:2605.09287)通过枢轴步骤识别实现搜索智能体的密集信用引导;GAGPO(arXiv:2605.13217)提出无评论家的TD/GAE风格时序优势传播;StepOPSD(arXiv:2605.27140)将轨迹分解为以动作为中心的步骤片段进行偏好蒸馏。但这些工作均未针对API边界训练场景的特殊结构——调用段的功能角色异质性与因果依赖链——进行信用分解设计。
核心问题:如何在API边界代码智能体RL训练中,将轨迹级统一信用分配重构为调用段级因果信用分解,既解决per_request模式的奖励劫持,又弥补prefix_merging模式的信号丢失?
核心思路
提出CALL-CREDIT框架(Call-level Causal Credit Decomposition),将API边界代码智能体轨迹中的调用段功能角色与因果依赖结构建模为一等信用分配信号,通过三阶段实现从轨迹级信用到调用段级因果信用的分解:
关键区别于现有工作:
| 维度 | Polar | FineStep / PiCA / GAGPO / StepOPSD | CALL-CREDIT(本文) |
|---|---|---|---|
| 训练边界 | API边界 | 传统环境接口 | API边界 |
| 信用粒度 | 轨迹级 | 步骤级(通用) | 调用段级(功能角色感知) |
| 因果建模 | 无 | PiCA有因果但面向搜索 | 代码编辑因果图(read→edit→verify) |
| 与prefix_merging兼容 | 信号丢失 | 不适用 | 因果信用保持 |
-
调用段功能角色分类:基于API调用的工具类型与上下文语义,将每次调用段自动分类为三种功能角色——信息获取(Information Gathering, IG)、行动执行(Action Execution, AE)、结果验证(Result Verification, RV)。这三种角色构成代码编辑的因果骨架:IG为AE提供决策依据,AE产生代码变更,RV确认变更正确性。
-
因果信用分解:利用调用段的功能角色与因果依赖结构,将轨迹级优势分解为调用段级因果优势。核心洞察:不同角色对最终结果的因果贡献具有结构性差异——AE调用段是直接因果节点(代码变更直接影响结果),IG调用段是间接因果节点(通过影响AE决策间接影响结果),RV调用段是校验节点(提供自校正信号但不直接改变结果)。基于此,设计因果信用传播公式,将轨迹级优势沿因果链逆向传播至各调用段。
-
因果感知调用段增强:利用因果信用分解结果,定向增强高因果贡献调用段的训练信号。对高信用AE调用段进行反事实增强(替换编辑内容生成对比轨迹),对低信用IG调用段进行信号抑制(避免虚假相关性),对RV调用段引入自校正奖励(验证行为本身的价值)。这使得prefix_merging压缩后的训练数据仍能保持因果信用的区分度。
技术路线
阶段一:调用段功能角色标注与因果图构建
1.1 调用段功能角色分类器
基于Polar Gateway拦截的API调用日志,提取以下特征进行功能角色分类:
- 工具类型信号:
read_file/search→ IG倾向;edit_file/write_file→ AE倾向;run_test/bash→ RV倾向 - 内容语义信号:调用段响应中是否包含代码diff(AE标志)、是否仅包含文件内容(IG标志)、是否包含测试输出(RV标志)
- 位置先验信号:轨迹中同一任务的调用段序列通常遵循IG→AE→RV的时序模式
采用轻量级规则+LLM辅助的混合标注策略:规则覆盖80%+的明确案例,LLM处理边界模糊案例(如bash命令既可能是IG也可能是AE)。
1.2 因果依赖图构建
对每条成功轨迹,构建调用段级因果依赖图 :
- 节点 :每次API调用段,标注功能角色
- 边 :调用段 的输出被调用段 引用时存在因果边
- 因果边的识别基于内容引用分析:AE调用段引用的文件路径出现在IG调用段的读取内容中 → IG→AE因果边;RV调用段测试的代码变更来自AE调用段 → AE→RV因果边
阶段二:因果信用分解
2.1 轨迹级优势计算
沿用GRPO的组相对优势计算:对同一任务采样 条轨迹,计算每条轨迹的组相对优势 。
2.2 调用段级因果优势传播
将轨迹级优势 沿因果图逆向传播至各调用段:
其中:
- 为角色信用权重先验:,初始化基于领域知识(AE直接改变代码、IG间接提供决策依据、RV校验结果),训练过程中通过因果效应估计自适应调整
- 为节点 的出度(被后续调用段依赖的次数),度量因果重要性
- 为时序折扣因子,近端调用段获得更高信用
- 为调用段在轨迹中的位置
2.3 反事实因果效应估计
对高信用AE调用段,通过反事实干预估计其真实因果效应:
- 给定成功轨迹 ,其中 为AE调用段
- 生成反事实轨迹 :替换 的编辑内容为替代方案(由同一模型在相同上下文下的第二高概率输出)
- 计算因果效应:
- 将 作为因果效应校准信号,修正
阶段三:因果感知调用段增强与训练
3.1 因果信用保持的prefix_merging
改造Polar的prefix_merging策略,在合并调用段时保留因果信用标注:
- 对合并后的训练样本,记录各调用段的因果优势 作为token级优势的先验
- 在GRPO更新中,将token级优势与调用段级因果优势加权融合:,其中 为token 所属的调用段
3.2 因果感知训练数据策展
- 高信用AE增强:对因果效应 的AE调用段,生成 个反事实变体,构造对比训练对 用于DPO辅助训练
- 低信用IG抑制:对因果效应 的IG调用段(虚假相关性),降低其在训练中的采样权重
- RV自校正奖励:引入RV调用段的独立奖励信号 ,鼓励验证行为的自校正价值
3.3 因果信用-能力共进化闭环
随着策略进化,定期重新评估调用段的因果效应,动态调整角色信用权重 :
- 每轮训练后,在新策略采样的轨迹上重新构建因果图
- 计算因果效应分布的漂移:如果AE调用段的平均因果效应下降,说明策略已学会利用IG信息 → 提升
- 如果RV调用段的平均因果效应上升,说明策略开始依赖自校正 → 提升
关键技术挑战
- 因果边识别的准确性:代码智能体调用段之间的因果依赖可能跨多轮间接引用(如第1轮读取的信息在第5轮才被使用),需要跨轮次的引用追踪机制
- 反事实干预的代价:每次反事实干预需要重新执行代码任务,计算成本较高;需要设计高效的干预采样策略(只对高不确定性的AE调用段进行干预)
- 角色信用权重的初始化敏感性:不同类型的代码任务(bug修复 vs 功能开发 vs 代码重构)中,IG/AE/RV的相对重要性不同;需要任务自适应的权重初始化
- prefix_merging边界对齐:Polar的prefix_merging策略可能将不同功能角色的调用段合并为同一样本,需要在合并时保留角色边界标注
预期成果
定量目标
- 奖励劫持缓解:在Polar+GRPO训练中,per_request模式的奖励劫持率(定义为成功轨迹中IG调用段获得显著高于AE调用段的信用比例)降低至5%以下
- prefix_merging信号保持:在保持87%+ GPU利用率的前提下,prefix_merging+CALL-CREDIT的性能达到per_request模式的95%以上(当前Polar中prefix_merging在部分harness上性能低于per_request)
- 代码智能体性能提升:在SWE-Bench Verified上,CALL-CREDIT相比标准Polar+GRPO提升3-5个百分点的pass@1
- 训练数据效率:达到相同性能所需的训练轨迹数量减少30%+(因果信用分解使每条轨迹的信息密度提升)
定性目标
- 因果可解释性:通过因果信用分解,能够定位代码智能体在哪些类型的调用段上存在系统性弱点(如”文件读取后未充分利用信息”或”验证阶段缺乏自校正意识”)
- 跨harness泛化:CALL-CREDIT的角色信用权重与因果信用传播机制应在不同代码智能体框架(Codex、Claude Code、Qwen Code、Pi)上通用,无需针对特定harness重新调参
- 与Polar生态兼容:CALL-CREDIT作为Polar的插件模块,无需修改Polar的核心Gateway逻辑,仅需在训练端增加因果信用计算模块
可能的影响
- 推动API边界RL训练的精细化:Polar开启了代码智能体RL训练的”高速公路”,CALL-CREDIT则为这条高速公路增加了”车道标线”——使不同功能的调用段获得差异化的训练信号,从粗放式训练走向精细化训练
- 为通用智能体RL的信用分配提供新范式:调用段功能角色分类与因果信用分解的思路可迁移至其他类型的智能体(如搜索智能体、科学发现智能体),为通用智能体RL的信用分配提供结构化方法
- 连接轨迹数据工程与因果推理:将因果推理的形式化工具引入轨迹数据工程,使数据策展决策(哪些轨迹保留、哪些调用段增强)有因果理论支撑,而非纯经验驱动
相关工作
-
Polar: Token-Faithful Rollout Framework for GRPO Training (arXiv:2605.24220) NVIDIA提出的API边界RL训练框架,通过在模型API边界设置透明代理实现代码智能体的非侵入式GRPO训练。本文的直接出发点,Polar明确将信用分配列为未来工作。
-
FineStep: Step-Level Credit Assignment for Tool-Integrated Text-to-SQL (arXiv:2605.04719) 在工具增强Text-to-SQL中引入独立过程奖励与多维步骤级信用分配。与本文的调用段级思路类似,但面向SQL生成而非代码编辑,且未利用调用段的功能角色分类与因果依赖结构。
-
PiCA: Pivot-Based Credit Assignment for Search Agentic RL (arXiv:2605.09287) 通过枢轴步骤识别实现搜索智能体的密集信用引导,基于Potential-Based Reward Shaping定义依赖历史上下文的步骤奖励。与本文的因果信用传播思路互补,PiCA面向搜索场景,本文面向代码编辑场景。
-
GAGPO: Generalized Advantage Grouped Policy Optimization (arXiv:2605.13217) 无评论家的多轮智能体RL方法,通过非参数组价值代理计算TD/GAE风格时序优势。与本文的调用段级因果优势分解思路有相似之处,但GAGPO沿时间维度传播,本文沿因果依赖图传播。
-
StepOPSD: Step-Aware Online Preference Distillation for Agent RL (arXiv:2605.27140) 将轨迹分解为以动作为中心的步骤片段进行偏好蒸馏,使用每步信用预算约束。与本文的调用段分解思路最接近,但StepOPSD面向偏好蒸馏而非GRPO信用分配,且未利用功能角色与因果结构。