07 エージェント — サブエージェントと並列実行
エージェントとは
Claude Codeは Agent ツールを使って、サブエージェント(別のAIインスタンス)を起動できる。サブエージェントは独立したコンテキストで動作し、結果をメインセッションに返す。
メインセッション(あなたとの会話)
│
├─ Agent ツールでサブエージェント起動
│ │
│ ├─ サブエージェントA(コード探索)
│ ├─ サブエージェントB(レビュー)
│ └─ サブエージェントC(テスト実行)
│ │
│ ▼
│ 結果をメインセッションに返す
│
▼
メインセッションで結果を統合・表示
エージェントの種類
汎用エージェント(general-purpose)
指定なしで呼び出すと、汎用のサブエージェントが起動。
Agent({
description: "コードの調査",
prompt: "NexusCoreのテストカバレッジを確認して報告して"
})
<a id="specialized-agents"></a>特殊エージェント(subagent_type指定)
subagent_type を指定すると、専門化されたエージェントが起動。
<a id="pr-review"></a>pr-review-toolkit系(6種)
PRレビューに特化したエージェント群。
| エージェント | 用途 | トークン |
|---|---|---|
pr-review-toolkit:code-reviewer |
スタイル・ベストプラクティスの確認 | 451 |
pr-review-toolkit:code-simplifier |
コードの簡素化・整理 | 463 |
pr-review-toolkit:comment-analyzer |
コメントの正確性・保守性の分析 | 421 |
pr-review-toolkit:pr-test-analyzer |
テストカバレッジの品質分析 | 360 |
pr-review-toolkit:silent-failure-hunter |
エラー処理の穴の発見 | 323 |
pr-review-toolkit:type-design-analyzer |
型設計の品質分析 | 315 |
<a id="superpowers"></a>superpowers系
| エージェント | 用途 | トークン |
|---|---|---|
superpowers:code-reviewer |
実装が計画・基準に合致しているかのレビュー | 243 |
<a id="feature-dev"></a>feature-dev系(3種)
| エージェント | 用途 | トークン |
|---|---|---|
feature-dev:code-architect |
機能設計のブループリント作成 | 47 |
feature-dev:code-explorer |
コードベースの深い分析 | 40 |
feature-dev:code-reviewer |
バグ・セキュリティ・品質のレビュー | 46 |
その他
| エージェント | 用途 | トークン |
|---|---|---|
code-simplifier:code-simplifier |
コード簡素化 | 43 |
agent-sdk-dev:agent-sdk-verifier-py |
Python Agent SDK検証 | 63 |
agent-sdk-dev:agent-sdk-verifier-ts |
TypeScript Agent SDK検証 | 62 |
エージェントの使い方
フォアグラウンド(デフォルト)
結果を待ってから次に進む。調査・分析など、結果が必要な場合に使う。
Agent({
description: "調査",
prompt: "...",
subagent_type: "feature-dev:code-explorer"
})
バックグラウンド(run_in_background: true)
結果を待たずに次に進む。独立した作業を並列で進めたい場合に使う。
Agent({
description: "並列調査A",
prompt: "...",
run_in_background: true
})
Worktree分離(isolation: "worktree"**
別のGit worktreeで作業する。コードの変更がメインブランチに影響しない。
Agent({
description: "機能実装",
prompt: "...",
isolation: "worktree"
})
graph TD
MAIN["🖥️ メインセッション"] --> A1["🔍 エージェントA
コード探索"] MAIN --> A2["📝 エージェントB
レビュー"] MAIN --> A3["🧪 エージェントC
テスト実行"] A1 --> |"結果"| MAIN A2 --> |"結果"| MAIN A3 --> |"結果"| MAIN MAIN --> |"統合表示"| USER["👤 ユーザー"]
コード探索"] MAIN --> A2["📝 エージェントB
レビュー"] MAIN --> A3["🧪 エージェントC
テスト実行"] A1 --> |"結果"| MAIN A2 --> |"結果"| MAIN A3 --> |"結果"| MAIN MAIN --> |"統合表示"| USER["👤 ユーザー"]
並列実行の例
複数の独立したタスクは並列で実行できる:
// レビューとテスト分析を同時に実行
Agent({ description: "レビュー", prompt: "...", subagent_type: "pr-review-toolkit:code-reviewer" })
Agent({ description: "テスト分析", prompt: "..." subagent_type: "pr-review-toolkit:pr-test-analyzer" })
- 2つのAgent呼び出しを同じメッセージで送信すると並列実行される
- 順番に実行したい場合は別のメッセージで送信する
エージェントとコンテキスト
- サブエージェントは独立したコンテキストで動作する
- メインセッションのコンテキストを消費しない
- ただし、結果を受け取るとメインセッションのコンテキストを消費する
- カスタムエージェントの定義自体もコンテキストを消費(合計2.9kトークン)
toolsを絞ったカスタムサブエージェントでコスト削減(2026-07-10実証)
.claude/agents/*.mdにfrontmatterでname・description・tools・model等を定義すると、独自のサブエージェント種別を作れる(tools省略時は全ツールを継承)。
実証例(fable-advisor): Fable5を相談役として呼ぶサブエージェントを作成する際、subagent_type: "general-purpose"(全ツール継承)で呼ぶと、ツールを1つも使わない単純な質問でも約39,000トークンを消費した(tool_uses: 0)。原因は、環境に登録された数十個のMCPツール定義を無条件に継承するため。
対策としてtools: Readのみに絞ったカスタムサブエージェントを新規作成したところ、同じ質問で**約13,158トークン(約66%削減)**になった。
---
name: fable-advisor
description: 相談役として使う軽量サブエージェント
tools: Read
model: fable
---
注意点:
.claude/agents/が新規ディレクトリの場合、そのセッション内では認識されない。Claude Codeの再起動後に初めてsubagent_typeとして使えるようになる- CLAUDE.md・メモリ階層は
Explore/Plan以外の全サブエージェントが読み込む仕様のため、toolsを絞ってもゼロコストにはならない - 詳細: 2026-07-10_fable-advisor-skill設計とカスタムサブエージェント作成.md
💡 やさしい補足(初心者向け)
- 「エージェント」= Claudeが呼ぶ別のClaude(助手): メインの作業を進めながら、別の小さなClaudeに調べ物などを任せられる
- 並列で複数作業: 「Aを調べる」「Bを調べる」を同時に進められる。メインの記憶も節約できる
- 「右腕」みたいなもの: 自分では手が回らない細かい作業を、エージェントに丸投げする
- 使いどころ: 広範囲の調査・複数ファイルの確認など。メインは結果だけ受け取る