摘要:AI 编程降低了提交代码的成本,却把理解、测试和审查成本转嫁给维护者,开源协作需要新的责任边界。
AI 编程工具正在改变软件开发的生产率,但它也制造了一个新问题:开源项目开始被低质量、未验证、AI 生成的 Pull Request 淹没。
这类 PR 的危险不在于“AI 写代码”本身,而在于它把提交成本降到了接近零,却没有同步降低维护者的审查成本。对贡献者来说,让 AI 生成一个补丁、写一段解释、提交一个 PR,可能只需要几分钟;对维护者来说,判断它是否正确、是否破坏边界、是否符合项目风格、是否经过测试,仍然需要真实时间。
这就是低成本代码时代的维护者危机。
一、开源的瓶颈从写代码变成审代码
过去开源协作的默认假设是:提交 PR 有一定成本。贡献者要读代码、理解问题、写补丁、跑测试、解释变更。这个成本本身会过滤掉一部分随手提交。
AI 改变了这个过滤机制。现在一个人可以用 AI 快速生成多个项目的“看起来合理”的修复。PR 标题很礼貌,描述很完整,代码也像那么回事,但实际可能没有跑过测试、没有理解上下文,甚至修的是一个并不存在的问题。
维护者面对的不是一段明显胡写的代码,而是一段“可疑但需要认真看”的代码。这最消耗精力。
二、AI 生成 PR 为什么特别难处理
AI 生成 PR 常见的问题包括:
- 只修表面错误,不理解项目设计。
- 引入新的依赖或抽象,增加维护成本。
- 通过局部测试,但破坏未覆盖场景。
- 生成看似专业的解释,掩盖真实风险。
- 对 review 意见机械修改,越改越复杂。
- 贡献者无法回答设计问题,因为代码不是他真正理解后写的。
这类 PR 最大的问题是“信号密度低”。维护者不是不能审,而是审完以后发现大部分没有价值。久而久之,项目会对外部贡献产生防御性,真正有价值的新贡献者也会被更高门槛挡在外面。
三、Vibe Coding 的外部性
对个人开发者来说,Vibe Coding 是一种生产力提升;对开源维护者来说,它可能变成外部性。
一个人让 AI 生成 PR,收益归自己:获得贡献记录、学习体验、甚至简历素材。成本却转嫁给维护者:审查、解释、关闭、安抚、维护社区氛围。
这和垃圾邮件很像。发送成本极低,筛选成本极高。只要足够多人这样做,整个系统就会被低质量内容占满。
所以问题不是“禁止 AI 写代码”,而是开源协作需要新的责任边界:如果你提交 AI 生成的代码,你仍然必须对它负责。你要能解释它、测试它、维护它,而不是把 AI 输出扔给项目方。
四、平台需要给维护者更多工具
GitHub 等平台已经开始讨论和推出更多维护者工具,比如限制外部贡献者并发 PR、增强 moderation、提供更细粒度权限和过滤机制。这些方向是必要的。
未来开源平台可能需要几类机制:
- 对新贡献者设置 PR 速率限制。
- 要求 PR 必须通过项目定义的自动检查。
- 对疑似 AI 生成但未验证的 PR 做标签提示。
- 给维护者提供批量关闭、批量解释和贡献者教育工具。
- 对反复提交低质量 PR 的账号进行限制。
- 鼓励贡献者在 PR 模板中说明测试方式和理解依据。
这些措施不是反 AI,而是保护协作秩序。没有秩序,开源维护者会被拖垮。
五、企业团队也会遇到同样问题
这个问题不只发生在开源。企业内部也会出现“AI 生成代码把 review 队列塞满”的情况。
当每个工程师都能快速生成大量代码,团队瓶颈会转向 code review、测试、架构一致性和线上风险控制。过去一个开发者一天写 200 行代码,review 还能跟上;现在一个人借助 AI 一天改 20 个文件,review 成本就可能超过开发成本。
因此,企业用 AI 编程时也应该建立规则:
- AI 生成代码必须由提交者负责解释。
- 大 PR 要拆小,不能把 AI 生成的一坨 diff 扔给 reviewer。
- 自动测试必须先跑过,不能让 reviewer 充当编译器。
- 需要明确哪些模块禁止随意 AI 改动。
- 需要定期做复杂度清理,不让 AI 堆抽象。
Vibe Coding 不是免 review,而是更需要 review。
六、开源贡献的新伦理
AI 时代的开源贡献伦理,可能要重写成一句话:你可以用 AI 帮你写代码,但不能用 AI 逃避理解代码。
好的 AI 辅助贡献,应该是这样的:
- 贡献者先读 issue 和项目文档。
- 用 AI 辅助定位和生成候选补丁。
- 自己理解补丁逻辑。
- 跑测试并补充测试。
- 在 PR 中说明为什么这样改。
- 对 review 反馈能做真实判断,而不是机械追问模型。
坏的 AI 贡献则相反:批量提交、没有测试、无法解释、把维护者当免费 debugger。
结语
AI 编程降低了代码生产成本,但没有自动降低软件质量成本。开源生态接下来要解决的问题,不是“AI 能不能写代码”,而是“当每个人都能生成代码时,谁来承担理解、验证和维护责任”。
真正成熟的 AI 编程,不应该把维护者变成垃圾过滤器。它应该帮助贡献者更好地理解项目、更快地跑测试、更清楚地解释变更。
如果做不到这一点,AI 生成 PR 就会成为开源时代的新垃圾邮件。
参考资料:
- The New Stack: AI-generated code crisis
- ITK Discourse: AI generated pull requests overwhelming, hard to review carefully
- GitHub Community: Exploring Solutions to Tackle Low-Quality Contributions on GitHub