研究提案 已修订

面向自进化代码智能体的技能空白感知训练数据工程:从被动轨迹蒸馏到主动空白识别与定向填充

提出 SKILL-GAP 框架,将代码智能体技能空白建模为一等训练数据质量信号,通过空白诊断、定向轨迹合成与空白闭环校准三阶段,系统性填补自进化技能库的覆盖、难度与组合性空白

技能空白识别 代码智能体 训练数据工程 自进化技能库 RLVR 定向轨迹合成 技能组合性

背景与动机

自进化代码智能体通过从任务执行轨迹中蒸馏可复用技能来持续提升能力。CODESKILL(arXiv:2605.25430)近期表明,将技能提取与技能库维护建模为可学习的 RL 管理策略,相比固定提示和启发式更新规则可带来 +9.69 的平均通过率提升。然而,现有技能蒸馏范式存在一个根本性的盲区:它只能从已成功执行的轨迹中提取技能,无法识别和填补技能库中从未被尝试的空白。

具体而言,当前自进化技能体系面临三类系统性空白:

  1. 覆盖空白(Coverage Gap):技能提取依赖于轨迹中出现的编程模式。当某些技能原语(如并发编程、正则表达式生成、位运算优化)在当前任务分布中极少出现时,技能库对相关任务类型长期处于”零技能”状态。CODESKILL 的混合奖励(dense rubric + sparse execution)只能提升已有技能的质量,无法发现从未被采样的技能需求。

  2. 难度空白(Difficulty Gap):从简单任务中提取的技能在困难任务上泛化不足。RLAVR(arXiv:2605.25864)揭示了一个关键洞见——不同样本的标注价值(Corrective Advantage Gap)存在巨大差异。类似地,在技能层面,从低难度轨迹中蒸馏的技能无法支撑高难度推理链,但现有方法没有机制主动识别并填补这一难度梯度空白。

  3. 组合性空白(Compositionality Gap):技能库可能包含多个单一技能,但缺少将它们有效组合的元技能。当任务需要 A→B→C 的技能链式组合时,即使 A、B、C 各自存在于技能库中,缺少组合元技能仍导致失败。DUEL(arXiv:2605.24794)在多模态推理中展示了对抗性自博弈可有效暴露细粒度语义区分能力不足,但类似思路尚未应用于技能组合空白的识别与填补。

这三类空白的共同特征是:它们不会在被动轨迹蒸馏过程中自动暴露——你无法从成功的轨迹中看到技能库缺少什么,正如你无法从已解决的问题中看到模型不会解决什么。这需要一种主动的、诊断性的数据工程方法。

核心思路

提出 SKILL-GAP(Skill-Gap-Aware Training Data Engineering)框架,将技能空白建模为一等训练数据质量信号,从被动轨迹蒸馏转向主动空白识别与定向填充。

核心命题:自进化代码智能体的训练数据工程不应仅关注”从已有轨迹中蒸馏更高质量的技能”,还应关注”识别技能库中的系统性空白并定向合成填充数据”。技能空白应作为与技能质量同等重要的一等数据质量维度。

与现有工作的关键区别:

维度CODESKILLSKILL-VERIFY/SKILL-ALIGNSKILL-GAP(本文)
目标提升已有技能的质量验证/对齐已有技能识别并填充缺失技能
数据来源观测到的成功轨迹已有技能库失败模式+反事实推理
空白处理无机制检测语义漂移/检索失效主动识别+定向合成
信号类型执行反馈+规则评分对抗性探针空白诊断+组合验证

技术路线

第一阶段:技能空白诊断(Gap Diagnosis)

1.1 覆盖空白检测

构建任务-技能依赖图 G=(T,S,E)G = (T, S, E),其中 TT 为任务空间,SS 为技能库,EE 为任务-技能需求边。通过以下步骤识别覆盖空白:

  • 对失败轨迹进行逆向技能归因:将失败分解为缺失的技能原语需求
  • 利用 LLM 进行反事实推理:“如果技能库包含技能 X,该任务是否可解?”
  • 计算覆盖空白度 Cgap(s)=∑t∈TfailP(need s∣t)⋅difficulty(t)C_{gap}(s) = \sum_{t \in T_{fail}} P(\text{need } s \mid t) \cdot \text{difficulty}(t),优先级化排序覆盖空白

1.2 难度空白检测

借鉴 RLAVR 的 Corrective Advantage Gap (CAG) 思想,将其从样本级扩展到技能级:

  • 对每个技能 ss,计算其在不同难度层级任务上的激活成功率曲线 As(d)A_s(d)
  • 识别难度断崖点 d∗=arg⁡max⁡d∣As(d)−As(d+1)∣d^* = \arg\max_{d} |A_s(d) - A_s(d+1)|
  • 将难度空白量化为 Dgap(s)=∫d∗dmax(1−As(d)) ddD_{gap}(s) = \int_{d^*}^{d_{max}} (1 - A_s(d)) \, dd

1.3 组合性空白检测

构建技能组合依赖图,识别缺失的组合元技能:

  • 从失败的多步任务中提取技能组合需求路径
  • 与技能库中已有的组合路径对比,识别缺失的组合边
  • 计算组合性空白度 Mgap(si,sj)=P(need si⊕sj)⋅(1−compose(si,sj))M_{gap}(s_i, s_j) = P(\text{need } s_i \oplus s_j) \cdot (1 - \text{compose}(s_i, s_j))

第二阶段:定向轨迹合成(Targeted Trajectory Synthesis)

2.1 覆盖空白定向合成

