Hotdry.

Article

Zig 项目的反 AI 贡献政策:维护者视角下的「贡献者扑克」逻辑

解析 Zig 语言项目为何明确禁止 LLM 生成代码贡献,探讨其「贡献者扑克」理念及对开源社区治理的深层启示。

2026-04-30systems

2026 年 4 月,Zig 编程语言项目在其官方行为准则中明确引入了一项极为严格的政策:禁止在任何问题(issue)、拉取请求(pull request)或错误追踪器评论中使用大型语言模型(LLM)生成的内容,包括翻译。这项被社区称为「反 AI 贡献政策」的规则,在开源生态中引发了广泛讨论。不同于其他项目对 AI 辅助工具的模糊态度,Zig 选择了一条更为激进的路径,而这背后折射出的是对开源贡献本质的深刻思考。

政策的具体边界

Zig 项目的这项政策被明确写入其行为准则页面,适用于 Codeberg 上的 ziglang 组织、IRC 频道以及 Zulip 开发聊天室。政策的核心条款极为简洁:禁止使用 LLM 生成问题报告、禁止使用 LLM 生成拉取请求、禁止使用 LLM 生成错误追踪器上的评论,包括翻译内容。值得注意的是,Zig 明确指出英语虽被鼓励但非强制要求,贡献者可以使用自己的母语提交内容,并依赖他人的翻译工具来理解 —— 这一补充条款的目的在于区分「AI 生成的内容」与「跨语言协作」两种行为,而非对多语言支持的限制。

从政策措辞来看,Zig 维护团队将 AI 生成内容视为一种「作弊」行为,而非单纯的质量问题。在他们的认知框架中,一个有效的贡献不仅仅是「可工作的代码」或「可阅读的文字」,更是贡献者本人技能、判断力和对项目理解的外在体现。当这些内容由 LLM 代为产出时,维护者失去了评估贡献者真实能力的关键信号,这种信号在开源项目的长期维护中具有不可替代的价值。

「贡献者扑克」理念的核心逻辑

理解 Zig 这项政策的钥匙,在于其维护者提出的「贡献者扑克」(Contributor Poker)概念。这一隐喻源自扑克游戏中的信息博弈:在开源项目中,维护者通过审查首次贡献来评估一位陌生开发者是否值得信任、是否理解代码库、是否遵循项目规范。每一次 Issue 提交、每一份 PR 都是一次「摊牌」的机会 —— 维护者通过这些交互判断这位贡献者能否成为可靠的长期协作者。

如果允许 LLM 参与这一博弈,整个评估机制将被彻底瓦解。当一份完美的问题报告或代码 PR 来自 AI 之手时,维护者无法判断屏幕另一端的人类是否真正理解了自己提交的内容。一位从未接触过 Zig 内存管理模型的贡献者,可能通过 AI 生成一份看似专业的性能优化 PR,但当这份代码在特定边界条件下出现崩溃时,原作者可能完全没有能力进行调试或解释。这种「不可问责」的代码,无论其表面质量多高,都对项目的长期可维护性构成潜在威胁。

Zig 维护团队的另一层考量在于资源分配。代码审查是一项稀缺且昂贵的工作,维护者希望将有限的时间用于帮助真实的开发者成长,而非替 AI 修正那些作者无法理解的错误。在他们看来,一次由人类新手提交的不完美但真诚的 PR,其价值可能高于一份由 AI 生成的光鲜但空洞的代码 —— 前者代表着一位可能成长为长期贡献者的人才,后者可能只是一次性的「代码捐赠」且后续维护成本未知。

社区反响与技术治理的深层启示

Zig 的这项政策在 Hacker News、Reddit 和技术社区中引发了激烈争论。支持者认为,这是对开源贡献本质的回归 —— 开源运动的根基在于人的协作,而非工具的效率提升。他们赞同 Zig 维护团队将「培养贡献者」置于「接收代码」之上的立场,认为只有这样才能构建真正可持续的技术社区。EFF(电子前哨基金会)在 2026 年初也发布了类似指南,建议开源项目明确对 LLM 辅助贡献的态度,这进一步印证了技术社区对 AI 生成内容边界的关注。

批评者则担忧,这种一刀切的政策可能错失某些有价值的贡献,特别是对于那些英语非母语或技术写作能力有限的开发者而言。他们指出,AI 翻译工具在帮助全球开发者跨越语言障碍方面具有一定价值,一概禁止可能反而降低了多元化参与的可能性。此外,政策在执行层面也面临挑战:如何判定一份提交是否由 AI 生成?误判时的申诉机制是什么?这些问题目前尚未得到完全解答。

从更宏观的视角来看,Zig 的反 AI 贡献政策代表了一种技术治理立场:他们选择将人与工具严格区分,优先保护社区的信任网络和信息透明度。在 AI 工具日益渗透软件工程各个环节的当下,这种立场或许过于理想化,但它至少提出了一些根本性问题:当代码可以由机器批量生产时,什么样的贡献仍然值得人类社区珍视?当效率与信任发生冲突时,开源项目应当如何权衡?

对其他开源项目的参考价值

对于其他考虑制定类似政策的开源维护团队,Zig 的实践提供了若干可操作的参考点。首先,政策措辞应当明确而非模糊 ——Zig 直接在行为准则中列出「禁止事项」,而非仅做原则性声明,这减少了执行时的争议空间。其次,配套的补充说明不可或缺:Zig 对多语言支持的解释有效区分了「AI 生成」与「跨语言协作」两种场景,避免了政策被误读为对外语使用者的排斥。最后,政策应当与项目的核心价值观自洽 ——Zig 长期以来强调代码的可控性和显式性,这种「不依赖魔法」的文化基因与其反 AI 政策的接受度高度相关。

技术治理从来不是纯粹的技术问题,而是社区文化、价值观和长期目标的综合体现。Zig 的这项政策或许不会成为开源世界的标准答案,但它至少为这个时代的重要议题贡献了一种清晰的立场:在这个 AI 日益强大的世界里,人的判断力、责任感与成长潜力,仍然是技术社区最宝贵的资产。


资料来源:Zig 官方行为准则(ziglang.org/code-of-conduct);Loris Cro 关于「贡献者扑克」与 AI 禁令的博客分析(kristoff.it/blog/contributor-poker-and-ai/)

systems