文章

AI 重写代码就能换协议?Copyleft 的护城河正在被 LLM 拆掉

AI 重写代码就能换协议?Copyleft 的护城河正在被 LLM 拆掉

上周,Python 生态里月下载量 1.3 亿次的字符编码检测库 chardet 发布了 7.0 版本。性能提升 48 倍,支持多核,代码从头重写。但真正引爆社区的不是性能 — 是维护者把协议从 LGPL 改成了 MIT。

他的理由:整个重写过程由 Claude 完成,只提供了 API 接口和测试用例,没有直接参考原有源码。JPlag 检测显示新旧代码相似度低于 1.3%。结论:这是独立新作品,不受 LGPL 约束。

原作者 Mark Pilgrim 公开反对。Flask 作者 Armin Ronacher 和 Redis 作者 antirez 则分别撰文支持重新授权。一场关于 AI 时代 copyleft 存亡的论战就此展开。

合法不等于正当

Hong Minhee 写了一篇很有分量的反驳文章,核心论点只有一句:legal ≠ legitimate

法律划的是底线。不违法不代表这件事就是对的。antirez 引用 GNU 项目重写 UNIX 用户空间的历史来论证 AI 重写的合法性,但 Hong 指出这个类比恰好指向相反方向 — GNU 是从专有到自由,chardet 7.0 是从自由到宽松。一个是扩大公共领域,一个是拆掉保护公共领域的栅栏。

这个方向性的差异,antirez 没有正面回应。

技术上说得通,伦理上站不住

从纯技术和法律角度看,AI 重写确实可能构成独立作品。版权保护的是具体表达,不是功能和接口。只要新代码在结构、命名、实现细节上足够不同,就很难被判定为衍生作品。

但 copyleft 的设计初衷不只是一个法律条款 — 它是一种社会契约。LGPL 说的是:你可以用我的代码,但如果你改了它,你也得把改动开放出来。这个契约维持了一个生态系统运转了几十年。

现在 LLM 提供了一条绕过这个契约的技术路径。你不需要”看”原始代码,你只需要让 AI “理解”它的行为,然后生成功能等价但表达不同的新代码。协议的约束力在这里失效了。

这不是个案,是趋势

chardet 不会是最后一个。任何功能明确、接口清晰的 copyleft 项目都可能面临同样的命运。想象一下:

  • 有人用 AI 重写 FFmpeg 的核心编解码器,换成 Apache 2.0
  • 有人用 AI 重写 GCC 的前端,换成 BSD
  • 有人用 AI 重写 Linux 内核的某个子系统,拆出来做商用

技术上每一步都可能合法。但当这些事情大规模发生时,copyleft 作为一种保护机制就名存实亡了。

工程师该怎么看这件事

我的判断:这是一个真实的威胁,但目前没有好的解决方案。

法律层面,现有版权框架很难覆盖”AI 辅助的功能等价重写”这种新模式。技术层面,代码相似度检测对 AI 生成的代码基本无效。社区层面,这取决于开发者群体是否认为 copyleft 的精神比它的法律条文更重要。

作为工程师,我倾向于一个务实的立场:

  1. 如果你是 copyleft 项目的维护者,需要意识到协议的保护力正在被削弱。考虑在 CONTRIBUTING.md 里明确禁止 AI 重写用于换协议
  2. 如果你是使用者,尊重项目的精神,不只是它的法律文本。能用 LGPL 就用 LGPL,不要因为技术上能绕过就绕过
  3. 如果你是 AI 工具的开发者,应该在工具层面提供协议追踪功能,让用户知道生成的代码可能受哪些协议的精神约束

这场争论的本质不是技术问题,是价值观问题。技术让绕过规则变得容易了,但容易不等于正确。


如果你在日常开发中需要在多个 AI 模型之间切换测试,推荐试试 OfoxAI(ofox.ai)— 一个账号搞定 Claude、GPT、Gemini 等主流模型,省去多平台注册的麻烦。

本文由作者按照 CC BY 4.0 进行授权