Claude Codeサブエージェント活用法|タスク委譲と並列処理で開発効率を最大化
はじめに
Claude Codeでの開発作業が複雑になるにつれ、「調査しながら同時にコードも書きたい」「複数のファイルを並行して修正したい」という場面が増えてきます。こうしたマルチタスクのニーズに応えるのが**サブエージェント(Sub-Agent)**機能です。
サブエージェントは、メインのClaude Codeセッションから独立した子プロセスを起動し、特定のタスクを委譲する仕組みです。メインの会話を中断することなく、調査・コード生成・テスト作成などを並列で実行できます。
この記事では、サブエージェントの基本概念から具体的な活用パターン、Agent Teamとの違いまで詳しく解説します。
Claude Codeのサブエージェントとは
サブエージェントは、Claude Code内部のTaskツールを通じて起動される独立したエージェントです。メインエージェントが「この作業は別のエージェントに任せよう」と判断したとき、Taskツールを使って新しいエージェントを生成し、具体的なタスクを委譲します。
通常の会話ではメインエージェントがすべてを順番に処理しますが、サブエージェントを使うことで複数のタスクを並列実行できます。たとえば、3つのファイルの調査が必要な場合、メインエージェントが1つずつ読むのではなく、3つのサブエージェントを同時に起動して一括調査するといった使い方が可能です。
サブエージェントの重要な特徴として、以下が挙げられます。
- 独立したコンテキスト: サブエージェントはメインの会話履歴を引き継がず、与えられたタスク説明だけをもとに動作する
- 一方向の通信: サブエージェントは結果をメインエージェントに返すのみで、実行中にメインとやり取りすることはない
- 専門化が可能: サブエージェントの種類を指定することで、タスクに特化した動作モードで実行できる
仕組み
メインエージェントとサブエージェントの関係
メインエージェントとサブエージェントの関係は「上司と担当者」に似ています。メインエージェントが全体の進行を管理し、個別の作業をサブエージェントに振り分けます。
メインエージェント(会話の主体)
├── サブエージェント A(コードベース調査)
├── サブエージェント B(テスト作成)
└── サブエージェント C(ドキュメント生成)
メインエージェントはサブエージェントの完了を待ってから、その結果を統合して次のステップに進みます。複数のサブエージェントが同時に動いている間、メインエージェント自身も別の作業を進めることができます。
サブエージェントの種類
Claude Codeには、タスクの性質に合わせた複数のサブエージェント種別が用意されています。
| 種別 | 用途 | 利用可能なツール |
|---|---|---|
| Explore | コードベースの探索・調査 | ファイル読み取り、検索(編集不可) |
| Plan | 設計・実装計画の立案 | ファイル読み取り、検索(編集不可) |
| general-purpose | 汎用的なタスク処理 | すべてのツール |
| Bash | コマンド実行に特化 | Bashのみ |
Exploreエージェントは最も頻繁に使われる種別です。コードベースを読み取り専用で高速に探索するため、調査タスクに最適です。ファイルの編集はできないため、意図しない変更が起きる心配もありません。
general-purposeエージェントは、ファイルの編集やコマンド実行を含むあらゆるタスクに対応します。コード生成やリファクタリングなど、実際にファイルを変更する必要がある場合に使います。
タスク委譲のフロー
サブエージェントへのタスク委譲は、以下の流れで行われます。
- メインエージェントがタスクを識別: 会話の中で「この作業は委譲した方が効率的」と判断する
- Taskツールでサブエージェントを起動: タスクの説明、サブエージェントの種別を指定して起動する
- サブエージェントが独立して実行: 与えられたタスクを自律的に処理する
- 結果がメインエージェントに返される: 完了後、サブエージェントの出力がメインに報告される
- メインエージェントが結果を統合: 複数のサブエージェントの結果をまとめて次のアクションを決定する
この一連の流れはClaude Codeが自動的に管理するため、ユーザーが明示的にサブエージェントを操作する必要はありません。ただし、CLAUDE.mdやスキルの指示で「このタスクにはサブエージェントを使う」と明記することで、積極的な活用を促すことができます。
コンテキストの共有と分離
サブエージェントの設計で最も重要なのがコンテキストの分離です。
サブエージェントはメインの会話履歴にアクセスできません。これは制約ではなくメリットでもあります。メインの会話が長くなっても、サブエージェントはクリーンなコンテキストで動作するため、トークン制限に引っかかりにくく、タスクに集中した処理が可能です。
一方、コンテキストが分離されるため、サブエージェントへのタスク指示は自己完結的に書く必要があります。「さっき話した件を調べて」ではなく、「src/lib/auth.tsの認証フローを調べて、JWTトークンの検証ロジックを報告して」のように、必要な情報をすべて含めた具体的な指示が重要です。
活用パターン
パターン1: 調査と実装の分離
最も基本的な活用パターンです。コードベースの調査をサブエージェントに任せ、その結果をもとにメインエージェントが実装を行います。
たとえば「認証機能にMFA(多要素認証)を追加したい」という場合、以下のように進みます。
- サブエージェント(Explore): 現在の認証フローを調査し、関連ファイルと修正ポイントを報告
- サブエージェント(Explore): 既存のテストコードのパターンを調査
- メインエージェント: 調査結果をもとにMFAのコードを実装
調査を並列で行うことで、メインエージェントが実装を始めるまでの待ち時間を短縮できます。
パターン2: テスト作成の並列化
複数のモジュールに対するテストを同時に生成するパターンです。
メインエージェント: テスト方針を決定
├── サブエージェント A: userService.tsのユニットテストを作成
├── サブエージェント B: authController.tsのユニットテストを作成
└── サブエージェント C: paymentService.tsのユニットテストを作成
メインエージェント: 生成されたテストをレビュー・調整
各サブエージェントが独立してテストを生成するため、3つのテストファイルが同時に作成されます。順番に処理するのと比べ、処理時間を大幅に削減できます。
パターン3: コードレビューの委譲
PRやコード変更のレビューをサブエージェントに任せるパターンです。メインの会話を中断せずにバックグラウンドでレビューが完了します。
このパターンはSkills機能と組み合わせるとさらに効果的です。レビュー用のスキルに context: fork を設定すれば、スキル実行時に自動的にサブエージェントで処理されます。
---
name: review
description: コードレビューを実行する
context: fork
agent: Explore
---
指定されたファイルをレビューし、問題点を報告してください。
パターン4: リファクタリングの分散処理
大規模なリファクタリングを複数のサブエージェントで分担するパターンです。
たとえば「全コンポーネントのスタイルをCSS ModulesからTailwind CSSに移行する」という作業では、コンポーネントごとにサブエージェントを割り当てて並列に変換できます。ただし、共通のスタイル定義など依存関係があるファイルは、先に処理を済ませてから各コンポーネントの変換に入る必要があります。
このパターンではタスクの分割設計が成功の鍵です。依存関係のないタスクを正しく識別し、並列化できる部分とできない部分を見極めることが重要です。
設定方法
CLAUDE.mdでの指示設計
CLAUDE.mdにサブエージェント活用の方針を記述しておくと、Claude Codeが自動的に適切なタイミングでサブエージェントを活用するようになります。
## サブエージェント活用方針
- コードベースの調査にはExploreサブエージェントを使用する
- 3つ以上のファイルを並行して調査する場合は、サブエージェントを並列起動する
- テスト作成は対象モジュールごとにサブエージェントで並列生成する
- サブエージェントへの指示は自己完結的に書き、必要なファイルパスと期待する出力形式を明記する
このように方針を明文化しておくことで、一貫性のあるサブエージェント活用が実現できます。
カスタムサブエージェントの定義
Claude Codeでは、組み込みのサブエージェント種別に加えて、カスタムサブエージェントを定義できます。.claude/agents/ ディレクトリにMarkdownファイルを作成し、サブエージェントの振る舞いを細かく指定します。
<!-- .claude/agents/security-reviewer.md -->
---
name: security-reviewer
description: セキュリティ観点でコードをレビューする専門エージェント
allowed-tools: Read, Grep, Glob
---
あなたはセキュリティレビューの専門家です。以下の観点でコードを分析してください。
- OWASP Top 10の脆弱性
- 認証・認可の不備
- 機密情報の露出
- 入力バリデーションの欠落
各問題について深刻度(Critical/High/Medium/Low)を付けて報告してください。
カスタムサブエージェントはSkillsの agent フィールドからも参照できるため、スキルとサブエージェントを組み合わせた高度なワークフローを構築できます。
タスクの粒度と分割方針
サブエージェントに委譲するタスクの粒度は、パフォーマンスに大きく影響します。
適切な粒度のタスク:
- 1つのファイルまたは小規模なファイル群を対象とした調査
- 明確な入出力が定義できる処理
- 5〜10分程度で完了する作業
粒度が大きすぎる場合: サブエージェントのコンテキストウィンドウを使い切り、処理が中途半端になるリスクがあります。大きなタスクはさらに小さく分割しましょう。
粒度が小さすぎる場合: サブエージェントの起動オーバーヘッドが処理時間に対して大きくなり、かえって非効率になります。1行の検索や単純な文字列置換はメインエージェントで直接処理する方が速いでしょう。
メリットとデメリット
メリット
処理速度の向上: 独立したタスクを並列実行できるため、順次処理と比べて大幅に時間を短縮できます。特に複数ファイルの調査やテスト生成で効果が顕著です。
コンテキストの効率的な利用: サブエージェントは独立したコンテキストウィンドウを持つため、メインの会話が長くなってもサブエージェントのパフォーマンスは低下しません。長時間の開発セッションで特にメリットがあります。
タスクの明確化: サブエージェントへの指示は自己完結的に書く必要があるため、タスクの定義が自然と明確になります。結果として、AIの出力品質も向上します。
デメリット
コンテキスト共有の制約: サブエージェントはメインの会話履歴にアクセスできないため、暗黙的な前提条件を伝えられません。指示が不十分だと意図と異なる結果になる可能性があります。
トークン消費の増加: 複数のサブエージェントを起動すると、それぞれがトークンを消費します。過度な並列化はコストの増加につながります。
競合のリスク: 複数のサブエージェントが同じファイルを同時に編集すると、変更が競合する可能性があります。general-purposeサブエージェントを使う場合は、編集対象のファイルが重複しないよう注意が必要です。
Agent Teamとの違い
Claude Codeには、サブエージェントとは別にAgent Teamという機能もあります。両者は似ているようで根本的に異なる仕組みです。
| 比較項目 | サブエージェント | Agent Team |
|---|---|---|
| 通信方式 | 一方向(結果を親に返すだけ) | 双方向(メンバー間で直接やり取り) |
| セッション | 親セッション内の子プロセス | 独立したClaude Codeセッション |
| 起動方法 | Taskツールで自動起動 | claude-code --team コマンド |
| 適したタスク | 独立した調査・生成タスク | メンバー間の協調が必要な複雑なタスク |
| コスト | 比較的低い | 各メンバーが独立セッションのためコスト高 |
使い分けの指針: タスクが「分割して個別に処理し、結果を集約するだけ」ならサブエージェントが適しています。一方、「複数のエージェントが互いの進捗を参照しながら協調して作業する」必要がある場合はAgent Teamが適切です。
たとえば、3つのAPIエンドポイントをそれぞれ独立して実装する場合はサブエージェントで十分です。しかし、フロントエンドとバックエンドを同時に開発し、APIの仕様を相互に調整しながら進める場合はAgent Teamが向いています。
今後の展望
サブエージェント機能は、AIコーディングの進化とともにさらに発展していくと予測されます。
エージェント間の協調強化: 現在のサブエージェントは一方向通信ですが、将来的にはサブエージェント同士が軽量な情報共有を行える仕組みが期待されます。Agent Teamの双方向通信とサブエージェントの軽量さを兼ね備えたハイブリッドモデルの登場も考えられます。
自動最適化: タスクの性質を分析して、サブエージェントの数や種別を自動的に最適化する機能も今後登場する可能性があります。開発者がタスク分割を意識することなく、Claude Codeが最適な並列化戦略を選択してくれるようになるでしょう。
Agent Skillsとの統合深化: Skills機能との統合がさらに進み、スキルの中でサブエージェントの協調パターンを定義するといった、より高度なワークフロー設計が可能になると見込まれます。
AI時代の開発者キャリアを考える上でも、こうしたマルチエージェント技術の動向を把握しておくことは重要です。
まとめ
Claude Codeのサブエージェントは、複雑な開発タスクを分割・並列処理することで開発効率を向上させる機能です。Exploreエージェントによるコードベース調査、general-purposeエージェントによるコード生成、カスタムエージェントによる専門的な処理など、タスクの性質に合わせた使い分けが可能です。
効果的に活用するポイントは3つあります。第一に、サブエージェントへの指示は自己完結的に書くこと。第二に、タスクの粒度を適切に設計すること。第三に、依存関係のあるタスクは順序を正しく管理することです。
CLAUDE.mdでの方針定義やカスタムサブエージェントの作成を通じて、プロジェクトに最適化されたサブエージェント活用を実現してみてください。SkillsやAgent Teamと組み合わせることで、さらに強力な開発ワークフローを構築できます。