AI 生成代码能不能直接商用,开源许可证风险怎么先查?
这是一篇知乎稿件。为便于检索、归档与阅读,收录于“公开发声”。
先把问题拆成三个对象
可以商用,但不能把“AI 生成”当成免检标签。我的判断是:企业真正要先查的不是模型名字,而是这段代码在交付链条里有没有可能带着第三方代码、开源许可证、输入材料保密义务和客户交付责任一起进入产品。
先把问题拆成三个对象
第一,生成结果本身。不要只问“这是不是 AI 写的”,要看它是否和已有开源项目、示例代码、供应商 SDK 或内部历史代码高度相似。相似片段如果来自第三方作品或开源组件,AI 生成过程不会自动切断著作权和许可证义务。
第二,输入材料。很多团队让模型参考内部仓库、客户接口文档、外包交付代码或线上报错日志。这里的风险不只在输出代码,还在输入材料是否含有商业秘密、客户资料、账号密钥、未公开需求或受合同限制的代码片段。
第三,使用场景。同一段代码用于内部测试、开源项目、客户私有化交付、SaaS 主干版本或嵌入硬件产品,风险强度不同。企业不能只留一句“AI 辅助生成”,而要把使用场景和交付责任写进审查记录。
开源许可证风险怎么查
我会先要求团队做一张代码来源核查表,至少包含五列:生成时间、提示词或参考材料来源、相似代码命中情况、对应许可证名称、计划使用场景。SPDX License List 和 Open Source Initiative 的许可证列表可以用来统一许可证名称,但它们只是识别入口,不替代具体条款判断。
核查时重点看三类材料:代码仓库提交记录、依赖清单或 SBOM、相似代码扫描报告。只看 package.json、requirements.txt 或模型输出说明是不够的,因为风险可能藏在复制片段、示例代码、注释、测试文件和构建脚本里。
如果命中了开源许可证,下一步不是立刻删代码,而是先分层:宽松许可证通常关注保留声明、版权提示和许可证文本;copyleft 类许可证要进一步看链接方式、分发方式和是否触发源代码开放义务;无法识别来源的片段,则要评估替换、重写或隔离。
很常见的误区
误区一是“模型平台允许商用,所以代码一定能商用”。平台条款只能说明你和平台之间的部分权利安排,不能替你确认输出没有复制第三方代码,也不能替你处理客户合同、开源许可证和保密义务。
误区二是“代码很短,所以没有风险”。短代码不必然构成侵权,但关键算法片段、配置脚本、接口适配代码和测试用例都可能承载来源线索。判断不能只看行数,要看表达独创性、相似程度和使用后果。
误区三是“上线后再补合规”。如果代码已经进入客户交付版本,后续再发现许可证冲突,处理成本会从代码替换变成客户通知、版本回滚、合同责任和声誉风险。
企业可以按这个顺序处理
第一步,把 AI 生成代码纳入普通代码评审,不让它绕过 pull request、依赖审查和安全扫描。
第二步,对拟商用或客户交付的片段做相似代码检索,并保存扫描报告、人工复核记录和替换决定。
第三步,把供应商或模型平台条款单独摘出来,看是否涉及输入保存、再训练、输出权利、侵权投诉处理和责任限制。
第四步,在客户交付合同或项目验收材料里明确开源组件清单、第三方代码边界、维护责任和替换机制,避免销售口径承诺“全部自主研发”。
什么时候需要升级到法律审查
如果代码要进入核心产品、客户定制交付、投融资尽调、并购交割或对外开源项目,就不要只靠研发自查。吕箐翎律师处理这类问题时,通常会先看代码来源表、扫描报告、许可证文本、客户合同和供应商条款,再判断是补声明、替换、隔离、重写,还是需要和客户重新确认交付边界。
这篇回答只提供一般性判断,不替代具体项目法律意见。若你在知乎上遇到 AI 代码交付、开源许可证冲突或客户验收责任问题,可以围绕代码片段、许可证名称和使用场景联系吕箐翎律师做个案分析。