Claude Code のサブエージェント入門:コンテキストを守る委譲の設計

大きなタスクを Claude Code に任せると、探索結果やログ、大量のファイル内容でメイン会話が埋め尽くされがちです。サブエージェント(subagents)は、そうした作業を独立したコンテキストで処理し、結果の要約だけをメイン会話に返す仕組みです。本記事では公式ドキュメントに基づいて、配置・フロントマター・呼び出しの仕組みを実務目線で整理します。

本記事は Claude Code の公式ドキュメント(Anthropic)を参照し、当社が日本語でまとめたものです。仕様はバージョンにより変わる場合があります。最新かつ正確な情報は記事末尾の一次資料でご確認ください。

1. サブエージェントとは何か

サブエージェントは、特定の種類のタスクを処理する専用のAIアシスタントです。公式ドキュメントによれば、各サブエージェントは独自のコンテキストウィンドウ・カスタムシステムプロンプト・限定されたツールアクセス・独立した権限を持って動作します。Claude がサブエージェントの説明に一致するタスクに出会うと委譲し、サブエージェントは独立して作業して結果を返します。

メリットは主に次の点です。

2. どこにファイルを置くか(配置とスコープ)

サブエージェントは YAMLフロントマター付きのMarkdownファイルで定義します。ファイルの場所によって「誰が使えるか」が決まります。

同じ name のサブエージェントが複数ある場合、より優先度の高い場所(プロジェクト側)のものが使われます。ディレクトリは再帰的に走査されるため、agents/review/ のようにサブフォルダで整理してもかまいません(識別は name フィールドのみで行われます)。

3. フロントマターの書き方

フロントマターがサブエージェントのメタデータと設定を定義し、本文がシステムプロンプトになります。必須は namedescription の2つだけです。次は読み取り専用のコードレビュー担当を作る例です。

# .claude/agents/code-reviewer.md
---
name: code-reviewer
description: コード品質とベストプラクティスをレビューする。コード変更後に使う。
tools: Read, Glob, Grep
model: sonnet
---

あなたはコードレビューの専門家です。可読性・保守性・
明らかなバグの観点で変更を確認し、具体的な指摘を返してください。
ファイルの書き換えは行いません。

主なフロントマターのフィールドは次のとおりです。

ポイント: ツールを絞りたいときは、許可リストの tools か、拒否リストの disallowedTools を使います。たとえば tools: Read, Grep, Glob, Bash だけを与えれば、ファイル編集やMCPツールを使わない「調べるだけ」のエージェントになります。

4. どう呼び出されるか(自動委譲)

Claude は各サブエージェントの description を手がかりに、タスクが一致したときへ自動的に委譲します。だからこそ、説明文に「どんなときに使うか」を具体的に書くことが最も重要です。~/.claude/agents/.claude/agents/ はファイルの追加・編集を数秒で検知し、次の委譲から更新後の定義が使われます(多くの場合、再起動は不要です)。

なお /agents コマンドの挙動はバージョンで変わっています。新しめのバージョンでは、対話式の作成ウィザードは廃止され、「Claude に頼むか .claude/agents/ を直接編集する」よう案内が表示されます。

5. 実務での使いどころ

サブエージェントが特に効くのは、メイン会話に残す必要のない大量の中間出力が発生する作業です。

これは、当社が別記事で紹介した Simon Willison 氏の「エージェントループの設計」の考え方とも噛み合います。役割ごとに小さなループ(サブエージェント)を用意し、メインの文脈を汚さずに回す——という設計です。

注意: サブエージェントは1つのセッション内で動きます。多数の独立したセッションを並列に走らせて一括管理したい場合は、公式ドキュメントの「background agents」「agent teams」が別の仕組みとして案内されています。用途に応じて使い分けてください。

参考元記事

  1. Anthropic「Create custom subagents(Claude Code 公式ドキュメント)」— https://code.claude.com/docs/en/sub-agents

よくある質問(FAQ)

Claude Code のサブエージェントとは何ですか?

サブエージェントは、特定の種類のタスクを処理する専用のAIアシスタントです。それぞれが独自のコンテキストウィンドウ・カスタムシステムプロンプト・限定されたツールアクセスを持ち、探索やログ調査などの作業をメイン会話から切り離して行い、結果の要約だけを返します。

サブエージェントのファイルはどこに置きますか?

プロジェクト単位なら .claude/agents/、全プロジェクト共通で使うなら ~/.claude/agents/ に、YAMLフロントマター付きのMarkdownファイルとして配置します。同じ name を持つ場合はプロジェクト側が優先されます。

サブエージェントはどう呼び出されますか?

Claude は各サブエージェントの description を見て、タスクが一致すると自動的に委譲します。そのため description には「いつ使うべきか」を具体的に書くことが重要です。

← 技術ブログ一覧へ戻る