Skip to main content
PromptQuorum
主页/本地LLM进阶/AI与开源软件许可证详解:MIT vs Apache vs GPL vs AGPL vs 专有许可证
Overview & Reference

AI与开源软件许可证详解:MIT vs Apache vs GPL vs AGPL vs 专有许可证

·阅读约11分钟·Hans Kuepper 作者 · PromptQuorum创始人,多模型AI调度工具 · PromptQuorum

开源与AI工具许可证在实践中分为五大类——permissive宽松型(MIT、Apache-2.0、BSD)、copyleft著佐权型(GPL、LGPL)、网络著佐权型(AGPL-3.0)、source-available源码可见型(BSL、SSPL)、专有/封闭免费型——外加一组带有自身使用限制的AI模型专属许可证(RAIL、开放权重社区许可证)。哪一种与你相关,取决于你是个人爱好者、正在推出商业产品的创业公司,还是在内部集成工具的企业,而不是取决于哪种许可证"更好"。

本站评测过的每一款本地LLM工具、RAG框架和AI编程助手都在某种许可证下发布——MIT、Apache-2.0、AGPL-3.0、source-available许可证,或封闭的"免费"桌面应用——而这份许可证对你能否真正使用该工具的影响,远大于任何功能对比。本指南解释你会在开源软件和AI模型中遇到的许可证族群:每种许可证允许什么、要求什么、起源于何处、面向哪类用户,以及在个人项目、创业产品、企业内部系统或转售给客户的部署之前具体需要检查什么。这是一份分类指南,不是逐个工具的许可证对照表——它不会告诉你某个具体评测工具用的是哪种许可证(那部分请查看对应评测或软件目录),但一旦你知道某个许可证的名字,本文会解释它到底意味着什么。

关键要点

  • 许可证族群在实践中分为五大类:宽松型、著佐权型、网络著佐权型、source-available型和专有/封闭型,外加一组独立的AI模型专属许可证。了解一个工具属于哪一类,比任何功能列表都更能说明你能否使用它。
  • 宽松型许可证(MIT、Apache-2.0、BSD)几乎不设义务。你可以把代码嵌入封闭商业产品,永远不必公开自己的源码。
  • 著佐权许可证(GPL、LGPL)的"传染性"仅限于一个特定而狭窄的范围。分发受保护代码的修改版本需要以相同许可证公开你的修改,但这一义务不会波及只是与之并存运行的无关软件。
  • AGPL-3.0堵住了GPL为托管服务留下的漏洞。如果你修改了AGPL许可的代码,并且只通过网络(SaaS)提供,你仍然必须公开修改后的源码——单靠GPL并不要求这样做。
  • 像BSL和SSPL这样的source-available许可证,不管登陆页面怎么宣传,都不是OSI认证的开源。它们限制特定商业用途,通常是为了阻止云服务商将该项目转售为竞争性托管服务。
  • 代码仓库中的许可证文件才是唯一可靠的来源——不是定价页面、README徽章或营销说法。本指南提供一般性信息,不构成法律意见;如果许可证条款对你的业务有重大影响,请咨询律师。

📍 简单一句话

开源与AI工具许可证在实践中分为五大类——宽松型、著佐权型、网络著佐权型(AGPL)、source-available型和专有型——各自对如何使用、修改和再分发软件施加不同义务。

💬 简单来说

软件许可证是关于你能对别人的代码做什么的规则手册。宽松型许可证几乎允许任何操作;著佐权许可证要求你把修改回馈开源社区;source-available许可证允许你查看代码,但限制商业用途。

速览要点

  • MIT是最短、最常见的宽松型许可证——约170个单词,没有专利条款。
  • Apache-2.0加入了MIT没有的明确专利授权条款,这也是许多企业主导项目更偏好它的原因。
  • GPL仅在分发软件时要求公开源码;AGPL-3.0将这一要求延伸到作为网络服务运行的情形。
  • OSI认证的"开源"是Open Source Initiative给出的具体认证;"source-available"和"fair-code"是营销术语,指那些不符合该定义的许可证。
  • AI模型许可证是与代码许可证完全独立的类别。一个工具的代码可能是Apache-2.0,而它下载的模型权重却带有完全不同、往往更严格的条款。

什么是宽松型许可证?MIT、Apache-2.0与BSD

