主な内容
▶ Anthropicは最近、エンジニアリングブログで独自のコード管理システム「Scion」を開発し、開発者の標準ツールであるGitを5カ月で置き換えたと明らかにした。
▶ 理由はコードの量だ。Anthropicが1日にマージするコード変更は、5月の平均約2,500件から9月には3万件を超えた。Claudeが人間に代わってコードを書くようになり、人間の速度に合わせたツールでは対応できなくなった。
▶ これまでに蓄積されたコード変更の記録は100GB、1日のコードダウンロード回数は2,500万回に達する。Gitの複製サーバーを数百台用意しても足りなかった。Scionは「利用者が常に接続している」ことを前提に、サーバーがすべての計算を担い、必要なファイルだけを配信する。
Anthropicは最近、エンジニアリングブログで独自のコード管理システム「Scion」を開発し、開発者の標準ツールであるGitを5カ月で置き換えたと明らかにした。(写真=ソリューションニュースAI画像を使用)

Anthropicが、世界中の開発者が使う標準ツールGitを捨てた。
Anthropicは13日(現地時間)、最近エンジニアリングブログで独自のコード管理システム「Scion」を開発し、会社全体のコードを5カ月で移行したと明らかにした。理由があった。AIがコードを書く速度に、人間向けのツールが追いつけなくなったのだ。
Gitは2005年、Linuxを開発したリーナス・トーバルズが作ったコード管理ツールだ。誰がいつ、どの行を修正したかを記録し、複数人が変更したコードを一つにまとめる。
世界中の開発者の大半が利用しており、GitHubやGitLabなどのサービスもGitを基盤としている。Anthropicは、自社の規模ではGitがもはや適さないと判断した。
◆ わずか4カ月で12倍、1日3万件
Anthropicは、コーディングがもはやボトルネックではないと説明した。Claudeは自ら研究実験を行い、複雑なプログラムを修正し、新しいサービスをゼロから構築する。ボトルネックは、人間の速度に合わせて作られた開発基盤、つまりコードリポジトリ、ビルド、自動テストへと移った。
Anthropicは会社全体のコードを一つのリポジトリに保存している。そこに1日でマージされるコード変更は、5月の平均で約2,500件だった。9月には3万件を超え、わずか4カ月で12倍になった。Anthropicによると、コードをマージしたいという需要は事実上尽きることがなく、ボトルネックを一つ解消するたび、すぐにさらに多くのコードが流れ込んできたという。

リポジトリの規模も対応しきれなくなっていた。コードを修正するたびに残る変更記録は、主要な開発ブランチだけで約100GBに達し、現在のコードを圧縮したコピーも25GBを超える。自動テストがコードをダウンロードする回数は1日2,500万回だ。
開発者の作業環境やAIエージェントの作業スペース、研究作業は含まない数字だ。Git方式でそのままダウンロードすると、1日に600PB(ペタバイト)のデータが行き交う。AnthropicはGitの複製サーバーを数百台稼働させて対応していたが、マージ件数が増えるにつれて運用は難しくなった。
◆ Gitは個人向け、ScionはAI向け
Gitでは、複製された一つひとつが完全なリポジトリとなる。インターネットに接続できなくても変更履歴を確認し、バージョン間の差分を計算できる。ノートパソコンを持ち歩き、一人で作業する開発者に適した設計だ。
しかし、Anthropicのリポジトリを利用するのは、ほぼすべてAIエージェントと自動処理であり、これらは常にサーバーに接続している。オフライン利用を前提とした設計が、かえって足かせになった。

Scionは前提を覆した。利用者が常にサーバーに接続できると想定し、変更履歴の検索や新たな変更履歴の作成、マージといった負荷の大きい処理はすべてサーバー側で行う。利用者は必要なファイルだけをダウンロードしてディスクに保存し、変更を確認する。リポジトリ全体のコピーはサーバーにも置かない。データは複数のサーバーに分散され、どの構成要素も個別に拡張できる。
コード変更を一つ記録する際のコストも、リポジトリ全体のサイズではなく、変更量に比例するよう設計した。これにより、サーバーは1日3万件の変更を処理できる。自動テストではコードを丸ごとダウンロードせず、サーバーに「この二つのバージョンの差分は何か」と問い合わせて、回答だけを受け取る。ファイルが必要な場合も、読み込むフォルダーだけを取得する。
超大規模リポジトリ向けシステムとしては、Googleの「Piper」とMetaの「Sapling」が先行していた。Anthropicは、これらの経験を参考にしたと明らかにした。

