吵了几个月,Linus终于拍板,Linux正式为AI代码“立法”:允许用AI,但锅必须人背

背景:AI 垃圾代码的争议

近年来,随着 GitHub Copilot、ChatGPT 等 AI 编程工具的普及,AI 在代码生成方面的应用日益广泛。然而,Linux 内核社区中,一部分开发者开始担忧 AI 所生成的“补丁”质量参差不齐,可能会导致内核代码库中混入低质量甚至错误的内容,这类代码被形象地称为“AI Slop”(AI 垃圾代码)。

社区围绕是否应在提交规范中强制标注 AI 生成代码展开了长时间的争论。一些人主张增加文档要求,甚至建立更严格的审核流程,来识别和控制 AI 生成内容的流入。这种担忧的核心在于,AI 编写的代码往往缺乏深度理解,可能导致长期维护上的隐患。

Linus 的立场:AI 是工具,不是责任人

面对争议,Linux 之父 Linus Torvalds 最终公开表态。他在 Linux 内核邮件列表中明确指出,制定关于“AI 垃圾代码”的文档毫无意义。他认为,AI 只是另一种开发工具,就像编译器或代码编辑器一样,不应该在内核文档中被特别对待。

Linus 强调,提交 AI 生成代码的人不会主动标注“这是 AI 写的”,因此任何强制标注的规范都无法真正起作用。他指出,真正的问题在于代码的质量和提交者的责任感,而不是是否由 AI 编写。他认为,内核开发流程中的代码审查机制才是保障代码质量的关键,而非依赖文档的自我约束。

他对“写文档能解决问题”的观点尤为反感:

  • 文档只能约束“守规矩”的人,对投机者无能为力;
  • 加文档只是“表个态”,对实际维护工作没有帮助;
  • 内核不能陷入“规则游戏”,而应坚持“实际审查”。

新规定出炉:AI 生成代码可接受,但“锅”必须人背

虽然 Linus 不支持为 AI 生成代码制定专门的提交规范,但社区最终达成了一项共识性原则:

AI 生成代码可以被接受,但必须有明确的开发者对其内容负责。

也就是说,即便代码由 AI 完成,提交者仍需对代码质量、逻辑和安全性全面负责。提交记录中必须体现开发者的审查和理解,而不是将 AI 作为“替罪羊”或“免责牌”。

这项原则并未写入正式文档,但在邮件列表和提交流程中被广泛传播和强调。它既是对 AI 工具的开放态度,也是对开发者责任的严格要求。

影响:社区治理进入“AI 责任时代”

Linus 的表态虽然看似拒绝“AI 管控”,但实质上推动了一个更为关键的议题——在 AI 普及的背景下,如何强化开发者责任和社区治理机制

社区面临的新挑战包括:

  • 代码来源的透明度问题:AI 生成代码难以追溯,可能引入未知依赖或逻辑漏洞;
  • 维护者的负担加重:面对更多由 AI 辅助提交的代码,维护者需要更敏锐地识别潜在问题;
  • 开发文化的适应性变化:年轻开发者更倾向于使用 AI 工具,社区需要找到与之共处的方式。

Linus 坚持认为,这些挑战不能靠文档解决,而应依靠更强的审查机制、更成熟的社区文化,以及对 AI 工具的合理使用。他本人虽不常用 AI,但也在自己的开源项目 AudioNoise 中尝试了 AI 编码,作为学习工具,而非生产工具。

未来展望:AI 审代码或将成主流

尽管 Linus 不看好 AI 写代码在 Linux 内核中的应用,但他对 AI 在代码审查方面的潜力表示乐观。他提到,已有项目尝试使用 AI 在提交前进行代码质量评估,提前识别常见错误,从而减轻人工审查的负担。

Linus 希望 AI 能在未来成为内核工作流中的一部分,不是替代开发者,而是协助他们。他比喻说,就像当年的编译器和静态分析工具,AI 最终应被“去炒作化”,成为开发者手中的日常工具。


这场关于“AI 垃圾代码”的争论,不仅关乎 Linux 内核的开发规范,更揭示了开源社区面对 AI 革命时的集体焦虑。Linus 的“工具观”与“责任观”,或许将成为未来开源项目处理 AI 生成内容的重要参考。