
Code2Skill:从 19,769 个 GitHub 仓库中挖出一百万条有据可查的 Agent 技能
蚂蚁国际 Code2Skill 从 19,769 个 GitHub 仓库挖出 1,006,822 条源码接地技能记录;72 组协议对齐评测宏平均提升 11.7%,七个共享基准全胜轨迹派技能库。
Code2Skill:从 19,769 个 GitHub 仓库中挖出一百万条有据可查的 Agent 技能
来源:DeveloperSkillHubs 项目主页(蚂蚁国际 AI 研究团队)、技术报告 Grounded Skill Synthesis from Code at Scale for Agentic Intelligence(arXiv:2609.05571),以及配套的 Code2Skill 代码仓库 与 Hugging Face 数据集。
每个认真做 Agent 的团队迟早都会撞上同一面墙:模型知道很多,但「把某件具体的事做对」的程序性知识却散落在别处——运维手册里、资深工程师的脑子里、成熟代码库的错误处理分支里。Agent harness 社区把这层缺失的东西叫做「技能(skill)」:把可复用的程序性知识连同它的适用条件一起打包,让 Agent 在推理时检索并执行相应的流程。技能可以独立于模型权重进行版本化、部署与更新,成本相对很低,因此是把持续演化的领域知识喂给 Agent 系统最实用的即插即用接口。
难的是获取。基于轨迹的合成从 Agent 自己的成功经历中蒸馏技能,得到的技能库与产生它的模型、工具、harness 强耦合,质量也被该 Agent 的能力上限锁死;基于文档的合成避开了轨迹,但产出的描述背后没有可执行的证据——任何操作性断言都无从核对。蚂蚁国际的 Code2Skill 提出了介于两者之间的第三种基底:源代码。维护中的仓库记录了已实现的控制流、状态变化、约束与失败路径;它在任何目标 Agent 接触任务之前就已存在,抽象之后依然可被检查。Code2Skill 以仓库级规模挖掘这些实现,并且关键的一点是:每一条抽象都要回到它所来源的实现去验证。
先看最醒目的数字:从 19,769 个活跃维护的 GitHub 仓库出发,Code2Skill 产出 CodeSkillBank——一个包含 1,006,822 条被接受技能记录 的技能库。在覆盖九种模型设定、八个基准的 72 组协议对齐评测中,挂载检索技能的模型把宏平均从 42.90 提升到 47.90,相对提升 11.7%,其中 57 组提升;在同一套下游接口下,Code2Skill 还在全部七个共享基准上击败三种基于轨迹的技能库。本文将讲清这条流水线如何工作、一条技能记录到底包含什么、百万级技能库的构成,以及增益在哪里成立、在哪里不成立。
流水线:从源码单元到被验证的技能记录
Code2Skill 分四个阶段。首先扫描 2026 年 4 月 14 日之前可用的 GitHub 仓库,保留 star 数超过 500 的项目,得到 19,769 个仓库的源池。该池的中位仓库有 3,133 个 star、82 个已合并 PR,78.3% 的仓库 star 数不低于 1,000,66.0% 在过去一年内有过推送——挖掘对象正是被广泛使用、持续维护的实现,也就是可复用约定、边界检查与修复模式最容易沉淀的那类代码库。
阶段一:挑选候选程序性证据。在每个仓库内,解析器构建候选函数、方法、命令行入口与文件级组件,排除不安全文件、测试文件、二进制载荷以及过短而不足以暴露可复用行为的单元。随后由 LLM 打标器按六信号评分:是否具备超越项目胶水代码的可复用意图;是否有有序的操作步骤;是否存在控制流、状态或资源转换;是否有边界条件、不变量与失败处理;接口与上下文是否足以支撑后续的重建;以及相对于 getter、wrapper、配置与样板代码是否非平凡。通过门槛(并受单仓库上限约束)的单元仍只是候选:此时没有任何东西被接受。
阶段二:类型化技能记录生成。抽取器把每个选中单元及其结构上下文映射为三种粒度之一,因为程序性知识出现在不同的源码尺度上。原子技能捕捉单个函数或方法内一个定义良好的操作;组合技能捕捉协调多个操作的有序工作流;重复模式技能捕捉跨越单个局部操作之上的更高层实现。只用一种记录类型,要么会把多步流程切碎,要么会把局部行为过度泛化。
阶段三:源码体盲重建与一致性检查。这是把 Code2Skill 与「让 LLM 总结一下这个函数」区分开的质量闸门。重建器只使用合成出的记录来重新生成代码:看不到源码体、仓库名、文件路径。如果记录漏掉了关键步骤、不变量或失败分支,当源码感知判定器把重建结果与原始实现比对时,不一致就会暴露。足够一致的重建被直接接受;其余进入裁决器,区分「记录本身缺乏源码支撑」与「重建过程失败」。被接受的记录保留最终状态、判定理由、重建结果,以及仓库、文件、符号、源码 span 级别的出处。
阶段四:面向检索的特征打标与用途索引。特征打标为每条被接受技能用封闭词表生成一条面向任务的检索记录,与证据档案保持一一对应。用途索引再过滤低价值候选、按「任务族 + 意图动作 + 意图目标」的归一化键聚类,并从组内选一条既有记录作为代表。两种变换都不动原始证据档案,审计与刷新随时可以回溯到原始 span。
技能记录的解剖:边界与凭据
一条被接受的记录长什么样?项目页给出了从 AdGuard 公共 DNS 代理仓库抽取的一张卡片,值得细读——它是 Code2Skill 对「技能」二字最清楚的定义。
这条记录名为 recoverDoQAfterCachedQUICFailure,刻画了一个复用 QUIC 连接的 DNS-over-QUIC 解析器:缓存连接可能在服务器重启、空闲关闭、无状态重置、NAT 断裂或 0-RTT token 被拒之后失效。它的可复用洞察不是「出错就重试」,而是一条有界恢复策略:只重试来自缓存连接的失败;重新获取连接前先关闭失败连接;仅在特定 0-RTT 拒绝错误时清空 QUIC token 存储。不变量字段禁止重试「新打开连接」的失败、禁止把失败的缓存连接留在缓存里、要求恢复 DNS 消息 ID。反目标字段则直接点名那些诱人但错误的做法:不做无界重试循环、不做全局解析器重置、不静默吞错、不为无关的传输错误重置 token 存储。源码证据字段是凭据:上游解析器 commit f35ca3e,以及暴露缓存失败分支、关闭再获取边界、单次重试预算与按错误类型重置 token 的确切符号。
这套组合才是重点。代码摘要告诉你函数做了什么;Code2Skill 记录告诉 Agent 何时适用该流程、哪些步骤是必需的、什么必须保持为真、失败如何改变执行路径、哪些泛化超出适用范围,以及上述每一条断言在源码的哪里可以核对。
百万级技能库里到底装了什么
如果技能库只是一堆浅层 API 事实,规模就毫无意义。团队对全部 1,006,822 条被接受记录做了语义维度标注,得到的画像明确是程序性的:多步流程占 57.3%,约束推理占 33.5%,表层 API 调用仅 8.6%——90.8% 的记录保留了执行序列或约束正确执行的条件。
目标侧最常见的问题原型是数据变换与状态更新;解法侧领先的复用机制是参数化、校验、状态机控制与 API 使用。两个轴是多对多但结构自洽的:状态更新对齐状态机复用、决策校验对齐校验模式、外部交互对齐 API 使用、错误恢复对齐鲁棒性模式。正是这种自洽让多维检索成为可能:Agent 可以按「状态更新 + 状态机控制」检索,而不必依赖宽泛的关键词重叠。
知识与风险画像解释了为什么出处在这里不是可选项。库/框架行为出现在 49.4% 的记录中,编程语言语义占 47.5%,数据格式或 schema 占 47.2%——近半数记录依赖上下文敏感的假设,一个没有源码支撑的泛化会在高层目标正确的情况下悄悄改变行为。同时 79.6% 的记录属于正确性关键,并大量覆盖用户可见行为、数据丢失风险与评测敏感逻辑。在面向 Agent 的一侧,主要用途是代码生成(69.1%)、SWE Agent 工作流(58.3%)与工具使用(41.8%),而记录最常教的是该检查什么(79.1%)与如何组织解法(66.7%),而非提供可抄的代码。
人工标注为自动闸门提供了背书。标注者对四种分别抽样的构建结果(价值过滤移除、等价判定直接接受、裁决后接受、全流程拒绝)按描述准确性、重建正确性、留存价值打分。在被接受的技能库中,92% 的技能描述被判定准确,80% 的记录值得留存,直接接受的记录中 84% 支持正确重建;而被拒绝的池子只有 32% 描述准确、28% 留存价值、零正确重建。用途级卡片也保留了工作流级内容:纯组合卡占 31.12%、混合卡占 3.53%,纯原子卡占 65.35%。
技能库真的能帮到 Agent 吗
主评测覆盖九种模型设定(DS4-Flash、Qwen3.5 27B、Qwen3.6 27B、Gemini 2.5 Pro、GPT 5.2,各带其推理模式)与八个基准:编程与软件工程用 BigCodeBench 与 SWE-bench Verified;终端与操作系统控制用 TerminalBench、LongCLI-Bench、AgentBench-OS;数学与科学推理用 AIME 2026、HMMT 2025、GPQA。默认 harness 是「起草—审查—修订」循环,所有对比都是协议对齐的:只改变是否可访问技能。出于算力考虑,默认检索池为可用记录的随机 10% 抽样。
| 模型设定 | 推理模式 | 无技能 | + CodeSkill | 差值 |
|---|---|---|---|---|
| DS4-Flash | 否 | 35.62 | 43.01 | +7.39 |
| DS4-Flash | 是 | 44.47 | 51.76 | +7.29 |
| Qwen3.5 27B | 否 | 32.89 | 36.61 | +3.72 |
| Qwen3.5 27B | 是 | 47.60 | 50.94 | +3.34 |
| Qwen3.6 27B | 否 | 37.74 | 40.00 | +2.26 |
| Qwen3.6 27B | 是 | 50.59 | 57.33 | +6.74 |
| Gemini 2.5 Pro | 默认 | 37.32 | 42.09 | +4.77 |
| GPT 5.2 | 否 | 43.15 | 49.16 | +6.01 |
| GPT 5.2 | 是 | 56.73 | 60.23 | +3.50 |
| 宏平均 | 42.90 | 47.90 | +5.00 |
每个完整模型设定的平均分都在提升,相对增益 6.0% 到 20.7%,72 组协议对齐评测中 57 组提升。增益广但不均匀,论文没有用标题数字掩盖差异,而是把逐基准的分布保留了下来。
| 基准 | 提升的对数 | 观察到的模式 |
|---|---|---|
| SWE-bench Verified | 9 / 9 | 所有匹配对均提升 |
| BigCodeBench | 6 / 9 | 三对更低 |
| AIME 2026 | 9 / 9 | 所有匹配对均提升 |
| HMMT 2025 | 8 / 9 | 一对更低 |
| GPQA | 8 / 9 | 一对更低 |
| TerminalBench | 8 / 9 | 一对更低 |
| LongCLI | 4 / 9 | 五对持平 |
| AgentBench-OS | 5 / 9 | 三对更低、一对持平 |
| 全部基准 | 57 / 72 | 79.2% 的协议对齐评测提升 |
这个模式是可解释的。提升最大的是 SWE-bench Verified 与 TerminalBench——仓库导航与多步交互给存储的工作流、不变量与错误案例留出了用武之地;AIME、HMMT、GPQA 上的增益说明结构化检查可以迁移到编码之外。BigCodeBench 在推理模式下的混合结果标出了边界:强模型本就能直接解出的短小自足问题,留给程序性知识的杠杆很小。
更尖锐的问题是:增益究竟来自「代码派生的技能库」,还是仅仅来自「循环里有某种技能」?RQ2 用 Qwen3.5-397B-A17B 在不与评测重叠的保留任务切分上重建了三种基于轨迹的技能库——Trace2Skill 的 Creation+Error 流水线、ExpeL 的经验记忆、SkillRL 改造的 SkillBank——再让所有技能库在同一 Agent 循环中以 DS4-Flash 推理模式评测五个 run。
| 方法 | SWE | BigCode | AIME | HMMT | Terminal | LongCLI | AgentBench | 平均 |
|---|---|---|---|---|---|---|---|---|
| Trace2Skill | 6.0 | 31.9 | 63.3 | 46.7 | 6.9 | 18.8 | 43.1 | 31.0 |
| ExpeL | 7.5 | 29.4 | 50.0 | 20.0 | 22.2 | 18.8 | 47.4 | 27.9 |
| SkillRL-Bank | 36.8 | 29.4 | 43.3 | 26.7 | 31.9 | 10.4 | 51.2 | 32.8 |
| Code2Skill | 44.7 | 42.3 | 70.0 | 53.3 | 45.2 | 30.0 | 61.3 | 49.5 |
Code2Skill 在全部七个共享基准上排名第一(五次 run 的均值)。即便用一个「逐基准挑选最强轨迹基线」的 oracle,平均也只有 40.1,仍比 Code2Skill 低 9.5 分;单基准上对最强基线的领先为 6.6 到 13.3 分。仓库派生的技能因此能在 Agent 积累自身交互经验之前就提供有用的程序性知识——而这恰恰是基于轨迹的方法无法服务的区间。
放置位置很重要:技能从工作流的哪里进入
同一条检索到的记录,因 Agent 看到它的时机不同而承担不同的计算角色:拼进首遍生成提示时,模型必须把指导直接翻译成完整答案;在规划阶段提供时,它的条件与工作流约束任务分解;在草稿已存在之后才揭示时,它的不变量、失败案例与反目标就变成了具体的审查标准。实验把这几种角色分得很干净。
- 规划期指导:八个共享「模型—基准」对全部提升——检索到的记录能在执行前结构化任务分解。
- 生成期提示:混合且依赖模型——DS4-Flash 在四个共享基准上全部提升(AIME 与 TerminalBench 增益大),Qwen3.5 的收益则不够稳定。
- 生成后审查:正向模式最宽也最稳,与主表 57/72 的结果一致。
同样的选择延续到训练阶段。在一个编码 RL 试点中,所有条件从同一个 Qwen3-32B SWE-World checkpoint 出发,在训练第 150 步、模拟测试通过奖励下评测:无技能对照解决 24% 的任务;把 CodeSkillBank 以完整记录暴露给策略达 32%,紧凑摘要 31%,奖励侧验证器引用 31%,生成后审查 38%。四种接口都超过对照,审查最高。作者对试点的边界说得很清楚:单一 checkpoint、无重复种子、无对齐的学习曲线,因此它说明的是「技能可以监督学习」,而不是「技能加速收敛」。
| 接口 | CodeSkill 放置位置 | 第 150 步解决率 |
|---|---|---|
| 无 CodeSkill | 无 | 24% |
| 完整提示 | 策略,完整记录 | 32% |
| 摘要提示 | 策略,摘要 | 31% |
| 奖励引用 | 验证器 | 31% |
| 生成后审查 | 审查器 | 38% |
更少的上下文,同样的效用
百万级技能库只有在 Agent 查询它而不耗尽上下文窗口时才有用,检索研究给出了全文中最具实操价值的发现之一。把检索深度从 k=1 提到 k=10,平均渲染上下文从 2.1K 涨到 17.8K 字符,效用却几乎没有增加:Qwen 涨 1.40 分,DS4-Flash 停在无技能基线或更低。真正的杠杆是渲染方式而非深度:k=3 时摘要渲染把平均技能上下文砍掉 88.9%(6,352 到 707 字符),Qwen 保持完整记录的成绩,DS4-Flash 反而从 28.40 提升到 31.80。用途索引用簇代表替代近重复候选,把完整记录上下文从约 6.4K 压到 5.0K 字符,但下游效果混合——规范代表可能挤掉局部更相关的候选。
对任何在做技能 harness 的人,设计教训很直接:紧凑且相关的流程胜过体量。完整证据档案留给出处与审计,决策时刻只渲染程序性核心。
AI 生成的代码是下一个来源
如果技能来自代码,而 AI 写的代码占比越来越高,这条流水线能否吃自己时代的粮?RQ6 用来源受控的协议回答:从被接受档案中抽 25 个经过测试的实现,各由 Codex 以 GPT-5.1 在 extra-high 推理强度下按接口匹配契约重写,两个版本都必须通过同一组公开与隐藏测试;抽取器看不到来源标签,每个实现各产出一条「如何实现」与一条「如何验证」记录,得到两个各 50 条技能的技能库,在同一 400 题 LiveCodeBench 子集上以完全对齐的检索槽位评测。
人类代码库 93.00%,AI 代码库 93.50%。总分差距可以忽略,但两个库在 16 道题上意见分歧:人类库独有解出 7 题,AI 库独有解出 9 题。经过测试的 AI 生成实现因此携带不同但同等有用的程序性信号——CodeSkillBank 可以随 AI 编写软件的积累继续扩张,而不必冻结在人类编写仓库的边界上。
边界、注意事项与可带走的结论
三条诚实的边界值得强调。其一,验证闸门是 LLM 一致性检查,不是程序等价证明:仓库 README 明确写了这一点,基于重建的检查被定位为可扩展的仓库级过滤器,而非测试验证的替代品。其二,若干结果在设计上就是试点:RL 研究只报单一 checkpoint,默认检索池是为算力效率选的 10% 抽样。其三,增益依赖接口与任务形态:短小自足的问题与部分操作系统控制设定出现持平或为负的对,生成期提示对不同模型的帮助也不一致。
即便带着这些边界,这项工作仍为 Agent 系统提供了一条新的 scaling 轴。在模型参数与推理时算力之外,Code2Skill 把程序性知识本身当作可扩展、可版本化、可审计的资产:在目标 Agent 行动之前离线构建,锚定在随代码演化可被重新检查的实现上,并且可以在真正用得上它的决策点被消费——从规划、审查到 RL 中的奖励侧验证。对今天在做编码 Agent 的团队,可迁移的教训是具体的:把抽象拿回源码验证,而不是相信摘要;记录里保留出处与反目标,而不只是步骤;把技能放在能消费它的决策点;决策时渲染程序性核心,证据档案保持一跳可达。
技能库、流水线与项目页均已公开:DeveloperSkills-Code2Skill 数据集(Hugging Face)、Code2Skill 仓库(目前是面向发表的预发布实现),以及带交互式语义面板、覆盖全量百万记录的 DeveloperSkillHubs 主页。
来源:DeveloperSkillHubs: Developer Skills from Real Code,蚂蚁国际 AI 研究团队项目主页;Grounded Skill Synthesis from Code at Scale for Agentic Intelligence,arXiv:2609.05571,2026 年 9 月 4 日;ant-intl/Code2Skill 仓库 README。图片转载自项目页与论文。
原文来源:Ant International AI Researchhttps://ant-international-research.github.io/developer-skill-hubs/