Code2Skill 论文解读:从代码仓库规模化合成可验证的智能体技能

  • 论文标题:Grounded Skill Synthesis from Code at Scale for Agentic Intelligence
  • 中文标题:面向智能体智能的代码规模化技能合成
  • 作者:Yongqi Tong, Pan Wang, Hang Wang, Jianshe Li, Xin Zhang, Jiang-Ming Yang, Wei Wu(蚂蚁国际 Ant International)
  • arXiv ID:2609.05571(arXiv:2609.05571v1 [cs.SE],2026 年 9 月 4 日提交)
  • 关键词:agentic AI、技能合成(skill synthesis)、代码挖掘、程序性知识、强化学习

1. 一句话总结

Code2Skill 是一条全自动流水线:从 19,769 个活跃 GitHub 仓库中挖掘源码单元,将其抽象为原子操作、复合工作流、循环模式三类"技能记录",并通过"盲重建 + 源感知比对"验证其忠实度,最终构建了含 1,006,822 条通过验证记录的 CodeSkillBank 技能库;在 9 种模型配置 × 8 个基准的 72 组对照实验中,检索该技能库平均带来 11.7% 的相对提升,且在全部 7 个共享基准上超过轨迹派生技能库(Trace2Skill、ExpeL、SkillRL-Bank)。

2. 研究背景与动机

2.1 智能体需要"技能"

现代智能体(agent)不仅要生成文本,还要调用工具、长程规划、从失败中学习、访问外部记忆等。"技能(skill)"作为 agent harness 的基本组件,封装了可复用的程序性知识及其适用条件,使智能体能在推理时检索并执行相关流程。技能可以独立更新、版本化、低成本部署,是接入领域知识的"即插即用"接口。

2.2 现有技能合成方法的两大局限

  1. 轨迹派生(trajectory-based):从智能体执行轨迹中蒸馏技能。缺点是与产生轨迹的模型、任务分布、工具、harness 强耦合,质量受限于生成智能体自身的能力与经验,组件一变技能就可能过时。
  2. 文档派生(document-based):从静态人类可读文本合成技能。虽然不依赖轨迹,但缺乏可执行证据,无法落地验证。

2.3 代码作为第三条路径

源代码天然支持执行、评估、验证、维护和版本化——恰好匹配可复用技能的运维要求。GitHub 上积累了海量经过实现、调试、反复打磨的活跃仓库,其中的程序性知识是抽象与验证可复用流程的具体证据。但自动蒸馏并不容易:真实代码混杂了框架胶水代码、项目局部标识符、重复实现、隐式依赖等。核心挑战是:在抽象掉具体实现的同时,保留足够的实现证据来支撑和验证技能

3. 方法:Code2Skill 流水线

3.1 问题形式化

构造过程将函数、方法、命令行入口或文件级组件连同仓库上下文映射为候选技能记录。一条合格的技能记录必须说明:何时适用(when)、要复现什么行为(what)、哪些前置条件与不变量约束执行(invariants)、失败如何处理(failure handling)、哪些源码片段支撑这些声明(source spans)。

由此引出三个要求: - Grounded(有依据):可恢复的实现片段支撑其程序性声明,通过盲重建来检验; - Transferable(可迁移):剥离项目特定标识符与集成细节,保留可复用的前置条件、步骤、不变量与失败处理策略; - Maintainable(可维护):保留出处、支撑源码片段、记录类型与构造状态,便于随代码演进检查、失效或重新生成。

3.2 四阶段流水线(Figure 1)

阶段一:候选程序性证据选择 扫描截至 2026 年 4 月 14 日、star 数超过 500 的 GitHub 仓库,得到 19,769 个仓库的源池。解析函数、方法、CLI 入口、文件级组件,用 LLM 打标器筛选出具有可复用意图、操作结构和可见执行约束的单元,剔除琐碎、项目局部和无支撑的片段。

阶段二:技能记录生成(三种粒度) - Atomic skills(原子技能):单个函数/方法内的一个明确定义的操作; - Composite skills(复合技能):协调多个操作的有序工作流; - Recurring-pattern skills(循环模式技能):超越单一局部操作或工作流的高层实现模式。

每条记录将操作指导与执行约束、支撑证据分离,并保留出处与构造元数据。Figure 2 给出了一个实例:从 AdGuard 的 dnsproxy 仓库中提取的 recoverDoQAfterCachedQUICFailure 复合工作流技能卡片,包含 PROBLEM CAPTURED(DNS-over-QUIC 缓存连接失效问题)、WHEN TO USE、CONTROL RULE(仅重试缓存连接失败、仅对 Err0RTTRejected 清空 token 存储等)、WORKFLOW、INVARIANTS AND FAILURES、ANTI-GOALS(禁止无界重试、全局重置、静默吞错等)、SOURCE EVIDENCE(commit f35ca3e 的具体分支与函数)。这远超传统代码摘要所能提供的信息。