宽松型许可证允许你使用、修改和再分发代码——包括嵌入封闭商业产品——几乎不设义务,只需保留版权声明。这是限制最少的许可证族群,也是希望获得最广泛采用的基础设施类项目的默认选择,包括那些永远不会公开自己一行代码的公司。

  • MIT许可证起源于麻省理工学院(MIT),用来以最小限制发布大学开发的软件。全文约170个单词,授予近乎无限的权利,仅要求在任何再分发的副本或实质性部分中保留原始版权和许可证文本。
  • Apache License 2.0来自Apache软件基金会,该基金会的成立是为了让企业与社区贡献者在大型协作项目中拥有共同的法律框架。与MIT不同,它包含明确的专利授权条款——贡献者将其涵盖代码的专利权授予用户——这也是许多拥有专利组合的公司偏好它的原因。
  • BSD许可证(2条款和3条款版本)起源于加州大学伯克利分校,用于Berkeley Software Distribution操作系统。3条款版本额外增加了一条"不得背书"条款,禁止在未经许可的情况下使用原作者姓名来宣传衍生产品。
  • 对使用者的实际影响:你可以对宽松型许可证的工具进行fork、修改、嵌入,并作为封闭产品的一部分销售,永远不必公开自己的源码——真正的风险仅在于分发时遗漏了必须保留的版权/许可证声明。
  • 本站评测中的真实例子:Ollama和llama.cpp均采用MIT许可证;vLLM采用Apache-2.0许可证——三者都可以嵌入商业产品而不会触发任何源码公开义务。

什么是著佐权(Copyleft)?GPL与LGPL家族

著佐权许可证要求:如果你分发受保护代码的修改版本,必须以相同许可证公开你的修改内容。这一义务附着在代码本身上,而不是附着在与之并存运行的每一个程序上——常见的"传染性许可证"说法夸大了这一义务的实际覆盖范围。

  • GNU通用公共许可证(GPL)由Richard Stallman和自由软件基金会撰写,作为GNU项目的许可证,其理念是软件自由应当向下游持续传递——收到修改版本的人应享有与原作者相同的权利。
  • GPL v2与GPL v3的主要区别在于专利相关条款和兼容性规定;v3增加了明确的专利报复条款和反"提沃化"条款(防止出现阻止你运行有权合法运行的修改软件的硬件)。
  • GNU宽通用公共许可证(LGPL)专门为库放宽了GPL的限制——只要库组件保持可替换、并且它自身的源码保持可获取,你就可以将LGPL库链接到专有应用程序中,而无需开源应用程序本身。
  • 真正触发义务的行为:分发GPL代码的修改版本。仅在内部使用未修改的GPL软件,或在GPL许可的操作系统上运行专有软件,本身并不会使你自己的代码自动落入GPL的约束。
  • 谁需要格外谨慎:计划fork并修改GPL工具作为商业产品核心的创业公司,需要一个计划——要么开源那些修改,要么避免fork;而只在内部运行未修改GPL工具的公司,并不承担这项义务。

AGPL-3.0如何堵住SaaS漏洞

GNU Affero通用公共许可证(AGPL-3.0)增加了一项GPL没有的要求:如果你修改了AGPL代码并通过网络向用户提供,即使你从未以物理形式分发过软件副本,也必须向这些用户提供修改后的源码。这是这一许可证族群的核心特征,也是最容易让团队意外踩坑的地方——他们以为"我们从未分发,只是托管"就是安全的解读。

  • 它堵住的漏洞:在纯GPL下,将修改版本作为托管网络服务运行,不构成触发许可证义务的法律意义上的"分发"——一家公司完全可以拿走GPL代码,修改后仅作为SaaS产品提供,却从不必公开这些修改。这种做法被非正式地称为"ASP漏洞"(应用服务提供商漏洞)或"SaaS漏洞"。
  • AGPL-3.0正是为了堵住这个漏洞而专门撰写的,它增加了一条网络交互条款:通过网络向用户提供修改后软件的功能,与分发实体副本一样,同样触发源码公开义务。
  • 这对托管和转售为何重要:如果一家代理商或托管服务商拿走AGPL许可的工具、加以修改,再作为托管服务提供给客户,就必须向这些用户提供修改后的源码——未经修改直接运行则不会触发这项义务。
  • 本站评测中的真实例子:Jan、KoboldCpp、SillyTavern和text-generation-webui均采用AGPL-3.0许可证——出于个人或内部用途未经修改地自行托管完全没有问题;但一旦你修改其中之一并转售托管访问权限,法律局面就会发生实质变化。
  • 这是对许可证机制运作方式的一般性说明,不构成法律意见——某个具体部署是否构成AGPL-3.0确切条文中的"通过网络提供",需要由熟悉你具体架构的律师来判断。

