検索
ニュース

「CやJavaはAIが苦手な言語」 Claude Codeを大規模レガシーコードで生かす3つの成功パターンとハーネスRAG型AIコーディングでは破綻

Anthropicは公式ブログで、エージェント型コーディングツール「Claude Code」を大規模なコードベースに導入した事例の調査、分析を基に、成功事例に共通するベストプラクティスを紹介した。

Share
Tweet
LINE
Hatena

 Anthropicは2026年5月14日(米国時間)、同社のエージェント型コーディングツール「Claude Code」を大規模なコードベースに導入した事例の調査、分析を基に、成功事例に共通するベストプラクティスを紹介するブログ記事を公開した。

 最も成功している導入事例には、構成、ツール、組織体制にわたって共通パターンがあるとしている。この記事は、Claude Codeをエンタープライズ規模で活用する開発組織に向けた新しいシリーズ記事「Claude Code at scale」の第1弾だ。

 Anthropicによると、Claude Codeは既に、数百万行規模のモノリポ、数十年にわたるレガシーシステム、数十のリポジトリにまたがる分散アーキテクチャ、数千人の開発者を擁する組織の本番環境で稼働している。こうした組織の大規模コードベースには、CやC++、C#、Java、PHPなど、AIコーディングツールと結び付けられることが少ない言語のコードベースも含まれており、そうした場合にClaude Codeは、多くのチームの予想を上回るパフォーマンスを発揮するという。

そもそもClaude Codeはコードベースをどうナビゲートしているのか

 Claude Codeは、ソフトウェアエンジニアと同じようにコードベースをナビゲートする。ファイルシステムを横断し、ファイルを読み、grepで必要な情報を探し、コードベース全体にわたって参照を追跡する。開発者のマシン上でローカルに動作するので、コードベースのインデックスを構築、維持したり、サーバにアップロードしたりする必要はない。

 これに対し、RAG(検索拡張生成)型AIコーディングツールは、コードベース全体を埋め込み、クエリ実行時に関連部分を検索する。Anthropicは、大規模環境ではこうした仕組みは破綻し得ると指摘する。埋め込みパイプラインが、開発チームの活発なペースに追い付けないからだ。そのため、RAG型ツールでは開発者がインデックスにクエリを実行すると、2週間前にリネームされた関数や、前のスプリントで削除されたモジュールが、「古い」という表示もないまま返ってくることがある。エージェント型の検索ではこうした問題を避けられる。各開発者の環境が、ライブコードベースを対象に稼働するからだ。

 ただし、Claudeが最もうまく機能するのは、どこを検索すべきかを判断できるだけの初期コンテキストがある場合だ。そのため、Claudeのナビゲーションの質は、コードベースがどれだけ適切にセットアップされているかに左右される。10億行のコードベース全体にわたって曖昧なパターンで検索するように指示すると、作業が始まる前にコンテキストウィンドウの制限に達してしまうからだ。コードベースの整備に投資したチームほど、良い結果を得ているという。