阶段三:盲重建与一致性校验(核心创新) 抽取过程可能遗漏关键操作细节或引入源码不支持的约束。为此: 1. Source-body-blind reconstructor:仅根据技能记录(不看源码)重新生成代码,让步骤、不变量、失败处理上的不一致暴露出来; 2. Source-aware judge:将重建代码与原始实现比对,足够一致的直接接受,其余交给 adjudicator 区分"技能记录本身无支撑"与"重建过程失败"。

这一往返机制用 LLM 比对在记录、重建、源码三者间做一致性检查,作为可扩展的仓库级过滤器(而非测试验证的替代品)。

阶段四:面向检索的特征打标与目的索引 - Feature tagging:为每条通过记录创建任务导向的检索视图,与证据档案一一对应; - Purpose indexing:过滤低价值候选,按目的相似度分组,每组选一个代表记录,降低近重复冗余。

3.3 CodeSkillBank 规模与质量

  • 规模:1,006,822 条通过验证的技能记录,带工作流、边界、出处、源码证据元数据。
  • 仓库池画像(Figure 3):中位仓库 3,133 stars、82 个合并 PR;78.3% 仓库 ≥1000 stars,66.0% 一年内有过 push;语言分布以 Python(32.0%)、TypeScript(16.0%)、JavaScript(8.2%)、Go(6.8%)、C++(6.6%)、Java(6.0%)等为主。
  • 人工标注质量:最终库中 92% 的技能描述被判定准确,80% 的记录值得保留;直接接受的记录中 84% 支持正确重建。而被拒绝样本仅 32% 描述准确、28% 有保留价值、0% 重建正确——说明校验机制确实把好坏记录分开了。

3.4 下游利用接口

统一的利用接口决定三个选择:何时查询技能库、每条记录展示多少、在哪个决策点注入。形式化为:给定任务 x 与决策步 t 前的状态 h_t,若发起查询 q_t,则构造渲染后的技能上下文 z_t = Render_r(TopK_k(q_t; B)),否则 z_t = ∅;动作 a_t ~ π_θ(s)(·|x, h_t, z_t)。无技能对照即同一协议下 z_t = ∅。该接口覆盖提示级检索、规划时检索、生成后审查、验证器侧奖励、训练时技能条件化等用法。

4. 实验与结果

4.1 实验设置

  • 模型:DS4-Flash、Qwen3.5、Qwen3.6、Gemini 2.5 Pro、GPT 5.2,覆盖不同推理模式,共 9 种模型设置;
  • 基准(8 个)
  • 编程/软件工程:BigCodeBench、SWE-bench Verified
  • 终端/OS 控制:TerminalBench、LongCLI-Bench、AgentBench-OS
  • 数学/科学推理:AIME 2026、HMMT 2025、GPQA
  • 默认 harness:起草 → 审查 → 修订的智能体循环;默认检索池为 CodeSkillBank 的 10% 随机抽样。

4.2 RQ1:代码派生技能是否提升智能体性能?(Table 1)

72 组协议匹配(protocol-matched)评估中 57 组提升;每种模型与推理模式下,8 基准平均分提升 2.26–7.39 分(相对 6.0%–20.7%),宏平均从 42.90 升至 47.90(+11.7%)。SWE-bench Verified 全部 9 组提升;TerminalBench、AIME、HMMT、GPQA 多数受益。BigCodeBench 推理模式下结果混合——能力强模型可直接解的短问题获益较少。整体看,需要仓库导航与多步交互的任务(SWE、Terminal)提升最显著。

4.3 RQ2:与轨迹派生技能库对比(Table 2)

在统一下游接口下,用 Qwen3.5-397B-A17B 在 held-out 任务集上分别构建 Trace2Skill、ExpeL、SkillRL-Bank 三个轨迹派生基线,DS4-Flash 推理、5 次运行取均值:

方法 7 基准平均
Trace2Skill 31.0
ExpeL 27.9
SkillRL-Bank 32.8
逐基准最优 oracle 40.1
Code2Skill 49.5

Code2Skill 在全部 7 个共享基准上排名第一,超过最强轨迹派生基线 6.6–13.3 分。这表明 RQ1 的增益并非来自共享 agent loop 本身,而是代码派生技能库确实更优——在智能体积累足够交互经验之前,仓库派生技能就能提供有效的程序性知识

4.4 RQ3:技能应注入工作流的哪个位置?(Figure 4、5)

