乐于分享
好东西不私藏

【AI编码工具的配置机制】4.GitHub开源仓库中配置机制的采用情况

【AI编码工具的配置机制】4.GitHub开源仓库中配置机制的采用情况

数据收集方法

本研究采用系统化的方法收集GitHub开源仓库的数据,以分析配置机制的采用情况。数据收集过程包括多个步骤,确保样本的代表性和可靠性。首先,从GitHub平台选择属于”工程化”软件项目的仓库。采用和更新了先前工作中使用的选择方法,从SEART GitHub搜索工具开始。选择非fork仓库,这些仓库至少有两个贡献者,有许可证,在2024年1月1日之前创建,且自2025年6月1日以来有提交。然后排除已归档、禁用或锁定的仓库。

应用了基于流行度的许可证过滤器和语言过滤器,选择了Python、TypeScript、JavaScript、Go、Java、C++、Rust、PHP、C#和C语言。还基于先前研究应用了基于提交和观察者数量的过滤器。这最终产生了37,249个仓库的样本。

仓库分类与筛选

由于GitHub托管各种内容,需要将仓库分类为”工程化”软件项目。使用GPT-5.2模型基于README文件的内容确定软件项目是否满足”工程化”项目的定义。这个定义基于Munaiah等人的论文。一个工程化项目应该显示软件工程实践的明确证据,例如包括软件解决的明确目的、提供安装和部署说明、开发者和用户文档、测试、CI/CD或质量保证相关信息。还应该有维护的证据。

分类管道将32,564个仓库标记为工程化软件项目,对2,204个仓库”不确定”,排除了1,416个仓库。对于每个标签类别,在提示的迭代开发和最终样本期间都进行了随机选择样本的抽查。

配置机制的检测

对剩余的32,564个仓库进行克隆,并应用基于文件名和文件路径的启发式方法来检测AI编码工具和配置机制的使用。这些启发式方法基于RQ1的答案,简要讨论了配置机制的具体实现。这导致2,926个仓库使用一种或多种AI编码工具。

仓库特征分析

对2,926个仓库的特征进行分析,以更好地理解配置机制的采用背景。大多数仓库采用单一工具。在具有多个工具的仓库中,Claude最频繁地与其他工具一起出现。最常见的组合是Claude和Copilot(n=128)。三个或更多工具的重叠很少见。

在初始样本中,每个仓库的前五种主要编程语言(n=36,194)是Python(8,133;22.5%)、TypeScript(4,999;13.8%)、Java(3,813;10.5%)、Go(3,786;10.5%)和JavaScript(3,709;10.3%)。有趣的是,对于使用代理AI编码工具的仓库(n=2,926),这个顺序略有不同,其中TypeScript和Go更加突出,C#取代了JavaScript:TypeScript(922,31.5%)、Python(548,18.7%)、Go(533,18.2%)、C#(256,8.8%)、Java(246,8.4%)。

TypeScript是使用Claude、Codex、Copilot和Cursor的仓库中最常见的主要语言。Java和C#中的使用率对于所有工具都较低,但Copilot除外。

工具特定的仓库特征

不同工具关联的仓库在特征上存在显著差异。使用Cursor的仓库与其他工具使用的仓库相比更年轻。与使用其他工具的仓库相比,与Gemini关联的仓库表现出更大的贡献者数量和提交量。Cursor仓库在源代码千字节数方面是最大的。

这些差异可能反映了不同工具的目标用户群体和市场定位。例如,Cursor可能更吸引新兴项目,而Gemini可能更受大型、活跃项目的欢迎。

配置机制的分布情况

在所有仓库中,Context Files(包含CLAUDE.md或AGENTS.md等文件)是最频繁采用的配置机制。相比之下,其他配置机制,包括Rules、Settings、Commands、Skills和Subagents,在仓库中的采用率要低得多。这些机制中的每一种都出现在不到20%的仓库中。

Rules主要集中在使用Cursor的仓库中,因为Cursor是最早引入Rules的工具之一。大多数仓库采用可用配置机制的有限子集。在许多情况下,仓库只包含单个Context Files工件。在同一仓库中采用多个非上下文文件配置机制仍然相对罕见。这些结果表明,当前配置使用的特征是一个主导的基线配置(即Context Files)。

配置机制的共现模式

几种配置机制经常一起被采用。其中一些相关性可以通过共享的配置工件来解释。例如,Settings和Hooks具有很强的正相关性(ρ=0.52),因为hooks通常在Settings文件中定义。然而,Settings和Hooks也都与Skills共现(ρ=0.23和ρ=0.24),而Skills的定义和配置方式不同。

Subagents也与多种机制显示出正相关性,包括Settings、Skills和MCP。其他配置机制在组合中出现的频率较低。Context Files与Rules(ρ=-0.36)和Commands(ρ=-0.14)呈负相关,这可以再次归因于它们的定义方式以及哪些工具首先引入了这些机制。

总体而言,仓库间配置机制的采用特征是机制的重复组合而不是统一使用。共现模式可能会受到工具及其支持的配置机制的影响(例如,主导工具Claude不支持Rules)。

配置机制的时间演化

配置机制的采用随时间呈现出明显的演化趋势。Context Files(CLAUDE.md、AGENTS.md、copilot-instructions.md)明显占主导地位并持续增长,而Skills和Subagents经历了相对缓慢的增长。

数据显示,.cursorrules和copilot-instructions.md在2024年开始被引入。虽然Cursor和Copilot最初分别于2023年和2021年发布,但代理功能直到2025年才引入。自那时起,copilot-instructions.md的采用有所增加。

这种时间分布反映了代理AI编码工具的发展历程,以及开发者对新配置机制的接受过程。

研究发现的启示

这些研究发现为理解代理AI编码工具的实际使用情况提供了重要见解。首先,Context Files的主导地位表明,开发者倾向于使用最简单、最直接的配置方式。其次,高级配置机制的采用率较低,可能反映了这些机制的复杂性和学习成本。最后,不同工具之间的配置文化差异,提示了标准化配置机制的必要性。

总结:通过对2,926个GitHub仓库的分析,本研究揭示了配置机制在开源项目中的采用情况。Context Files占据主导地位,而高级机制的采用率较低。不同工具的配置文化存在差异,反映了代理AI编码工具生态系统的多样性和发展中的特点。

本文参考论文《Configuring Agentic AI Coding Tools:An Exploratory Study》