Claude CodeAnthropic の機能

FEATURE

Subagents (サブエージェント)

Subagents (サブエージェント) は、Claude Code で特定の種類のタスクを担当する専用の AI アシスタントです。

提供中公式発表と照合済み
初出未調査
ページ更新
提供状態提供中
公式の記載で確認できた環境ターミナル、デスクトップアプリ、IDE 拡張
提供を確認できたプラン公式に記載なし
目次 CONTENTS
  1. できること
  2. 機能解説
  3. 使い方
  4. 利用シーン
  5. ChatGPT・OpenAI の対応する機能
  6. これまでの変更
  7. 関連する機能
  8. 出典
CAN DO

できること

POINT 01

脇道の作業を任せる

調査などの脇道のタスクを、メインの会話とは別のコンテキストで処理させ、要約だけを受け取れます。Claude は説明に合うタスクを自動でサブエージェントに委任します。

POINT 02

独自の定義を作る

サブエージェントは YAML frontmatter を持つ Markdown ファイルで、Claude に書かせるか自分で書いて作成できます。使うモデルや、使えるツールの許可・拒否も指定できます。

POINT 03

裏で並行して動かす

サブエージェントは既定でバックグラウンドで動き、Claude は実行中も作業を続け、終了時に通知を受けます。会話全体を引き継ぐ fork も使えます。

GUIDE

機能解説

概要

各サブエージェントは独自のコンテキストウィンドウで動き、独自のシステムプロンプト、使えるツールの範囲、独立した権限を持ちます。Claude はサブエージェントの説明に合うタスクに出会うと、そのサブエージェントに作業を委任します。サブエージェントは作業を終えると、要約だけをメインの会話に返します。

Claude Code には、Claude が適切な場面で自動的に使う組み込みのサブエージェントがあります。そのひとつの Explore は、コードベースの検索と分析に特化した、高速な読み取り専用のエージェントです。

独自のサブエージェント (custom agents) は、YAML frontmatter を持つ Markdown ファイルとして定義します。frontmatter で必須の項目は name と description だけです。ディスク上のサブエージェントファイルを追加・編集すると、Claude Code は数秒以内に変更を検出し、再起動なしで次の委任から新しい定義を使います。

同じ名前のサブエージェントが複数あるときは、優先度の高い保存場所のものが使われます。--agents で CLI から渡したサブエージェントはそのセッションの間だけ存在し、ディスクには保存されません。

定義ファイルで指定できる項目

frontmatter では、次のような項目を指定できます。

  • model: サブエージェントが使うモデルを指定します。
  • tools / disallowedTools: 使えるツールを、許可リスト (tools) または拒否リスト (disallowedTools) で制限します。
  • MCP サーバーのインライン定義: .mcp.json ではなくサブエージェント内で定義すると、その MCP サーバーはメインの会話に入らず、ツールの説明がメインの会話のコンテキストを消費しません。
  • skills: 起動時にスキルの内容をサブエージェントのコンテキストへ注入します。
  • memory: 会話をまたいで残る永続ディレクトリをサブエージェントに与えます。
  • hooks: frontmatter に定義した hooks は、そのサブエージェントが動作している間だけ実行され、終了時に片付けられます。
  • omitClaudeMd: カスタムやプラグインのサブエージェントを、user・project・local の CLAUDE.md なしで実行します (--agents の JSON でも指定できます)。
  • autoCompactWindow: サブエージェントは自動コンパクトに対応しており、この項目でメインの会話より早い時点で自動コンパクトさせられます。

呼び出し方と実行の方式

Claude は、サブエージェントの description に合うタスクに出会うと、そのサブエージェントに委任します。積極的な委任を促すには、description に「use proactively」のような語句を含めます。Claude に選択を任せず特定のサブエージェントを動かしたいときは、@メンションします。@メンションの入力候補には名前付きサブエージェントが表示されます。プロジェクトのすべてのセッションで既定のエージェントにするには、.claude/settings.json で agent を設定します。

フォアグラウンドのサブエージェントは、完了までメインの会話をブロックし、権限確認はその都度ユーザーに渡されます。バックグラウンドのサブエージェントは、ユーザーが作業を続けている間に並行して動きます。先に結果が必要なときは、「run the reviewer subagent and wait for its report」のように、待つよう Claude に依頼します。

fork は、白紙から始めるのではなく、それまでの会話全体を引き継ぐサブエージェントです。fork mode の有効・無効に関係なく、/subtask の後にタスクを書いて自分で fork を開始できます。fork はプロンプトの下のパネルに表示され、作業を続けている間バックグラウンドで動きます。fork mode を無効にするには、settings.json などで CLAUDE_CODE_FORK_SUBAGENT を 0 に設定します。

再開したサブエージェントは、以前のツール呼び出し・結果・推論を含む会話履歴をすべて保持しています。再開するには、以前の作業の続きを Claude に依頼します。

権限と上限の制御

  • サブエージェントは、既定で親セッションの権限モードを継承します。
  • バックグラウンドのサブエージェントの権限確認は、自動で拒否されず、メインセッションに表示されます。
  • auto モードでは、サブエージェントの起動前に分類器が評価します。
  • 特定のサブエージェントを無効にするには、settings の deny 配列に Agent(subagent-name) の形式で項目を追加します。subagent-name はサブエージェントの name フィールドと一致させます。
  • Claude Code は、各サブエージェントの最終報告を Claude が読む前にスキャンします。
  • 既定では、サブエージェントはメインの会話から 3 階層下まで、自分のサブエージェントを起動できます。変更するには、CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH に必要な階層数を設定します。
  • 同時に実行できるサブエージェントの数は既定で 20 で、CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS で変更できます。
  • CLAUDE_CODE_SUBAGENT_EFFORT で、ほかに指定がないときにサブエージェントが使う effort レベルを、セッションの設定を継承する代わりに設定できます。
  • サブエージェントからの API リクエストには、x-claude-code-agent-id / x-claude-code-parent-agent-id ヘッダーが付きます。