比较三种接口: - 生成时提示(追加到首轮提示):DS4-Flash 在 4 个基准上全部提升(AIME +22.0、Terminal +10.4),Qwen3.5 不稳定(Terminal -5.6); - 规划时引导:两个模型在全部 8 组评估中均提升(DS4-Flash 在 Terminal +14.5),说明检索记录能在执行前引导任务分解; - 生成后审查(默认设置):Table 1 中 57/72 提升,模式最稳定。

结论:技能用于引导规划或审查具体草稿时最稳定有效;首轮生成要求模型在形成任务计划前消化检索指导,收益不稳定。

4.5 RQ4:检索设计与上下文效率(Figure 6)

在 BigCodeBench Instruct-Hard 上变化检索深度 k∈{1,3,10}、渲染方式(完整记录 vs 摘要)、索引方式: - 深度:k 从 1 到 10,平均上下文从 2.1K 涨到 17.8K 字符,但效用几乎不涨; - 渲染:k=3 时摘要渲染把平均上下文从 6,352 字符降到 707(减少 88.9%),Qwen 保持原分数,DS4-Flash 反而从 28.40 升到 31.80; - 目的索引:完整记录上下文从 6.4K 降到 5.0K,但效果好坏参半(选代表记录可能挤掉局部相关候选)。

结论:紧凑摘要渲染比加深检索更有效——任务所需的程序本身比周边实现细节更有用。

4.6 RQ5:强化学习中的技能集成(Table 3)

在 SWE-World 编码 RL 中(Qwen3-32B checkpoint,模拟测试通过奖励),训练步 150 处的 resolve rate:

接口 技能位置 Resolve rate
无技能 24%
完整提示 Policy,完整记录 32%
摘要提示 Policy,摘要 31%
奖励参考 Verifier 31%
生成后审查 Reviewer 38%

所有技能接口都优于无技能对照,其中生成后审查提升最大(+14 分)——审查能把检索到的流程转化为针对具体候选的检查项。作者也指出这只是单 checkpoint 的初步证据,未涉及学习速度或收敛差异。

4.7 RQ6:AI 生成代码能否持续扩充技能库?(Figure 7)

从已通过测试的档案中随机抽 25 个人类实现,用 Codex(GPT-5.1,extra-high 推理)生成接口匹配的 AI 实现,两者均通过相同公开与隐藏测试;各自抽取 50 条技能组成 50 技能库,在 400 题 LiveCodeBench 子集上以相同 top-4 检索评测:

  • 人类代码技能库:93.00%(372/400)
  • AI 代码技能库:93.50%(374/400)

两者在 16 个任务上结论不同(人类库独解 7 题、AI 库独解 9 题),说明虽总分相近,但提供了非相同的指导。这为"随着 AI 生成代码日益普及,同一流水线可以持续扩充 CodeSkillBank"提供了初步证据

5. 主要贡献与评价

贡献: 1. 问题定义:提出"有依据的技能合成(grounded skill synthesis)"这一新范式,将源码作为技能合成的基底; 2. 方法:Code2Skill 全自动流水线——价值排序、三类粒度抽取、盲重建 + 源感知比对的验证闭环、检索导向的特征打标与目的索引; 3. 资源:CodeSkillBank,百万级、带出处与证据元数据的技能库,并已开放(论文附 Website 与 Dataset 链接); 4. 实证:72 组协议匹配评估 + 与轨迹派生库的正面比较 + 推理/训练两端的接口研究 + AI 代码可扩展性证据。

亮点: - 盲重建校验设计巧妙:把"技能是否忠实于源码"转化为"仅凭技能能否重建实现"的可检验问题,无需测试套件即可在仓库级规模化过滤; - 实验设计严谨,protocol-matched 对照、统一接口比较、逐基准 oracle 对比等增强了结论可信度; - 人工标注显示接受记录 92% 准确、拒绝记录仅 32% 准确,验证了校验闭环的有效性。

局限: - 一致性校验基于 LLM 比对而非真实执行,不能保证语义等价; - RQ5 仅报单 checkpoint、无多种子学习曲线;RQ6 仅 25 个源实现、总分差 0.5 个百分点,尚不能确立人类与 AI 代码源的等价性; - BigCodeBench 推理模式等短问题上收益不稳定,技能检索的适用边界仍需细化。

6. 启示

Code2Skill 提出了一条与"模型参数扩展""推理时计算扩展"互补的第三种扩展维度:将持续增长的人类与 AI 编写的经过测试的实现,不断转化为可复用的程序性知识。对于构建通用智能体,这意味着技能库可以在智能体遇到下游任务之前离线构建、独立于模型权重维护;对于垂直智能体,这是把领域原始数据转化为可执行知识资产的系统路径。其"盲重建验证"思路也可推广到文档、轨迹等其他技能来源的质量校验中。