Linux 正式为 AI 代码立法:开源治理的里程碑时刻

📅 2026-04-15 👤 傲冠软件 ⏱️ 约 12 分钟
Linux AI 开源治理 DCO Linus Torvalds

如果说过去两年,开源社区对 AI 的态度还停留在"争论要不要用";那么现在,这个问题已经被现实彻底改写成了——如何在不可避免使用 AI 的前提下,把风险降到最低?

就在最近,围绕 AI 生成代码的长期争议,终于在 Linux 内核社区落下帷幕:Linus Torvalds 以及 Linux 内核维护者们,正式制定了一套项目级别的 AI 代码使用规范,并将其写入内核官方文档树——Documentation/process/coding-assistants.rst

简单来说就是一句话:AI 可以用,但你必须对它的一切负责。

一、为什么是现在?三个事件改变了历史走向

过去几个月,Linux 内核社区其实一直处在一种微妙的拉扯中:一方面是越来越普遍的 AI 编程工具,另一方面则是维护者对代码质量、法律风险以及社区文化的深层焦虑。这场争论的最终解决,离不开三个标志性事件的推动。

1. Sasha Levin 事件:一枚硬币的两面

2025 年初,NVIDIA 工程师、知名 Linux 内核开发者 Sasha Levin 向 Linux 6.15 提交了一个完全由大模型生成的补丁——包括变更日志和测试代码。Levin 本人审查并测试了代码,但未向审阅者披露该代码由 AI 编写。

关键事实

事后证明,这段代码引入了性能回退问题,并在评审阶段误导了其他维护者。连 Linus Torvalds 也承认:因为没有标注 AI,这段代码没有被充分审查。

这一事件成为整个社区讨论的转折点。Levin 本人在 2025 年北美开源峰会上开始倡导正式的 AI 透明度规则,并在同年 7 月提出了内核 AI 政策的首版草案。他最初建议使用 Co-developed-by 标签,但经过激烈讨论,最终改为了更精确的 Assisted-by

2. cURL 的崩溃:AI 垃圾报告泛滥成灾

如果说 Linux 内核的争议还停留在"开发者之间";那么 cURL 项目面临的困境,则让整个开源社区看清了 AI 失控的真正代价。

cURL 漏洞赏金计划终止(2026 年 1 月)

• 2025 年 5 月起,AI 生成的漏洞报告数量激增

• 大量报告包含虚假 CVE(如伪造 CVE-2020-19909)

• 代码片段函数签名不匹配实际 API,无法编译

• 维护者 Daniel Stenberg 公开警告:"若在垃圾报告上浪费我们的时间,我们将封禁你并公开嘲讽"

2026 年 1 月底,cURL 正式终止漏洞赏金计划。Stenberg 表示:"我们只是一个拥有少数活跃维护者的小型开源项目……我们需要采取行动确保我们的生存和心理健康。"

3. GZDoom 社区分裂:透明性一旦被打破,分裂不可避免

同样的冲突并不只发生在服务器端。2025 年 10 月,经典游戏 Doom 的开源引擎 GZDoom 社区爆发严重分裂。

GZDoom → UZDoom Fork(2025 年 10 月)

• 项目创始人 Christoph Oelckers 使用未披露的 ChatGPT 生成代码

• 代码注释明确标注:"This is what ChatGPT told me for detecting dark mode on Linux"

• 被指出代码质量极低(通过名称是否含 "dark" 判断,被评价为"impressively wrong")

• 当社区质疑时,Oelckers 直接回应:"不满意就分叉(feel free to fork the project)"

社区真的这么做了。UZDoom 由实际承担多年开发工作的核心团队主导,实行强制同行评审,废除"一人决策"模式。大量核心开发者迁移,原项目元气大伤。

二、Linux 内核 AI 政策:三条硬规则

在充分吸收了这些教训之后,Linux 内核社区终于在 2026 年 4 月正式发布了官方 AI 政策文档——coding-assistants.rst

01
AI 禁止添加 Signed-off-by
只有人类才能合法认证 DCO(开发者原创性声明)。即使补丁完全由 AI 编写,提交者本人对贡献负全部法律责任。
02
强制使用 Assisted-by 标签
任何使用 AI 工具的提交必须包含 Assisted-by 标签,标明模型、代理和辅助工具。例如:Assisted-by: Claude:claude-3-opus coccinelle sparse
03
完全人类责任
提交者承担审查 AI 生成代码、确保许可证合规、以及修复任何漏洞或安全缺陷的全部责任和问责。

Assisted-by 标签规范详解

这是整个政策最核心的技术细节。与传统 Signed-off-by 不同,Assisted-by 专门用于标注 AI 参与的工具链信息。

# 格式规范 Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2] # 示例 Assisted-by: Claude:claude-3-opus coccinelle sparse Assisted-by: GitHub Copilot:gpt-4 Assisted-by: Cursor:cursor-0.3.5 clang-tidy # 不应列出的基础工具 # git, gcc, make, 编辑器等基础开发工具无需标注

