サブエージェント
独自のコンテキストウィンドウを持ち、特定のタスクに特化した専門エージェント。メインエージェントから委譲されたタスクを独立して実行し、結果のみを返却する。
特徴
- コンテキスト分離: メインの会話を汚染しない
- 並列実行: 複数タスクを同時に処理可能
- 専門化: 特定ドメインに最適化された指示を持つ
- ツール制限: 必要最小限のツールアクセスに制限できる
構造的制約
サブエージェントは一般的に「深さ1レベル」の制約を持つ。つまり、サブエージェントからさらにサブエージェントを呼び出すことはできない(無限ネストの防止)。ただし「幅」には制限がなく、複数のサブエージェントを並列で呼び出すことは可能。
結果の返却
フルコンテキストではなくサマリーのみを返すことで、メインのコンテキストをクリーンに保つ。これは認知負荷の観点からも重要で、必要な情報だけを上位に伝達する情報の蒸留と同じ考え方である。
Claude Codeでの定義
.claude/agents/(プロジェクト)または~/.claude/agents/(グローバル)にMarkdownファイルとして配置:
---
name: code-reviewer
description: コード品質、セキュリティ、ベストプラクティスのレビュー
tools: Read, Grep, Glob
model: sonnet
---
You are a senior code reviewer...
役割別の推奨ツール設定
| 役割 | ツール |
|---|---|
| Read-onlyエージェント | Read, Grep, Glob |
| リサーチエージェント | Read, Grep, Glob, WebFetch, WebSearch |
| コードライター | Read, Write, Edit, Bash, Glob, Grep |
関連
- エージェントオーケストレーション
- コンテキストウィンドウ
- MCP
- Claude Code
- タスク委譲
- OpenClaw - Agent と Skills の関係 - moltbotにおけるスキルとの関係