Theo 解读 Scion:Anthropic 面向智能体规模的源代码管理系统

原标题Theo Explains Scion, Anthropic’s Source-Control System for Agent-Scale Work

深入了解服务端变更集、分层缓存、迁移结果,以及定制 Git 替代方案的适用边界。

TBTheo Browne讲者 · Ping Labs
频道
Theo - t3․gg
发布
2026年10月16日
视频
48:04
阅读
12 分钟
幻灯片
5
原文
英语
在 YouTube 打开
往下滚动阅读时,视频会缩到右下角继续播放。字幕跟随阅读语言。
阅读语言共 2 种语言可读
由 AI 从英语原文翻译。打开“对照原文”可以逐段核对。
摘要

30 秒看懂

Theo Browne 解读 Anthropic 对 Scion 的介绍。这套源代码管理系统面向其超大型单体仓库和大量智能体工作负载。他解释客户端与服务器设计、变更集、派生数据和缓存分层,并讨论公司报告的性能与迁移结果。他也讨论人工审查和测试,同时指出 Anthropic 并不把 Scion 定位为通用 Git 替代品。

  1. 1特殊规模带来的问题Anthropic 报告称,主分支历史接近 100 GB,CI 每天约检出 2500 万次。合并频率上升后,既有 Git 权宜方案越来越难以运营。
  2. 2服务器端源代码管理Scion 将历史、提交和合并操作放在服务器,客户端使用较小的缓存,作业可以通过 API 查询。
  3. 3分层缓存节点本地守护进程、区域缓存和权威服务器共同提供不可变对象,并隔离故障。
  4. 4工程师仍需掌舵Anthropic 描述了人类在设计约束和审查中的责任,包括对智能体导致的过度设计提出异议。
  5. 5不是通用替代品Anthropic 表示,该设计适合异常庞大、在线且智能体密集的单体仓库,并依赖定制的周边系统。

要点建议

  1. Scion 假设大多数客户端在线,并将历史查询、提交和合并放到服务器端。
  2. 内容寻址对象、派生索引和分层缓存让客户端只请求需要的数据。
  3. Anthropic 报告的速度和基础设施收益只针对其单体仓库与工作负载。
  4. 智能体能加快实现,但工程师仍要设定约束、评估审查意见并设计验证。
  5. Scion 是定制基础设施,不是普通项目中可直接替换 Git 的产品。
全文

按章节阅读整理后的全文

只看原始文稿
01

为什么重新思考源代码管理?

Theo 将智能体驱动的并行工作与源代码管理摩擦联系起来,并介绍 Anthropic 报告的迁移。

我在开始写代码之前就已经使用 Git,但我的开发方式已经改变。Git 和 GitHub 的发展围绕的是成本高昂的人类代码修改与人工审查。当许多智能体并行工作时,我开始发现托管平台和底层源代码管理流程都存在摩擦。

Anthropic 描述了另一种应对方式:自研源代码管理系统 Scion。该公司表示,每日合并的改动从 5 月约 2500 个增长到 9 月超过 3 万个,并在五个月内完成了单体仓库迁移。这是一个针对特殊工作负载重新思考基础设施的案例。

Anthropic 认为,编码本身已不再是主要瓶颈;源代码管理、构建和 CI 越来越成为瓶颈。我把相关目标称为降低合并按钮的风险:改动进入前进行验证,之后限制影响范围,用较小用户群测试版本,并让回滚变得可行。

在自己的 T3 Code 项目中,我最近一次工作就合并了 50 多个 PR,并使用 nightly 版本在更广泛发布前测试结果。这是我在自己项目中的经验,不是适用于所有团队的标准。周围的验证措施和撤销错误版本的能力,是我能够这样工作的关键。

02

先例与 Anthropic 的规模

大型组织此前就构建过定制源代码管理流程。Anthropic 描述了异常庞大的单体仓库和检出量。

大型组织自建源代码管理系统并非史无前例。Meta 围绕 Mercurial 和堆叠变更构建了系统;Graphite 等工具又把其中一些工作流带到 GitHub。大型仓库和特殊流程可能使不同于行业默认的选择变得合理。

Anthropic 表示,它在构建 Scion 的同时,还开发了代码审查服务 Antique、代码搜索、访问控制和其他基础设施。文章重点介绍 Scion。公司承认,其大量依赖智能体的工作负载比较特殊,但预计随着更多组织使用编程智能体,类似压力会逐渐出现。