为什么最终选用了 "Assisted-by"?

曾考虑的方案 最终选择
Generated-by — 过于强调 AI 生成,暗示代码可疑 Assisted-by — 准确反映 AI 作为工具而非共同作者的角色
Co-developed-by — 暗示 AI 是共同作者,引发法律歧义
AI-assisted — 非标准化,与现有元数据格式不统一

三、Linus 的态度:务实主义者的终局

在整个讨论过程中,Linus Torvalds 的立场始终鲜明而务实。

"讨论 AI 垃圾代码这件事,其实毫无意义,这完全就是在犯蠢。在我看来,AI 本质上和编辑器、编译器一样,只是工具。真正需要监管的是'人',而不是他们用什么工具。"

— Linus Torvalds,Linux 内核创始人

他对政策文档本身也有明确的期望:

"我不希望任何内核开发文档成为某种 AI 声明。我们有足够多的人站在'天要塌了'和'它将彻底改变软件工程'两边。我不希望内核开发文档采取任何一边的立场。这就是为什么我强烈希望这只是'只是一个工具'的声明。"

— Linus Torvalds,LKML 对话

四、政策背后的深层法律问题:DCO 的生死劫

如果只看到表面,很容易把这场争论理解为"老派工程师 vs 现代新工具"的代际冲突。但实际上,这场争议的真正内核是法律问题

开源世界长期依赖一个关键机制:DCO(Developer Certificate of Origin,开发者原创性声明)。开发者在提交代码时,需要声明:"据我所知,这段代码受适当的开源许可证保护,我有权在该许可证下提交这段作品,无论是全部还是部分由我创建。"

核心矛盾

像 GitHub Copilot、Claude 这样的 AI,是基于海量开源代码训练的,其中包括 GPL 等强限制许可证,以及各种版权不明的数据。这意味着:开发者其实无法完全证明 AI 生成代码的"来源合法性"。

Red Hat 此前曾明确警告:使用 AI 生成代码,可能会在无意中导致开源许可证违规,甚至可能从根本上冲击 DCO 体系。

Linux 内核政策选择绕过这个难题,把问题重新拉回到最传统的工程原则上:谁提交,谁负责。无论代码是你写的,还是 AI 帮你生成的,只要是你提交的——出了 Bug、性能问题,甚至安全漏洞——责任都在你。

五、为什么开源社区对 AI 如此焦虑?

除了法律风险,还有一个更现实的问题:AI 代码太多了,而且质量参差不齐。开源社区甚至给它起了个名字——AI Slop(AI 垃圾代码)。

这些代码往往看起来结构完整、语法正确,但在逻辑上充满漏洞,甚至夹杂大量"幻觉"。

Linus Torvalds 指出的真正难题是:

问题类型 特征 可处理性
明显的 AI 垃圾代码 语法错误、逻辑混乱、风格不一致 容易识别和拒绝
看似可信的补丁 满足规范、符合风格、干净编译 编码了微妙漏洞或长期维护负担

社区的执行哲学是:"被抓到的后果足够严重"。他们不依赖 AI 检测软件,而是依靠深厚的技术专业知识、模式识别和传统的代码审查。Torvalds 以 2021 年明尼苏达大学学生事件为例警告:试图向内核偷偷塞入劣质代码的人,将永远失去成为任何受人尊敬的开源项目程序员的机会。

六、整个开源圈都在震荡

Linux 内核的政策并非孤例。从 cURL 到 GZDoom,从 Node.js 到 OCaml,开源社区正在集体面对 AI 带来的系统性冲击。

对比来看,Linux 内核社区给出的最终答案,非常"工程师思维":

政策精髓

代码好不好,比是不是 AI 写的更重要。

你可以用 AI 生成代码,但如果代码有问题、如果它是"AI 垃圾"、如果它把内核搞崩了——点下"提交"的那个人,要亲自向 Linus 负责。

在 Linux 的开源世界里,这大概已经是最强的约束机制了。

七、给国内开源社区的启示

对于国内正在快速成长的开源社区和 DevOps 团队而言,Linux 内核的 AI 政策提供了几个关键参考:

维度 Linux 内核的做法 建议借鉴
透明度 强制 Assisted-by 标签 在项目规范中明确 AI 使用披露要求
责任归属 谁提交谁负责,与工具无关 将 AI 生成代码纳入提交者绩效考核
许可证合规 所有代码必须与 GPL-2.0-only 兼容 评估 AI 训练数据的许可证风险
质量门控 遵循标准开发流程和代码风格 加强 AI 生成代码的 Code Review 环节

AI 编程工具的普及已不可逆转。开源社区的选择不是"禁止"或"放任",而是在承认现实的前提下,建立清晰的责任框架。这或许是 Linux 内核 AI 政策最深刻的意义。