Anthropic 自研版本控制 Scion

2026 年 10 月 13 日,Anthropic 在工程博客发文 Redesigning source control at Anthropic。官文写:公司自研版本控制系统 Scion,约五个月把 monorepo 从 git 全部迁完;同窗口还上线了代码评审面 Antique、代码搜索、源码权限体系,以及大批量已审代码如何合入落地等,本文焦点是 Scion。做 Scion、Antique 及相关系统的团队大约七人。
核心数字按官文口径:2026 年 5 月日均合并约 2,500 次,到 9 月日均超过 30,000 次,涨幅十倍多;合并需求几乎无限。官文配图旁的峰值说明里,有一天(9 月 9 日)标到 30,401 次合并——这是配图标注,本文未另做独立核验。
对用 agent 写代码的人,这篇更像一份「瓶颈挪到哪」的现场记录。官文写:编码本身已不再是瓶颈,瓶颈落到为人规模设计的源码管理、构建和 CI。

图:日合并量(2026 年 1–9 月)。来源:Anthropic Engineering · 2026-10-13;峰值 30,401 为配图标注。
压力从哪来
Anthropic 的 monorepo 体量,官文给了几组硬数字:仅主分支历史就近 100GB;压缩工作副本超过 25GB;仅 CI 每天约 2,500 万次 checkout(还不含开发机、agent 沙箱和研究任务)。若按朴素全量去拉,官文估到每天数百 PB 级 git 流量(原文写超过 600 PB)。
他们试过浅克隆、稀疏检出、promisor、内部镜像、仓库种子快照等常见手段。高峰时内部 git 镜像到过几百台。镜像买来了时间,但合并速率上去之后,种子快照越来越跟不上主分支最新提交;依赖历史的 diff、blame 在部分克隆上也不好伺候。

图:典型 git 镜像扩展架构。来源:Anthropic Engineering · 2026-10-13。
官文的判断是:他们其实一直把 git 当集中式权威在用,而绝大多数客户端是 agent 和任务,本来就在线。为离线分布式设计的那套完整本地副本,反而拖累规模扩展。
设计原则
官文列了几条与 git 不同的出发点(文中也提到可参考 Google Piper、Meta Sapling 的经验):
- 客户端默认在线。 不为「断网也能完整干活」预留完整仓库副本,需要时向服务端取数据。
- 客户端与服务端不对称。 历史、blame、提交、合并、rebase 等由服务端做;客户端维护有界本地对象缓存、铺开工作副本、监视文件系统变化,并提供好用的操作入口。
- 源控服务用接口驱动多类应用。 许多 CI 不必先 checkout:问「谁改过这行」「两个提交什么关系」可以直接调接口。
- 整层可横向扩展。 仓库数据分布式存放;任何地方都没有完整实体副本,也没有 git 那套 packfile 维护。
- 提交要便宜、增量、无锁。 创建提交、rebase、合并都在服务端发生;成本应按「这次改了多少」缩放,不能按整个仓库大小计。全局分支/标签一类共享状态尽量少碰,以免成为扩展瓶颈。
- 工作副本可选,且默认稀疏、可虚拟化。 能不问磁盘就不问;真要文件落地时,只为实际读到的路径付成本。
数据结构上,工作单元叫 changeset:相对第一父记录变更文件列表,外加内容寻址的 blob 指针;服务端创建后立刻处处可用。changeset 本身答不了 blame、路径历史一类问题,于是再算一层派生数据(blame、路径历史、提交图跳表等),并可按需急算或懒算。官文还写,迁移早期甚至先只答元数据查询,等客户端与协议就绪后再做重量级的文件落地。
架构与收益

图:Scion checkout 分层架构。来源:Anthropic Engineering · 2026-10-13。
客户端链路大致是:命令行客户端 scn → scion-daemon(节点级对象存储)→ 区域内的 scion-cache → 权威 scion-server(读 Spanner 或云存储)。协商协议按「客户端还缺哪些树和 blob」要对象,不必把「我已有什么」整包告诉服务端;任意一层都能答内容不变的对象请求。官文写:各层缓存命中率超过 99%。
各层都响应同一套远程调用,但严格分层,避免区域缓存故障把上游权威服务端一起拖垮。
相对原先的 git 镜像基建,官文报告 CPU 与内存占用大约小 200 倍;CI 与研究任务的 checkout 大约快两个数量级(从分钟级到秒级);仅 CI 一项约多出 25% 的 CPU 容量。客户端与缓存都不必做仓库维护。
他们学到什么
官文把构建窗口与内部可用的 Claude Mythos Preview,以及用来盯系统的 Claude Tag 放在一起讲。举例:当年早些时候手写的 git→Scion 摄入管线,在 Mythos Preview 上重写后,官文写内存大约降到原先的 1/20、速度大约提高到 4 倍,且保留了摄入顺序与数据结构上的隐含不变量。
学习点按官文归纳,大致是:
- 小团队快速交付会更常见。 约七人同时做 Scion、Antique 和一批相关系统,并在五个月内切完,期间日合并量涨了约十倍。
- 工程师价值在高层设计,以及敢对 Claude 说「不」。 官文写:参与者现在会认为 Claude 写代码比自己强;人仍要定问题边界与跨系统取舍,拦住为满足一时模式而违反核心约束的改动,并在对抗式评审里避免过度防御地加复杂。团队仍审每一笔变更请求,重心放在意图上,不必逐行读完。
- 测试与运维。 他们做了各类关键交互的隔离仿真、模糊测试和限流;用 Claude Tag 养了一批「超级粉丝」式 Claude,盯单个组件健康——官文称这类盯法能注意到传统告警显得单薄的细微异常。
- 合并队列与全局锁难在 agent 规模下原样复制。 测试还在跑时,可能已有成百上千笔变更合入。他们更多投向合并后、部署前的自动测试;冲突交给 Claude 修,往往比人先发现还快。
安全面上,官文还写了目录级权限,以及能区分「只改注释」与「敏感逻辑变更」的语义审批,让人审力用在更重的地方。
适用边界
Scion 不适合当通用 git 的替代品。这套假设主要对超大 monorepo 有意义——数万工程师,或大量 agent 在狂写代码。Anthropic 内部可用的 token 预算,也远超一般公司愿意为自研软件花的量。
做成广泛可用的产品同样难:它与 git 差得远,换系统意味着评审、搜索、CI 整套生命周期一起迁;内部组件又高度定制。官方更想分享思路,让人在仍用 git 的前提下借鉴:服务端可以与客户端不对称;可以提供更完整的服务端远程调用;协商协议不必一成不变;稀疏与浅层能力也可以组合得更好。文末致谢写明作者为 Nick G. 与源控团队等。
对我们意味着什么
官文自己也没把它卖成「赶紧把公司仓库换成 Scion」的产品建议。它更像一份提前到达的压力测试报告:当 agent 把合并吞吐拉高一个数量级,为人离线设计的完整本地副本、镜像农场、合并队列全局锁,会先露怯。
对日常还在用 Claude Code、Codex 一类工具的人,更可带走的是验收侧:多写代码不等于多出可上线的软件;瓶颈会滑到源码管理、构建、CI、以及「谁来看意图、谁来拦坏约束」。Anthropic 用小团队加 Claude 把基建重做了一遍,同时承认这套东西难对外产品化。