0:00 0:00
Article
複数のAIエージェントで調査を並列化する実践パターン
Claude Codeのサブエージェントを使って調査タスクを並列化する3つのパターンを整理します。スコープの分割方法、依頼文の設計、結果の統合、コスト注意点、エージェントチームとの使い分けまで実践的に解説します。
調査タスクを複数のサブエージェントに分割して同時に動かすと、大きなコードベースの把握や多角的なレビューを短時間で終わらせられます。この記事では、Claude Codeのサブエージェントを使った並列調査の3つの実践パターンと、スコープ設計・結果統合・コスト管理のコツを具体的に説明します。
なぜ並列調査が有効なのか
Claude Codeはデフォルトで順番に処理を進めます。調査が長引くと、メイン会話のコンテキストウィンドウが検索結果やファイル内容で埋まっていきます。サブエージェントに調査を委ねると、各エージェントが独立したコンテキストウィンドウで動き、メインへはサマリーだけが返ってきます。
公式ドキュメントには「For independent investigations, spawn multiple subagents to work simultaneously」と明記されており、調査パスが互いに依存しない場合がもっとも効果的な場面です。
逆に「前の調査結果を次の調査に使う」順番待ちが発生するケースや、同じファイルを複数が書き換えるケースには向きません。詳しくは「Claude Codeのサブエージェントはいつ使うべき?」をあわせて参照してください。
パターン1:Exploreエージェントによるファンアウト調査
もっともシンプルなパターンです。組み込みのExploreサブエージェント(Haikuモデル、読み取り専用)に「このモジュールを並列で調べて」と伝えると、Claude Codeは複数のExploreエージェントを同時に起動して結果を集めます。
認証モジュール・DBレイヤー・APIルーティングを並列のサブエージェントで調査して、
各エリアのファイル構成・主要な関数名・依存関係をまとめてください
Exploreは読み取りと検索だけができるため、コードを書き換える心配がありません。ファイルが多いコードベースの初期把握に最適です。
スコープ分割の3つの軸
並列化の効果を高めるには、重複しないスコープを設計します。
| 軸 | 分割例 |
|---|---|
| レイヤー | UI/API/DB/インフラ |
| ドメイン | 認証/決済/通知/ユーザー管理 |
| 観点 | セキュリティ/パフォーマンス/テストカバレッジ |
「レイヤー」軸は依存方向が一方通行なので競合が起きにくく、初心者向けです。「観点」軸は同じコードを複数エージェントが読むため独立性は高いですが、結果の統合に人間の判断が必要になります。
パターン2:general-purposeエージェントによる深掘り並列
Exploreが読み取り専用なのに対し、general-purposeサブエージェントはすべてのツールを持ちます。テスト実行・外部API呼び出し・ログ解析など、より重い調査に使えます。
以下を並列のサブエージェントで調査してください:
1. テストスイートを実行してどのテストが失敗しているか報告
2. package.jsonの依存関係を確認して古いパッケージを列挙
3. git logで過去1週間の変更量が多いファイルを特定
各エージェントは調査のみで、ファイルの修正は行わないこと
「ファイルの修正は行わないこと」という制約を明記するのが重要なポイントです。general-purposeはWriteやEditも持っているため、指示が曖昧だと意図せず変更が起きる場合があります。
結果統合の依頼文テンプレート
複数のサブエージェントが完了したら、統合をClaudeに依頼します。
3つのサブエージェントの調査結果をまとめてください。
出力形式:
- 各エリアで見つかった主要な問題(優先度順)
- エリア間で共通して現れている課題
- 次に取り組むべきタスク3つ(依頼文として使える形式で)
「エリア間で共通して現れている課題」を明示的に聞くと、単純な箇条書き羅列を超えた統合分析が得られます。
パターン3:カスタムサブエージェントによる役割設計
同じ種類の調査を繰り返すなら、専用のカスタムサブエージェントをプロジェクトに登録しておくと効率的です。.claude/agents/にMarkdownファイルを置くだけで使えるようになります。
---
name: repo-scout
description: コードベースを横断的に調査し、指定したパターンやファイルを探します。調査・報告専用で変更は行いません。
tools: Read, Grep, Glob, Bash
model: haiku
---
あなたはコードベースの調査専門エージェントです。
指定されたパターン・ファイル・構造を検索し、発見内容をまとめて報告します。
ファイルの作成・編集・削除は一切行いません。
報告フォーマット:
- 発見件数と該当ファイルの一覧
- 代表的なコードスニペット(最大3件)
- 注目すべき点・異常値・推奨確認箇所
model: haikuにするとコストを抑えつつ速度を上げられます。カスタムサブエージェントの作り方の詳細は「Claude Code用カスタムエージェントの作り方と役割設計」を参照してください。
複数のカスタムエージェントを同時指定する
カスタムエージェントを並列指定すると、調査の精度を上げやすくなります。
repo-scoutエージェントを3つ並列で使い、それぞれ以下を調査してください:
1. XSSに関わる可能性があるHTMLエスケープの欠落
2. SQLインジェクションに関わる可能性がある文字列結合クエリ
3. 秘密情報が混入している可能性がある.envや設定ファイルの参照
同じエージェント定義を複数同時起動できます。それぞれが独立したコンテキストで動くため、調査項目が互いに干渉しません。
エージェントチームとの使い分け
公式ドキュメントによると、Claude CodeにはサブエージェントとAgent Teamsという2つの並列化手段があります。
| サブエージェント(並列) | Agent Teams | |
|---|---|---|
| エージェント間通信 | なし(全員がメインに報告) | あり(エージェント同士が直接通信) |
| コスト | 低め | 高め(各インスタンスが独立) |
| 状態 | 安定版 | 実験的(デフォルト無効) |
| 向くケース | 独立調査・読み取りタスク | 競合仮説検証・互いにフィードバックが必要な場面 |
Agent Teamsは競合する仮説を複数エージェントが互いに反論しながら検証するような高度なシナリオ向けです。通常の並列調査にはサブエージェントで十分です。
Agent Teamsを使う場合はsettings.jsonで有効化が必要です(実験的機能)。
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
}
}
コスト・コンテキスト管理の注意点
並列調査の主な注意点は次の2つです。
1. サブエージェントの結果が返ってくるとメインのコンテキストが増える
公式ドキュメントが「Running many subagents that each return detailed results can consume significant context」と注意しています。各エージェントへの依頼文に「返答は500字以内で」「箇条書き最大5点で」などのサマリー指示を入れることでコンテキスト消費を制御できます。
2. サブエージェントはネストできない
公式仕様上、サブエージェントは別のサブエージェントを起動できません。多段階の調査が必要な場合は、メイン会話から段階的にサブエージェントを起動する設計にします。
コンテキスト設計全体については「Claude Codeに必要な情報だけ渡すコンテキスト設計」が詳しいです。
よくある失敗パターン
並列調査でよく起きる失敗とその対処です。
| 失敗 | 原因 | 対処 |
|---|---|---|
| エージェントが互いに同じ箇所を調査した | スコープ定義が曖昧 | 調査するディレクトリやファイルパターンを明示する |
| メインのコンテキストが調査ログで溢れた | サマリー指示を省いた | 「要点のみX行で報告」を各エージェント依頼文に追加 |
| 修正してほしくないのに変更された | general-purposeに「変更禁止」を書かなかった | 調査専用エージェントにはtools: Read, Grep, Glob, Bashに絞るかdisallowedToolsを使う |
| 並列にしたがビルドが壊れた | 同じファイルを複数エージェントが編集 | 調査と実装を分け、調査フェーズは変更禁止にする |
まとめ:並列調査の実施チェックリスト
並列調査を始める前に次の6項目を確認してください。
- 各エージェントのスコープが重複していないか
- 調査のみか変更もするかを明示しているか
- サマリーの量や形式を指定しているか
- コスト上のリスクを把握しているか(Exploreを使うとHaikuなのでより安い)
- エージェント同士の調査が互いに依存していないか(独立性の確認)
- 結果統合の依頼文を準備しているか
次に読むおすすめ記事:
- 「Claude Code用カスタムエージェントの作り方と役割設計」:並列調査で使うカスタムエージェントを自分で定義する方法
- 「Claude Codeのサブエージェントとは?使いどころと注意点」:サブエージェントの仕組み・スコープ・コスト制御の基礎