HOW TO USE

使い方

最初のサブエージェントを作成して使う流れは次のとおりです。

  1. Claude Code で、作りたいサブエージェントの内容と保存先 (例: ~/.claude/agents/) を Claude に伝えます。
  2. 作成されたファイル (例: ~/.claude/agents/code-improver.md) を開き、frontmatter が依頼どおりになっているか確認します。
  3. 新しいサブエージェントへの委任を Claude に依頼します。例: 「Use the code-improver agent to suggest improvements in this project」。
公式ヘルプを開く ↗
USE CASES

利用シーン

CASE 01

コードベースの検索や分析を、読み取り専用の Explore に任せる場面に向いています。

CASE 02

調査などの脇道の作業をメインの会話から切り離し、要約だけを受け取りたい場面に使えます。

CASE 03

--agents でその場限りのサブエージェントを渡し、短い検証や自動化スクリプトで使う場面に向いています。

CASE 04

特定の作業でだけ使う MCP サーバーを、メインの会話のコンテキストに載せずに使う場面に使えます。

COMPARISON

ChatGPT・OpenAI の対応する機能

比較の単位となる業務: サブエージェントへのタスク委任と並列・バックグラウンド実行の管理

Codex の Multi-agent V2 も、バックグラウンドで動くサブエージェントを扱います。Codex アプリでは、バックグラウンドのサブエージェントに固定のアイデンティコンが付き、コンポーザーにサブエージェントの差分統計が表示されます。Subagents では、サブエージェントが既定でバックグラウンド実行され、完了通知に経過時間が表示されます。

実行中のエージェントの確認について、Agent Command Center は TUI の agents overview ダッシュボードと専用の codex agents ダッシュボードコマンドを備え、セッションの再開にも対応しています。Subagents では、サブエージェントパネルで実行中のサブエージェントの一覧を確認でき、以前の作業の続きを Claude に依頼してサブエージェントを再開できます。

TIMELINE

これまでの変更

  1. CLAUDE_CODE_SUBAGENT_EFFORT が加わりました。

  2. VS Code では、バックグラウンドのサブエージェントが、各ステップをチャットに流す代わりに Agent カードの下の 1 行のステータスとして表示される形になりました。

  3. fork サブエージェントが、ターミナルと同様に claude -p、Agent SDK、デスクトップアプリ、VS Code でも既定で有効になりました。デスクトップアプリと VS Code でも、ターミナルと同様に、メインの会話のサブエージェントが常にバックグラウンドで実行される形になりました。

  4. autoCompactWindow が加わりました。

  5. omitClaudeMd が加わりました。

  6. サブエージェントが開始したバックグラウンドコマンドの、1 時間の時間制限が撤廃されました。

  7. フォアグラウンドのサブエージェントのツール呼び出しと結果を、Remote Control クライアントにライブ配信する機能が加わりました。既定のバックグラウンドのサブエージェントは、ステータスのみの表示です。

  8. サブエージェントの fork が既定で有効になりました。subagent_type: "fork" のサブエージェントは、会話全体とプロンプトキャッシュを継承します。

  9. セッションあたり 200 の起動上限が撤廃されました。同時実行数と深さの制限は残ります。

  10. 同時実行数の上限 (既定 20) が加わりました。ネストの既定はいったん無効に変わった後、既定で深さ 3 まで (以前は 1) 起動できる形になりました。ネストを無効にするには CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 を設定します。

  11. /fork が以前起動していたセッション内サブエージェントが /subtask に名称変更されました。セッションあたりの起動数の上限 (既定 200、CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION で変更可) が加わりました。サブエージェントは既定で親セッションの権限モードを継承します。--forward-subagent-text フラグと CLAUDE_CODE_FORWARD_SUBAGENT_TEXT 環境変数で、サブエージェントのテキストと思考を stream-json 出力に含められる形になりました。

  12. サブエージェントが既定でバックグラウンド実行される形になりました (以前は段階的な展開)。サブエージェントがセッションの拡張思考設定を継承する形になりました。/agents ウィザードが削除され、作成・管理は Claude に依頼するか .claude/agents/ を直接編集する形になりました。

  13. バックグラウンドのサブエージェントの権限確認が、自動拒否からメインセッションへの表示に変わりました。

  14. サブエージェントパネルで、アイドル状態のサブエージェントが 30 秒後に自動で非表示になり、一覧が 5 行までに制限されました。auto モードでは、起動前に分類器で評価する形になりました。

  15. サブエージェントが自身のサブエージェントを、最大 5 階層まで起動できる形になりました。

  16. バックグラウンドのサブエージェントの完了通知に、経過時間が加わりました。

  17. サブエージェントからの API リクエストに、エージェント ID と親エージェント ID のヘッダーが付く形になりました。

  18. 外部ビルドでも CLAUDE_CODE_FORK_SUBAGENT=1 で fork 型サブエージェントを有効にでき、SDK と claude -p の非対話セッションでもこの設定が働く形になりました。

  19. ストリームの途中で止まったサブエージェントは、黙って止まり続けず、10 分後に明確なエラーで失敗する形に変わりました。

  20. /agents がタブ形式になり、Running タブで実行中のサブエージェントを表示し、Library タブに Run agent と View running instance の操作が加わりました。

  21. @メンションの入力候補に、名前付きサブエージェントが加わりました。

SOURCES

出典

出典 27 件を表示