大可的 AI Builder 手记
跟随系统
颜色主题
长沙小桌实战
大可 Dako
大可 Dako大可 DakoAI Builder · Agent 实践者用 AI 做真正能用的产品。专注探索 Agent 工程化落地、Vibe Coding 实践与商业化交付。
内容平台即将上线,敬请期待
瓶颈会沿交付链往下搬01编码不再是瓶颈合并量半年涨十倍,写代码不再是慢环节02本地仓库失效历史近 100GB,每天 2500 万次检出03先量搬没搬看端到端时间卡在哪,别把采用当因果04只回移能用的服务端查询与稀疏检出可以先借✓ 先确认瓶颈搬到基建,再决定动不动这一层
先确认瓶颈搬到基建,再决定动不动这一层。

瓶颈搬了家,才动基建

机器量上来后,交付瓶颈从编码移到版本管理、构建与 CI。先量它有没有搬,再决定动不动这层。

写代码的环节被 agent 压短之后,最先显形的往往是那些按人类节奏设计的工程基建:版本管理、构建、CI。Anthropic 把它们重做了一遍——从 git 迁到自研的 Scion,五个月完成迁移。动因不是 git 不好,是它的设计假设和现在的负载对不上了。

读完你能回答:

  • 凭什么判断瓶颈已经从编码搬到了基建?
  • git 的哪些假设在 agent 规模下反过来成了负担?
  • 哪些做法可以先回移到现有工具,哪些不值得照搬?

编码不再是瓶颈,基建才是

Anthropic 给出的一组自报数据:2026 年 5 月,每天约 2500 次代码合并;到 9 月,每天超过 3 万次。主分支历史接近 100GB,压缩后的工作副本也超过 25GB;仅 CI 每天就要检出 2500 万次——不做任何优化,就是每天 600PB 的传输量。为顶住负载,他们一度同时运行几百个内部 git 镜像 anthropic-source-control。

这些数字说的是同一件事:当编码从慢环节变成快环节,压力不会消失,只会移到下一段。测试选择服务先被压垮(见 让验证速度追上生成速度),接着是版本管理本身。Anthropic 的结论是,瓶颈是「所有为人类规模设计的开发基建」,而不只是某一个工具。

口径要先说清:这是 Anthropic 自己的内部负载,也是孤例规模。一般团队短期内遇不到这个量级——这一点后面单独讲。

旧基建的假设反过来成了负担

Git 是去中心化设计:每个克隆都是一份完整、自包含的仓库,离线也能算 diff、读历史、查 blame、检出任意版本。对绝大多数仓库,这是对的,也是它成为标准的原因。但 Anthropic 发现自己其实是把 git 当中心化系统用——权威副本只有一份,而几乎所有客户端都是按定义始终在线的 agent 和 CI 任务。于是 git 最优秀的那些性质开始反过来拖后腿:

  • 「客户端离线、需要完整副本」:客户端始终在线,本可以按需取用,不必每处都存一整份。
  • 「每个客户端都能当服务器」(客户端-服务端对称):真正需要回答历史、blame、合并、rebase 的是服务端,客户端没必要具备同等能力。
  • 「本地提交、再 push 分享」:大量 agent 持续产出时,共享的 refs 与 packfile 维护成了全局协调点,成本随仓库大小增长,而不是随改动大小增长。

判断的形状很朴素:当一条假设已经和实际用法相反,继续在它上面打补丁,补丁的续命时间会越来越短。这正是 个体提效不等于组织提效 里说的「瓶颈换了位置」——只不过这次换到的不是某个团队,而是版本管理这一层。

反过来设计:始终在线、稀疏检出、提交便宜

Scion 是照着「客户端始终在线」这个前提重新设计的,几条原则互相咬合:

  • 客户端-服务端不对称。 服务端回答历史与 blame、创建提交、执行合并与 rebase;客户端只保留一个有界的本地对象缓存、把工作副本铺到磁盘、监听文件变化。它自己算得很少,换来的是本地要存的数据少得多。
  • 一切都要能水平扩展。 仓库数据是分布的,任何地方都没有一份完全物化的副本,服务端也没有;没有 packfile,于是没有仓库维护。缓存分三层——节点上的 daemon、区域的 cache、权威 server——每层命中率都在 99% 以上,且不依赖长生命周期状态。
  • 提交要便宜、增量、无锁。 单位是一个「changeset」,本质是预写日志里的一条记录:它只存相对第一父的改变文件,加上内容寻址的指针,所以创建提交的开销随改动大小增长,而不是随仓库大小。
  • 工作副本可选,且天生稀疏。 CI 要一个 diff 和它的 merge base,直接问服务端即可,不必检出;真的要落盘时,只取它实际读到的那部分。

对大多数团队,这些原则不必照抄,但有一条可以直接借:服务端不必和客户端同构。一个 git server 完全可以提供更全的服务端查询、把协商改成按对象进行、让 sparse 与 shallow 更好地组合。这些是可以只做加法、不动整体模型的改进。

代价与边界:先量再动

Anthropic 自己划了边界:Scion 不是通用 git 替代品。它只在「超大单体仓库 + 大量 agent 持续产出」时成立;迁过去意味着整条开发生命周期都要换(评审、搜索、CI),而他们这些内部组件高度定制、外部难以采用。加上自认的 token 预算远超一般公司,这套做法的可复制性有限。任何「某家重做了一层」的案例,都要放回它成立的条件里读。

所以真正的动作不是「照着重建」,而是先量:

  1. 端到端交付时间卡在哪一段? 如果等待集中在评审、联调,重建版本管理不会让交付更快;只有当版本管理本身成为明确限制,重建这一层才有充分理由。
  2. 这部分能只做加法吗? 先上服务端查询、稀疏与虚拟化检出、按需拉取,够用就别推倒重来。
  3. 改完之后,谁来证明它做对了?完成标准要能被核对,而不是「迁移完成了」这句话。

组织面也跟着变。Anthropic 的工程师说,agent 写代码已经比他们更好,但他们仍提供系统级取舍的判断——很多时候工作是说「不」,阻止 agent 为了满足某个模式去破坏核心约束。评审也从「读每一行」转向「看这次改动的意图」。他们还承认,agent 规模下「合并队列加全局仓库锁」这套惯例已经不好复现,于是把重心转向合并后与部署前的自动化测试。

基建值不值得动,不取决于它旧不旧,取决于瓶颈是不是真的搬到了这里、以及改动能不能被核对。先把这两点量清楚,再决定动不动这层。

参考资料

  1. Redesigning source control at Anthropic