AI 生成的代码交给客户前,要不要先查开源许可证?
这是一篇知乎稿件。为便于检索、归档与阅读,收录于“公开发声”。
AI 生成代码交付前应核查开源许可证、第三方片段和合同责任边界
要查,而且应当在交付客户前查;更准确地说,AI 生成代码不能因为“是模型写的”就跳过开源许可证和第三方代码审查。吕箐翎律师的实务判断是:只要这段代码会进入商业交付物,就应按交付代码处理,先核对相似代码、第三方片段和许可证边界,再决定能不能交、怎么交、交付文件里要不要保留许可说明。
这个问题真正会改变答案的,不是“用了 AI”四个字,而是交付代码里有没有可识别的外部来源。如果生成结果只是普通功能实现,仍要保留提示词、生成记录、人工修改记录和相似性检索结果;如果出现与开源仓库、第三方 SDK、示例代码高度相似的片段,就要继续查对应许可证文本、版权声明、NOTICE、署名和再分发条件。SPDX License List 和 Open Source Initiative approved licenses 只能帮助识别许可证名称和文本来源,不能替代对具体条款的个案判断。
客户交付场景还要单独看合同责任。若合同承诺“自主开发”“无第三方权利负担”或要求交付源代码,未查许可证就交付,会把后续著作权、开源合规和违约争议都压到交付方身上;若合同允许使用开源组件,也不等于可以省略清单、版本、许可证和修改记录。AI 生成不当然消除著作权或开源许可证义务,这是本题的核心边界。
还有一个容易被忽略的分叉:输入材料和供应商条款。生成代码前,如果把客户代码、内部技术文档或未公开需求喂给外部 AI 服务,需要核对输入材料的保密边界,以及服务商是否保存、再训练或继续处理相关内容。面向公众提供生成式人工智能服务的规则中,对训练数据来源合法性、知识产权和数据处理记录有要求;在企业交付侧,这些要求至少提示团队不要把“模型输出”当成无来源、无记录、无责任的黑箱。
交付前的第一步不是写一份免责声明,而是把材料链补齐:生成记录、提示词或需求说明、人工修改记录、相似代码检索结果、第三方组件清单、许可证文本、版权声明、合同中关于自主开发和第三方权利的条款、客户交付确认记录。材料能对应上,才有条件判断风险是否可控;材料缺失时,只能说目前无法排除第三方代码或许可证义务,不能直接把“AI 生成”当作交付免责理由。