普通的 Git 克隆是自包含的:可以离线读取历史、计算差异并工作。Anthropic 表示,其主分支历史接近 100 GB,压缩后的工作副本超过 25 GB,CI 每天大约执行 2500 万次检出。如果简单地每次都拉取全部数据,每天会产生超过 600 PB 的流量。

Anthropic 的单体仓库工作负载
幻灯片 1 / 5Anthropic 的单体仓库工作负载展示的文章描述了仓库规模和每日检出量。

浅克隆、稀疏检出、镜像和仓库快照都曾有所帮助,但 Anthropic 说,最终它需要运营数百个镜像,而且随着合并频率上升,运营变得困难。快照逐渐落后于主分支最新状态,部分克隆上依赖历史的操作也需要更多维护。公司实际上是在把分布式系统当成集中式系统使用。

03

Scion 的设计原则

系统假设客户端在线、集中执行操作并提供 API。稀疏且可选的工作副本避免获取不必要的数据。

它的客户端主要是本来就需要网络连接的智能体和作业。因此 Anthropic 提问:如果明确假设服务器始终可访问,源代码管理会是什么样?这个假设适合其工作负载,却放弃了 Git 对许多其他仓库很有价值的特性:本地离线工作。

Scion 的客户端和服务器职责不对称。服务器回答历史与 blame 查询、创建提交,并执行合并和 rebase;客户端维护有大小限制的本地对象缓存、在磁盘上布置文件并监控工作副本。客户端能独立完成的计算更少,但本地需要保存的数据也少得多。

同样的源代码管理操作也通过 API 暴露。需要合并基点或差异的 CI 作业,有时可以直接询问服务器,不必维护自己的仓库。Anthropic 表示,这让自动二分查找和回滚管道等内部工具能够在其规模下实际运行。

Scion 将仓库数据分布存储,使各组件可以独立扩展。该设计避免在每台服务器上物化完整仓库,也不使用 Git 式的 pack 文件。Anthropic 希望创建提交和处理后续数据的成本随改动大小增长,而不是随整个仓库大小增长。

提交、rebase 和合并都在服务器执行,因此本地提交之后不需要再单独 push。工作流不鼓励使用除 main 或发布分支以外的大多数 ref,以减少共享可变状态。目标是让创建变更既廉价又增量化,而不必让大量并行智能体等待同一把锁。

工作副本不是必需的。作业可以只请求差异,或通过 API 完成某些写入。稀疏检出只请求选定目录;虚拟化检出则按需物化文件。每天检出数百万次时,避免获取不需要的文件可以产生很大差异。

04

变更集与派生数据

Scion 记录变化的文件和内容寻址对象,再为历史及其他查询构建派生索引。

工作单元是 changeset,即预写日志中的一条记录。Git 提交通常指向完整的树;Scion 的 changeset 则列出相对于第一父节点发生变化的文件,并通过内容寻址指针指向对象存储中压缩后的文件内容。服务器负责创建 changeset。

Scion 变更集的结构
幻灯片 2 / 5Scion 变更集的结构文章展示了元数据和指向文件内容的链接。

这种方式让系统无需重新打包仓库,也不必让每台服务器围绕 ref 移动进行协调,就能接收变更。changeset 记录了哪些内容改变,但它本身不能高效回答所有历史查询。Scion 因此另建数据结构,用于 blame、路径历史和提交图遍历。

Anthropic 将这些结构称为派生数据。每一种类型都根据 changeset 父节点的值递归计算。系统可以添加新类型、选择预先计算或按需计算,并在不改变客户端的情况下优化实现。Anthropic 表示,它已添加复制检测和按路径搜索文件等索引。

API 边界在这里很重要。拥有完整本地 Git 仓库的客户端可以直接查看数据;使用服务器 API 时,服务端则可以在接口后面优化查询和索引。代价是客户端依赖服务,以及服务选择暴露哪些操作。

05

对象服务与缓存

客户端通过分层缓存请求缺失的树和 blob。Anthropic 报告了针对自身工作负载的大幅收益。

一小组 Scion 服务器回答 changeset、差异和合并基点等查询。数据按内容寻址且不可变:一个对象存储之后,缓存可以复用它,无需互相协调来检查内容是否改变。服务器可以计算派生数据,并将结果写回 Spanner。

