AIによるコード生成の急拡大でCI負荷が25倍に、Anthropicがテスト影響分析のスケーリング事例を公開
要点
-
Anthropicにおいて、エンジニアが出荷するコード量が過去と比較して8倍に達し、その80%をAIモデル「Claude」が生成していることが明らかになった。
-
コードベース全体のテスト数は10倍に増え、CI(継続的インテグレーション:コード変更を自動でテスト・統合する仕組み)ジョブの実行数は6か月間で25倍に急増した。
-
変更ごとに実行対象のテストを絞り込む「テスト影響分析サービス」が処理限界に直面し、開発パイプラインの遅延要因となった。
-
スペック増強やシャーディングなどの暫定パッチを3度重ねたものの、効果の持続期間が急速に短くなり、アーキテクチャの再設計が必要となった。
-
AnthropicのエンジニアであるSachin Malhotra氏は2026年9月14日、AIエージェントによるコード生成の急増がCI環境に及ぼす負荷と、同社におけるテスト影響分析システムのスケーリング過程を公式ブログで公開した。
-
同社ではAIによるコード作成やPR(プルリクエスト:変更コードの取り込みを依頼する仕組み)レビューの自動化が進んだ結果、CIジョブの実行量が6か月で25倍に急増し、テスト実行を最適化する基盤が限界を迎えたという。
-
同氏は、一時的な対症療法を重ねた経緯とともに、AIネイティブな開発環境におけるスケーリングの教訓を報告している。
AI主導の開発加速とCIへの負荷集中
ブログによると、Anthropicのエンジニアが四半期あたりに出荷するコード量は、2021年から2025年の平均と比べて8倍に増加しているという。
このコードのうち80%をClaudeが作成しており、PRのレビューや承認においてもClaudeが大きな役割を果たしていると説明されている。
エンジニア数の増加自体はわずかな規模にとどまる一方で、コードベース全体のテスト数は10倍に増大した。
コード作成が開発の制約ではなくなり、PRレビューも高速化された結果、6か月間でCIジョブの実行数が25倍へと跳ね上がり、テスト影響分析サービスが過負荷に陥る危機が複数回発生したと述べている。
テスト選定システムの構造とリスナーの遅延
すべてのコード変更に対して全テストを実行する運用は、CIゲートの所要時間が長期化し、コストも増大するためスケールしないとMalhotra氏は指摘する。
また、人間と異なりAIエージェントは無関係なテスト失敗を自律的に判断することが難しいため、適切なテストセットを与えて自己検証を行わせる仕組みが不可欠になるという。
同社では、過去の実行履歴やパッケージの関連性に基づいて、変更ごとに実行すべきテストを決定する決定論的なテスト影響分析(テスト選択)サービスを構築・運用している。
このシステムは主に2つのコンポーネントで構成されている。
- リスナー(listener): すべてのCI実行結果を記録する。
- セレクター(selector): テスト結果の履歴を読み取り、作成されたPRごとに実行すべきテストを決定する。
しかし、毎秒複数のCIジョブが実行されるようになると、リスナーの処理がPRキューに対して追いつかなくなり、遅延が生じ始めた。
AIネイティブな開発環境では、20分のリスナー遅延でも数万件のテスト結果がセレクターに反映されない事態を招くという。
その結果、不具合のあるコードがマージされて他者の環境でテスト失敗が頻発したり、不安定なテストによるマージ停止、修正・追加されたテストが即座に実行されずデグレ(リグレッション:プログラム修正に伴い既存機能に不具合が生じること)を見逃すリスクが生じた。
当初のシステム設計(v0)は、テストごとの履歴を管理するために単一プロセス(単一ライター)で動作しており、水平シャーディング(負荷分散のために処理を分割する手法)ができない構造になっていた。
段階的な3つのパッチと持続期間の短縮
同サービスは前年10月時点で負荷の兆候を示し始め、2日連続でオンコール呼び出しが発生したため、チームは抜本的解決の前に3つの暫定パッチを適用したとしている。
1つ目のパッチは「マシンスペックの強化」で、サービスのCPUコア数を倍増させた。一時しのぎであることは認識されていたものの、この対処により70日間の稼働を維持した。
2つ目のパッチは「パッケージ単位でのシャーディング」である。リスナーの遅延監視のため社内版「Claude Tag」を導入し、遅延が5万ジョブを超えた際に通知を受け取って対策を協議する体制を整えた。2月には、テスト結果の順序性を保つにはリポジトリ全体ではなくパッケージ単位の書き込みで十分であると判断し、Claudeが生成したコードを用いてパッケージごとに状態とワーカーを分割して並列化した。しかし、この修正が稼働を維持できたのは29日間に留まった。
3つ目のパッチは「日次の定期再起動」だった。3月にプロセスの定期再起動を導入したものの、稼働を維持できた期間は1日未満に終わったという。
補足
テスト影響分析(TIA)は、コードの変更箇所から影響を受けるテストのみを自動抽出して実行する技術であり、大規模なコードベースにおいてCIの実行時間と計算リソースを削減する手法として知られている。