AI重写开源代码,能否连许可证也一并“改写”?
当AI编程助手宣称能在几天内“从零开始”重写一个经典库,并带来48倍的性能飞跃时,开发者社区为之振奋。然而,当这次重写伴随着许可证从限制严格的LGPL变更为极度宽松的MIT时,一个尖锐的问题浮出水面:这究竟是技术驱动的合法创新,还是一场对开源精神的“优雅规避”?近期,围绕流行Python字符编码检测库chardet的重写风波,将AI生成代码的版权与法律灰色地带推向了风口浪尖。
核心看点
- “洁净室”工程遇AI:传统上,人类程序员通过物理隔离(洁净室)来合法“逆向工程”软件功能。当AI介入,仅凭设计文档和提示词生成代码,传统法律框架面临挑战。
- 许可证的“单方面变更”:项目维护者Dan Blanchard利用Claude Code重写库,并将许可证从LGPL改为MIT,引发原作者Mark Pilgrim的强烈反对,质疑其合法性。
- 1.29%相似度的争议:重写者声称新旧代码结构相似度极低(最高1.29%),以此证明非“衍生作品”。但AI训练数据已包含旧代码,这能否构成法律意义上的“接触”?
事件回溯:从性能优化到许可证风波
chardet是一个自2006年起发布的Python库,用于自动检测文本字符编码,其原作者Mark Pilgrim将其置于LGPL许可证下。该许可证要求,任何基于其代码的修改或衍生作品,在分发时都必须保持开源,并采用相同许可证。2026年3月,长期维护者Dan Blanchard发布了chardet 7.0版本,并宣布这是一个“基于Claude Code辅助、从零开始的、采用MIT许可证的重写”,声称性能提升高达48倍,旨在推动其进入Python标准库。
矛盾随即爆发。原作者Pilgrim在GitHub issue中明确指出,Blanchard对原始代码库有“充分的接触”,因此这次重写无论是否经由AI完成,本质上仍是其LGPL授权代码的衍生作品,单方面变更为MIT许可是无效的。他要求项目恢复原始许可证。
技术细节:AI如何执行“洁净室”重写?
面对质疑,Blanchard详细阐述了他的“AI洁净室”流程,试图在法律和伦理上为其行为辩护:
- 物理隔离:他在一个全新的、不包含任何旧代码的仓库中开始工作。
- 设计先行:首先撰写详细的设计文档,明确新库的架构和需求,而非直接参考旧代码。
- 严格提示:明确指令Claude Code不要基于任何LGPL/GPL许可的代码进行生成。
- 结构验证:使用代码相似度检测工具JPlag进行比对。结果显示,7.0.0版本与6.0.0版本的文件间,最高结构相似度仅为1.29%;而6.0.0与5.2.0版本间,某些文件相似度高达80%。Blanchard据此主张,新代码在结构上是独立的,并非衍生作品。
然而,这一流程存在两个关键漏洞:
- 训练数据的“原罪”:Claude等大语言模型的训练数据囊括了海量公开网络信息,几乎必然包含了旧版
chardet的代码。即使生成时未直接引用,模型内部的“知识”是否构成了法律意义上的“接触”和“复制”? - 元文件的依赖:在重写过程中,Claude Code实际上参考并使用了旧版本中的一些元数据文件(如编码注册表),这直接引发了其输出是否为“衍生作品”的质疑。
深度解读:AI重写对开源生态的冲击与启示
此次事件绝非孤例,它揭示了AI编程工具普及后,开源世界即将面临的一系列根本性挑战。
1. 法律框架的滞后与模糊
现行的著作权法和开源许可证协议(如GPL、LGPL、MIT)是基于人类创作者的行为模式设计的。它们核心概念如“独创性表达”、“实质性相似”、“衍生作品”和“洁净室设计”,在AI作为主要“创作者”介入时,边界变得极其模糊。
- “接触”的重新定义:当AI模型在训练阶段“接触”了海量版权作品,其后续生成内容是否天然带有“衍生”属性?目前的判例和法规几乎空白。
- “实质性相似”的判定:传统上通过代码行比对、结构分析来判断。但AI可能生成功能完全相同、但表达形式迥异的代码。仅凭低结构相似度能否免责?功能逻辑的复制是否受版权保护?这触及了软件版权保护的是“表达”而非“思想”这一基本原则的边界。
2. 开源伦理与社区信任危机
开源运动建立在贡献、协作与信任之上。许可证是维护这一生态的基石契约。
- 许可证的“洗白”风险:如果借助AI进行形式上的重写就能轻易绕过传染性许可证(如GPL)的限制,将严重削弱这类许可证的保护力,可能导致更多核心开源项目被“吸走”并闭源商用,挫伤原作者的贡献热情。
- 维护者权力的边界:项目维护者是否有权利用新技术手段,在未获所有主要贡献者同意的情况下,实质性地改变项目的法律性质(许可证)?这引发了关于开源项目治理模式的深思。
3. 对AI工具开发与使用的指引
此事件为AI编程助手的开发者和用户敲响了警钟。
- 开发者责任:AI公司是否需要构建更精细的“许可证过滤”机制?能否在训练或生成时,识别并避免输出受特定严格许可证约束的代码模式?
- 用户最佳实践:对于希望使用AI重构或优化现有代码的开发者,更审慎的做法可能包括:获取原作者的明确许可;即使进行重写,也考虑保持原许可证;或对AI生成代码进行彻底的法律风险评估。
结论:在创新与规则之间寻找新平衡
chardet重写风波是一面镜子,映照出技术狂奔与规则步履蹒跚之间的巨大张力。AI无疑能极大提升开发效率,甚至如Blanchard所说,完成人类难以短期实现的“彻底重构”。但它不能,也不应成为绕过法律与伦理约束的“魔法橡皮擦”。
这场辩论的最终解决,可能需要法律界对“AI生成物的版权”做出更清晰的界定,也需要开源社区更新许可证文本以应对AI时代的新场景(例如,明确将AI训练视为一种“使用”或“复制”)。同时,它也提醒每一位开发者,在享受AI编程红利时,多一份对知识产权和开源精神的敬畏。技术的未来,需要在创新活力与规则秩序之间,找到一个新的、动态的平衡点。
原文链接:AI can rewrite open source code—but can it rewrite the license, too?