针对文件内容和工作副本,Scion 使用自己的获取协议。客户端不是向服务器说明自己已经拥有的全部内容,而是请求缺失且确实需要的树,然后请求 blob。每个对象都能独立寻址,因此请求可缓存、可恢复,不需要一次返回巨大的 pack 文件。

在计算集群中,一个守护进程在同一节点的作业之间共享对象缓存,并从定期刷新的快照启动。区域缓存服务器按守护进程使用的格式流式传输对象。缺失对象时,请求可以到达权威 Scion 服务器,再由后者访问 Spanner 和云存储。

守护进程、区域缓存和服务器使用相同的 RPC,但系统有意采用分层拓扑来隔离故障。Anthropic 希望区域缓存故障不会压垮权威服务。开发者机器使用区域缓存;CI 和集群作业则可以受益于节点本地守护进程。

Scion 检出架构
幻灯片 3 / 5Scion 检出架构图中展示客户端、节点本地守护进程、区域缓存和权威存储。

Anthropic 报告说,每一层的缓存命中率都超过 99%。在其环境中,Scion 的 CPU 和内存占用比旧的 Git 镜像基础设施小 200 倍;CI 和研究作业的检出时间从分钟缩短到秒,CI 的 CPU 容量提升了 25%。这些是公司针对自身工作负载报告的结果,不是适用于所有 Git 仓库的基准。

这是针对特定约束构建系统的例子。我自己的 Lust 实验希望让 Rust 的一个子集更快地编译,以满足 TypeScript 重写项目的需要。它并不打算适用于大多数 Rust 项目。定制方案之所以有用,恰恰可能是因为它不需要解决所有情况。

06

构建和审查系统

Theo 讨论 Anthropic 报告的迁移、模型辅助开发,以及工程师和测试继续发挥的作用。

Anthropic 表示,它早期主要手写了 Git 到 Scion 的数据导入原型,后来请内部 Claude 模型重写。公司报告称,重写版本在保留必要不变量的同时,内存消耗减少 20 倍、速度提高 4 倍。这是内部比较,并不能证明每次重写都会获得同样提升。

该公司说,七位工程师在五个月内构建了 Scion 和 Antique,并迁移了多个相关系统。我把它看作切换成本降低的例子:过去更换供应商或自建定制方案可能消耗过多工程时间,现在某些情况下变得可行。

例如,我构建了一个管道,将分析数据镜像到自己管理的 ClickHouse 和 R2 中;我说对于自己的需求,它便宜了十倍以上。我自己的 CI 分析还估计,等待 Git 检出花费了近 1000 小时,CPU 租用费用约为 350 到 600 美元。这些数字只适用于我的测量和假设。

Anthropic 强调,即使 Claude 编写了大量代码,工程师仍然有价值。工程师需要作出系统层面的决策,有时还必须对模型说“不”。文章提到,智能体可能违反约束,或在有合适服务可以回答问题时尝试进行昂贵的线性扫描。

对抗式模型审查可以发现问题,也可能带来范围膨胀或不必要的防御性复杂度。Anthropic 说,其团队仍审查每一项变更请求,但重点看改动意图,而不是逐行阅读所有代码。Theo 认为,人类仍需要判断实现和审查意见是否合理。

该公司介绍了大量测试,包括隔离的模拟、模糊测试和限流,并表示 Claude 发现了算法优化。我觉得让智能体构建模糊测试器并调查失败十分惊人,但这些实践仍依赖于选择有意义的不变量并评估结果。

07

性能、访问与运维

Anthropic 报告了命令耗时、目录级权限和智能体辅助监控。Theo 讨论其含义。

源代码管理命令耗时
幻灯片 4 / 5源代码管理命令耗时Anthropic 比较了其开发者和智能体环境中 Git 与 Scion 的操作。

Anthropic 展示了其单体仓库的命令耗时。图表报告,开发者环境中的拉取、检出、rebase 和 status 更快,智能体环境中新建 worktree 则快了 84 倍。不同操作和环境的提升倍数不同;这些数字描述的是此次特定迁移。

Scion 还支持仓库级和目录级权限,审查工具能够针对不同类型的改动表达审批约束。我对更细粒度的访问控制感到兴奋,但关于审查规则应该如何实现的批评只是我的看法。安全仍取决于权限是否得到正确配置和执行。

