サブエージェントを利用すると、メインエージェントが独立したワーカーを立ち上げて、サブタスクを処理できます。サブエージェントは親エージェントとツールおよびコードベースの前提情報を共有しますが、独自の会話チェーンで動作し、親の会話履歴は引き継ぎません。これは、コードベースの調査、テストの実行、機能の並行実装など、独立して集中的に進めることで効果が高まるタスクに役立ちます。 エージェントに明示的にサブエージェントを利用するよう依頼することもできます (例: 「サブエージェントで認証の仕組みを調査して」) 。また、独立して進めたほうが効果的だと判断した場合は、エージェント自身が委任することもあります。 私たちの測定では、サブエージェントは全体的なコーディング性能を向上させると同時に、コストを削減します。Documentation Index
Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
Use this file to discover all available pages before exploring further.
サブエージェントの仕組み
フォアグラウンド
セッション内でインライン実行されます。親エージェントは一時停止し、サブエージェントの完了を待ってから処理を続けます。ツール呼び出しが発生した場合は、その都度承認または拒否できます。
バックグラウンド
親エージェントが作業を続ける間、並行して実行されます。サブエージェントが完了すると、親エージェントに自動的に通知されます。承認されていないツールは自動的に拒否されます。
サブエージェントの生の出力は直接表示されません。サブエージェントが完了すると、親エージェントが結果を読み取り、重要な検出結果とアクションを要約して知らせます。
サブエージェントプロファイル
| プロファイル | 説明 | ツールアクセス |
|---|---|---|
subagent_explore | 読み取り専用でのコードベース探索と調査 | 読み取り専用のコードベース ツールに加えて Web 検索を利用可能。ファイルの編集や任意の URL の取得はできません (フォアグラウンドかバックグラウンドかを問わず) |
subagent_general | コード変更を含む汎用タスク | フォアグラウンドではすべてのツールを利用可能、バックグラウンドでは事前承認済みのツールのみ利用可能 |
エージェントは、タスクに応じて適切なプロファイルを自動的に選択します。explore サブエージェントは調査や理解に最適で、general サブエージェントは変更を加えられます。
ツールの権限
- フォアグラウンドのサブエージェント はメインのエージェントと同様に動作し、通常どおりツール呼び出しを承認または拒否するよう求められます。
- バックグラウンドのサブエージェント は、現在のセッション中にすでに付与したツールの権限を引き継ぎます。事前に承認されていないツールは自動的に拒否されます。バックグラウンドのサブエージェントが新しい権限の承認を求めることはできません。
サブエージェントの監視
サブエージェントのインジケーター
サブエージェントパネル
フォアグラウンド / バックグラウンドの切り替え
- フォアグラウンドのサブエージェントをバックグラウンドに切り替える: フォアグラウンドのサブエージェントの実行中に Ctrl+B を押します。サブエージェントはバックグラウンドで処理を続け、親エージェントが再開します。
- バックグラウンドのサブエージェントをフォアグラウンドに切り替える: サブエージェントパネルを開き、実行中のバックグラウンド サブエージェントで f を押します。サブエージェントの出力がインラインで表示されます。
サブエージェントをバックグラウンドに移した時点で、親エージェントのツール呼び出しはすでに完了しているため、親エージェントは独立して処理を続行します。サブエージェントの結果は親エージェントの現在のパイプラインには反映されませんが、完了すると通知されます。
サブエージェントのキャンセル
- サブエージェントパネルから: パネルを開き、実行中のサブエージェントで x を押します。
- フォアグラウンドのサブエージェント: 現在実行中のフォアグラウンドのサブエージェントをキャンセルするには、Ctrl+C または Esc を押します。
サブエージェントの再開
- バックグラウンドで実行していたサブエージェントが、必要なツールの利用を拒否されたために失敗した場合 — フォアグラウンドで再開して、必要な権限を付与できます。
- サブエージェントは完了したものの、その結果に基づいて追加のフォローアップ作業を行わせたい場合。
- サブエージェントが途中でキャンセルされてしまい、続きを実行させたい場合。
ネストの深さ
run_subagent と read_subagent) は無効になっています。
ただし、カスタム サブエージェントプロファイルでは、フロントマターで max-nesting フィールドを設定することで、ネストした起動を有効にできます。この値はデフォルトの最大深度を上書きし、ツリーがその上限内に収まっている限り、サブエージェントが子サブエージェントを起動できるようにします。
たとえば、max-nesting: 3 を設定すると、次のチェーンが可能です。
カスタムサブエージェント
subagent_exploreおよびsubagent_generalプロファイルに加えて、独自のカスタムサブエージェントプロファイルを定義できます。カスタムサブエージェントを使用すると、それぞれに固有のシステムプロンプト、ツールの制限、モデルのオーバーライド、権限を持つ、ワークフロー内の特定のタスク向けに最適化された専用ワーカーを作成できます。
カスタムサブエージェントの作成
agents/ 配下の名前付きディレクトリ内にある AGENT.md ファイルとして定義されます。ディレクトリ名がプロファイルの識別子になります。
- プロジェクト固有
- グローバル
AGENT.md の形式
AGENT.md ファイルは、skills と同じ YAML フロントマター を使用し、その後にサブエージェントのシステムプロンプトが続きます:
Frontmatter のフィールド
| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
name | string | ディレクトリ名 | プロファイルの識別子 (組み込みプロファイルと重複してはいけません) |
description | string | なし | プロファイル選択時にエージェントに表示されます |
model | string | デフォルトのサブエージェントモデル | このサブエージェントが利用するモデルを上書きします |
allowed-tools | list | すべてのツール | サブエージェントが利用できるツールを制限します |
permissions | object | 継承 | 権限の上書き設定 (allow、deny、ask) |
max-nesting | integer | なし | 最大ネスト深度を上書きし、このサブエージェントが自身のサブエージェントを生成できるようにします |
カスタムサブエージェント の利用方法
subagent_explore, subagent_general) と競合するカスタム サブエージェントプロファイルは、警告が表示されたうえでスキップされます。
他のツールからのインポート
| Source | File Pattern |
|---|---|
.claude/agents/*.md | 各 .md ファイルがサブエージェントのプロファイルになります |
Claude Code のエージェントファイルでは、フロントマター に
allowed-tools ではなく tools を使用します。どちらの形式も自動的にサポートされます。