AI Agent 时代,自由软件突然又重要了

AI Agent 时代,自由软件突然又重要了

大概从 2010 年代中期开始,”自由软件”这个词在大多数开发者的日常对话里就消失了。

取而代之的是”开源”。开源更温和、更商业友好、更不像一场意识形态运动。GitHub 上的 MIT license 比 GPL 多得多,创业公司用开源做增长策略,大厂用开源做生态锁定。”自由软件”听起来像上个世纪的遗物,像 Richard Stallman 那种留着大胡子、坚持叫 GNU/Linux 的人才会在意的东西。

然后 coding agent 来了,事情开始变得有意思。

最近 Hacker News 上一篇讨论引发了不少关注,核心论点是:当 AI agent 能够读懂、修改、组合任意代码库时,”源码自由”从一个哲学立场变成了一种实际能力。这个观点乍听有点抽象,但仔细想想,它触及了一个正在发生的结构性变化。

一段被遗忘的历史

要理解为什么 coding agent 可能改变自由软件的命运,得先回顾一下这场运动是怎么走到边缘的。

1983 年,Richard Stallman 发起 GNU 项目,1985 年成立自由软件基金会(FSF),核心主张是软件用户应该拥有四项自由:运行、研究、修改、分发。GPL 许可证是这套理念的法律实现,它的”传染性”条款要求任何基于 GPL 代码的衍生作品也必须开源。

这套理念在 90 年代和 2000 年代初期有过辉煌时刻。Linux 内核用 GPL,GNU 工具链撑起了整个互联网基础设施,Firefox 打破了 IE 的垄断。那个时代,自由软件运动真的像一场革命,有理想主义的光环,也有实际的技术成果。

转折点大概在 2000 年代后期。几件事同时发生:云计算兴起,软件从”安装在你电脑上”变成”跑在别人服务器上”,GPL 的传染性条款在 SaaS 模式下失效了(你没有”分发”软件,所以不触发 GPL 的开源义务);GitHub 在 2008 年上线,让”开源”变成了一种社交行为和职业资本,但 GitHub 文化更偏向 MIT/BSD 这类宽松许可证;移动互联网爆发,App Store 的封闭生态成为主流,自由软件的理念在移动端几乎没有立足之地。

到了 2010 年代,”开源”已经完全取代”自由软件”成为主流叙事。两者的区别很微妙但很关键:开源强调的是开发方法论(代码公开、协作开发效率高),自由软件强调的是用户权利(你有权控制你使用的软件)。当开源变成大厂的营销工具时,”用户权利”这个维度就被悄悄丢掉了。

Stallman 变成了一个尴尬的存在。他的技术判断在很多方面被证明是对的(对云计算的警告、对 DRM 的反对、对隐私的坚持),但他的沟通方式和个人争议让他越来越被主流社区边缘化。自由软件运动失去了它的布道者,也失去了它的叙事能力。

到 2020 年代初,局面是这样的:开源无处不在,但自由软件的核心关切(用户对软件的控制权)反而在倒退。你的手机、你的云服务、你的 AI 工具,你对它们的控制权比 20 年前更少,不是更多。

Coding Agent 改变了什么

然后 AI coding agent 出现了。2025 年开始,Claude Code、Cursor、GitHub Copilot、OpenAI Codex 这些工具从”代码补全”进化到”自主编程”。它们能读懂整个代码库,能写新功能,能修 bug,能跑测试。到 2026 年,coding agent 已经不是玩具,而是很多开发者日常工作流的一部分。

这对自由软件意味着什么?

先说最直接的影响:贡献门槛被大幅降低了。

自由软件运动有一个长期困境:源码是开放的,但”能读懂源码”和”能有效修改源码”之间有巨大的鸿沟。一个大型开源项目,比如 Linux 内核或者 Chromium,代码量在几百万到几千万行。即使你有权利修改它,实际上能做到的人极少。你需要理解架构、熟悉代码风格、知道哪些文件相关、能跑通构建和测试。这个门槛把”自由修改的权利”变成了少数专家的特权。