什么是Source-Available与"公平代码"许可证?

Source-available许可证允许任何人阅读代码,但限制特定商业用途,最常见的是将该软件作为竞争性托管服务提供。它们经常被宣传为"开源",但像Business Source License(BSL/BUSL)和Server Side Public License(SSPL)这类许可证并未获得Open Source Initiative的批准,也不符合其开源定义。

  • Business Source License(BSL,也称BUSL)一开始就授予源码访问权和广泛的使用权,并设定一个未来的确定日期,届时许可证会转换为真正的开源许可证(通常是Apache-2.0或类似的宽松型许可证)——在转换之前,会适用一条明确的商业用途限制,目的通常是阻止形成竞争性托管产品。
  • Server Side Public License(SSPL)由MongoDB创建,要求任何将该软件作为服务提供的一方,也必须开源他们围绕该软件构建的整套服务栈——这比AGPL-3.0的义务要宽泛得多,其撰写目的正是让竞争性云服务商的商业托管变得不切实际。
  • Commons Clause是叠加在原本宽松或著佐权基础许可证之上的附加限制条款,专门禁止销售该软件或将其作为付费托管服务提供,同时仍允许自由使用和修改。
  • 项目转向此类许可证的原因:一个最初采用完全开放许可证、后来又改用source-available许可证的项目,通常是在应对某个大型云服务商在不回馈开发的情况下,将该项目作为托管服务提供——转向source-available许可证让维护者能够保留大部分开放性,同时阻止这种特定的竞争性使用。
  • 对使用者的实际影响:通常你可以毫无问题地阅读、自行托管并修改source-available软件用于内部用途;当你试图将其转售为与许可证持有方自身产品竞争的托管产品时,限制才会生效——请务必阅读具体的商业用途条款,因为不同项目之间的措辞差异很大。

专有与Freemium"免费"许可证意味着什么?

下载页面上标注"免费"的工具未必是开源软件——许多流行的桌面AI应用其实是专有的闭源软件,虽然免费分发,但没有任何许可证赋予你查看、修改或再分发底层代码的权利。这一区别对延续性最为关键:专有厂商可以随时改变定价、增加限制,或彻底停止该产品,而你没有任何法律权利去维护一个独立的fork继续运行。

  • 对比表中的"免费(封闭)"意味着无成本的专有软件。你可以按照厂商的服务条款使用编译后的应用程序,但你无法访问源码,也没有权利修改、审计或fork它。
  • 相对于开源替代方案的核心权衡:由于单一厂商掌控整个用户体验,专有免费应用往往更精致、更易安装——但你完全依赖该厂商是否愿意持续保持它免费、安全和维护良好。
  • 厂商锁定风险:由于没有源码访问权,你无法自行托管修改版本,无法准确审计该应用如何处理你的数据,也无法在厂商停止维护、更改定价模式或关闭产品时继续开发。
  • 最应该关心这一点的人:任何围绕专有免费工具构建工作流程或业务流程的人,都应该有一份文档化的备用方案——这与你对待任何厂商依赖时应有的尽职调查是一样的,因为"免费"不等于"永久"或"有保障"。
  • 这与source-available不同:source-available许可证(BSL、SSPL)至少允许你阅读和审计代码,即使商业用途受限;而完全专有的工具既不提供代码,也不提供这些保障。

AI模型许可证如何运作?开放权重、RAIL与可接受使用限制

模型的许可证是与运行该模型的软件所适用许可证完全独立的法律文件——一个工具的代码可能是Apache-2.0,而它下载的模型权重却可能带有完全不同、有时更严格的许可证。AI模型许可证比软件许可证出现得更晚,标准化程度也更低,不同模型发布之间的条款差异很大。

  • 完全宽松型权重:部分模型系列以标准的宽松型软件许可证(通常是Apache-2.0)发布权重,赋予与该许可证对代码相同的广泛使用权,包括不受用途限制的商业使用。
  • RAIL和OpenRAIL许可证(负责任AI许可证)起源于BigScience发布BLOOM模型时,由法律研究人员共同设计,将开放访问与一份具体的禁止用途清单结合——通常禁止生成虚假信息、歧视性决策或违法内容,同时在其他方面允许广泛的商业使用。
  • 定制的"社区"或"开放权重"许可证:多家主要模型提供方以量身定制的许可证发布权重,读起来像开放许可证,却附加了用途条件。被引用最多的例子是Meta附加在其公开发布模型权重上的社区许可证——它允许广泛的免费使用,但设置了一个使用规模门槛,一旦超过就需要单独的商业协议,同时还附有可接受使用限制。
  • 具体需要检查的内容:是否完全允许商业使用、是否存在会改变条款的使用规模或营收门槛、可接受使用政策禁止什么,以及许可证是否限制用模型输出去训练竞争模型——这最后一项限制已出现在多份模型专属许可证中,而标准软件许可证中没有对应条款。
  • 这不构成法律意见——同一提供方在不同发布版本之间的模型许可证条款可能变化,请核实你计划部署的具体模型权重所附的确切许可证文本,而不要假设它与该组织此前的发布版本保持一致。