◆ サーバーリソースは200分の1、ダウンロードは数分から数秒に
Scionのサーバーリソースは、従来のGit複製サーバーの構成と比べ、CPU・メモリーを基準に200分の1となった。自動テストや研究作業でコードをダウンロードする時間は、数分から数秒に短縮された。
自動テスト用サーバーの容量には25%の余裕が生まれた。各段階でキャッシュがリクエストを直接処理する割合は99%を超える。
AnthropicはScionに加え、コードレビュー・ツール「Antique」、コード検索、アクセス権限の仕組みも同じ期間に開発した。携わったのは7人だ。Anthropicは、以前ならはるかに多くのエンジニアを投入し、数年かけて取り組む仕事だったと説明した。

◆ AIは人間よりコードを書くのがうまい
Anthropicは、Claudeが問題を引き起こした張本人であると同時に、解決者でもあったと説明した。Claudeが大量のコードを書いたことでGitが対応しきれなくなった一方、そのClaudeを使って新しいシステムを迅速に作り上げたという意味だ。
実際の事例がある。GitにあったコードをScionに移行するプログラムが必要だった。今年初め、Anthropicの開発チームが手作業で作ったものは、十分な出来だと考えられていた。しかし、社内で使い始めたばかりのClaude Mythosの初期バージョンに「これを作り直して」とだけ伝えて任せた。
その結果、メモリー使用量は20分の1になり、速度は4倍になった。データをどの順番で移行すべきかといった、説明書にも記載されていないルールまで自ら守った。
Scionを作ったエンジニアたちは、口をそろえてClaudeのほうが自分たちよりコードを書くのがうまいと認めた。だからといって、開発者の仕事がなくなったわけではない。システム同士がどう連携するか、どの設計を選ぶか、どの規模まで対応できるようにするかといった全体像は、人間が決めた。
Anthropicによると、現在もClaudeが修正したコードはすべて開発者が確認している。ただし、以前のように一行ずつ読むのではなく、なぜそのように変更したのか、方向性が正しいかを確認するという。
Claudeがコードを速く書くようになったため、テストも増えた。Anthropicは、Scionは自社が作ったコードの中でも特に検証を重ねたものの一つだと説明した。Claudeは、専門家が数日から数週間かけて調べなければ見つけられないような性能改善点を発見し、翌日にはまた別の改善点を見つけた。
システムの監視もClaudeに任せた。チームは社内メッセンジャーのSlackに複数のチャンネルを設け、それぞれにClaudeを一つずつ配置した。
各Claudeは一つの構成要素だけを担当する。一日中、その構成要素の状態を示すグラフや記録だけを見続け、異常があれば知らせる。やることがなく、ひたすらチャートを更新し続けるベテランエンジニアのようだとして、「スーパーファン」と呼んでいる。従来の自動アラートが見逃す微妙な異常を検知するとAnthropicは説明した。
◆「6~12カ月以内に他社も直面する」

AnthropicはScionを他社に提供するつもりはないとした。Gitを置き換えるためのものではないという。
エンジニアが数万人規模だったり、AIが大量のコードを書いたりする会社でなければ導入する理由はなく、使うにはコードレビューや検索、自動テストのツールまで一括して置き換える必要がある。すべての人に合わせようとして、誰にとっても役に立たないものになることを懸念しているとも述べた。
Anthropicは、自社が特殊なケースであることも認めた。社内でClaudeを稼働させるための費用は、他のどの会社も負担できないほどの水準にある。開発を速める目的もあるが、Claudeに何ができるのかを試す目的もあるという。
それでもAnthropicは、6カ月から1年以内に、AIでコードを書く他社も同じ壁にぶつかると予想している。その時に各社が一から個別に考えるのは無駄だとした。
そのため、Scionの開発で得た知見のうち、Gitにも応用できるものを共有すると説明した。GitHubやGitLab、オープンソース・コミュニティーと協力して取り組むという。
Anthropicによると、Gitを使い続けながらサーバー側の仕組みを変えることもできる。開発者のコンピューター上のGitと会社のサーバー上のGitが、必ずしも同じように動く必要はないという。
GitHubやGitLabに、「このコードを誰が修正したのか」「二つのバージョンの差分は何か」といった質問をサーバーに問い合わせ、すぐに回答する機能を標準で組み込むことも提案した。現状では、こうした質問に答えるにはコード全体をダウンロードしなければならない。
一般的な企業では、コードをマージする前にテストを実行し、テストが終わるまでほかの人のコードは順番待ちになる。
Anthropicは、1日に3万件の変更がマージされる状況では、そのように順番を待たせることは不可能だったと説明した。テストが一つ終わる間に、数百から数千件がマージされるためだ。そこで、マージ前ではなく、マージ後とデプロイ直前にテストを実行する方式に変更した。
同時に取り込まれたコード同士が衝突することもあるが、人間が衝突に気づく前にClaudeが修正しているという。