AI coding infrastructure
エージェントによるコーディングでAnthropicのCIジョブが半年で25倍に、テスト選択サービスはステートレス化を迫られる
Anthropicではテスト数が10倍に増え、単一の書き込みプロセスに依存していたテスト影響分析サービスが次第にPRの処理ペースに追いつけなくなった。新版では、プロセス内状態を水平方向にスケール可能なlistener、ログ、独立した集約器に置き換えたが、コストや選択漏れ率などの重要なデータは依然として公開されていない。

Anthropicは9月14日、社内の継続的インテグレーション(CI)システムを拡張した経験を公開した。エージェントがコードを大量に作成、レビュー、提出するようになって以降、CIジョブ数は6カ月で25倍に増え、テスト総数も10倍に拡大したという。同社はまた、マージされるコードの約80%をClaudeが作成しており、エンジニアのアウトプットは2021~2025年の平均の8倍に達したとしている。ただし、これらはいずれも外部監査を受けていない社内統計であり、コード行数を生産性と直接同一視することもできない。
実際に機能不全に陥ったのは、テスト影響分析サービスだった。旧版では、listenerが各CI結果を順番に記録し、selectorが過去の失敗履歴とパッケージ依存関係に基づいて、各PRで実行すべきテストを決定していた。各テストの履歴状態が単一プロセス内に保持されていたため、書き込みプロセスを任意に増やすことができなかった。listenerに20分の遅延が生じると、数万件の結果がまだ反映されていない可能性があり、selectorは既知のflaky testを実行し続けたり、新たに追加されたテストや修正済みのテストを一時的に認識できなかったりした。これは未テストのコードがそのまま本番環境にデプロイされることを意味するわけではないが、テストセットの即時性と信頼性を低下させる。
チームは順に、ホストの増強、パッケージ単位のシャーディング、毎日の再起動を試したが、3回の対処が有効だった期間は、それぞれ70日、29日、1日未満にとどまった。最終版では、状態をインメモリデータベースへ移した。任意のステートレスなlistenerが結果をjournalへ追記し、別の小規模なconsumerが数秒ごとにテスト単位の履歴へ集約したうえで、selectorがそれを直接照会する。コストは高くなったものの、水平方向のスケーリングと各段階の個別計測が可能になった。Anthropicによると、1人のエンジニアが3週間で完成させたという。
coding agentを導入するチームにとって重要なのは、キャパシティプランニングでモデルのtokenだけを見てはならないという点だ。PRの粒度、夜間のコミット、テスト作成速度、自動レビューが相互に作用し、下流の負荷を増幅させる。今後は、Anthropicが絶対的なジョブ量、テスト選択のrecall、エンドツーエンドのレイテンシ、コストを公開するかどうかに注目すべきだ。同様のアーキテクチャを導入する際には、入出力イベント数の整合性とキューの滞留量を監視し、全テストを実行するサンプル検証によって、selectorがリグレッションを見逃していないことも確認する必要がある。