大规模「氛围编程」正在重塑软件供应链中包的创建、贡献和选择方式
我花了大量时间分析数据揭示了关于开源的种种真相,从开源替代方案涌现的速度到维护者的补偿与更广泛软件行业的对比。我关注的是数据所呈现的事实,而非基于轶事的预测。
在 Socket,我有幸访问涵盖 npm、PyPI、Go 和 Rust 等所有主要生态系统的海量数据库。我们本质上是对所有开源包进行镜像复制,包括非常边缘的案例。几分钟内,一个恶意包就会被复制、分析并报告给我们的客户。
这种对整个软件供应链无与伦比的实时洞察力,在我们行业快步迈入 AI 时代时,揭示了独特且往往令人惊讶的见解。Socket 早在「氛围编程」(vibe coding)这个术语出现之前就已创立,我们一直身处前排,观察它如何影响着开源社区。
我发现了三个有趣的见解想与大家分享,都与 AI 编程趋势相关:npm 上的包数量呈指数增长,pull request 和贡献越来越多地被维护者持负面看待,以及依赖选购正在呈下降趋势。AI 正在驱动开源的生产和消费,同时也在从根本上改变维护者与贡献者之间的动态关系。
不断增长的包浪潮
去年,我深入研究了 Socket 的包数据库,提出了一个理论:npm 可能已经达到了峰值。2013 年至 2016 年间那种爆炸式增长似乎已经趋于平稳。我记得十年前,开发者社区用「JavaScript 疲劳」一词来形容当时新工具和新工作方式不断涌现的常态。从那以后,生态系统已经转向更可预测的节奏,社区内那些熟悉的挫折感也基本平息了。
一切都因 2026 年 1 月而改变。AI 编程工具在生成可用代码方面变得如此高效,以至于它们成为许多开发者创建副项目、开源包、自动化工具和企业源代码的工作流程驱动力。
这种现象在 npm 等开源生态系统中清晰可见。我根据 Socket 的数据库编制了以下图表,将所有包按创建日期分布到时间轴上,并测量每个创建月份存在的包数量。为了排除虚假包、废弃包和其他滥用注册表的情况,我添加了一个筛选条件:包至少有 100 次周下载量。因此这里统计的是真实可复用的包。
时间序列图,显示 2013 年至 2026 年 NPM 包按创建日期的数量。图表显示 2013 年至 2016 年呈指数增长,总计约 1000 个包,然后线性增长直至 2025 年中期达到 3000 个包,之后在 2026 年突然呈爆炸式指数增长,突破 10000 个包。
一种前所未有的模式正在上演。虽然最近的激增可能包含了为虚假人气而刷单的包,但我们 15 年来在 npm 上从未见过这种突然的增长。随之而来的问题是:它们从何而来?怎么会有这么多?即使在那些高产开发者以人类极限速度发布包的那些时期,我们也没有达到每月 10,000 个真实可复用包的门槛。看来某种超人类的事情正在发生。
时间序列图,显示过去 12 个月发布的 NPM 包数量。每个月份显示两个数字:包总数以及其中 README 包含破折号的包的比例。从 2025 年 6 月到 2026 年 1 月,每月约有 40,000 个 NPM 包,其中 5% 包含破折号。之后直至 2026 年 5 月,线性增长至每月 100,000 个 NPM 包,其中 30% 在 README 中包含破折号。
这激发了我的好奇心,我开始思考如何区分这些包中哪些是「AI 写的」。试图区分人类和机器的输出是一个挑战,堪比现代图灵测试。也就是说,幸运的是,当前的 AI 编程工具对破折号有着异常的偏好。所以目前,它们很容易暴露自己。我统计了最近发布的包数量,以及其中 README 文件包含破折号的比例,生成了以下图表。(请注意,这是 2026 年 5 月中旬生成的,因此 5 月的包计数仍不完整)
约有 5% 的破折号「背景辐射」来自人类是正常的预期,因此最近破折号使用率的急剧上升(30%+)表明 AI 确实被用于创建新的 npm 包。每月包的数量正在翻倍以上增长。
维护疲劳:PR 不受欢迎
AI 编程工具不仅用于创建新包,还用于向现有开源项目提交 pull request。鉴于 AI 辅助在大多数 IDE 中已趋于常态化,这并不令人惊讶。新出现的是大量低质量且通常是自动化的 pull request,它们绕过人类互动,用噪音轰炸维护者。
curl、Godot、Ghostty、tldraw 等项目的维护者现在公开地将贡献描述为负面行为。一些人正在采取完全禁用 pull request 的方式,另一些人则在考虑贡献者白名单是否是一种解决方案。
在开源社区中,使用「good first issue」标签来鼓励和引导新程序员曾经是标准做法。然而,这个标签越来越适得其反,往往吸引的是根据用户指令执行的 AI 自动化。结果是,贡献现在常常被用来提升在线影响力和人气,侵蚀了历史上定义开源精神的团结文化。
AI 正在重塑维护者的工作,就像它正在重塑贡献者的工作一样。维护者现在使用这些工具来帮助审查 pull request,或者根据维护者更高质量的提示从头重写贡献内容。
软件供应链成为黑盒
我们构建了 Socket 的包搜索功能——对所有人免费——来支持「依赖选购」。这是搜索合适依赖项、过滤虚假和不流行的包、并评估许多其他标准的过程。让我们看看 AI 最近如何影响了这个领域。
我们可以探测什么简单的「健康指标」用于依赖选购?在现代软件开发中,用于日期选择等常规任务的 UI 组件是基本需求。然而,当我查看过去 4 年「日期选择器」的 Google 搜索趋势时,发现了一个令人惊讶的持续下降:
来自 Google 搜索趋势的时间序列图,显示 2022 年至 2026 年「React date picker」等关键词的兴趣随时间变化。数值从 2020 年到 2024 年基本保持不变,之后呈线性下降,到 2026 年下降约 80%。
根据上图,人们可能会倾向于得出结论:React 日期选择器在最近生产的软件中正在被淘汰。相反,该特定包的下载量统计数据揭示了一个矛盾的说法:react-datepicker 的使用量稳步增长,甚至在 2026 年加速增长!
来自 npmtrends.com 的时间序列图,显示关键词「React date picker」从 2021 年到 2025 年中期呈线性增长,之后在 2026 年开始呈指数增长。
开源曾经是被有意识、有意图地消费的,其信息来源于包的流行度或人工审查。这种情况已不再真实。开发者越来越依赖 AI 编程工具来构建完整的功能或产品,并在过程中包含它认为必要的包。包本身曾经包含由维护者精心挑选的传递依赖。这也不再是真实的。
结果是,AI 现在主要控制着软件供应链。虽然还有其他领域被 AI 颠覆,比如图像生成或音乐制作,但软件受到的影响是独一无二的。AI 现在正在驱动开源软件的生产和消费。AI 生成的音乐最终进入人类的耳朵,AI 生成的图像大多有益于人类,但 AI 生成的软件是一个衔尾蛇(蛇吞自己的尾巴),才刚刚开始。
AI 编写的软件通常很好,它选择的开源包的消费也大多优于人类会选择。但事实仍然是,软件供应链现在是一个自动化的黑盒,从根本上改变了安全和透明的格局。
手动审查每一个新的依赖选择是不可行的,而 AI 加速的生产力节奏降低了暂停检查包及其源代码的经济效益。在这个充斥着恶意软件活动的新世界中保持安全的唯一可行解决方案,是自动化扫描第三方代码,基于该代码的行为来呈现风险指标。
开发者正在更快地前进,工具正在为它们做出更多决策,而供应链变得太大太自动化,以至于手动审查无法继续作为主要防御手段。
这并不意味着开源正在消失。与更广泛的社区分享有用的东西是人类的天性。但在一个 AI 正在帮助生产、选择和安装开源包的世界中,第三方代码的自动化分析成为生产软件的基线要求。