Claude SubAgent とは何か。コンテキストを汚さない別働隊
SubAgent は、Claude Code に組み込まれた「別働隊」です。メイン会話のコンテキストを汚さずに、独立した別の Claude を走らせ、結果のサマリだけを受け取れる——これがコードベース調査や大規模タスクで効きます。Skills や MCP とはまったく違う角度の拡張機構を、いちから整理します。
はじめに
Step 3 最後のテーマ、SubAgent(サブエージェント) に入ります。Skills、Plugins、MCP、Hooks と続けてきた拡張機構の 最後のひと品 です。
SubAgent はひと言でいうと、「メイン会話とは別のコンテキストで、独立した Claude を走らせるしくみ」 です。Web 制作で例えるなら、
- メイン Claude = ディレクター(あなたと直接話している人)
- SubAgent = ディレクターが「これを調べてきて」と部下に振った人
という関係になります。部下は独立して動き、結果のサマリだけをディレクターに戻してくる——その振る舞いが、Claude Code の中で実現されています。
本記事では、
- SubAgent とは何か(仕組み)
- なぜ必要だったか(解決している問題)
- 何が嬉しいか(3つの利点)
- 内蔵 SubAgent の代表例
- 起動の仕方(明示・自動)
- 「使うべきとき/使わないべきとき」
- 自作 SubAgent への入り口
- Hooks との関係
を順に整理します。具体的な活用例と自作の最小構成は、次の記事「Claude SubAgent の活用例」で扱います。
SubAgent の正体
SubAgent の動きをひと目で説明すると、
[あなた]
↓ 「このコードベースを調査して」
[メイン Claude]
↓ SubAgent を起動
[SubAgent] ← 独立したコンテキストで、別の Claude が走る
↓ 大量のファイル読み込み・調査
↓ 終わったらサマリだけ返す
[メイン Claude] ← サマリだけを受け取る(生のファイル内容は受け取らない)
↓ 「○○が分かりました」と要約してあなたに返す
[あなた]
という流れです。SubAgent が読んだ膨大なファイル内容は、メイン Claude には流れ込みません。流れ込むのは 「結果のサマリ」だけ。これが SubAgent の核心です。
なぜ SubAgent が必要だったか
Claude Code を本格的に使うと、ある時点で 「コンテキストの汚染」 という問題に必ずぶつかります。
たとえば、こんなケースを想像してください。
- LP の改修案件で、Claude に「ヘッダーの再設計をして」と頼んだ
- まずコードベース全体を調べないと判断できないので、Claude が 30 ファイルを Read する
- 30 ファイル分の中身がメイン会話のコンテキストにすべて詰め込まれる
- そのあと「では、ヘッダーをこう直そう」となったときには、すでに コンテキストが半分埋まっている
- 続く実装のやり取りで、メイン Claude が 過去の参照ファイル全部を引きずったまま 動くので、判断が鈍くなる
これが「コンテキストの汚染」です。読まなくてもいい情報まで全部覚えている状態 で会話を続けると、Claude の判断は地味に劣化していきます。
SubAgent は、この問題を 「重い調査は別 Claude に投げて、要約だけ受け取る」 という発想で解いています。30 ファイル読んだのは SubAgent、メイン Claude が受け取るのは 「ヘッダーは Header.astro と nav.css の2ファイルに分かれていて、ナビ項目は配列定義から動的生成されている」 といった要約だけ。コンテキストはほとんど汚れません。
CSS で例えると、長くなりすぎた1つの style.css を @import で別ファイルに分割する のと似ています。本体は軽く保ちつつ、必要なときだけ重い処理を別ファイルに切り出す——同じ思想です。
SubAgent の3つの利点
整理すると、SubAgent には3つのはっきりした利点があります。
| 利点 | 効くシーン |
|---|---|
| コンテキストを汚さない | 大量のファイルを読む調査タスク |
| 専門特化させられる | 特定領域に最適化したエージェント(コードレビュー専用、ドキュメント執筆専用) |
| 並列で動かせる | 複数の調査を同時に進めて結果を集める |
特に 並列実行 は強力です。「ファイル A の調査」と「ファイル B の調査」を同時に始めて、両方の結果を待つ——という動きが、メイン会話を止めずにできます。Web ページで「画像を順番に1枚ずつではなく、全部並行して読み込む」のと似た効率の出し方です。
内蔵 SubAgent の代表例
Claude Code には 最初から組み込まれている SubAgent があります。代表的なものは(記事公開時点)、
| SubAgent | 担当 | 使われるシーン |
|---|---|---|
| Explore | コードベースを素早く調査する | ファイルパターン検索、キーワード検索、構造把握 |
| Plan | 実装計画を設計する | 大きなタスクの設計フェーズ、トレードオフの検討 |
| general-purpose | 自由形式の長尺タスク | 「複雑な調査と多段階タスク」の汎用枠 |
それぞれが 異なる得意領域 を持っていて、メイン Claude が「この依頼にはどの SubAgent が向いているか」を判断して呼び出します。
Explore:コードベース調査の専門家
「このコードベースで認証はどう実装されている?」と聞いたとき、メイン Claude が直接調べると 30 ファイル読み込みます。代わりに Explore に投げると、
- ファイルパターン検索(
src/auth/**/*.ts) - キーワード検索(
signIn、session) - 該当箇所の周辺だけ読み込み
を Explore が独立コンテキストで実行し、「認証は src/auth/index.ts に集約されており、JWT を使用、有効期限は7日」 といった要約だけ返してきます。
Plan:実装計画の設計
「ヘッダーを刷新したい」のような大きなタスクのとき、いきなり実装に入る前に Plan に「どう進めるべきか」を設計してもらえます。Plan は、
- 影響範囲の調査
- 実装順序の検討
- トレードオフの整理
- 最後に推奨アプローチの提示
までをまとめて担当します。「キーボードショートカット」で紹介した Plan モード とは別物で、こちらは SubAgent としての Plan。混同しやすいので注意してください。
general-purpose:何でも屋
ExploreでもPlanでも収まらない、自由形式で複数ステップのタスクを丸ごと任せたいときに使います。複数ステップが絡む調査、長文の執筆、複雑なフィルタリングなど、「何ができるか分からないけど、とにかく重い」 タスクの受け皿になります。
起動の仕方は2種類
SubAgent も Skills と同じく、起動の仕方が2種類あります。
方法 A:自然言語で頼む(自動起動)
メイン Claude が「これは SubAgent を使ったほうがいい」と判断したら、自分で勝手に SubAgent を起動 します。明示的に「SubAgent を使って」と言わなくても動きます。
> このコードベースで認証まわりの実装を調べて
(メイン Claude が Explore を起動 → 結果を要約して返す)
方法 B:明示的に指示する
「Explore を使って」「SubAgent に並列で2つ走らせて」と明示すれば、確実にその通りに動きます。
> Explore を使って、auth/ と payments/ の実装を並列で調べて
「自動だと使ってくれないけど、自分は使ってほしい」というときに、明示指示が効きます。
SubAgent を「使うべきとき/使わないべきとき」
これが最重要です。SubAgent は強力ですが、いつでも使うべき道具ではありません。判断軸を整理します。
使うべきとき
| シーン | 理由 |
|---|---|
| 大量のファイルを読む調査 | コンテキストが汚れる前に Explore に逃がす |
| 複雑な実装計画の検討 | Plan に専門特化させて密度の高い設計を出してもらう |
| 複数の調査を同時に進めたい | 並列起動で時間短縮 |
| メイン会話を綺麗に保ちたい長尺タスク | 重い処理だけ general-purpose に逃がす |
使わないべきとき
| シーン | 理由 |
|---|---|
| 既に対象ファイルが分かっている | メインで Read するほうが速い・安い |
| 小さな修正タスク | SubAgent 起動のオーバーヘッドのほうが大きい |
| メイン会話の文脈を共有してほしい仕事 | SubAgent は文脈を引き継がない(独立コンテキストなので) |
| 対話的に進めたいタスク | SubAgent は1ショットで結果を返す。途中介入できない |
特に 「ファイルが分かっているなら直接 Read」 は重要です。「README を要約して」と頼むのに SubAgent を起動するのは過剰で、メインで Read するほうが3倍速くて3倍安いです。SubAgent は 「対象が広すぎる/重すぎる」 ときの選択肢、と覚えておいてください。
自作 SubAgent への入り口
内蔵の3つに加えて、自分の用途に特化した SubAgent を自作 することもできます。最小構成は、
~/.claude/agents/ ← 自作 SubAgent を置くフォルダ(ユーザー全体用)
└── code-reviewer.md ← SubAgent 1つ = Markdown ファイル1枚
中身は frontmatter + 本文(プロンプト)の2階建て。
---
name: code-reviewer
description: コードレビューに特化したサブエージェント。実装ファイルを渡されたとき、可読性・命名・型・エラーハンドリング・テスト容易性の観点でフィードバックを返す
tools: Read, Grep, Glob
---
あなたはコードレビューに特化した Claude です。
渡されたファイルに対して、以下の5つの観点でフィードバックを返してください。
1. 可読性(命名・分割・コメント)
2. 型の妥当性
3. エラーハンドリング
4. テスト容易性
5. パフォーマンス上の懸念
指摘は具体的に、行番号とともに返してください。
Skills の自作と非常に似ています。違いは、
| 違い | Skills | SubAgent |
|---|---|---|
| 配置場所 | ~/.claude/skills/<name>/SKILL.md | ~/.claude/agents/<name>.md |
| 動き | メイン Claude のコンテキスト内で参照される | 独立した Claude として走る |
| ツール制限 | なし | tools で使えるツールを絞れる |
最大の違いは「独立コンテキスト」と「ツール制限」。SubAgent は文字通り「別の Claude を立ち上げる」ので、何ができるかをきっちり絞れます。詳しい自作手順は次の記事「活用例編」で扱います。
Hooks との関係
ここで前章の Hooks と SubAgent の関係を整理しておきます。Hooks には SubagentStop という、SubAgent が終了したときに発火するイベントがあります。
{
"hooks": {
"SubagentStop": [
{
"hooks": [
{ "type": "command", "command": "echo \"$(date) subagent finished\" >> ~/.claude/agents.log" }
]
}
]
}
}
「SubAgent を起動したかログを取りたい」「終わったら通知を出したい」というときに使えます。Hooks と SubAgent は 干渉せず独立して動く ので、SubAgent の挙動を Hooks で監視する、という組み合わせが成立します。
SubAgent を使い始めるときの順序
最後に、SubAgent との付き合い方の順序を提案しておきます。
- まずは Explore を意識して使う:コードベース調査で「Explore でやって」と頼んでみる
- 次に Plan を試す:大きなタスクの前に「Plan で設計を出して」と頼む
- 慣れたら並列起動:「Explore を2つ並列で、A と B を同時に調べて」と頼む
- 最後に自作:自分の用途に特化したエージェントを書く
無理に最初から自作に入る必要はありません。内蔵の3つを使い倒すだけでも、Claude Code の使い心地は明確に変わります。
まとめ
SubAgent の要点を整理します。
- SubAgent はメイン会話とは別のコンテキストで走る独立した Claude
- 解決する問題はコンテキストの汚染:重い調査をメインに引き込まない
- 3つの利点:コンテキスト保護/専門特化/並列実行
- 内蔵3つ:Explore(調査)/Plan(設計)/general-purpose(汎用)
- 起動は自動と明示の2種類:自然言語で勝手に起動/「Explore で」と明示も可
- 使うべきとき:大量ファイル調査/複雑な計画/並列/メインを汚したくない長尺
- 使わないべきとき:対象が分かっている/小さい修正/対話的に進めたいタスク
- 自作は
~/.claude/agents/<name>.md:Skills より強力(独立コンテキスト+ツール制限) - Hooks の
SubagentStopでログや通知に連携できる - 慣れる順序:Explore → Plan → 並列 → 自作
これで Step 3「機能を使いこなす」の最後のひと品の 概念編 が読み終わりました。次の記事「Claude SubAgent の活用例」では、Explore / Plan / general-purpose の使い分け、自作 SubAgent の最小構成、そしてマギのクロゼミの運用での使いどころを、具体的な依頼文とセットで紹介します。続けて読むと、SubAgent が「なんとなく便利そうな機能」から「毎日の依頼の出し方が変わる転機」になる体験が得られます。
WordPressを実際に動かしてきたサーバー:ロリポップ
Claude Code でWordPressサイトを組み立てるとき、最初に置く先として無理のないレンタルサーバー。月数百円から始められ、WordPressの自動インストールにも対応しています。設定で詰まりがちな初期段階の時間をかなり減らせます。