对识别出的覆盖空白技能 ss,合成专门训练轨迹:

  • 基于技能规约生成种子任务:从技能 ss 的语义描述出发,生成需要 ss 的编程任务
  • 参考 EvoEnv(arXiv:2605.14392)的环境合成范式,构建可验证的技能练习环境
  • 利用求解-验证不对称性确保合成轨迹的可靠性

2.2 难度空白定向合成

对难度空白技能 ss 在难度 d∗d^* 以上,合成渐进式训练轨迹:

  • 从难度断崖点 d∗d^* 出发,逐步增加任务复杂度
  • 采用 CODESKILL 的多粒度技能表示,在不同抽象层级上构建难度梯度
  • 引入 RLAVR 的主动标注策略:对高难度样本获取真值标签,对低难度样本使用伪标签

2.3 组合性空白定向合成

对缺失的组合元技能 (si,sj)(s_i, s_j),合成技能链式组合训练轨迹:

  • 生成需要 si→sjs_i \to s_j 顺序组合的编程任务
  • 参考 DUEL 的对抗性自博弈思路:生成者创建需要特定技能组合的任务,求解者尝试解决,失败案例揭示组合能力空白
  • 合成包含技能组合失败-修复循环的完整轨迹,使模型学习组合元技能的推理过程

第三阶段:空白闭环校准(Gap Closure Loop)

3.1 空白填充验证

每轮合成后验证空白是否被有效填补:

  • 覆盖空白:新提取的技能是否覆盖了之前失败的任务子集
  • 难度空白:技能激活成功率曲线是否在 d∗d^* 以上显著改善
  • 组合性空白:技能组合路径是否在新任务上成功激活

3.2 空白-能力共进化

随着技能库扩展,新的空白可能因以下原因出现:

  • 新技能引入了与其他技能的潜在组合需求
  • 能力提升使模型可触及更高难度层级
  • 任务分布漂移导致新的技能需求

建立空白-能力共进化闭环:技能库扩展→空白重新诊断→定向合成→技能库再扩展

3.3 标注预算自适应分配

借鉴 RLAVR 的主动标注思想,在空白填充过程中动态分配标注预算:

  • 覆盖空白:新技能的种子任务需要高标注预算(全新技能需要可靠验证)
  • 难度空白:断崖点附近样本需要高标注预算(最关键的转折点)
  • 组合性空白:组合接口处需要高标注预算(组合语义需要精确验证)

关键技术挑战

  1. 空白诊断的可信性:反事实推理”如果技能库包含 X,任务是否可解”的判断本身可能不可靠,需要多信号交叉验证
  2. 合成轨迹的质量保证:定向合成的轨迹可能引入与真实分布的偏差,需要保真度约束
  3. 空白度量的校准:覆盖空白、难度空白、组合性空白的度量需要在不同任务分布下保持一致
  4. 标注预算的 Pareto 最优:在有限标注预算下,三类空白之间的资源分配需要理论指导

预期成果

定量目标

  • 在 SWE-Bench Verified 上,相比 CODESKILL 基线提升 pass rate 3-5 个百分点
  • 在 LiveCodeBench 上,对 CODESKILL 零技能任务类别(从未成功过的类型)实现非零通过率
  • 技能库覆盖率(skill coverage ratio)从被动蒸馏的 ~60% 提升至 ~85%
  • 难度空白断崖点的激活成功率改善 15-20%
  • 组合性空白路径的成功激活率改善 10-15%

定性目标

  • 建立技能空白的统一形式化框架,将覆盖、难度、组合性三类空白纳入同一数学表述
  • 揭示被动轨迹蒸馏与主动空白识别之间的互补性,为自进化代码智能体的数据工程提供新的设计原则
  • 为 RLVR 训练中的主动标注策略提供技能层面的理论支撑

可能的影响

  • 对代码智能体:从”能用已有技能解决问题”进化到”能识别缺少什么技能并主动获取”
  • 对 RLVR 数据工程:从均匀数据策展进化到空白感知的定向数据合成
  • 对自进化系统:为技能库的持续扩展提供系统性方法论,避免能力天花板

相关工作

  1. CODESKILL: Learning Self-Evolving Skills for Coding Agents (arXiv:2605.25430, 2026.05) — 将技能提取与技能库维护建模为 RL 可学习策略,使用混合奖励(规则评分+执行反馈),但在被动轨迹蒸馏范式下无法识别技能空白。本文在其基础上提出主动空白识别机制。

  2. RLAVR: When Self-Belief Misleads — Active Label Acquisition for RLVR (arXiv:2605.25864, 2026.05) — 提出样本级标注价值度量 CAG,实现 RLVR 训练中的主动标签获取。本文将 CAG 从样本级扩展至技能级,为空白诊断提供理论工具。

  3. DUEL: Adversarial Self-Play for Multimodal Reasoning (arXiv:2605.24794, 2026.05) — 通过挑战者-求解者对抗性自博弈暴露细粒度语义区分不足。本文借鉴其对抗性思路,应用于技能组合空白的识别与填补。

  4. EvoEnv: Learning to Build the Environment (arXiv:2605.14392, 2026.05) — 提出求解-验证不对称性作为环境合成的理论基础,通过阶段化验证和难度校准实现自进化环境合成。本文参考其环境合成范式构建技能练习环境。

  5. AstraFlow: Dataflow-Oriented Reinforcement Learning for Agentic LLMs (arXiv:2605.15565, 2026.05) — 将 agentic RL 训练从中心化控制器解耦为数据流架构,支持异构组件独立扩展。本文的空白诊断-合成-验证三阶段可受益于 AstraFlow 的解耦架构实现高效并行。