GCC禁止AI生成关键代码贡献

CSDN·2026年07月30日 19:37
今年将不再接受任何由 AI/大语言模型 Agent 生成的“具有法律重要性”的代码贡献。

AI 编程正在似乎进入了一个令人尴尬的阶段。一方面,Claude Code、Cursor、GitHub Copilot 等工具正在改变开发流程,越来越多程序员开始让 AI 编写函数、修复 Bug,甚至生成完整模块。

但另一方面,开源社区却正在面对一个现实问题:如果一段代码主要由大模型生成,提交者只是复制粘贴,那么这到底算谁的贡献?谁应该为它负责?

近日,GNU 编译器集合(GCC)社区就因为 AI 生成代码问题引发讨论,并最终倾向于采取更加谨慎的态度:今年将不再接受任何由 AI/大语言模型 Agent 生成的“具有法律重要性”的代码贡献。

简单来说,GCC 以后不会接受那些由 AI/大模型生成,且可能影响版权归属、许可证合规或法律责任的核心代码修改。

GCC 的担忧:AI 代码最大的风险不是错误,而是责任消失

GCC 是全球最重要的开源编译器项目之一,支撑着大量 Linux 发行版、嵌入式系统以及基础软件生态。

不久前,GCC AI 政策工作组提交了一份 AI 使用政策建议,随后获得 GCC 指导委员会的认可,并最终对外公布。

他们建立新的 AI 政策文档已通过一份原始 HTML 提交写入项目文档,其中包含了几个关键内容:

“目前,GCC 的政策是:拒绝任何包含 LLM 生成内容,或基于 LLM 生成内容衍生而来的、具有法律重大意义的贡献。”

“GCC 维护者可以自由接受由 LLM 生成的、法律意义不重大的贡献,但前提是这些贡献必须满足所有代码贡献的常规要求,并且必须明确标注其使用了 LLM。”

“作为例外,GCC 维护者可以接受全部或部分由 LLM 生成的、具有法律重大意义的测试用例贡献。”

这一政策基本延续了 GNU 现有对于 AI/LLM 贡献的限制态度。

至于为什么这么规定?

因为传统开源开发依赖一个非常重要的原则:提交代码的人,不只是代码作者,也是责任承担者。

过去,一个开发者提交 GCC Patch,意味着他阅读过代码,理解修改逻辑,并愿意接受 Maintainer 的审查和追问。

但 AI 时代出现了一种新的提交方式:开发者用自然语言让 LLM 生成代码,人类简单检查之后便开始提交 Patch。

问题在于,如果 Maintainer 问:“为什么这里这样设计?”“这个优化是否会影响其他架构?”“这个 Bug 修复是否考虑边界情况?”

提交者如果无法回答,那么整个开源协作体系就会出现断裂。

AI 生成代码的问题,并不只是“代码质量可能不好”,而是代码背后的工程判断可能不存在。

其他开源社区做法:Linux 定规则、Zig 全面禁止 AI 编程

事实上,这并不是 GCC 第一个遇到类似问题的项目。

过去一年,大量开源社区发现,生成式 AI 正在制造一种新的贡献模式:大量低成本 Pull Request。对于大型项目来说,最大的成本不是写代码,而是维护者审核代码。

Linux 内核社区对此感受尤其明显。

近段时间以来,Linux 之父 Linus Torvalds 对 AI 的态度十分明确,他并不反对 AI。相反,他认为 AI 可以帮助发现 Bug,提高开发效率。

但他反感的是:有人利用 AI 大规模生成没有价值的问题报告,或者提交未经验证的代码,增加维护者负担。

正因此,他不止一次地呼吁——「不要做那种“随手丢一个没有理解的报告就走人”的人」。

随后经过内部讨论,Linux 制定了一套明确规则:AI 可以辅助开发,但提交者必须理解代码,并承担最终责任;AI 不能替代 Developer Certificate of Origin(DCO)的签署者。 

Linux 内核甚至要求,如果 AI 工具参与贡献,可以通过 Assisted-by 标签注明 AI 工具和模型信息。 

不过,相比 GCC 和 Linux 的谨慎开放,一些项目选择了更严格路线。例如 Zig 编程语言社区,就曾明确禁止 AI 生成代码贡献。

Zig 维护者认为,大量 AI 生成 Patch 会浪费核心维护者时间,因为审核这些代码的成本往往高于自己重新实现。 

他们担心的是:一个小型开源项目,维护者数量有限,如果每天面对大量 AI 生成提交,最终可能无法继续维护真正重要的功能。

开源需要可信任的代码支撑

AI 的爆发式发展,无疑正在加速软件开发方式的重构。但过去几十年,开源世界能够持续运转,依赖的是一个简单而重要的共识:代码背后必须有一个真实的人。

这个人可能来自企业,也可能是一名独立开发者,但他需要理解自己提交的代码,能够解释设计选择,回应社区 Review,并承担由此带来的责任。

LLM 的出现,正在挑战这一基础假设。

GCC 的选择说明,基础软件领域并不会简单拥抱所谓的“AI 编程革命”。

对于编译器、操作系统、数据库等承载整个数字世界运行的核心基础设施而言,代码数量从来不是最重要的指标。

真正重要的,是代码背后的理解、责任,以及可信任性。

AI 可以成为开发者的新工具,但在开源世界里,最终被接受的,仍然必须是有人愿意为它负责的代码。

本文来自微信公众号“CSDN”,整理:苏宓,36氪经授权发布。

+1
0

好文章,需要你的鼓励

参与评论
评论千万条,友善第一条
后参与讨论
提交评论0/1000

36氪AI测评

选靠谱AI,看真实评测
查看
36氪AI测评官方交流社区
加入

36氪寻求报道

咨询报道审核和入驻
联系
36氪寻求报道订阅号
关注
36氪APP让一部分人先看到未来
36氪
鲸准
氪空间

推送和解读前沿、有料的科技创投资讯

一级市场金融信息和系统服务提供商

聚焦全球优秀创业者,项目融资率接近97%,领跑行业