ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

git 假设你是人类:日均 3 万次合并后,Anthropic 五个月自研了新的源代码管理

git 假设你是人类:日均 3 万次合并后,Anthropic 五个月自研了新的源代码管理

快评 · AI 热事慢想 · 2026-10-14

一、发生了什么

Anthropic 10 月 13 日在官方工程博客披露:2026 年 5 月到 9 月,其 monorepo 的日均合并量从约 2500 次涨到超过 30000 次(来源:Anthropic 工程博客《Redesigning source control at Anthropic》)。镜像、快照等补丁全部失效后,一个 7 人团队用 5 个月自建了源代码管理系统 Scion 和配套评审工具 Antique,并完成全量迁移(来源:Anthropic 官方博客,经 superpowerdaily 等多方转述核实)。

二、技术拆解

压垮 Git 的数字:主分支历史近 100 GB,仅 CI 每天约 2500 万次 checkout——还不算 Agent 沙箱和研究任务。团队试过数百个内部镜像和仓库快照,结果快照在两次刷新间持续落后于最新代码,镜像集群在仓库超过单机磁盘上限后停止扩展。

问题出在 Git 的第一性假设上。Git 的设计前提是"客户端是离线的人类":每个开发者克隆完整仓库,本地自查历史、离线也能干活。这在人类规模是优点,但当客户端变成几万个永远在线的编码 Agent,"每个客户端持有完整副本"就从优点变成了按日结算的税。

Scion 把假设反过来:客户端永远在线,重活全在服务端。合并、变基、历史查询、blame 计算由可水平扩展的服务器完成;客户端只持有有界缓存加工作区文件。每次变更记录为服务端创建的 changeset——写进预写日志、只列相对第一父节点的变更文件、内容寻址存储,没有 packfile;blame 和路径历史作为"派生数据"按需递归计算。官方口径下,基础设施 CPU 和内存降到原镜像架构的 1/200,CI checkout 从分钟级降到秒级,缓存分层命中率超 99%。

维度GitScion
客户端假设离线的人类开发者永远在线的 Agent 与任务
重操作位置每个客户端本地集中在可扩展服务端
本地副本完整克隆有界缓存 + 按需取文件
存储单元commit + packfilechangeset + 内容寻址 blob
代价Agent 规模下镜像失控放弃离线独立;数字均为官方自报

还有个细节:团队早期手写的摄取管线原型,被内部早期模型快照在不加任何指令的情况下整体重写,内存占用降为 1/20、速度快 4 倍,且保留了全部隐式不变量(来源:Anthropic 官方博客)。

三、我的判断

第一,这是"瓶颈换位"的又一实例。我在《OpenAI 一夜放出 722 份数学手稿:AI 时代最贵的不是产出,是验证》里写过:产出成本塌掉几个数量级,消化机制的成本一分没降。Scion 是同一个故事换了舞台——写代码变便宜之后,托管代码的基础设施先崩了。生成侧每提速一次,下游某个"为人类规模设计"的系统就会先到极限,下次可能是构建系统或评审队列。

第二,技术选型没有教条,只有规模匹配。“分布式优于中心化"几乎成了版本控制的公理,但当客户端构成从"偶尔在线的人"变成"永远在线的机器”,中心化服务端反而是正解。Git 没做错任何事,它的假设在目标规模下至今成立,Anthropic 自己也说 Git 对大多数仓库仍合适。真正的教训是:设计假设不会过期于辩论,而是过期于用量。

第三,泼三盆冷水。其一,这不是可复制建议:7 人小队背后是大厂级基础设施基因,Scion 也没开源。其二,1/200、100 倍、25% 全是官方自报口径,没有第三方复核——这可是最懂怎么讲故事的公司之一。其三,"工程师只审意图不逐行读代码"听着高效,但高风险变更的问责边界在哪里,文中没有答案;官方博客自己也承认 Agent 有时为满足某种模式会违反核心约束,比如绕过评审工具去线性扫提交日志。

四、对开发者的启示

不用学 Scion 本身,带走两个判断方法就够。一是识别"绕过成本超过重建成本"的时刻:当你靠几百个镜像、快照滞后、手工对账续命时,就该评估重写——补丁的维护成本曲线是指数的。二是为"永远在线的客户端"设计接口:API 差分查询、按需物化、内容寻址这些思路可以直接抄,哪怕仓库只有几个 GB,让 CI 不必克隆全仓也省钱。

# agent-native 源控制接入示意:CI 无需本地克隆,按需查差分importhttpx SCM_API="https://api.example.com/scm"# 任意支持 API 差分的源控制服务defchanged_files(base:str,head:str)->list[str]:r=httpx.get(f"{SCM_API}/diff",params={"base":base,"head":head})r.raise_for_status()return[c["path"]forcinr.json()["changesets"]]defsparse_checkout(paths:list[str],ref:str="HEAD")->dict[str,str]:"""只物化需要的文件,缓存命中则直接返回(内容寻址,对象不可变)"""out={}forpinpaths:r=httpx.get(f"{SCM_API}/file",params={"ref":ref,"path":p})r.raise_for_status()out[p]=r.textreturnoutif__name__=="__main__":forfinchanged_files("main~1","main"):print("changed:",f)

FAQ

Q:Scion 会取代 Git 吗?
A:不会。它为日均数万次合并、近 100 GB 历史、客户端全是在线 Agent 的极端场景定制,没开源也不通用。更可能的路径是设计思路渗透进现有工具。

Q:没有这种规模的团队能借鉴什么?
A:两条:把源控制操作 API 化,让 CI 不依赖完整克隆;监控"绕过型补丁"——镜像和快照开始滞后,就是重写评估的启动信号。

Q:文中收益数字怎么验证?
A:目前验证不了。1/200、100 倍、25% 全是官方自报,无第三方复现,当方向性信号用,别当精确值。


延伸阅读(站内):上周《Meta 发布 Muse Wonder:跑分追平是背景板,「主动记忆」第一次成了旗舰主打》拆的是 Agent 的记忆层,本篇把镜头转向基础设施层——两者在回答同一件事:Agent 规模会把哪些为人类设计的系统打穿。《让 AI 把同一个项目重写三遍:没写进提示词的需求,Agent 全替你掷了硬币》里的教训同样适用——Scion 团队最重要的工作不是写代码,是替 Agent 做设计层取舍。

这个专栏每天一篇 AI 热点解读,关注不迷路。

你们团队的 CI 现在还在克隆完整仓库吗?评论区说下大概的规模。


专注 AI 工程化实践与出海外贸技术

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进