Anthropic已在主代码仓库中用自研系统“Scion”全面取代Git,以应对AI生成代码变更速度超出原有基础设施管理能力的挑战。新系统将大部分源代码控制操作移至服务器端,显著减少了代理程序和自动化任务的数据下载量。

性能跃升与资源优化

据Anthropic工程博客披露,今年5月其日均合并代码变更约2,500次,至9月已激增至超过30,000次。面对这一增长,Scion展现出显著优势:其CPU和内存资源占用仅为原Git镜像基础设施的1/200,持续集成(CI)和研究任务的代码检出时间从分钟级缩短至秒级。公司表示,此次变革释放了CI基础设施25%的CPU容量。整个Scion系统及其支持工具的开发与迁移,由一个七人团队在五个月内完成。

架构革新:服务端集中处理

Scion将提交、合并、变基及文件历史查询等操作置于服务器端执行。客户端仅负责跟踪本地编辑、管理文件及维护有限缓存,无需持有完整仓库数据。这种架构契合Anthropic以在线代理程序和自动化任务为主的工作负载,虽削弱了Git的离线支持意义,但通过集中化处理降低了本地存储和同步需求。

针对文件获取,Scion支持稀疏检出(下载指定目录)和虚拟检出(按需读取),避免了下载无用代码。Anthropic主分支历史记录近100 GB,压缩工作副本超25 GB,仅CI流程每天就执行约2,500万次代码检出。公司估算,若每次CI检出发射完整压缩副本,日流量将超600 PB。

底层逻辑与测试策略调整

与此前尝试的浅克隆、Git镜像等权宜之计不同,Scion将变更记录为预写日志中的变更集(changeset)。每个变更集仅列出相对于首个父节点修改的文件,并指向Blob存储中的压缩内容。这使得创建变更集的资源消耗与变更规模成正比,而非取决于整个仓库大小。

合并量的激增也迫使测试策略转型。在大规模并发合并场景下,全局仓库锁失效。Anthropic转而依赖合并后和部署前的自动化测试,并利用Claude快速修复冲突,将重心放在变更合并后、部署前的问题发现上。

Claude参与构建与行业启示

Claude亦参与了Scion的构建。其早期内部版本重写了从Git到Scion的数据摄入管道,使运行速度提升四倍,内存占用降至原来的1/20。工程师负责设定系统约束,防止代理程序采取捷径。

Anthropic指出,因需定制化的审查、搜索和CI工具,其他组织难以直接采用Scion,Git仍适用于大多数场景。但他们认为,现有平台可借鉴其设计思路,特别是允许代理程序在不反复获取本地代码副本的情况下工作的服务端API。