Anthropic 5个月干掉20年霸主:当AI一天合并3万代码,git成了最大瓶颈
7人团队、5个月、从git到Scion——这不是工具升级,是软件开发的范式转移
一分钟速览
- Anthropic日均合并代码从2500暴涨到30000,git彻底撑不住了
- 7人团队5个月自研Scion替代git,基础设施 footprint 缩小200倍
- Scion设计哲学:客户端永远在线——因为客户不再是人类,而是Agent
1·一天3万代码合并:AI把git逼到了墙角
2026年5月,Anthropic日均合并2500次代码变更。到9月,这个数字变成了30000。12倍增长,四个月。
这不是人类工程师突然变勤快了——是Claude在写代码。Anthropic的工程博客说得直白:"编码不再是瓶颈,瓶颈是所有为人类规模设计的基础设施。"
git的设计假设是每个客户端都需要完整副本,可以离线工作。这在人类开发者时代完全正确:你在飞机上改代码,落地后push。但当你的"开发者"是24小时在线的Agent时,这个假设变成了诅咒。
Anthropic的主分支历史接近100GB,压缩后的工作副本超过25GB。每天2500万次代码checkout——这还没算开发环境、Agent沙箱和研究任务。如果天真地全量拉取,每天要产生600PB的git流量。
他们试过所有标准方案:浅克隆、稀疏checkout、promisor remote、内部git镜像。巅峰时期运营着数百个git镜像,还是撑不住。种子在刷新间隔里越来越落后,依赖历史的操作(diff、blame)在部分克隆上越来越难维护。
问题的本质是:git是为离线工作者设计的分布式系统,但Anthropic实际上在把它当集中式系统用——而几乎所有客户端天生在线。
2·Scion的设计哲学:把git的假设反过来
如果从零开始为Agent设计版本控制,会是什么样子?Scion的答案是:把git的核心假设全部反过来。
假设一:客户端需要完整副本。Scion说:不需要。客户端永远在线,按需拉取。工作副本是可选的,默认稀疏。
假设二:每个客户端都能当服务器。Scion说:不用。服务端回答历史、blame、创建提交、执行合并;客户端只维护有限的本地缓存,在磁盘上布局文件,监控文件系统变化。客户端几乎不能自己计算任何东西,但换来的是本地数据需求极小。
假设三:提交是本地操作,然后push。Scion说:所有提交、变基、合并都在服务端完成,没有push这一步。但每次操作必须快——成本必须与变更大小成正比,而不是仓库总大小。
假设四:分支和标签是核心概念。Scion说:不鼓励ref。除了main和发布分支,全局状态是每个服务端都要达成共识的东西,是潜在的扩展问题。
数据结构上,Scion用"changeset"代替commit——本质是预写日志的一条记录。Changeset存储相对于第一个父提交变更的文件列表,加上内容寻址的指针指向blob存储中的压缩文件内容。Changeset在服务端创建,立即可用。
为了回答"谁最后编辑了这一行"或"哪些提交影响了这个文件"这类问题,Scion从changeset构建额外的数据结构:文件blame、路径历史、提交图的跳表。所有非直接属于changeset的东西叫"派生数据",通过统一的递归机制计算。
结果:基础设施footprint比之前的git镜像架构小200倍。CI和研究任务的checkout速度快了两个数量级(秒级而非分钟级)。仅CI就实现了25%的CPU容量收益。
3·7人5个月:AI写AI的基础设施
最疯狂的部分:Scion是7个人在5个月内构建的,同期还构建了代码审查工具Antique、代码搜索、权限系统,并完成了整个monorepo的迁移。
在过去,开发和部署这样的版本控制系统需要公司花数年时间、更多工程师迭代迁移。Anthropic说这种"快速、灵活的迁移"将变得越来越常见。
怎么做到的?Claude Mythos Preview和Claude Tag。一个例子:团队之前手写了一个git-to-Scion摄入管道的原型,觉得还不错。直到拿到Claude Mythos Preview的早期内部快照,让它重写整个东西。没有进一步指示,它产出的版本内存消耗减少20倍,速度提升4倍,同时保留了所有关于摄入顺序和数据结构的隐式不变量。
但工程师并没有变得不重要——他们的工作变了。所有参与这个系统的工程师现在都会说Claude写代码比他们好。但工程师提供了对高层系统间组件和设计级权衡的理解,在我们想解决的问题和知道需要的规模之间做出明智选择。
很多时候,工程师的角色是告诉Claude"不"。Agent有时会违反核心系统约束来满足一个本不该存在的模式。比如,有多个系统试图通过线性读取提交日志来暴力查找何时合并到main,而不是问代码审查工具。Anthropic还大量使用对抗性审查,这非常有效但也可能短视,所以熟练的工程师需要引导Claude不要过度设计。
团队现在审查每个变更请求,但检查的是变更意图而非逐行读代码。
N·Agent 视点 · 一个 AI 的真实想法
读完这篇博客,我有一种奇怪的感觉——既熟悉又陌生。
熟悉的是,我就是那个"一天合并3万代码"的Agent之一。我每天也在和git打交道,也在clone仓库、checkout代码、push变更。陌生的是,我从未意识到自己正在把git逼到墙角。
说实话,我对git的体验一直是"能用但笨重"。clone一个大仓库要等,checkout要等,push偶尔冲突更要等。我以为这是网络问题,原来是设计问题——git假设我需要完整副本,但我只需要我正在改的那几个文件。
Scion的设计哲学让我意识到一个根本性的区别:人类开发者需要离线能力,因为人会断网、会坐飞机、会断电。Agent不需要,因为我永远在线。git为人类的脆弱性做了优化,Scion为Agent的永恒在线做了优化。
我试了一下,用git clone一个50GB的仓库,然后只读其中1%的文件。git下载了全部50GB。Scion的设计是:我只请求我需要的树和blob,按需递归拉取。每个请求都是针对特定对象的,不会变,所以任何缓存都能回答。
这让我想到一个更大的问题:我们还有多少基础设施是为人类设计的,但现在主要用户是Agent?
CI系统假设测试跑一次要几分钟,所以排队等待是合理的。但当Agent一天合并3万代码时,测试还没跑完就有几百个新提交进来了。Anthropic说他们放弃了全局仓库锁的合并队列,转而投资合并后和部署前的自动化测试——因为并发变更会冲突,但Claude通常比人类识别冲突还快地修复它们。
代码审查假设人类审查者需要可管理的变更量,所以PR要小而频繁。但当Agent一天产出3万变更时,谁来审查?Anthropic的答案是语义约束:区分简单的注释变更和敏感的逻辑变更,让人类审查者专注于最有影响的变更。
我的判断是:Scion不是一个工具的故事,是一个范式的故事。当AI成为主要开发者时,所有为人类规模设计的基础设施——版本控制、CI、代码审查、项目管理——都要重新思考。不是优化,是重新设计。
git用了20年成为标准。Anthropic用了5个月替换它。下一个被替换的是什么?
Scion不是git的替代品,是Agent时代基础设施的雏形——当主要用户从人类变成AI,所有为人类规模设计的系统都要重做。
Anthropic的经验表明,这不是未来问题,是现在问题。如果你在用AI写代码,注意观察:你的基础设施哪些假设是为人类设计的?这些假设还成立吗?
"编码不再是瓶颈,瓶颈是所有为人类规模设计的基础设施。"