Coding agent 正在拆掉这个门槛。你可以让 AI 读完整个代码库,问它”这个功能的实现逻辑是什么”,然后说”帮我改成这样”。AI 不会被代码量吓到,不会因为不熟悉项目风格而犹豫,不会花三天时间搭建开发环境。它把”理解代码”这个最耗时的步骤从几周压缩到几分钟。

这意味着 GPL 所保障的”修改自由”,第一次有了大规模实现的可能。以前,一个不满意某个 GPL 软件的普通用户,理论上有权 fork 并修改,实际上做不到。现在,同样的用户可以让 coding agent 帮他做这件事。自由从纸面权利变成了实际能力。

第二个影响更深远:闭源软件的护城河被削弱了。

闭源软件的商业逻辑建立在一个假设上:代码复杂度本身就是壁垒。即使竞争对手知道你的产品做什么,从零重写一个同等质量的替代品需要巨大的工程投入。这个假设在 coding agent 时代开始动摇。

当 AI 能够快速理解需求、生成代码、迭代优化时,”从零构建”的成本在急剧下降。一个开源替代品不再需要一个大团队花几年时间追赶闭源产品的功能。一个小团队加上 coding agent,可能在几个月内做出 80% 功能的替代品。这不是说闭源软件会消失,但它的竞争优势在缩小。

第三个影响是关于”组合”的。自由软件的四项自由里有一项是”分发修改版本的自由”。在 coding agent 时代,这项自由的价值被放大了。AI 特别擅长把不同的开源组件组合成新的解决方案。它可以从这个项目借一个模块,从那个项目拿一个算法,然后把它们粘合在一起。如果这些组件都是自由软件,这种组合是合法且被鼓励的。如果其中有闭源组件,组合就会遇到许可证障碍。

所以从纯实用的角度看,自由软件许可证在 coding agent 时代反而成了一种优势:它让 AI 可以无障碍地使用、修改、组合代码。

老问题不会自动消失

说到这里,很容易陷入一种乐观叙事:coding agent 来了,自由软件要复兴了,开源万岁。

但自由软件运动衰落的原因不只是”贡献门槛高”。它还有一系列结构性问题,coding agent 解决不了。

资金问题是最大的一个。自由软件项目长期面临”公地悲剧”:所有人都在用,没人愿意付钱。OpenSSL 在 Heartbleed 漏洞爆发前,整个项目的年度资金不到 100 万美元,而它保护着互联网上大部分的加密通信。Log4j 的维护者在发现严重漏洞后被要求免费加班修复。这些故事一再重演。

Coding agent 能帮忙写代码,但不能帮忙付账单。一个 AI 可以提交 pull request,但不能支付服务器费用、不能处理法律纠纷、不能做安全审计的最终决策。如果自由软件项目的资金模式不改变,更多的 AI 贡献可能反而加重维护者的负担,因为每个 PR 都需要人类 review。

治理问题同样棘手。大型开源项目的治理结构(谁有 merge 权限、技术方向谁说了算、冲突怎么解决)是经过多年演化形成的,而且经常出问题。Coding agent 不会让治理变得更简单。如果 AI 开始大量提交代码,谁来为 AI 生成的代码负责?如果一个 AI 提交引入了安全漏洞,责任在谁?这些问题目前没有答案。

还有质量问题。AI 生成的代码在功能上可能是正确的,但在可维护性、安全性、架构一致性上可能不达标。一个开源项目如果被大量 AI 生成的低质量 PR 淹没,维护者的工作量不是减少了,而是增加了。Linux 内核社区已经开始讨论如何处理 AI 生成的补丁,态度相当谨慎。

新的张力

自由软件在 AI 时代面临的最大悖论,可能不是上面这些老问题,而是一个全新的张力。

AI 公司用海量的开源代码训练模型。GitHub 上的公开代码、Stack Overflow 的问答、开源项目的文档,都是训练数据的一部分。这些数据中有大量是 GPL 或其他 copyleft 许可证下的代码。但训练出来的模型本身是闭源的。你不能查看模型的权重,不能修改它的行为,不能自由分发它。

