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