谁该关心哪种许可证?

对个人爱好者来说不成问题的许可证,对创业公司或代理商而言可能是真实的风险。同样的许可证条款适用于所有人,但一旦触发义务,后果的严重程度会随着你的使用有多商业化、多公开而放大。

爱好者/个人使用

最重要的事:
几乎任何许可证都可行——你没有为他人分发或托管
该怎么做:
如果工具是著佐权许可证,确认你没有公开再分发修改后的代码

在某工具之上构建商业产品的创业公司

最重要的事:
著佐权,尤其是AGPL-3.0,可能迫使你开源自己新增的部分
该怎么做:
在围绕计划修改并出售的工具设计架构之前,先检查基础许可证

在内部集成某工具的企业

最重要的事:
著佐权义务在分发/托管时触发,而非纯内部使用——但规模扩大会改变风险
该怎么做:
在未修改的著佐权工具成为核心基础设施之前,先获得法务的许可证审查

转售部署服务的代理商或自由职业者

最重要的事:
AGPL-3.0加上修改再加上为客户托管,通常意味着必须公开修改后的源码
该怎么做:
确认自己是否真的修改了代码,还是只是在未修改的情况下进行配置/托管

担心厂商锁定的任何人

最重要的事:
专有"免费"和source-available工具可能改变条款、增加费用或直接关闭
该怎么做:
如果长期独立性比精致度更重要,优先选择宽松型或著佐权型替代方案

正在评估数据驻留问题、重视GDPR的团队

最重要的事:
许可证风险与合规风险是两条独立的维度——宽松型许可证并不能解决数据驻留问题
该怎么做:
把许可证条款和数据驻留要求当作两份独立的核对清单分别评估

采用前许可证核对清单:部署工具前应检查的7件事

核实一个工具的许可证只需几分钟,却能避免产品上线后代价高得多的法律意外。在决定基于任何开源或AI工具进行构建之前,先完成这七项检查。

  1. 1
    阅读代码仓库中实际的LICENSE文件
    Why it matters: 登陆页面上的"开源"说法可能只是营销用语,而非法律事实——源码仓库中的LICENSE(或NOTICE/COPYING)文件才是权威文档,而不是徽章或定价页面。
  2. 2
    检查许可证是否最近发生过变更
    Why it matters: 一些项目在获得商业牵引力后,会从宽松型或著佐权型许可证转向source-available许可证——随着云服务商开始在不回馈的情况下托管热门开源项目,这种模式在软件行业反复出现。请查看仓库的许可证历史,而不仅仅是当前文件。
  3. 3
    如果你在意,请核实该许可证是否真的通过了OSI认证
    Why it matters: BSL和SSPL这类source-available许可证常被宣传为开源,但并不在Open Source Initiative批准的清单上——如果OSI认证是你用例的要求,请直接查阅该清单,而不是相信项目自己的描述。
  4. 4
    专门阅读AI模型的商业用途和用途限制条款
    Why it matters: 模型的许可证可能广泛允许商业使用,也可能在超过使用规模门槛后加以限制,或者直接禁止特定应用——这些条款超出了标准软件许可证的常规措辞,如果只检查代码许可证,很容易被忽略。
  5. 5
    确定自行托管与SaaS托管是否会改变你的义务
    Why it matters: 在AGPL-3.0下,通过网络提供修改后的软件,与在GPL下分发副本,会触发同样的公开义务——在修改代码之前,先确认你计划的部署属于哪一类。
  6. 6
    如果计划回馈代码,请检查是否存在贡献者许可协议(CLA)
    Why it matters: CLA可能赋予项目维护者比项目自身许可证赋予用户更广泛的权利来使用你的贡献——这主要与你打算向项目提交代码有关,如果你只是使用它,则关系不大。
  7. 7
    将商标限制与代码许可证分开检查
    Why it matters: 宽松型或著佐权型代码许可证并不自动授予你使用项目名称或标志的权利——即使代码许可证本身允许fork,商标法仍可能阻止你fork并重新命名一个工具。