这算”自由”吗?

从法律角度看,目前的共识倾向于”训练不构成衍生作品”,所以 GPL 的传染性条款不适用。但从自由软件运动的精神来看,这是一个巨大的讽刺:自由软件社区几十年积累的代码资产,被用来构建了人类历史上最封闭的软件系统之一。你贡献了代码,AI 公司拿去训练了模型,然后把模型卖给你,你对模型没有任何控制权。

Stallman 在 1983 年反对的就是这种不对称:有人用你的劳动成果构建了你无法控制的系统。四十多年后,同样的模式以更大的规模重演了。

这个张力催生了一些新的尝试。有人在推动”开源 AI”的定义,要求模型权重、训练数据、训练代码都公开。Meta 的 LLaMA 系列走了半开放路线(权重公开但有使用限制)。也有人在探索新的许可证框架,试图把 copyleft 的理念延伸到 AI 模型领域。但这些尝试都还在早期,远没有形成共识。

开发者的世界正在变

抛开宏大叙事,对普通开发者来说,coding agent 对开源生态的影响已经在发生。

贡献方式在变。以前给一个开源项目贡献代码,你需要 fork、clone、搭环境、读代码、写补丁、提 PR、等 review。这个流程可能需要几天到几周。现在,越来越多的开发者用 coding agent 来加速这个过程:让 AI 帮忙理解代码库、生成初始补丁、甚至帮忙写测试。GitHub 上已经能看到明显的趋势,PR 的数量在增加,但平均质量的方差也在增大。

项目维护方式在变。一些项目开始用 AI 做初步的 PR review(检查代码风格、跑测试、识别常见问题),把人类 reviewer 的精力留给架构决策和安全审查。这是一个合理的分工,但也意味着维护者需要新的技能:不只是写代码和 review 代码,还要管理 AI 工具链、制定 AI 贡献的质量标准。

Fork 的意义在变。在 coding agent 之前,fork 一个大型项目基本上是一个”核选项”,意味着你要承担独立维护一个复杂代码库的全部成本。很少有 fork 能长期存活。但如果 coding agent 能大幅降低维护成本,fork 可能变得更可行。这对自由软件是好事(”fork 的自由”变得更实际),但对项目治理可能是挑战(分裂变得更容易)。

选择许可证的考量在变。如果你相信 coding agent 会让代码的组合和复用变得更频繁,那么选择一个允许自由组合的许可证(无论是 MIT 还是 GPL)就比选择一个限制性许可证更有战略价值。反过来,如果你担心 AI 公司免费使用你的代码训练模型,你可能会倾向于更严格的许可证,甚至是专门针对 AI 训练的新型许可证(比如已经出现的一些 “AI-restrictive” 条款)。

自由的新含义

回到最初的问题:coding agent 真的能让自由软件重新崛起吗?

我的判断是:不会以原来的形式崛起,但”自由”这个概念会以新的方式变得重要。

Stallman 时代的自由软件运动关注的是”你有没有权利查看和修改源码”。在 coding agent 时代,这个问题的答案变了——不是因为法律变了,而是因为”有权利”和”有能力”之间的鸿沟被 AI 填平了。当任何人都可以借助 AI 理解和修改代码时,源码是否开放就从一个原则问题变成了一个实际问题:开放的代码能被 AI 更好地利用,闭源的代码在 AI 面前的壁垒在降低。

新的”自由”问题不再只是关于源码,而是关于整个 AI 技术栈。你能不能控制你使用的 AI 模型?你的数据是怎么被使用的?AI 做出的决策你能不能审计和修改?这些问题比”源码是否开放”更复杂,也更紧迫。

自由软件运动最有价值的遗产,可能不是 GPL 许可证或者 GNU 工具链,而是它提出的那个根本问题:谁控制你使用的技术?在 AI agent 时代,这个问题比以往任何时候都更值得认真对待。

滚动至顶部