
【Claude Code中級編 #5】サブエージェントで並列処理する——Agentツールの使い方
Agent toolを使うと、Claude Codeはサブエージェントを起動して別のタスクを並列で走らせられる。重い調査を委託したり、独立した作業を同時進行したりすることで、メインのコンテキストを節約しながら効率よく動ける。
この記事ではAgent toolの仕組み・使い方・向いている場面を実例とともに整理する。
Agent toolとは
Agent toolはClaude Codeがサブエージェント(別のClaude Codeプロセス)を起動してタスクを委譲するための仕組み。
メインのClaude Code(オーケストレーター)
↓ タスクを委譲
サブエージェント1(調査)
サブエージェント2(実装) ← 並列で実行
サブエージェント3(検証)
↓ 結果を返す
メインのClaude Code(結果を集約)
サブエージェントはそれぞれ独立したコンテキストで動く。メインのコンテキストにはサブエージェントの作業過程が残らず、最終的な結果だけが返ってくる。
いつClaude CodeはAgent toolを使うか
Claude Codeは自律的に判断してAgent toolを使う場合と、ユーザーが明示的に指示する場合がある。
自律的に使う場面:
- 複数の独立したファイルを並行調査するとき
- 「AとBとCを同時に確認して」と指示されたとき
- 一方の結果が他方に影響しないタスクが複数あるとき
ユーザーが指示する場合:
「3つのAPIエンドポイントを並列で調査して、
それぞれのレスポンス形式をまとめて」
「src/以下のファイルをサブエージェントで
網羅的に調べてから実装方針を出して」
「並列で」「同時に」「サブエージェントで」といった言葉を使うと、Agent toolを使うよう誘導できる。
並列実行のしくみ
Agent toolの最大の特徴は独立したタスクを同時に実行できる点。
依存関係のない複数タスクを順番に処理すると、前のタスクが終わるまで次が始まらない。Agent toolで並列化すると全タスクが同時進行して、最も遅いタスクが終わった時点で結果が揃う。
【順番に処理する場合】
タスクA: ████████ (8秒)
タスクB: ████████ (8秒)
タスクC: ████████ (8秒)
合計: 24秒
【並列処理する場合】
タスクA: ████████ (8秒)
タスクB: ████████ (8秒) ← 同時
タスクC: ████████ (8秒) ← 同時
合計: 8秒
ファイル数が多いコードベースの調査や、複数APIの同時確認で効果が出やすい。
コンテキスト節約の効果
サブエージェントはメインのコンテキストと分離されているため、調査過程で大量のファイルを読んでもメインのコンテキストは増えない。
【Agent toolを使わない場合】
メインのコンテキスト:
├── ユーザーの指示
├── ファイルA(読んだ内容全部)
├── ファイルB(読んだ内容全部)
├── ファイルC(読んだ内容全部)
└── ... コンテキストがどんどん膨らむ
【Agent toolを使った場合】
メインのコンテキスト:
├── ユーザーの指示
└── サブエージェントの調査結果(要約のみ)
長いセッションで大量のファイルを調査するとき、サブエージェントに委譲することでメインのコンテキストをきれいに保てる。
実用例
1. 複数ファイルの並列調査
「以下の3ファイルを並列で読んで、
それぞれの役割と依存関係をまとめて:
- src/api/user.ts
- src/api/auth.ts
- src/api/payment.ts」
3ファイルを別々のサブエージェントが同時に読み、結果をメインに返す。ファイルが多いほど時間短縮の効果が大きい。
2. 独立した実装の並列進行
「以下を並列で実装して:
- ユーザー一覧のAPIエンドポイント
- 商品一覧のAPIエンドポイント
(互いに依存しない)」
依存関係がない実装を同時に進める。ただし両方が同じファイルを編集するとコンフリクトするので、編集対象が重ならないことが前提。
3. 調査と実装の分離
「まずコードベース全体を調査して
現在の認証の仕組みを把握してから、
JWTトークンの有効期限を変更して」
調査フェーズをサブエージェントに委譲 → 調査結果をメインが受け取る → メインが実装を判断する、という流れで、調査の大量読み込みがメインのコンテキストを圧迫しない。
向いている場面・向いていない場面
向いている
- 互いに依存しない複数タスク — 並列化で時間短縮できる
- 広いコードベースの調査 — 調査過程をメインのコンテキストから切り離せる
- 繰り返し系のタスク — 同じ作業を複数対象に適用する場合
向いていない
- 前のタスクの結果が次のタスクに必要な場合 — 依存関係があると並列化できない
- 小さな単一タスク — サブエージェント起動のオーバーヘッドの方が大きくなる
- 同じファイルを複数エージェントが編集する場合 — コンフリクトが発生する
Plan Modeとの使い分け
前回のPlan Modeと組み合わせると効果が高い。
| 機能 | 目的 | 使う場面 |
|---|---|---|
| Plan Mode | 実行前に確認する | 破壊的な変更・大規模リファクタ |
| Agent tool | 並列・分離で効率化する | 独立した調査・実装が複数ある |
「Plan Modeで計画を確認してから、並列でサブエージェントに実装させる」という組み合わせが、大きなタスクを安全かつ効率的に進める構成になる。
まとめ
- Agent toolはサブエージェントを起動してタスクを委譲する仕組み
- 独立したタスクを並列実行することで処理時間を短縮できる
- サブエージェントの作業過程はメインのコンテキストに残らないのでコンテキスト節約になる
- 依存関係があるタスク・同一ファイルを複数エージェントが触るケースには向かない
- 「並列で」「サブエージェントで」と指示することで明示的に使わせられる
次回はマルチエージェント構成の設計——オーケストレーターとワーカーの役割分担をどう設計するかを扱う。
補足:initialPromptでエージェントの初回入力を自動化する(v2.1.83〜)
v2.1.83から、エージェントのフロントマターに initialPrompt を宣言できるようになった。これを使うと、エージェント起動時に最初のプロンプトを自動送信できる。
# .claude/agents/daily-check.md
---
name: daily-check
description: 毎朝の作業確認エージェント
initialPrompt: "今日のgit logを確認して、昨日のコミット内容をまとめてください"
---
initialPrompt がないエージェントはユーザーが最初のメッセージを入力する必要があるが、initialPrompt を設定すると起動と同時に処理が始まる。定型的な確認作業や決まった入力から始まるワークフローに向いている。
← 第4回:Plan Modeを使いこなす——大きなタスクを安全に進める | 第6回:マルチエージェント構成を作る——役割分担の設計 →