複数のエージェントが並行して動作し、互いに通信する必要がある場合は、代わりにエージェントチームを参照してください。サブエージェントは単一のセッション内で動作します。エージェントチームは別々のセッション間で調整します。
- コンテキストを保持する ことで、探索と実装をメインの会話から分離します
- 制約を強制する ことで、サブエージェントが使用できるツールを制限します
- 設定を再利用する ことで、ユーザーレベルのサブエージェントをプロジェクト全体で再利用します
- 動作を特化させる ことで、特定のドメイン向けの焦点を絞ったシステムプロンプトを使用します
- コストを制御する ことで、Haiku のような高速で安価なモデルにタスクをルーティングします
組み込みサブエージェント
Claude Code には、Claude が適切なときに自動的に使用する組み込みサブエージェントが含まれています。各サブエージェントは、親の会話の権限を継承し、追加のツール制限があります。- Explore
- Plan
- General-purpose
- Other
コードベースの検索と分析に最適化された高速な読み取り専用エージェント。
- モデル:Haiku(高速、低レイテンシ)
- ツール:読み取り専用ツール(Write および Edit ツールへのアクセスは拒否)
- 目的:ファイル検出、コード検索、コードベース探索
クイックスタート:最初のサブエージェントを作成する
サブエージェントは YAML フロントマターを含む Markdown ファイルで定義されます。手動で作成することも、/agents コマンドを使用することもできます。
このチュートリアルでは、/agents コマンドを使用してユーザーレベルのサブエージェントを作成する手順を説明します。サブエージェントはコードをレビューし、コードベースの改善を提案します。
場所を選択する
Create new agent を選択し、Personal を選択します。これにより、サブエージェントが
~/.claude/agents/ に保存され、すべてのプロジェクトで利用可能になります。Claude で生成する
Generate with Claude を選択します。プロンプトが表示されたら、サブエージェントを説明します:Claude は識別子、説明、およびシステムプロンプトを生成します。
ツールを選択する
読み取り専用レビュアーの場合は、Read-only tools 以外のすべてを選択解除します。すべてのツールを選択したままにすると、サブエージェントはメイン会話で利用可能なすべてのツールを継承します。
メモリを設定する
User scope を選択して、サブエージェントに
~/.claude/agent-memory/ の永続メモリディレクトリを提供します。サブエージェントはこれを使用して、コードベースパターンや繰り返される問題など、会話全体で洞察を蓄積します。サブエージェントが学習を永続化しないようにする場合は、None を選択します。サブエージェントを設定する
/agents コマンドを使用する
/agents コマンドは、サブエージェントを管理するためのインタラクティブインターフェースを提供します。/agents を実行して以下を行います:
- すべての利用可能なサブエージェント(組み込み、ユーザー、プロジェクト、プラグイン)を表示する
- ガイド付きセットアップまたは Claude 生成を使用して新しいサブエージェントを作成する
- 既存のサブエージェント設定とツールアクセスを編集する
- カスタムサブエージェントを削除する
- 重複が存在する場合、どのサブエージェントがアクティブであるかを確認する
claude agents を実行します。これにより、エージェントがソース別にグループ化され、より高い優先度の定義によってオーバーライドされているかどうかが示されます。
サブエージェントのスコープを選択する
サブエージェントは YAML フロントマターを含む Markdown ファイルです。スコープに応じて異なる場所に保存します。複数のサブエージェントが同じ名前を共有する場合、より高い優先度の場所が優先されます。| 場所 | スコープ | 優先度 | 作成方法 |
|---|---|---|---|
--agents CLI フラグ | 現在のセッション | 1(最高) | Claude Code を起動するときに JSON を渡す |
.claude/agents/ | 現在のプロジェクト | 2 | インタラクティブまたは手動 |
~/.claude/agents/ | すべてのプロジェクト | 3 | インタラクティブまたは手動 |
プラグインの agents/ ディレクトリ | プラグインが有効な場所 | 4(最低) | プラグインでインストール |
.claude/agents/)は、コードベース固有のサブエージェントに最適です。バージョン管理にチェックインして、チームが協力して使用および改善できるようにします。
ユーザーサブエージェント (~/.claude/agents/)は、すべてのプロジェクトで利用可能な個人用サブエージェントです。
CLI で定義されたサブエージェント は、Claude Code を起動するときに JSON として渡されます。これらはそのセッションのみに存在し、ディスクに保存されないため、クイックテストまたは自動化スクリプトに役立ちます。単一の --agents 呼び出しで複数のサブエージェントを定義できます:
--agents フラグは、ファイルベースのサブエージェントと同じフロントマターフィールドを持つ JSON を受け入れます:description、prompt、tools、disallowedTools、model、permissionMode、mcpServers、hooks、maxTurns、skills、initialPrompt、memory、effort、background、および isolation。システムプロンプトには prompt を使用します。これはファイルベースのサブエージェントの markdown 本体と同等です。
プラグインサブエージェント は、インストールしたプラグインから提供されます。これらは、カスタムサブエージェントと一緒に /agents に表示されます。プラグインサブエージェントの作成の詳細については、プラグインコンポーネントリファレンスを参照してください。
セキュリティ上の理由から、プラグインサブエージェントは
hooks、mcpServers、または permissionMode フロントマターフィールドをサポートしていません。これらのフィールドはプラグインからエージェントを読み込むときに無視されます。これらが必要な場合は、エージェントファイルを .claude/agents/ または ~/.claude/agents/ にコピーしてください。また、settings.json または settings.local.json の permissions.allowにルールを追加することもできますが、これらのルールはプラグインサブエージェントだけでなく、セッション全体に適用されます。サブエージェントファイルを書く
サブエージェントファイルは、YAML フロントマターを使用して設定を行い、その後に Markdown でシステムプロンプトを続けます:サブエージェントはセッション開始時に読み込まれます。ファイルを手動で追加してサブエージェントを作成する場合は、セッションを再起動するか、
/agents を使用してすぐに読み込みます。サポートされているフロントマターフィールド
以下のフィールドは YAML フロントマターで使用できます。name と description のみが必須です。
| フィールド | 必須 | 説明 |
|---|---|---|
name | はい | 小文字とハイフンを使用した一意の識別子 |
description | はい | Claude がこのサブエージェントに委譲する場合 |
tools | いいえ | サブエージェントが使用できるツール。省略した場合はすべてのツールを継承 |
disallowedTools | いいえ | 拒否するツール。継承または指定されたリストから削除 |
model | いいえ | 使用するモデル:sonnet、opus、haiku、完全なモデル ID(例:claude-opus-4-6)、または inherit。デフォルトは inherit |
permissionMode | いいえ | 権限モード:default、acceptEdits、dontAsk、bypassPermissions、または plan |
maxTurns | いいえ | サブエージェントが停止する前の最大エージェントターン数 |
skills | いいえ | スタートアップ時にサブエージェントのコンテキストに読み込むスキル。呼び出しのために利用可能にするだけでなく、完全なスキルコンテンツが注入されます。サブエージェントは親の会話からスキルを継承しません |
mcpServers | いいえ | このサブエージェントで利用可能なMCP サーバー。各エントリは、既に設定されたサーバーを参照するサーバー名(例:"slack")または、サーバー名をキーとし、完全なMCP サーバー設定を値とするインライン定義のいずれかです |
hooks | いいえ | このサブエージェントにスコープされたライフサイクルフック |
memory | いいえ | 永続メモリスコープ:user、project、または local。クロスセッション学習を有効にします |
background | いいえ | true に設定して、このサブエージェントを常にバックグラウンドタスクとして実行します。デフォルト:false |
effort | いいえ | このサブエージェントがアクティブな場合の努力レベル。セッション努力レベルをオーバーライドします。デフォルト:セッションから継承。オプション:low、medium、high、max(Opus 4.6 のみ) |
isolation | いいえ | worktree に設定して、サブエージェントを一時的なgit worktreeで実行し、リポジトリの分離されたコピーを提供します。サブエージェントが変更を加えない場合、worktree は自動的にクリーンアップされます |
initialPrompt | いいえ | このエージェントがメインセッションエージェント(--agent または agent 設定を通じて)として実行される場合、最初のユーザーターンとして自動送信されます。コマンドおよびスキルが処理されます。ユーザーが提供するプロンプトの前に付加されます |
モデルを選択する
model フィールドは、サブエージェントが使用するAI モデルを制御します:
- モデルエイリアス:利用可能なエイリアスの 1 つを使用します:
sonnet、opus、またはhaiku - 完全なモデル ID:
claude-opus-4-6またはclaude-sonnet-4-6などの完全なモデル ID を使用します。--modelフラグと同じ値を受け入れます - inherit:メイン会話と同じモデルを使用します
- 省略:指定されていない場合、デフォルトは
inherit(メイン会話と同じモデルを使用)です
model パラメーターを渡すこともできます。Claude Code はサブエージェントのモデルを次の順序で解決します:
CLAUDE_CODE_SUBAGENT_MODEL環境変数(設定されている場合)- 呼び出しごとの
modelパラメーター - サブエージェント定義の
modelフロントマター - メイン会話のモデル
サブエージェント機能を制御する
ツールアクセス、権限モード、および条件付きルールを通じて、サブエージェントが実行できることを制御できます。利用可能なツール
サブエージェントは、Claude Code の内部ツールのいずれかを使用できます。デフォルトでは、サブエージェントは MCP ツールを含む、メイン会話からすべてのツールを継承します。 ツールを制限するには、tools フィールド(許可リスト)または disallowedTools フィールド(拒否リスト)を使用します。この例は tools を使用して、Read、Grep、Glob、および Bash のみを排他的に許可します。サブエージェントはファイルを編集したり、ファイルを書き込んだり、MCP ツールを使用したりできません:
disallowedTools を使用して、Write および Edit を除く、メイン会話からすべてのツールを継承します。サブエージェントは Bash、MCP ツール、およびその他すべてを保持します:
disallowedTools が最初に適用され、その後 tools が残りのプールに対して解決されます。両方にリストされているツールは削除されます。
生成できるサブエージェントを制限する
エージェントがclaude --agent でメインスレッドとして実行される場合、Agent ツールを使用してサブエージェントを生成できます。生成できるサブエージェントの種類を制限するには、tools フィールドで Agent(agent_type) 構文を使用します。
バージョン 2.1.63 では、Task ツールが Agent に名前変更されました。設定とエージェント定義の既存の
Task(...) 参照は引き続きエイリアスとして機能します。worker と researcher サブエージェントのみを生成できます。エージェントが他の種類を生成しようとすると、リクエストは失敗し、エージェントはプロンプトで許可されたタイプのみを表示します。特定のエージェントをブロックしながら他のすべてを許可するには、代わりにpermissions.denyを使用します。
制限なしでサブエージェントを生成できるようにするには、括弧なしで Agent を使用します:
Agent が tools リストから完全に省略されている場合、エージェントはサブエージェントを生成できません。この制限は、claude --agent でメインスレッドとして実行されるエージェントにのみ適用されます。サブエージェントは他のサブエージェントを生成できないため、Agent(agent_type) はサブエージェント定義では効果がありません。
MCP サーバーをサブエージェントにスコープする
mcpServers フィールドを使用して、メイン会話で利用可能でないMCP サーバーへのアクセスをサブエージェントに付与します。ここで定義されたインラインサーバーは、サブエージェントの開始時に接続され、終了時に切断されます。文字列参照は親セッションの接続を共有します。
リスト内の各エントリは、インラインサーバー定義またはセッションで既に設定されている MCP サーバーを参照する文字列のいずれかです:
.mcp.json サーバーエントリ(stdio、http、sse、ws)と同じスキーマを使用し、サーバー名でキー付けされます。
MCP サーバーをメイン会話から完全に除外し、そのツール説明がコンテキストを消費するのを避けるには、.mcp.json ではなくここでインラインで定義します。サブエージェントはツールを取得します。親の会話は取得しません。
権限モード
permissionMode フィールドは、サブエージェントが権限プロンプトをどのように処理するかを制御します。サブエージェントはメイン会話から権限コンテキストを継承しますが、モードをオーバーライドできます。ただし、以下で説明するように、親モードが優先される場合があります。
| モード | 動作 |
|---|---|
default | プロンプト付きの標準権限チェック |
acceptEdits | ファイル編集を自動受け入れ |
dontAsk | 権限プロンプトを自動拒否(明示的に許可されたツールは引き続き機能) |
bypassPermissions | すべての権限チェックをスキップ |
plan | プランモード(読み取り専用探索) |
bypassPermissions を使用する場合、これが優先され、オーバーライドできません。親が自動モードを使用する場合、サブエージェントは自動モードを継承し、フロントマター内の permissionMode は無視されます:分類器は、親セッションと同じブロックおよび許可ルールを使用してサブエージェントのツール呼び出しを評価します。
スキルをサブエージェントにプリロードする
skills フィールドを使用して、スキルコンテンツをスタートアップ時にサブエージェントのコンテキストに注入します。これにより、実行中にスキルを検出して読み込む必要なく、サブエージェントにドメイン知識を提供します。
これはサブエージェントでスキルを実行するの逆です。サブエージェントの
skills を使用すると、サブエージェントはシステムプロンプトを制御し、スキルコンテンツを読み込みます。スキルの context: fork を使用すると、スキルコンテンツが指定したエージェントに注入されます。どちらも同じ基盤システムを使用します。永続メモリを有効にする
memory フィールドは、会話全体で存続する永続ディレクトリをサブエージェントに提供します。サブエージェントはこのディレクトリを使用して、コードベースパターン、デバッグの洞察、アーキテクチャの決定など、時間をかけて知識を構築します。
| スコープ | 場所 | 使用する場合 |
|---|---|---|
user | ~/.claude/agent-memory/<name-of-agent>/ | サブエージェントがすべてのプロジェクト全体で学習を記憶する必要がある場合 |
project | .claude/agent-memory/<name-of-agent>/ | サブエージェントの知識がプロジェクト固有で、バージョン管理を通じて共有可能な場合 |
local | .claude/agent-memory-local/<name-of-agent>/ | サブエージェントの知識がプロジェクト固有だが、バージョン管理にチェックインすべきでない場合 |
- サブエージェントのシステムプロンプトには、メモリディレクトリの読み取りと書き込みの指示が含まれます。
- サブエージェントのシステムプロンプトには、メモリディレクトリの
MEMORY.mdの最初の 200 行も含まれ、MEMORY.mdが 200 行を超える場合はキュレーションの指示が含まれます。 - Read、Write、および Edit ツールが自動的に有効になり、サブエージェントがメモリファイルを管理できるようになります。
永続メモリのヒント
-
projectは推奨されるデフォルトスコープです。バージョン管理を通じてサブエージェント知識を共有可能にします。サブエージェントの知識がプロジェクト全体で広く適用可能な場合はuserを使用するか、知識がバージョン管理にチェックインされるべきでない場合はlocalを使用します。 - サブエージェントに作業を開始する前にメモリを確認するよう依頼します:「このプルリクエストをレビューし、以前に見たパターンについてメモリを確認してください。」
- タスク完了後、サブエージェントにメモリを更新するよう依頼します:「完了したので、学習したことをメモリに保存してください。」時間をかけて、これはサブエージェントをより効果的にする知識ベースを構築します。
-
メモリ指示をサブエージェントの markdown ファイルに直接含めて、独自の知識ベースを積極的に維持するようにします:
hooks を使用した条件付きルール
ツール使用をより動的に制御するには、PreToolUse hooks を使用して、操作が実行される前に検証します。これは、ツールの一部の操作を許可しながら他の操作をブロックする必要がある場合に役立ちます。
この例は、読み取り専用データベースクエリのみを許可するサブエージェントを作成します。PreToolUse hook は、各 Bash コマンドが実行される前に command で指定されたスクリプトを実行します:
特定のサブエージェントを無効にする
設定のdeny 配列にサブエージェントを追加することで、Claude が特定のサブエージェントを使用するのを防ぐことができます。Agent(subagent-name) 形式を使用します。ここで subagent-name はサブエージェントの name フィールドと一致します。
--disallowedTools CLI フラグを使用することもできます:
サブエージェント用の hooks を定義する
サブエージェントは、サブエージェントのライフサイクル中に実行されるhooksを定義できます。hooks を設定する方法は 2 つあります:- サブエージェントのフロントマター内:そのサブエージェントがアクティブな間のみ実行される hooks を定義します
settings.json内:サブエージェントが開始または停止するときにメインセッションで実行される hooks を定義します
サブエージェントフロントマター内の hooks
サブエージェントの markdown ファイルで直接 hooks を定義します。これらの hooks は、その特定のサブエージェントがアクティブな間のみ実行され、終了時にクリーンアップされます。 すべてのhook イベントがサポートされています。サブエージェントの最も一般的なイベントは:| イベント | マッチャー入力 | 発火する場合 |
|---|---|---|
PreToolUse | ツール名 | サブエージェントがツールを使用する前 |
PostToolUse | ツール名 | サブエージェントがツールを使用した後 |
Stop | (なし) | サブエージェントが終了する場合(実行時に SubagentStop に変換) |
PreToolUse hook で Bash コマンドを検証し、PostToolUse でファイル編集後にリンターを実行します:
Stop hooks は自動的に SubagentStop イベントに変換されます。
サブエージェントイベント用のプロジェクトレベル hooks
メインセッションでサブエージェントのライフサイクルイベントに応答する hooks をsettings.json で設定します。
| イベント | マッチャー入力 | 発火する場合 |
|---|---|---|
SubagentStart | エージェント型名 | サブエージェントが実行を開始する場合 |
SubagentStop | エージェント型名 | サブエージェントが完了する場合 |
db-agent サブエージェントが開始するときのみセットアップスクリプトを実行し、サブエージェントが停止するときにクリーンアップスクリプトを実行します:
サブエージェントを使用する
自動委譲を理解する
Claude は、リクエスト内のタスク説明、サブエージェント設定のdescription フィールド、および現在のコンテキストに基づいて、タスクを自動的に委譲します。積極的な委譲を促進するには、サブエージェントの description フィールドに「use proactively」などのフレーズを含めます。
サブエージェントを明示的に呼び出す
自動委譲では不十分な場合、サブエージェント自体をリクエストできます。3 つのパターンは、1 回限りの提案からセッション全体のデフォルトまでエスカレートします:- 自然言語:プロンプトでサブエージェントに名前を付けます。Claude は委譲するかどうかを決定します
- @-mention:サブエージェントが 1 つのタスクで実行されることを保証します
- セッション全体:セッション全体が
--agentフラグまたはagent設定を通じてそのサブエージェントのシステムプロンプト、ツール制限、およびモデルを使用します
@ を入力し、タイプアヘッドからサブエージェントを選択します。ファイルを @-mention する方法と同じです。これにより、Claude の選択ではなく、特定のサブエージェントが実行されることが保証されます:
<plugin-name>:<agent-name> として表示されます。ピッカーを使用せずに手動で mention を入力することもできます:ローカルサブエージェントの場合は @agent-<name>、プラグインサブエージェントの場合は @agent-<plugin-name>:<agent-name>。
セッション全体をサブエージェントとして実行します。 --agent <name>を渡して、メインスレッド自体がそのサブエージェントのシステムプロンプト、ツール制限、およびモデルを採用するセッションを開始します:
--system-promptと同じように、デフォルト Claude Code システムプロンプトを完全に置き換えます。CLAUDE.md ファイルとプロジェクトメモリは引き続き通常のメッセージフローを通じて読み込まれます。エージェント名は起動ヘッダーに @<name> として表示されるため、アクティブであることを確認できます。
これは組み込みとカスタムの両方のサブエージェントで機能し、セッションを再開するときに選択が保持されます。
プラグイン提供のサブエージェントの場合、スコープ付き名を渡します:claude --agent <plugin-name>:<agent-name>。
プロジェクト内のすべてのセッションのデフォルトにするには、.claude/settings.json で agent を設定します:
サブエージェントをフォアグラウンドまたはバックグラウンドで実行する
サブエージェントは、フォアグラウンド(ブロッキング)またはバックグラウンド(並行)で実行できます:- フォアグラウンドサブエージェント は、完了するまでメイン会話をブロックします。権限プロンプトと明確化の質問(
AskUserQuestionなど)はあなたに渡されます。 - バックグラウンドサブエージェント は、作業を続ける間に並行して実行されます。起動前に、Claude Code はサブエージェントが必要とするツール権限をプロンプトし、必要な承認があることを確認します。実行開始後、サブエージェントはこれらの権限を継承し、事前に承認されていないものを自動拒否します。バックグラウンドサブエージェントが明確化の質問をする必要がある場合、そのツール呼び出しは失敗しますが、サブエージェントは続行します。
- Claude に「run this in the background」と依頼する
- Ctrl+B を押して実行中のタスクをバックグラウンドにする
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS 環境変数を 1 に設定します。環境変数を参照してください。
一般的なパターン
大量操作を分離する
サブエージェントの最も効果的な用途の 1 つは、大量の出力を生成する操作を分離することです。テストの実行、ドキュメントの取得、またはログファイルの処理は、かなりのコンテキストを消費できます。これらをサブエージェントに委譲することで、詳細な出力はサブエージェントのコンテキストに留まり、関連する概要のみがメイン会話に返されます。並行研究を実行する
独立した調査の場合、複数のサブエージェントを生成して同時に動作させます:サブエージェントをチェーンする
マルチステップワークフローの場合、Claude にサブエージェントを順序立てて使用するよう依頼します。各サブエージェントはタスクを完了して結果を Claude に返し、Claude は関連するコンテキストを次のサブエージェントに渡します。サブエージェントとメイン会話の選択
メイン会話 を使用する場合:- タスクが頻繁なやり取りまたは反復的な改善が必要な場合
- 複数のフェーズが重要なコンテキストを共有する場合(計画 → 実装 → テスト)
- 迅速でターゲット化された変更を行う場合
- レイテンシが重要な場合。サブエージェントは新規に開始し、コンテキストを収集するのに時間がかかる場合があります
- タスクがメインコンテキストで不要な詳細な出力を生成する場合
- 特定のツール制限または権限を強制したい場合
- 作業が自己完結型で、概要を返すことができる場合
/btwを使用します。完全なコンテキストを表示しますが、ツールアクセスはなく、答えは履歴に追加されるのではなく破棄されます。
サブエージェントは他のサブエージェントを生成できません。ワークフローがネストされた委譲を必要とする場合は、スキルを使用するか、メイン会話からサブエージェントをチェーンします。
サブエージェントコンテキストを管理する
サブエージェントを再開する
各サブエージェント呼び出しは、新しいコンテキストで新しいインスタンスを作成します。最初からやり直すのではなく、既存のサブエージェントの作業を続けるには、Claude に再開するよう依頼します。 再開されたサブエージェントは、すべての前のツール呼び出し、結果、および推論を含む、完全な会話履歴を保持します。サブエージェントは、新規に開始するのではなく、停止した場所から正確に再開します。 サブエージェントが完了すると、Claude はエージェント ID を受け取ります。Claude はSendMessage ツールを使用してエージェントの ID を to フィールドとして使用してサブエージェントを再開します。サブエージェントを再開するには、Claude に前の作業を続けるよう依頼します:
SendMessage を受け取った場合、新しい Agent 呼び出しを必要とせずにバックグラウンドで自動再開します。
エージェント ID を明示的に参照したい場合は Claude に依頼することもできます。または、~/.claude/projects/{project}/{sessionId}/subagents/ のトランスクリプトファイルで ID を見つけることができます。各トランスクリプトは agent-{agentId}.jsonl として保存されます。
サブエージェントトランスクリプトはメイン会話から独立して永続化されます:
- メイン会話圧縮:メイン会話が圧縮されると、サブエージェントトランスクリプトは影響を受けません。別のファイルに保存されます。
- セッション永続性:サブエージェントトランスクリプトはセッション内で永続化されます。Claude Code を再起動した後、同じセッションを再開することでサブエージェントを再開できます。
- 自動クリーンアップ:トランスクリプトは
cleanupPeriodDays設定に基づいてクリーンアップされます(デフォルト:30 日)。
自動圧縮
サブエージェントは、メイン会話と同じロジックを使用した自動圧縮をサポートします。デフォルトでは、自動圧縮は約 95% の容量でトリガーされます。圧縮を早期にトリガーするには、CLAUDE_AUTOCOMPACT_PCT_OVERRIDE をより低いパーセンテージ(例:50)に設定します。詳細については、環境変数を参照してください。
圧縮イベントはサブエージェントトランスクリプトファイルにログされます:
preTokens 値は、圧縮が発生する前に使用されたトークン数を示します。
サブエージェントの例
これらの例は、サブエージェントを構築するための効果的なパターンを示しています。出発点として使用するか、Claude を使用してカスタマイズされたバージョンを生成します。コードレビュアー
コードを変更せずにレビューする読み取り専用サブエージェント。この例は、制限されたツールアクセス(Edit または Write なし)と、何を探すべきか、出力をどのようにフォーマットするかを正確に指定する詳細なプロンプトを使用して、焦点を絞ったサブエージェントを設計する方法を示しています。デバッガー
問題を分析して修正できるサブエージェント。コードレビュアーとは異なり、このサブエージェントはバグの修正にはコード変更が必要なため、Edit を含みます。プロンプトは診断から検証までの明確なワークフローを提供します。データサイエンティスト
データ分析作業向けのドメイン固有のサブエージェント。この例は、典型的なコーディングタスク以外の特化したワークフロー向けのサブエージェントを作成する方法を示しています。より有能な分析のためにmodel: sonnet を明示的に設定します。
データベースクエリバリデーター
Bash アクセスを許可しますが、読み取り専用 SQL クエリのみを許可するようにコマンドを検証するサブエージェント。この例は、tools フィールドが提供するよりも細かい制御が必要な場合に、PreToolUse hooks を使用して条件付き検証を行う方法を示しています。
command フィールドと一致する必要があります:
tool_input.command にあります。終了コード 2 は操作をブロックし、エラーメッセージを Claude にフィードバックします。終了コードとHook 入力の詳細については、Hooksを参照してください。
次のステップ
サブエージェントを理解したので、これらの関連機能を探索してください:- プラグインでサブエージェントを配布することで、チームまたはプロジェクト全体でサブエージェントを共有します
- Claude Code をプログラムで実行することで、Agent SDK を使用して CI/CD と自動化を行います
- MCP サーバーを使用することで、サブエージェントに外部ツールとデータへのアクセスを提供します