GitHub 已有 380 万个 Agent 技能文件,一半是逐字节复制品

GitSkills: A Dataset of Agent Skills on GitHub

Giuseppe Destefanis, Daniel Graziotin, Matteo Vaccargiu, Marco Ortu

cs.SE, cs.AI

2026-08-11

扫描 28 万个公开仓库收得 380 万个 SKILL.md,内容哈希去重后 50.5% 是逐字节复制品,首个技能文件种群数据集。

这篇在解决什么

Anthropic 在 2025 年 10 月把 Agent Skills 开放成规范:一个文件夹,里面放 SKILL.md,YAML front matter 写名字和描述,正文用 Markdown 写指令,可附带脚本和参考文件;模型在运行时判断任务与描述是否匹配,匹配才加载。九个月后,这类文件在 GitHub 公开仓库里已数以百万计。它和软件工程社区惯常挖掘的工件都不一样:主体是自然语言,靠模型概率性选择,没有编译器和类型检查兜底,没有中央注册表和包管理器,传播方式是整个文件夹复制。怎么写、怎么复用、怎么维护,成了没有数据支撑的经验问题。

方法

只读管线驱动 GitHub code search 和 REST/GraphQL API。code search 每查询最多返回 1,000 条,官方总数估计还不可靠:按文件名查询报约 34.9 万,实际收回超过 380 万。解法是按文件大小切分搜索空间,直到每个区间都能完整取回。文件按内容哈希分组,每组选一个代表(优先 .claude/skills/ 标准位置)做富化:全文、解析后的 front matter、同目录文件、仓库元数据,标准位置之外按大小分层抽样补提交历史;所有副本带着仓库和路径保留。最终打包成单个自包含的 SQLite 文件,提交作者账号换成带密钥的单向编码,邮箱抹除,AI 协作者署名保留。

结果

维度数量
SKILL.md 文件总数3,797,117
涉及仓库 / 账号282,200 / 195,841
去重后不同内容1,877,981
逐字节相同的副本占比50.5%
记录在案的同目录文件7,264,865
有提交历史的技能458,548

一半文件是复制品,这个数字直接刻画了无注册表生态的传播形态。

为什么重要

这是首个覆盖技能文件种群的数据集,采集窗口又落在格式扩散早期,能追踪一种新软件工件怎么蔓延、惯例怎么沉淀。论文列出的研究问题里安全那条最重:技能可以指示 Agent 执行命令、访问外部资源、运行捆绑脚本,而副本在仓库间移动时没有正式审查;被改动的副本若引入原版没有的命令执行或网络访问,就是无注册表生态里的供应链攻击。语言演化同样值得跟踪,月度队列若向模板化收敛,既是新文体形成的信号,也可能是机器作者占比上升的痕迹。

局限与存疑

只覆盖公开仓库,GitHub code search 又只索引默认分支、384KB 以下文件、近期活跃且少于 50 万文件的仓库,fork 仅在星数超过父仓库时收录,整个数据集只能当下界读。按文件名检索会带进近似名(如 coding-skill.md)和早于格式出现的同名小写文件,作者保留了它们,标注位置类别和 front matter 有效性,把更严的筛选留给分析者;代表文件不假定是原始出处,提交历史只覆盖一部分技能。这毕竟是数据集论文,列出的问题一个都还没回答,价值取决于后续研究是否真来做。

术语

原文与代码

社区讨论

相关论文

全部论文解读