サブエージェントとは?
サブエージェントは、Claude Codeがタスクを委任できる事前設定されたAIパーソナリティです。各サブエージェントは:- 特定の目的と専門分野を持つ
- メインの会話とは独立した独自のコンテキストウィンドウを使用する
- 使用を許可された特定のツールで設定できる
- その動作を導くカスタムシステムプロンプトを含む
主な利点
コンテキストの保持
各サブエージェントは独自のコンテキストで動作し、メインの会話の汚染を防ぎ、高レベルの目標に集中し続けます。
専門的な専門知識
サブエージェントは特定のドメインに対する詳細な指示で微調整でき、指定されたタスクでより高い成功率をもたらします。
再利用性
一度作成されたサブエージェントは、異なるプロジェクト間で使用でき、一貫したワークフローのためにチームと共有できます。
柔軟な権限
各サブエージェントは異なるツールアクセスレベルを持つことができ、強力なツールを特定のサブエージェントタイプに制限できます。
クイックスタート
最初のサブエージェントを作成するには:1
サブエージェントインターフェースを開く
以下のコマンドを実行します:
2
'Create New Agent'を選択
プロジェクトレベルまたはユーザーレベルのサブエージェントを作成するかを選択します
3
サブエージェントを定義
- 推奨:まずClaudeで生成し、その後カスタマイズして自分のものにする
- サブエージェントを詳細に説明し、いつ使用すべきかを記述する
- アクセスを許可したいツールを選択する(または空白のままにしてすべてのツールを継承)
- インターフェースはすべての利用可能なツールを表示し、選択を簡単にします
- Claudeで生成している場合、
eを押して独自のエディターでシステムプロンプトを編集することもできます
4
保存して使用
サブエージェントが利用可能になりました!Claudeは適切な場合に自動的に使用するか、明示的に呼び出すことができます:
サブエージェントの設定
ファイルの場所
サブエージェントは、YAMLフロントマターを持つMarkdownファイルとして2つの可能な場所に保存されます:| タイプ | 場所 | スコープ | 優先度 |
|---|---|---|---|
| プロジェクトサブエージェント | .claude/agents/ | 現在のプロジェクトで利用可能 | 最高 |
| ユーザーサブエージェント | ~/.claude/agents/ | すべてのプロジェクトで利用可能 | 低い |
プラグインエージェント
プラグインは、Claude Codeとシームレスに統合するカスタムサブエージェントを提供できます。プラグインエージェントはユーザー定義エージェントと同様に動作し、/agentsインターフェースに表示されます。
プラグインエージェントの場所:プラグインはagents/ディレクトリ(またはプラグインマニフェストで指定されたカスタムパス)にエージェントを含みます。
プラグインエージェントの使用:
- プラグインエージェントはカスタムエージェントと一緒に
/agentsに表示されます - 明示的に呼び出すことができます:「security-pluginのcode-reviewerエージェントを使用してください」
- 適切な場合にClaudeによって自動的に呼び出すことができます
/agentsインターフェースを通じて管理(表示、検査)できます
CLIベースの設定
JSONオブジェクトを受け入れる--agents CLIフラグを使用して、サブエージェントを動的に定義することもできます:
- サブエージェント設定の迅速なテスト
- 保存する必要のないセッション固有のサブエージェント
- カスタムサブエージェントが必要な自動化スクリプト
- ドキュメントやスクリプトでのサブエージェント定義の共有
ファイル形式
各サブエージェントは、この構造を持つMarkdownファイルで定義されます:設定フィールド
| フィールド | 必須 | 説明 |
|---|---|---|
name | はい | 小文字とハイフンを使用した一意の識別子 |
description | はい | サブエージェントの目的の自然言語による説明 |
tools | いいえ | 特定のツールのカンマ区切りリスト。省略した場合、メインスレッドからすべてのツールを継承 |
model | いいえ | このサブエージェントに使用するモデル。モデルエイリアス(sonnet、opus、haiku)または'inherit'でメインの会話のモデルを使用。省略した場合、設定されたサブエージェントモデルがデフォルト |
モデル選択
modelフィールドにより、サブエージェントが使用するAIモデルを制御できます:
- モデルエイリアス:利用可能なエイリアスの1つを使用:
sonnet、opus、またはhaiku 'inherit':メインの会話と同じモデルを使用(一貫性に有用)- 省略:指定されていない場合、サブエージェント用に設定されたデフォルトモデル(
sonnet)を使用
'inherit'の使用は、サブエージェントをメインの会話のモデル選択に適応させたい場合に特に有用で、セッション全体で一貫した能力と応答スタイルを確保します。利用可能なツール
サブエージェントは、Claude Codeの内部ツールのいずれかへのアクセスを許可できます。利用可能なツールの完全なリストについては、ツールドキュメントを参照してください。推奨: ツールアクセスを変更するには
/agentsコマンドを使用してください - 接続されたMCPサーバーツールを含むすべての利用可能なツールをリストするインタラクティブなインターフェースを提供し、必要なものを選択しやすくします。toolsフィールドを省略してメインスレッドからすべてのツール(デフォルト)を継承、MCPツールを含む- 個別のツールを指定してより細かい制御のためのカンマ区切りリスト(手動または
/agents経由で編集可能)
toolsフィールドが省略された場合、サブエージェントはメインスレッドで利用可能なすべてのMCPツールを継承します。
サブエージェントの管理
/agentsコマンドの使用(推奨)
/agentsコマンドは、サブエージェント管理のための包括的なインターフェースを提供します:
- すべての利用可能なサブエージェント(組み込み、ユーザー、プロジェクト)を表示
- ガイド付きセットアップで新しいサブエージェントを作成
- ツールアクセスを含む既存のカスタムサブエージェントを編集
- カスタムサブエージェントを削除
- 重複がある場合にどのサブエージェントがアクティブかを確認
- 利用可能なツールの完全なリストでツール権限を簡単に管理
直接ファイル管理
ファイルを直接操作してサブエージェントを管理することもできます:サブエージェントの効果的な使用
自動委任
Claude Codeは以下に基づいてタスクを積極的に委任します:- リクエスト内のタスク説明
- サブエージェント設定の
descriptionフィールド - 現在のコンテキストと利用可能なツール
より積極的なサブエージェント使用を促すには、
descriptionフィールドに「積極的に使用」や「必ず使用」などのフレーズを含めてください。明示的な呼び出し
コマンドで言及することで特定のサブエージェントをリクエストします:サブエージェントの例
コードレビュアー
デバッガー
データサイエンティスト
ベストプラクティス
- Claude生成エージェントから始める:初期サブエージェントをClaudeで生成し、その後それを反復して個人的なものにすることを強く推奨します。このアプローチにより最良の結果が得られます - 特定のニーズにカスタマイズできる堅実な基盤です。
- 焦点を絞ったサブエージェントを設計:1つのサブエージェントにすべてを行わせようとするのではなく、単一の明確な責任を持つサブエージェントを作成してください。これによりパフォーマンスが向上し、サブエージェントがより予測可能になります。
- 詳細なプロンプトを記述:システムプロンプトに具体的な指示、例、制約を含めてください。より多くのガイダンスを提供するほど、サブエージェントのパフォーマンスが向上します。
- ツールアクセスを制限:サブエージェントの目的に必要なツールのみを許可してください。これによりセキュリティが向上し、サブエージェントが関連するアクションに集中できます。
- バージョン管理:プロジェクトサブエージェントをバージョン管理にチェックインして、チームが恩恵を受け、協力的に改善できるようにしてください。
高度な使用法
サブエージェントのチェーン化
複雑なワークフローでは、複数のサブエージェントをチェーン化できます:動的サブエージェント選択
Claude Codeはコンテキストに基づいてサブエージェントを知的に選択します。最良の結果を得るために、descriptionフィールドを具体的でアクション指向にしてください。
パフォーマンスの考慮事項
- コンテキスト効率:エージェントはメインコンテキストの保持を助け、より長い全体的なセッションを可能にします
- レイテンシ:サブエージェントは呼び出されるたびにクリーンスレートから始まり、効果的に仕事を行うために必要なコンテキストを収集する際にレイテンシを追加する可能性があります。