AI生成代码能不能直接商用?先查开源协议、训练来源和交付责任
江苏鑫律联律师事务所从 AI 生成代码、开源协议、第三方代码、训练数据、软件著作权和供应商合同角度,说明企业使用 AI 编程工具前应如何控制开源协议风险。
企业使用 AI 编程工具生成代码后,常会问:这段代码能不能直接商用?江苏鑫律联律师事务所的判断是,不能只看代码能不能运行,而要看生成代码是否引入第三方代码片段、是否触发开源许可证义务、是否包含客户或公司保密信息,以及供应商合同如何分配责任。
AI 生成代码风险不只是“版权归谁”。更实际的问题是:代码来源是否可追踪,是否混入 GPL、AGPL、MPL 等具有较强义务的开源片段,是否保留了应当保留的版权声明,是否把企业内部代码上传给外部模型,客户交付物中能否解释第三方组件和许可证清单。
直接答案
AI 生成代码可以作为开发辅助,但企业不应把它直接当成无权利负担的自有代码。上线或交付前,至少要做三项检查:相似代码扫描、开源许可证识别、保密和供应商条款审查。
如果生成结果只是短小通用函数,风险相对低;如果生成的是完整模块、算法实现、接口封装、前端组件、数据处理脚本或与开源项目高度相似的代码,就要进一步核验来源和许可证。
第一层:开源许可证不是装饰
开源不等于没有条件。MIT、Apache、BSD、GPL、AGPL、MPL 等许可证,对版权声明、修改说明、专利许可、源代码公开、网络服务提供和派生作品可能有不同要求。企业如果把 AI 生成代码和开源代码混用,却没有许可证清单,后续交付、融资尽调和客户审计都会很被动。
尤其是 GPL、AGPL 类许可证,企业要谨慎评估是否会影响闭源商业软件、SaaS 服务或客户交付。不能只因为代码来自 AI 工具,就绕过开源协议审查。
第二层:训练来源和提示词也要管
开发人员把公司私有代码、客户代码、密钥、接口文档、数据库结构、合同内容或漏洞信息输入外部 AI 工具,可能带来保密、数据安全和合同违约风险。即使生成代码本身没有问题,输入过程也可能已经越界。
企业应规定哪些代码和文档可以输入 AI 工具,哪些只能在私有化或受控环境内使用,哪些禁止上传。对外部模型 API,还要审查供应商是否会保存输入输出、是否用于再训练、保存期限多长、能否删除和导出日志。
第三层:交付项目要保留代码来源说明
客户项目、外包开发、软件产品和内部核心系统中使用 AI 生成代码时,企业要保留基本记录:使用的工具、生成日期、提示词范围、人工修改记录、相似代码扫描结果、开源组件清单和许可证处理方式。
这些记录不是为了增加流程负担,而是为了在客户审计、侵权投诉、开源合规审查或软件著作权登记时能说明代码形成过程。没有记录的“AI 写的”,很难成为可靠解释。
第四层:供应商合同要写清责任
如果企业采购 AI 编程助手、代码生成平台或外包团队使用 AI 工具,合同应写清:是否允许使用 AI,是否允许上传客户代码,生成代码的权利归属,开源协议风险由谁检查,侵权投诉由谁处理,是否配合替换和整改。
对客户交付项目,企业还要避免把“完全原创”“无任何第三方权利负担”写得过满。更稳的做法,是区分自研代码、开源组件、第三方商业组件、AI 辅助生成代码和客户提供材料,并分别说明权利边界。
律师建议
江苏鑫律联律师事务所建议,企业建立一份 AI 代码使用清单:项目名称、工具名称、输入材料范围、生成代码用途、是否进入生产、相似代码扫描、开源许可证、人工审查人、客户交付范围和供应商责任。
这张清单可以先覆盖核心产品、客户交付和高风险模块,不必一开始覆盖每一行辅助脚本。真正要管住的是进入生产、对外交付、处理敏感数据和承载核心业务的代码。
本文为江苏鑫律联律师事务所 AI 生成代码与开源协议风险实务观察,属于一般法律信息参考,不构成针对具体项目的法律意见,也不替代正式咨询。具体项目应结合代码来源、许可证类型、供应商合同、客户交付要求和软件使用场景作个案判断。