常见错误

大多数与许可证相关的问题,源于没有查阅原始文档,而不是误解了一份已经真正读过的许可证。

  • 相信营销页面上"开源"的说法,而不去阅读代码仓库中实际的LICENSE文件。
  • 以为AGPL-3.0只在分发软件副本时才有意义——它同样适用于将修改后的代码作为托管服务提供的情况。
  • 把模型的代码许可证和权重许可证当作同一份文档处理——它们往往并不相同。
  • fork并重新命名一个工具,却没有单独检查与代码许可证不同的商标限制。
  • 假设项目最初宽松的许可证在后来重新授权后依然适用——请核实当前的许可证,而不是你记忆中的那一份。
  • 因为工具"免费"就跳过对著佐权或source-available工具的法务审查——免费使用和没有义务并不是一回事。

参考来源

常见问题

我的项目应该用MIT还是Apache-2.0许可证?

两者都是宽松型许可证,对用户几乎没有义务。Apache-2.0在实践中的主要区别是明确的专利授权条款,这对拥有专利组合的组织更重要;MIT更短,在小型个人项目中略更常见。两者都不限制商业使用,也都不要求你开源基于它们构建的内容。

使用AGPL-3.0软件是否意味着我整个公司都必须开源?

不是。AGPL-3.0的义务在你通过网络分发或提供受保护代码的修改版本时触发——在内部使用未修改的AGPL工具,或者作为组件调用而不修改其源码,并不会把你代码库中无关的部分纳入该许可证。只有当你修改了AGPL代码本身,并将这个修改版本提供给用户时,这才变得相关。

"Source-Available"等同于开源吗?

不等同,而且这个区别很重要。开源是Open Source Initiative基于一份具体定义给出的认证,该定义包括在不限制商业使用的前提下再分发和修改的权利。像BSL和SSPL这样的source-available许可证允许阅读代码,但限制特定商业用途,最常见的是竞争性托管服务——即使一个项目自称开源,它们也不符合OSI的开源定义。

我可以在业务中使用"免费"的专有AI应用吗?

通常可以,按照厂商的服务条款使用,但你需要承担厂商依赖风险:没有源码访问权,就无法审计该软件如何处理你的数据,也没有权利自行托管修改版本,更无法保证厂商会持续让该产品保持免费、无限制或维护良好。请阅读服务条款,而不只是价格。

AI模型许可证的运作方式和软件许可证一样吗?

并不完全一样。模型许可证出现得更晚,标准化程度更低。一些发布版本直接对权重套用标准的宽松型软件许可证;另一些使用像RAIL/OpenRAIL这样专门设计、带有具体禁止用途清单的许可证;还有一些使用带有使用规模门槛和用途限制的定制社区许可证。请务必检查你下载的具体模型权重所附的许可证,并将其与你用来运行它们的代码所适用的许可证区分开来。

为什么有些开源项目后来会转向更严格的许可证?

最常被提及的原因是某个大型云服务商在不回馈开发的情况下,将该项目作为竞争性托管服务提供——转向source-available许可证(BSL、SSPL)或增加像Commons Clause这样的限制条款,能让维护者保持代码的可见性和大部分可用性,同时阻止这种特定的竞争性使用。这种模式已在软件行业反复出现。

创业公司在基于开源工具构建商业产品之前应该检查什么?

阅读实际的许可证文件,而不是登陆页面;确定自己是否计划修改底层代码,因为这通常是触发著佐权和AGPL-3.0义务的关键;如果涉及AI模型,检查是否存在使用规模或用途门槛;并在该工具成为你产品所依赖的核心基础设施之前,获得法务的许可证审查。

这篇文章算法律意见吗?

不算。本文以通俗语言解释常见许可证机制的一般运作方式,目的是提供方向性信息。许可证条款会因项目和版本而异,解释也可能因司法辖区而不同,一旦出错,后果会随部署的商业化程度而放大——针对具体工具、具体部署或具体商业决策,请咨询合格的律师。

← 返回 本地LLM进阶