写点什么

AI“氛围编程”威胁开源,维护者面临危机

  • 2026-03-04
    北京
  • 本文字数:1526 字

    阅读完需:约 5 分钟

开源维护者正在以惊人的速度关闭对外部贡献者的大门。今年 1 月,Daniel Stenberg关闭了 cURL 为期 6 年的缺陷赏金项目。Mitchell Hashimoto禁止了 Ghostty 中的 AI 生成代码。Steve Ruiz 更进一步——tldraw 现在会自动关闭所有外部拉取请求。这些都不是孤立的事件。它们是对 RedMonk 分析师 Kate Holterhoff 所说的“AI 垃圾”(AI Slopageddon)的回应,即 AI 生成的贡献如此庞大且质量低下,以至于维护者无法跟上。

 

但中欧大学(Central European University)和基尔世界经济研究所(Kiel Institute for the World Economy)最近的一份研究报告显示,表面的危机掩盖了更深层次的结构性威胁。该研究对“氛围编码”(vibe coding)进行了建模,让 AI 智能体在开发者不阅读文档、报告错误或与维护者互动的情况下选择和组装开源包。

 

他们的经济模型显示,当开源项目依赖于用户参与以获得回报、文档访问、缺陷报告和社区认可时,广泛的氛围编程创造了一个负反馈循环。随着开发者将包选择委托给 AI,更少的人会查看文档,更少的人类缺陷被提交,维护者的动力也会减弱。尽管 AI 提高了生产力,但模型预测软件的可用性和质量将会下降。

 

ChatGPT 启动后的六个月内,Stack Overflow的活动减少了25%。Tailwind CSS 的下载量上升,而文档流量下降了 40%,收入下降了 80%。对于 Stenberg 来说,转折点是在支付了 86,000 美元之后:到 2025 年,20%的提交是 AI 生成的,整体有效率下降到 5%。

 

这场危机不仅限于缺陷赏金。Stacklok 的联合创始人 Craig McLuckie描述了优秀的第一期标签是如何吸引工程师们成长为贡献者的。他说:

 

现在我们标记为“好的首次问题”,在不到 24 小时内就会被大量低质量的氛围编程垃圾淹没,这占用了我们做真正工作的时间。

 

Holterhoff 将问题归咎于一个破碎的过滤器。从历史上看,编写代码需要时间和精力,需要筛选出不认真的参与者。AI 消除了这个障碍。

 

作为回应,Hashimoto 在 Ghostty 上采取了零容忍政策,禁止未经批准提交 AI 代码的贡献者:

 

这不是反对 AI 的立场。这是反对白痴的立场。Ghostty 是用大量 AI 辅助编写的,我们的许多维护者每天都在使用 AI。我们只是想要高质量的贡献,无论它们是如何制作的。

 

Ruiz 甚至更进一步。在发现他自己的 AI 脚本创建了写得不好的议题后,贡献者将它们喂给他们的 AI 工具,基于幻觉生成拉取请求后,他关闭了外部贡献:

 

编写代码如果是最容易的那部分,我为什么要让别人来编写呢?

 

平台激励加剧了这个问题。GitHub 在 2025 年 5 月推出了 Copilot 问题生成,而没有给维护者提供过滤 AI 提交的工具。Flux CD 的核心维护者 Stefan Prodan总结了这种不匹配的问题:

 

AI 垃圾正在 DDOS 开源维护者,托管开源项目的平台没有动机去阻止它。相反,他们被激励去夸大 AI 生成的贡献,以向他们的股东展示“价值”。

 

研究人员提出了一个 AI 平台版“Spotify 模型”,在这个模型中,AI 平台根据包的使用情况重新分配订阅收入,但他们的计算显示,氛围编程用户需要贡献目前直接用户收入的 84%,这是一个不切实际的阈值。开源基金会已经发布了侧重于许可而非质量的政策。Linux 基金会处理许可兼容性;Apache推荐使用“Generated-by:”标签。两者都无助于洪水。Gentoo LinuxNetBSD完全禁止 AI 贡献,尽管正如 RedMonk 的 Holterhoff 所指出的,在一两年内,检测违规将在功能上变得不可行。

 

Koren警告说,破坏将是不均衡的:

 

流行的库将继续能找到赞助商。较小的、小众的项目更有可能受到影响。但许多目前成功的项目,如 Linux、git、TeX 或 grep,都是从一个人试图解决自己的问题开始的。如果小型项目的维护者放弃,谁来生产下一个 Linux?

 

目前,像 Stenberg、Hashimoto 和 Ruiz 这样的维护者正在通过一个接一个地关闭项目来回答这个问题。

 

原文链接:

https://www.infoq.com/news/2026/02/ai-floods-close-projects/