Anthropic 表示,它在传统告警之外,还使用能够访问遥测数据和日志的 Claude“超级粉丝”来观察各个组件。公司称,这些智能体能注意到细微或新出现的问题。这种监控是对传统运维实践的补充,而不是替代。

08

重新审视工作流假设

讨论转向合并队列、恢复能力和 Scion 的适用边界。Anthropic 分享了 Git 平台可能借鉴的经验。

对我来说,更大的教训是重新审视那些在人类规模下合理的假设。工程师往往偏好熟悉的工具,因为过去迁移成本高,新系统也可能令人失望。了解旧设计为何有效很有用,也应帮助我们识别哪些不同的工作负载需要另一种设计。

合并测试与适用范围
幻灯片 5 / 5合并测试与适用范围文章介绍合并后、部署前的测试,并解释 Scion 为什么不是通用 Git 替代品。

Anthropic 表示,全局锁式合并队列无法满足其智能体规模的吞吐量,因此它投入了合并后、部署前的自动化测试。并发改动仍可能发生冲突。我主张在改动进入前进行适当验证的同时,也降低错误改动进入后的损害和恢复时间。

我想过,合并队列是否可以收集已批准的工作,再让智能体分组组合变更并解决冲突。这是我的设想,并不是说 Anthropic 已经这样实现。共同的问题是,如何让大量独立改动持续推进,同时不忽视失败的后果。

Anthropic 明确表示,Scion 不是通用的 Git 替代品。它的方案针对极其庞大的单体仓库和异常高的智能体吞吐量,而且该公司的内部推理预算也不典型。不同团队对可用性、离线工作、安全和迁移的要求各不相同。

Scion 还依赖定制的审查、搜索和 CI 系统,这使公开发布后的采用十分困难。Anthropic 表示,它分享的是设计思路,而不是一套开箱即用的产品。我对其内部产品讨论有所猜测,但公司给出的理由是集成和迁移负担。

该公司建议,Git 平台可以不放弃 Git,也吸收其中一些经验:采用不同的服务器架构、提供更丰富的服务端 API、改进协商协议,以及让稀疏和浅克隆功能更好地组合。它肯定了 Git 社区多年扩展平台的工作,并称自己的贡献范围更窄。

不久前,这样的项目对我来说还会显得不可思议。现在它展示了一个实际问题:工具中的哪些假设适合我们的真实工作负载,哪些值得重新审视?Scion 之所以值得深入研究,正是因为它让这些取舍清晰可见。

同频道的其他文章

5 张幻灯片36:07EN → 简体中文
Theo - t3․gg· 2026年10月27日Theo 谈 Token 成本、编程智能体与 AI 能力的价格Theo Browne · Ping Labs一则关于 Lauren 的 AI 支出估算广泛传播,引出了对缓存计价、基准测试和编程智能体工作方式的讨论。AI cost & performance编程智能体Inference+1
5 张幻灯片30:37EN → 简体中文
Theo - t3․gg· 2026年10月26日Theo 的三个技能:用编程智能体审查和交付代码Theo Browne · Ping Labssol-loop、full-send 和 full-stop 如何定义审查、验证以及不同程度的合并权限。Agent skills编程智能体Code review & verification+2
2 张幻灯片0:43EN → 简体中文
Theo - t3․gg· 2026年10月23日Theo 区分安全漏洞与实际攻击Theo Browne · Ping Labs一段简短讲解:软件漏洞披露和攻击事件为何属于不同类型的安全新闻。CybersecuritySoftware engineering
6 张幻灯片29:22EN → 简体中文
Theo - t3․gg· 2026年10月22日Theo 谈安全漏洞、被盗 API 密钥与 AITheo Browne · Ping Labs从漏洞披露到补丁部署之间的风险窗口,以及被盗推理密钥为何可能有价值的推测。CybersecurityAI securitySoftware engineering+1
4 张幻灯片31:13EN → 简体中文
Theo - t3․gg· 2026年10月20日Theo:更聪明的模型为何能帮助更多人Theo Browne · Ping Labs从游戏修改到编译器实验,Theo 重新思考谁能从更强大的 AI 中受益。编程智能体Developer productivityHuman-AI Collaboration+1
4 张幻灯片31:47EN → 简体中文
Theo - t3․gg· 2026年10月18日Theo:向智能体请求结果,再构建它需要的工具Theo Browne · Ping Labs从工具耗时报告、排障手册到数据连接,看提示如何改变产品工程。Prompting & in-context learning编程智能体智能体工程+2