#08

サブエージェントを使う

上級

メインのClaude Codeが別のClaude Codeにタスクを委任するサブエージェントの概念と使い方を学びます。

座学

この講座で学べること

  • サブエージェントがメインClaude Codeから仕事を小分けされて並列処理する仕組みを理解する
  • 「並行して処理して」「それぞれ独立して」などの指示でサブエージェントを起動させる方法を習得する
  • ターミナルに「● Task(...)」が複数表示されたら並列処理が起きていることを把握する
  • サブエージェントが向く場面(独立した複数タスク)と向かない場面を判断できる

サブエージェントとは、メインのClaude Code(オーケストレーター)が仕事を小分けにして、それぞれを別のClaude Codeインスタンスに渡す仕組みです。同時並行で複数タスクを処理できるため、「10本の記事を個別に要約する」「複数のログファイルを同時に分析する」といった大量の定型作業を短時間でさばけます。

サブエージェントはTaskツールを通じて起動します。「それぞれ独立して」「3つを同時に」「並行して進めて」「各ファイルを個別に分析して」のような指示を含む依頼を受け取ると、Claude Codeは自動的にTaskツールを使い並列処理を開始します。サブエージェントが起動するとターミナルに `● Task(...)` という表示が複数現れ、それぞれが独立して動いている様子が確認できます。

サブエージェントが効果的なのは「タスク同士が互いに独立している場合」です。前の結果を見てから次を決めるような順序依存の作業は、並列化しても前のタスクが終わるまで待つことになるため、通常の順番処理と変わりません。並列化で効果が出るのは「AもBもCも、それぞれ別々に動いても問題ない」ケースに限られます。

サブエージェントはそれぞれ独立したコンテキストを持ちます。そのため、サブエージェント間で情報を共有したい場合はファイルを介して渡す設計にします。例えば「調査結果をresearch.txtに書く→別のサブエージェントがresearch.txtを読んでレポートを作る」という流れです。メモリを直接共有できないという制約がある一方、各エージェントが独立しているためひとつが失敗しても他に影響しないメリットもあります。

オーケストレーターとサブエージェントの関係

🎯

オーケストレーター(親エージェント)

全体の指揮・タスクの分解・結果の統合

📝

サブエージェントA

リサーチ担当

💻

サブエージェントB

コード実装担当

🔍

サブエージェントC

レビュー担当

💡 サブエージェントはそれぞれ独立して並列実行されるため、タスクを分割することで大幅に効率が上がります。

サブエージェントを使う場面

📁

大量のファイルを一括処理

100個のCSVを読み込んで集計する

🔍

複数の調査を同時進行

技術選定のため3つのライブラリを同時比較

🏗️

独立したモジュールの開発

フロントとバックエンドを並列で実装

サブエージェントはそれぞれ独立したコンテキストを持つため、共有情報が必要な場合はファイルを通じて渡す設計にします。

実践手順

準備:練習用フォルダとファイルを作る

上級講座7で作った agent-test フォルダを使うか、新しく以下の手順で subagent-test フォルダを準備してください。

PowerShell で実行

PowerShell を開き、以下のコマンドを順番に実行してください。

powershell
cd $env:USERPROFILE\Desktop
mkdir subagent-test
cd subagent-test
claude

1つずつ処理(普通の方法)を体験する

まず「普通の指示」を出して、ファイルが1つずつ順番に作られるのを確認します。次のステップとの違いを意識してみましょう。

bash
「月曜日の日報.txt」「火曜日の日報.txt」「水曜日の日報.txt」
の3つのファイルを作成してください。
各ファイルには「今日の作業:Claude Codeの練習」と書いてください。

サブエージェントで複数タスクを同時処理する

「それぞれ個別に」という指示で、Claude Code が Task ツールを使って並列処理します。ターミナルに「● Task(...)」が複数表示されるのを確認しましょう。

bash
以下の3つをそれぞれ独立して調べて、
各結果を別々のファイルに保存してください:

1. 「月曜日の日報.txt」を読んで要約を「月曜まとめ.txt」に保存
2. 「火曜日の日報.txt」を読んで要約を「火曜まとめ.txt」に保存
3. 「水曜日の日報.txt」を読んで要約を「水曜まとめ.txt」に保存

3つを並行して処理してください。

「● Task(...)」が表示されない場合 指示の内容や量によっては Claude Code が自動でサブエージェントを使わず、自分で順番に処理することもあります。これは正常な動作です。「必ず並列で処理してください」と明示すると、サブエージェントを使う可能性が上がります。ただし少量のタスクでは使わない方が効率的なこともあります。

結果を1つに統合する(オーケストレーターの役割)

サブエージェントが作った3つのファイルをメインの Claude Code(オーケストレーター)が読み込んで統合します。これがオーケストレーター+サブエージェントの完全な流れです。

bash
「月曜まとめ.txt」「火曜まとめ.txt」「水曜まとめ.txt」の
3つを読んで、「週間レポート.txt」として
1つにまとめてください。

サブエージェントを使う場面・使わない場面を確認する

以下の判断基準を参考にして、どんなタスクにサブエージェントが向いているかを整理しましょう。

✅ サブエージェントが有効な場面

  • ・複数のファイルをそれぞれ個別に処理する
  • ・複数の場所を同時に調べる
  • ・独立したレポートを複数作る

「それぞれ・各・個別に・並行して」という指示が有効

❌ サブエージェントが向かない場面

  • ・前の結果を見てから次を決める作業
  • ・1つのファイルに順番に書き込む作業
  • ・小さすぎる1ステップのタスク

普通に1つずつ指示した方が速い

確認チェック

講座を終える前に、以下の項目を確認しましょう。

よくある質問

Q. 「並行して処理して」と指示してもサブエージェントが起動しません

A. タスクの量や内容によって、Claude Codeが自動でサブエージェントより通常処理の方が効率的と判断することがあります。明示的に起動させたい場合は「必ずTaskツールを使って並列処理してください」と指示に追記してください。ただし少量のタスクでは通常処理の方が速い場合もあるため、無理に並列化しなくても問題ありません。

Q. サブエージェントを使うとトークン消費はどれくらい増えますか?

A. サブエージェント1つ起動するごとに独立したコンテキストが生成されるため、通常処理の2〜3倍のトークンを消費します。3つのサブエージェントなら単純計算で3倍です。/usageで使用量を確認しながら、コストとスピードのバランスを見て使い方を決めましょう。

Q. サブエージェントとAgent Teamsは何が違いますか?

A. サブエージェントは同じClaude Codeセッション内で動きメインエージェントに結果を返すだけです(タスクを渡す「部下」のイメージ)。Agent Teamsは各メンバーが独立したClaude Codeとして起動し、メンバー同士が直接やり取りしながら協力できます(専門分野を持つ「チーム」のイメージ)。複雑な協調作業はAgent Teams、単純な並列処理はサブエージェントが向いています。

関連講座

「確認チェック」の全項目にチェックを入れると完了できます