北大研究:AI 编码代理未挤压开源新人贡献者
北大团队追踪 1888 个 GitHub 仓库,发现采用 AI 编码工具后新人参与未下降,代码复杂度升幅也远低于此前担忧…
北京大学的一项新研究为开源社区中流传已久的一种担忧提供了初步的反驳:AI 编码代理工具(例如 Cursor、Claude Code)并未将新贡献者挤出开源项目。该研究于 7 月 2 日提交至 arxiv.org,追踪了 1888 个已采用 AI 编码代理的 GitHub 仓库,并以从未引入 AI 工具的同类仓库作为对照组进行比较。
研究方法与核心发现
研究者将「AI 采用」定义为项目中首次提交代理配置文件(如 .cursorrules 或 CLAUDE.md)的时刻,并采用计量经济学中常用的双重差分法(difference-in-differences)来剥离工具带来的真实影响与项目本身既有的趋势。
主要结果如下:
- 新人参与度保持稳定,甚至略有上升;在最保守的统计设定下,观测到的最差情况也仅为 1.5% 的下降,且未达到统计显著性。
- 代码的圈复杂度(cyclomatic complexity)在各类语言中上升约 3%–4%;Python 项目中认知复杂度(cognitive complexity)上升约 11%。
- 在复杂度实际上升的那 128 个 Python 项目中,新人进入率并未下降,留存率稳定,活跃贡献者数量仍在增长。
研究者指出,复杂度上升与新人参与「同时存在但并无因果关联」,至少在该研究覆盖的范围内是如此。
与既有研究的对比
该研究的认知复杂度结论与卡内基梅隆大学去年发表的一项研究形成对照。后者发现 Cursor 的采用带来了约 41% 的认知复杂度上升。北大团队基于更大、更成熟的项目集与更严格的统计控制,给出的估计约为此前数字的四分之一。这意味着真实影响可能没有早期研究所暗示的那样剧烈。
局限与未解之处
研究也承认几项重要局限:
- 约三分之二的采用 AI 工具的仓库在创建之初就引入了相关配置,缺乏可比的「引入前」基线,因此被排除在主分析之外。主分析最终聚焦于 603 个在采用 AI 之前已有至少六个月历史的仓库。
- 在完整数据集中,新人参与度确实出现了下滑迹象,但深入分析显示,这些项目在采用 AI 之前就已经在流失贡献者,无法把下滑归因于 AI 工具本身。
- 研究以配置文件作为「采用」的标志,而非实际使用强度,因此无法区分重度依赖与浅尝辄止的项目之间是否存在不同结果。
对开源维护者的更现实挑战
研究虽然驳斥了「AI 把新人挤走」的担忧,但与此同时揭示了另一层压力:GitHub 平台上的合并拉取请求数量已从 2023 年初的约 2500 万/月增长到如今的约 9000 万/月,几乎翻了两番。AI 生成的代码略更复杂,提交者对其改动理解程度可能有限,而这些工作最终都落在了增速远不及 PR 涌入的维护者身上。GitHub 已开始回应这一压力,包括限制外部贡献者同时持有的开放 PR 数量,并推出帮助维护者梳理审核队列的工具。
研究者表示,未来工作应进一步考察项目对 AI 编码工具的实际依赖程度,并找到更好的方法来研究「与 AI 共同诞生」的仓库。但更迫切的问题或许已经转向:当维护开源项目所需付出的心力被 AI 推高时,社区与平台该如何应对。