大規模環境でClaude Codeの導入を始めるための6つのチェック項目(提供:Anthropic

「モデルの能力が全て」は誤解 Claude Codeの真価を決める「ハーネス」

 Anthropicは、「Claude Codeの能力は、使用されるモデルで決まる」という考え方は、よくある誤解だと指摘する。モデルを取り巻くエコシステム(同社は「ハーネス」と呼ぶ)こそが、Claude Codeのパフォーマンスをモデル単体以上に左右する。

 ハーネスは、CLAUDE.mdファイル、フック、スキル、プラグイン、MCP(Model Context Protocol)サーバという、それぞれ異なる役割を持つ5つの拡張ポイントから成る。各レイヤーは、前のレイヤーを基盤としているので、構築する順序が重要になる。さらに、LSP(言語サーバプロトコル)統合とサブエージェントという2つの追加機能により、セットアップが完成する。

 これらのコンポーネントと機能の役割は以下の通り。


Claude Codeの拡張レイヤーの全体像とセッション時間(提供:Anthropic

CLAUDE.mdファイル

 最初に整える。各セッションの開始時にClaudeが自動で読み込むコンテキストファイルだ。このファイルは、作業に必要なコードベースに関する知識(全体像やローカルな規約)を提供する。

フック

 セットアップを自己改善させる。誤った動作を防ぐだけではない。ストップフックは、コンテキストが新鮮なうちにセッションを振り返ってCLAUDE.mdの更新を提案する。スタートフックは、チーム固有のコンテキストを動的に読み込む。リンティング(Linting)やフォーマットのような自動チェックにおいて、フックはルールを決定論的に適用する。

スキル

 専門知識やノウハウをオンデマンドで利用可能な状態に保つ。プログレッシブディスクロージャー(段階的開示)により、タスクで必要とされる場合にのみ読み込まれる。

プラグイン

 スキル、フック、MCP構成を、インストール可能な単一のパッケージにバンドルし、配布する。これにより、組織の誰もが適切なコンテキストと機能を利用できる。

LSP(言語サーバプロトコル)統合

 これにより、Claudeは開発者がIDE(統合開発環境)で利用するのと同様のナビゲーション機能を得られる。大規模なコードベースを扱うIDEの多くは、LSPを実行しており、それが「定義へ移動」や「全ての参照を検索」といった機能を支えている。これをClaudeに提供することで、シンボルレベルのナビゲーションが可能になる。

 Anthropicが協力したあるエンタープライズソフトウェア企業は、CとC++のナビゲーションを大規模環境で確実に機能させるためにClaude Codeの導入に先立って組織全体にLSP統合を展開したという。

MCPサーバ

 Claudeを社内ツール、データソース、APIに接続する。

サブエージェント

 独自のコンテキストウィンドウを持つ独立したClaudeインスタンス。探索と編集を分離する。タスクを受け取り、作業を行い、最終結果のみを親エージェントに返す。

成功事例に共通する3つの成功パターン

 Anthropicは、Claude Codeの大規模導入の成功事例に共通して見られるパターンとして、以下の3つを挙げている。

大規模コードベースのナビゲーションを容易にする

 大規模コードベースでClaudeが提供する支援の度合いは、Claudeが適切なコンテキストを見つけられるかどうかに左右される。成功事例では、Claudeがコードベースを読み取りやすいように、以下の6つが共通して行われている。

  1. CLAUDE.mdファイルを簡潔かつ階層的に記述する
  2. リポジトリのルートではなくサブディレクトリで初期化する
  3. テストおよびリントコマンドのスコープをサブディレクトリに限定する
  4. 「.ignore」ファイルを用いて生成ファイル、ビルドアーティファクト(成果物)、サードパーティーコードを除外する
  5. コードが従来のディレクトリ構造にまとめられていない場合、コードベースマップを作成する
  6. LSPサーバを実行し、Claudeが文字列ではなく、シンボルで検索できるようにする

モデルの進化に合わせてCLAUDE.mdファイルを能動的にメンテナンスする

 現行モデル向けに書いた指示は、将来のモデルでは足かせになり得る。Anthropicは3〜6カ月ごとや主要なモデルのリリース後に、構成を見直すことを勧めている。

導入と管理に関する責任の所在を定める――「エージェントマネジャー」とは

 技術的な構成だけでは導入は進まない。導入が最も迅速に進んだ事例では、Claude Codeの広範な利用開始に先立って専用インフラ整備に投資しており、開発者は最初から生産的な体験ができていた。

 導入と管理を担う新たに登場している役割が「エージェントマネジャー」だ。プロダクトマネジャーとエンジニアのハイブリッドな役割であり、Claude Codeのエコシステム管理に特化する。Anthropicは、専任チームを持たない組織でも最低限、1人のDRI(直接責任者)を置くことを進めている。


Claude Codeの3つの導入フェーズ(提供:Anthropic

 大規模組織、特に規制業種の組織では、ガバナンスの構築に向けて、一連のスキルの定義と承認、コードレビュープロセスの策定、限定的な初期アクセスの提供に早くから着手し、信頼向上とともに、取り組みを拡大することが求められる。

 Anthropicは、エンジニアリング、情報セキュリティ、ガバナンスの各代表者を集め、早期に部門横断的なワーキンググループを設置し、要件を共同で定義して展開ロードマップを構築した組織で最も円滑に導入が進んでいることを確認しているとしている。

注意点

 Claude Codeは、従来のソフトウェアエンジニアリング環境を前提に設計されている。それはエンジニアがコードベースの主な貢献者であり、バージョン管理に「Git」が使用され、コードが標準的なディレクトリ構造に従う環境だ。

 大規模コードベースの多くはこれに当てはまるが、大規模バイナリ資産を持つゲームエンジン、非標準的なバージョン管理環境、あるいは非エンジニアがコードベースに貢献するような非伝統的な組織では、追加の構成作業が必要となる。

 Anthropicのガイダンスは従来の環境を前提としており、ブログ記事で説明されたパターンは多くの顧客で有効なことが実証されているが、より複雑な課題については、各組織のコードベース、ツール、組織体制に応じた判断が必要となる。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る