blog

Claude Codeのサブエージェントとは?仕組み・作り方・設定・使い方をわかりやすく解説【2026年版】

目次

Claude Codeのサブエージェントとは

Claude Codeのサブエージェントとは、メインの会話から特定の作業を任される、専用の文脈(コンテキスト)を持った補助のAIエージェントです。調査・テスト実行・レビューのように途中の出力が多い作業を自分の文脈の中で進め、終わったら要約だけをメインの会話へ返します。自作するときは、YAMLの設定を先頭に書いたMarkdownファイルを .claude/agents/ に置きます。

Claude Codeは、AnthropicのAIアシスタント「Claude」がターミナルなどでコードを読み、編集し、コマンドを実行する開発ツールです。作業が大きくなると、検索結果やログがメインの会話にたまって文脈を圧迫します。そこで、脇道の作業を別のエージェントに切り出す仕組みがサブエージェントです。公式ドキュメントは、各サブエージェントが独自のシステムプロンプト、使えるツール、権限を持ち、自分の文脈の中で動くと説明しています(Anthropic公式ドキュメント「カスタムサブエージェントの作成」、2026年10月14日確認)。

メインの会話(あなたとClaude)
↓ 作業を依頼(委任のメッセージ)  ↑ 要約だけが戻る
サブエージェントA
コードを調べる
専用の文脈・読み取り専用
サブエージェントB
テストを実行する
専用の文脈・Bashも可
途中の検索結果・ログ・ファイルの中身は、各サブエージェントの文脈に残ります

たとえば「認証まわりのコードがどこにあるか調べて」と頼むと、Claudeは組み込みの調査役(Explore)に任せることがあります。調査役は何十ものファイルを開いて読みますが、メインの会話に戻ってくるのは「どのファイルの何行目に何があるか」という結論だけです。あとの会話は、読み込んだファイルの中身で埋まりません。これがサブエージェントを使ういちばんの理由です。

サブエージェントでできること(公式が挙げる5つ)

できること 内容
メインの会話を軽く保つ 調査や実装で出る検索結果・ログ・ファイルの中身は、サブエージェント側の文脈に入ります。メインの会話に戻るのは要約だけです
できることを制限する サブエージェントごとに使えるツールを絞れます。たとえば読み取り専用にできます
設定を使い回す ~/.claude/agents/ に置いたサブエージェントは、自分のすべてのプロジェクトで使えます
役割に特化させる レビュー役・調査役など、分野を絞ったシステムプロンプトを持たせられます
費用を抑える 軽い作業を、Haikuのような速くて安いモデルに回せます

向いているのは、あとで見返さない検索結果やログが大量に出る「脇道の作業」です。同じ種類の作業を同じ指示で何度も任せるなら、自作のサブエージェントとして定義しておくと使い回せます。なお、サブエージェントが送るリクエストも、メインの会話と同じ利用上限に数えられます。

Agent機能の中でのサブエージェントの位置

Claude Codeで「Agent」と名の付く機能は、サブエージェントだけではありません。公式ドキュメント「エージェントを並列実行する」は、複数の作業を同時に進める方法をサブエージェント・Agent View・Agent Teams・動的ワークフロー・Projectsの5つに分けています(2026年11月1日確認)。その中でサブエージェントは、1つのセッションの中で、Claudeが作業を任せて結果を集める方法です。Claudeがサブエージェントを起動するときに使う道具の名前も Agent ツールです。複数のセッションを並べるAgent View、メンバー同士が連絡し合うAgent Teamsを含む全体像と選び方は、Claude Code Agentとは?サブエージェント・Agent Teams・Agent Viewの違いで解説しています。Claude Codeと同じ仕組みを自分のアプリに組み込むライブラリはClaude Agent SDKで、これは別のものです。

サブエージェント以外の複数作業の進め方は、Agent Teamsの違いと使い方で解説しています。

関連記事Claude Codeで並行実行するには?

サブエージェントの仕組み:まっさらな文脈で始まり、要約だけを返す

作り方の前に、サブエージェントがどう動くかを押さえておくと、定義ファイルに何を書けばよいかが分かります。流れは次の4段階です。

① メインの会話でClaudeが判断 依頼の内容と description を照らし合わせる ② 委任のメッセージを渡して起動 会話の履歴は渡さない(フォークを除く) ③ 自分の文脈で作業する 本文のシステムプロンプト・許されたツール・ 指定のモデルと権限で動く ④ 最終報告だけがメインに戻る 途中の検索結果やログは戻らない
図: サブエージェントが起動してから結果を返すまで(公式ドキュメント「カスタムサブエージェントの作成」をもとに作成)

フォーク以外のサブエージェントは、まっさらな文脈で始まります。あなたとの会話の履歴、すでに使ったスキル、Claudeが読んだファイルは見えません。Claudeが作業を要約した「委任のメッセージ」を受け取り、そこから作業します。

読み込まれるもの 読み込まれないもの
自分のシステムプロンプト(定義ファイルの本文) メインの会話の履歴
Claudeが書いた委任のメッセージ メインの会話の自動メモリ(auto memory)
CLAUDE.md(ExploreとPlan、omitClaudeMd を付けたものは除く) 出力スタイルの設定
gitの状態(ExploreとPlanは除く) メインの会話で読んだファイルの中身
skills に書いたスキルの中身 —

サブエージェントにも守らせたいプロジェクトのルールは、CLAUDE.mdに書いておけば多くのサブエージェントに届きます。「vendor/ は触らない」のように必ず守らせたいことは、依頼の文にも書くと確実です。

Claudeは、サブエージェントの最終報告を読む前に、その中身を点検します。サブエージェントは、あなたが確かめていないファイルやWebページを読んでいることがあり、そこにメインの会話を狙った指示文がまぎれ込むことがあるためです。点検は文章を消したり書き換えたりはせず、報告が「サブエージェントの言葉であり、あなたの許可ではない」ことが分かる形でメインの会話に届きます。ただし、これは使えるツールを絞ることの代わりにはなりません。

前面(フォアグラウンド)と背景(バックグラウンド)

前面のサブエージェントは、終わるまでメインの会話を止め、許可の確認はそのままあなたに表示されます。背景のサブエージェントは、あなたが作業を続ける間に並行して動き、許可が必要になるとメインの画面にどのサブエージェントが求めているかと一緒に表示されます。対話の画面では、会話を引き継いで分岐する「フォークモード」が既定でオンのため、Claudeが起動するサブエージェントは基本的に背景で動きます(ステップ4の画面の「Backgrounded agent」)。動いている作業は Ctrl+B で背景に回せます。

利用上限や、くり返すサーバーのエラーで途中で止まったサブエージェントは、その失敗をClaudeに伝えます。背景で動いていた場合は、エラーの名前と最後の出力がClaudeに届くので、途中までの作業は失われません。原因が解消したら、Claudeにやり直しを頼むか、サブエージェントを再開します。

知っておきたい上限

  • 入れ子の深さ:既定では、メインの会話の下に3階層まで。環境変数 CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH で変えられ、1 にすると入れ子を無効にできます
  • 同時に動かせる数:既定では、1つのセッションで20個が動いていると、それ以上の起動は失敗します(CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS で変更可。v2.1.217以降)。セッション全体で起動できる総数に上限はありません
  • 文脈の大きさ:サブエージェントの文脈の大きさは、そのサブエージェントのモデルで決まります
  • 会話の記録:サブエージェントの記録はメインの会話とは別のファイルに残り、既定では30日で自動的に削除されます

最初から使える組み込みサブエージェント

Claude Codeには、自分で作らなくても最初から使える組み込みのサブエージェントがあり、Claudeが必要に応じて自動で呼び出します。どれもメインの会話の権限ルールを引き継ぎます(公式ドキュメント、2026年10月14日確認)。

名前 使えるツール Claudeが使う場面・モデル
Explore 読み取り専用(Write・Editは不可) 変更せずにコードベースを調べるとき。徹底度は quick・medium・very thorough の3段階。モデルはメインの会話と同じ(メインがFableのときは接続方法によって変わる)
Plan 読み取り専用(Write・Editは不可) プランモードで、計画を出す前にコードベースを調べるとき。モデルはメインの会話から継承
general-purpose サブエージェントで使えるすべてのツール 調査と変更の両方が要る、複数の手順にまたがる作業
claude サブエージェントで使えるすべてのツール ほかの専門のエージェントに当てはまらない作業。バックグラウンドセッションの既定のエージェントでもあります
statusline-setup — /statusline でステータスラインを設定するとき(Sonnet)
claude-code-guide — Claude Codeの機能について質問したとき(Haiku)

ExploreとPlanは、調査を速く安く済ませるため、CLAUDE.mdとgitの状態を読み込まずに始まります。CLAUDE.mdのルールを調査にも守らせたいときは、カスタムサブエージェントを作るか、依頼の文に書きます。組み込みを止めたいときは次の方法があります。

  • 特定の種類だけ止める:設定の permissions.deny に Agent(Explore) のように書く
  • ExploreとPlanだけ外す:環境変数 CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1(Claude Code v2.1.198以降)
  • サブエージェントへの委任そのものを止める:permissions.deny で Agent ツールを拒否する

組み込みと同じ名前のサブエージェントを自分で作ると、組み込みを上書きできます。たとえば Explore という名前で model: haiku を書いた定義を置けば、調査をより安いモデルで動かせます。

サブエージェントの作り方:最初の1体を作る4ステップ

サブエージェントの実体は、先頭にYAMLの設定(フロントマター)を書いたMarkdownファイルです。作り方は「Claudeに作成を頼む」か「ファイルを自分で書く」かの2通りです。ここでは公式のチュートリアルと同じく、コードを読んで改善点を提案するレビュー役 code-improver を作ります。以下の画面は、2026年10月14日にClaude Code v2.1.299で実際に実行したものです(デモ用のフォルダ shop-app で実行)。

ステップ1:Claudeに作成を頼む

Claude Codeを起動し、「どんな役割のサブエージェントを、どこに保存するか」を伝えます。読み取り専用にしたいこと、使うモデルも一緒に書きます。

.claude/agents/ に、ファイルを読んで改善点を提案する code-improver というプロジェクト用のサブエージェントを作って。読み取り専用(Read, Grep, Glob)で、モデルは haiku、説明文は日本語にして。
Claude Code v2.1.299 で「.claude/agents/ に code-improver というプロジェクト用のサブエージェントを作って。読み取り専用で、モデルは haiku」と頼んだ結果。Write(.claude/agents/code-improver.md) で30行のファイルが作られ、tools は Read, Grep, Glob、model は haiku と表示されている
Claudeに作成を頼むと、.claude/agents/code-improver.md が作られます。tools は Read, Grep, Glob、model は haiku になっています(Claude Code v2.1.299、2026年10月14日撮影)

ステップ2:生成されたファイルを確認する

作られたファイルを開き、依頼どおりになっているかを確かめます。--- で囲まれた部分がフロントマター(設定)、その下がサブエージェントのシステムプロンプト(役割の指示)です。

作成された .claude/agents/code-improver.md の中身。先頭の --- で囲まれた部分に name: code-improver、description、tools: Read, Grep, Glob、model: haiku があり、その下にレビュー役のシステムプロンプトが日本語で書かれている
生成された定義ファイル。name・description・tools・model の4項目と、レビュー役の指示が書かれています
項目 意味
name サブエージェントの名前(必須)。呼び出すときに使います。ファイル名と同じでなくてもかまいません
description どんなときに使うかの説明(必須)。Claudeはこれを読んで、自動で任せるかを決めます
tools 使えるツール。この例では読み取り系(Read・Grep・Glob)だけにして、ファイルを変更できないようにしています
model 使うモデル。haiku などの別名か、モデルIDを書きます

ステップ3:置き場所で使える範囲を決める

同じ名前のサブエージェントが複数あるときは、優先順位の高い場所のものが使われます。

置き場所 使える範囲 優先順位・作り方
管理者の設定(managed settings) 組織全体 1(最優先)。管理者が配布
--agents オプション そのセッションだけ 2。起動時にJSONで渡す
.claude/agents/ そのプロジェクト 3。Claudeに頼むか、ファイルを作る
~/.claude/agents/ 自分のすべてのプロジェクト 4。Claudeに頼むか、ファイルを作る
プラグインの agents/ プラグインを有効にした所 5(最下位)。プラグインと一緒に入る

チームで共有するなら、プロジェクトの .claude/agents/ に置いてリポジトリにコミットします。.claude/agents/ の中は下位のフォルダまで読み込まれるので、agents/review/ のように分けて整理できます(識別に使われるのは name だけです)。

ステップ4:呼び出して動作を確かめる

「code-improver エージェントで src/cart.js の改善点を提案して」のように名前を出して頼むと、Claudeがサブエージェントに任せます。画面にはサブエージェント名と短い作業名(例:code-improver(cart.js の改善点レビュー))が表示されます。

「code-improver エージェントで src/cart.js の改善点を提案して」と頼んだ画面。code-improver(cart.js の改善点レビュー) の行と Backgrounded agent の表示があり、下の一覧に main と code-improver が並んでいる
code-improver が動いている画面。対話の画面では、サブエージェントは既定でバックグラウンドで動き、下の一覧に main と code-improver が並びます
サブエージェント code-improver が src/cart.js の改善点を重要度順に返した画面。最後に Agent cart.js の改善点レビュー finished 18s と表示されている
サブエージェントの結果が戻った画面。改善点が重要度の順に並び、最後に「finished · 18s」と表示されています
起動から、code-improver に src/cart.js のレビューを任せて結果が戻るまでの動画(約54秒・音声なし)

Claude Codeは .claude/agents/ と ~/.claude/agents/ を見張っていて、ファイルを足したり直したりすると数秒で次の呼び出しから反映されます。ただし、セッションを始めた時点で agents フォルダが無かった場合は見張りの対象外なので、最初の1体を作ったら一度Claude Codeを起動し直します(ステップ1の画面の最後の案内とは異なり、公式ドキュメントはこの場合に再起動が必要としています)。

/agents コマンドは現在「置き場所の案内」だけ(古い解説との違い)

Claude Code v2.1.299 で /agents を実行した画面。The /agents wizard has been removed と表示され、Claude にサブエージェントの作成を頼むか、.claude/agents/(このプロジェクト)と ~/.claude/agents/(すべてのプロジェクト)のファイルを直接編集するよう案内されている
Claude Code v2.1.299 で /agents を実行した画面。対話式の作成画面は廃止され、Claudeに頼むか2つのフォルダのファイルを直接編集するよう案内されます(2026年10月14日撮影)

以前の解説記事でよく紹介されている /agents の対話式の作成画面(Running・Libraryのタブ)は、Claude Code v2.1.197以前のものです。v2.1.198以降は、/agents を実行するとClaudeに頼むか .claude/agents/・~/.claude/agents/ を直接編集するよう案内が出るだけです。いま動いているサブエージェントは、/tasks やプロンプトの下の一覧で確かめます。

定義ファイル(.claude/agents)の書き方:フロントマターの全項目

フロントマターは、ファイルの1行目の --- から次の --- までに書きます。必須は name と description の2つだけです。項目名は disallowedTools のように大文字・小文字まで表のとおりに書きます(知らない項目はエラーを出さずに無視されます)。

項目 内容
name(必須) 名前。256文字まで。: は使えません
description(必須) どんなときに任せるか。Claudeが委任を判断する材料です
tools 使えるツールの一覧(許可リスト)。省略するとサブエージェントで使える全ツールを引き継ぎます
disallowedTools 使わせないツールの一覧(拒否リスト)
model sonnet・opus・haiku・fable の別名、モデルID、または inherit(メインと同じ)
permissionMode 権限モード。default・acceptEdits・auto・dontAsk・bypassPermissions・plan
maxTurns 止まるまでの最大ターン数。上限で止まると結果は「途中まで」として返り、続きから再開できます
autoCompactWindow このサブエージェントの文脈を自動で圧縮し始める大きさ(100000〜1000000トークン)を、通常より小さくします(v2.1.296以降)
skills 起動時に読み込ませるスキル(説明だけでなく中身すべて)
mcpServers このサブエージェントだけが使うMCPサーバー
hooks このサブエージェントが動いている間だけ働くフック
memory 会話をまたいで残る記憶の範囲。user・project・local
background true にすると常にバックグラウンドで動かします
omitClaudeMd true にするとCLAUDE.mdを読み込まずに始めます(v2.1.271以降)
effort このサブエージェントの思考の深さ(low〜max。使える段階はモデルによる)
isolation worktree にすると、リポジトリの一時的なコピー(gitのワークツリー)の中で作業させます。変更が無ければ自動で片付けられます
color 一覧や会話に表示する色(red・blue・green など8色)
initialPrompt --agent でメインのセッションとして動かすときに、最初に自動で送る依頼

フロントマターの下に書いた本文が、そのサブエージェントのシステムプロンプトになります。サブエージェントが受け取るのはこのシステムプロンプトと作業フォルダなどの基本情報だけで、Claude Code本体のシステムプロンプトは受け取りません。

本文(システムプロンプト)に書く4つのこと

本文は、サブエージェントにとって唯一の「仕事の説明書」です。メインの会話の履歴を見られないので、次の4つを短く書いておくと、毎回の依頼の文が短くても迷わずに動きます。

書くこと 例(レビュー役の場合)
役割 あなたはコードレビュー担当です
やること 変更されたファイルを読み、不具合の可能性と読みにくい箇所を探す
やらないこと ファイルは変更しない。対象外のフォルダは読まない
報告の形 重要度(高・中・低)、ファイル名と行、内容の順に、重要なものから並べる

報告の形を決めておくのが特に効きます。メインの会話に戻るのは最終報告だけなので、形がそろっていると、Claudeが次の作業に使いやすくなります。どれも自作の例で、公式が決めた書式ではありません。

description は短く、いつ使うかを書く

Claudeは、依頼の内容・各サブエージェントの description・その時点の文脈から、どのサブエージェントに任せるかを決めます。積極的に任せてほしいときは、description に「use proactively(積極的に使う)」のような言い回しを入れます。description は常に文脈を消費するため、組み込み以外の description の合計が15,000トークンを超えると起動時に警告が出ます。説明は短くし、細かい指示は本文(システムプロンプト)に書きます。

ファイルが読み込まれないときの確認点

次のどれかに当てはまるファイルは、画面に何も出さずに読み飛ばされます。

  • name が無い(説明用の文書として扱われる)
  • 先頭の --- が1行目に無い
  • name が - で始まる、: を含む、256文字を超える
  • name はあるが description が無い
  • YAMLの書き方が壊れている

理由は claude --debug で起動すると、デバッグログ(~/.claude/debug/ の下)で確かめられます。項目名の書き間違いは、ログで does not recognize or apply を探すと、認識されなかった項目と、近い正しい項目名が分かります(v2.1.296以降)。フロントマターの書き間違いは、claude plugin validate .claude/agents で事前に調べられます(v2.1.233以降)。

ファイルを作らずに試す(–agents オプション)

起動時にJSONで定義を渡すと、そのセッションだけのサブエージェントを作れます。ディスクに保存されないので、試しに動かすときや自動化のスクリプトに向いています。prompt がファイルの本文(システムプロンプト)にあたります。

claude --agents '{
  "code-reviewer": {
    "description": "Expert code reviewer. Use proactively after code changes.",
    "prompt": "You are a senior code reviewer.",
    "tools": ["Read", "Grep", "Glob", "Bash"],
    "model": "sonnet"
  }
}'

サブエージェントのツールを制限する(tools と disallowedTools)

ツールは、呼び出す側のClaudeがその都度決めるのではなく、定義ファイルの tools と disallowedTools で決めます。何も書かなければ、メインの会話で使える組み込みツールとMCPツールを引き継ぎます。

使ってよいツールだけを並べるのが tools(許可リスト)です。次の例では Read・Grep・Glob・Bash だけが使え、ファイルの編集・書き込みやMCPのツールは使えません。

---
name: safe-researcher
description: Research agent with restricted capabilities
tools: Read, Grep, Glob, Bash
---

使わせないツールだけを並べるのが disallowedTools(拒否リスト)です。次の例では、書き込み(Write・Edit)以外のツールをすべて引き継ぎます。

---
name: no-writes
description: Inherits the available tools except file writes
disallowedTools: Write, Edit
---

両方を書いた場合は、先に disallowedTools で除き、残りの中から tools が選ばれます。そのほかの決まりは次のとおりです。

  • MCPはサーバー単位で指定できる:mcp__github と書くと、githubのMCPサーバーのツールをまとめて許可・拒否できます
  • コマンド単位の禁止は設定で行う:disallowedTools に Bash(git push *) と書いても、Bashツールごと外れます。Bashは残して特定のコマンドだけ止めたいときは、設定の permissions.deny に書きます(メインの会話にも効きます)
  • 入れ子を許すかは Agent で決まる:tools に Agent を含めると、そのサブエージェントがさらにサブエージェントを起動できます(深さの上限まで)。含めなければ起動できません
  • 全部の名前を間違えると起動しない:tools のどれもツールに当てはまらないと、サブエージェントは起動せずエラーになります

なお、AskUserQuestion(あなたへの質問)やプランモードの出入りなど、サブエージェントでは使えないツールがあります。また、バックグラウンドで動くサブエージェント(対話の画面では既定)は、Read・Grep・Glob・Bash・Edit・Write・WebFetch・WebSearch などに組み込みツールが絞られます。同じ定義でも前面と背景で使えるツールが変わる点に注意してください。

サブエージェントのモデルと思考の深さを指定する

使うモデルは、定義ファイルの model に別名(sonnet・opus・haiku・fable)かモデルIDで書きます。inherit と書くとメインの会話と同じモデルになります。実際に使われるモデルは、次の順番で決まります。

  1. Claudeが呼び出しのたびに指定したモデル
  2. 定義ファイルの model
  3. 環境変数 CLAUDE_CODE_SUBAGENT_MODEL
  4. メインの会話のモデル

つまり、定義ファイルに model を書かず、環境変数も設定していなければ、サブエージェントはメインの会話と同じモデルで動きます。メインに高性能なモデルを使っている場合、機械的な作業を多数のサブエージェントに任せると、そのぶん利用枠や費用を多く使います。軽い作業のサブエージェントには model: haiku などを書いておくと安心です。

すべてのサブエージェントを1つのモデルにそろえたいときは、設定ファイルの env に次のように書きます(v2.1.257以降)。この間は、定義ファイルの model や呼び出しごとの指定は無視されます。

{
  "env": {
    "CLAUDE_CODE_SUBAGENT_MODEL": "haiku",
    "CLAUDE_CODE_SUBAGENT_MODEL_FORCE": "1"
  }
}

動いているサブエージェントのモデルは、/tasks の一覧で確かめられます(v2.1.242以降)。思考の深さは effort で個別に決められます。なお、拡張思考(extended thinking)はメインの会話の設定を引き継ぎ、サブエージェントごとには変えられません。

権限モードとフックで安全に動かす

permissionMode:権限モードを決める

permissionMode で、そのサブエージェントの権限モードを決められます。書かなければメインの会話のモードを引き継ぎます。

設定値 動き
default Manualモード。操作の前に許可を求めます(manual と書いても同じ)
acceptEdits 作業フォルダ内のファイル編集と、よく使うファイル操作のコマンドを自動で許可
auto autoモード。バックグラウンドの分類器が、コマンドや保護されたフォルダへの書き込みを確認します
dontAsk 許可を求める場面はすべて自動で拒否。明示的に許可したツールだけ動きます
bypassPermissions 確認を省略。メインの会話もこのモードのときだけ有効です
plan プランモード(読み取り専用の調査)

注意したいのは、メインの会話が bypassPermissions・acceptEdits・autoモードのときは、サブエージェントもそのモードで動き、permissionMode の指定は無視されることです。指定が効くのは、メインが default・dontAsk・plan のときです。また、Claude Code v2.1.283以降は、ターミナルとVS Codeの対話セッションがautoモードで始まるのが既定です(以前の「既定では毎回確認を求める」という説明は現在は当てはまりません)。ステップ1の画面に出ている「Allowed by auto mode classifier」は、分類器がファイルの作成を許可したという意味です。毎回自分で確認したい作業では、claude --permission-mode default で起動します。

hooks:条件つきでツールを止める

ツールの一部の使い方だけを止めたいときは、フロントマターの hooks に PreToolUse フックを書きます。フックのスクリプトは、ツールが動く前に呼ばれ、実行しようとしている内容をJSONで受け取ります。止めたいときは終了コード2で終わると、その操作は拒否されます。公式の例は、データベースを読むだけのサブエージェントで、Bashのコマンドを実行する前にスクリプトで確認し、書き込みのSQLなら止めるものです。

db-reader が Bash でSQLを実行しようとする PreToolUse フックが先に動く validate-readonly-query.sh SELECT だけ 終了コード0 → 実行 INSERT・DELETE など 終了コード2 → 拒否
図: 読み取り専用のデータベース用サブエージェントで、書き込みのSQLだけをフックで止める流れ(公式ドキュメントの例をもとに作成)
---
name: db-reader
description: Execute read-only database queries
tools: Bash
hooks:
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "./scripts/validate-readonly-query.sh"
---

フロントマターのフックは、そのサブエージェントが動いている間だけ働きます。プロジェクトの .claude/agents/ にあるサブエージェントのフックは、そのフォルダを信頼(起動時の確認で「Yes, I trust this folder」を選ぶ)するまで実行されません。セッション全体の settings.json に書いたフックはサブエージェントの中でも働き、サブエージェントの開始・終了には SubagentStart・SubagentStop のイベントが使えます。フックの書き方はClaude Codeのフック(Hooks)の解説で詳しく紹介しています。

記憶(memory)とスキルを持たせる

サブエージェントは呼ぶたびにまっさらな文脈で始まります。それでも、コードの癖やよくある不具合を毎回調べ直させたくないときは、memory で会話をまたいで残る記憶の置き場所を持たせます(公式ドキュメント「カスタムサブエージェントの作成」、2026年11月1日確認)。

値 記憶の置き場所 向いている場合
user ~/.claude/agent-memory/名前/ すべてのプロジェクトで学んだことを使いたい
project .claude/agent-memory/名前/ プロジェクト固有で、Gitで共有したい(公式のおすすめ)
local .claude/agent-memory-local/名前/ プロジェクト固有だが、Gitには入れたくない

記憶を有効にすると、次のことが起きます。

  • サブエージェントのシステムプロンプトに、記憶のフォルダの読み書きのしかたが加わります。
  • 記憶のフォルダの MEMORY.md の先頭200行か25KBの、先に達したほうまでが読み込まれます。それを超えると、MEMORY.md を整理するよう指示されます。
  • 記憶のファイルを扱えるように、Read・Write・Edit のツールが自動で使えるようになります。

サブエージェントの記憶は、Claude Codeの自動メモリの一部です。設定の autoMemoryEnabled や環境変数 CLAUDE_CODE_DISABLE_AUTO_MEMORY で自動メモリを止めていると、memory を書いても効きません。使い方のこつとして、公式は「作業の前に記憶を見て」「終わったら学んだことを記憶に残して」と頼むこと、本文(システムプロンプト)に記憶を更新するよう書いておくことを挙げています。

---
name: code-reviewer
description: 変更したコードをレビューするときに使う。読み取り専用
tools: Read, Grep, Glob
memory: project
---
レビューの前に、記憶にある過去の指摘を確認してください。
レビューで見つけたこの環境の癖や、くり返し出る問題は、短いメモとして記憶に残してください。

チームの決まりごとをスキルにしてあるなら、skills に並べると、起動時にそのスキルの中身すべてがサブエージェントの文脈に入ります(説明だけでなく全文。列挙できるのは先頭の32個の異なる名前まで)。並べていないスキルも、Skill ツールから呼び出せます。スキルの作り方はClaude Code Skillsの解説をご覧ください。

サブエージェントの呼び出し方と動き方

4つの呼び出し方

方法 使い方
自動で任せる 依頼の内容が description に合うと、Claudeが自分で判断して任せます
名前を出して頼む 「code-improver エージェントで〜して」と書きます。任せるかの最終判断はClaudeです
@メンション @ を入力して一覧から選ぶ(または @agent-名前)と、そのサブエージェントが必ず使われます
セッション全体をそのエージェントにする claude --agent code-improver で起動するか、.claude/settings.json に "agent": "code-improver" と書きます。メインの会話そのものが、そのツール制限とモデルで動きます

任せるときの頼み方:依頼の文に書く4つのこと

Claudeがサブエージェントに渡す委任のメッセージは、あなたの依頼の文から作られます。サブエージェントは会話の履歴を見られないので、依頼の文が具体的なほど、委任のメッセージも具体的になります。名前を出して頼むときは、次の4つを入れると確実です(自作の例です)。

  • 対象:「src/cart.js と src/order.js を」
  • 目的:「送料の計算が二重になる原因を」
  • 範囲:「読むだけで、ファイルは変更しないで」
  • 報告の形:「原因の候補を、可能性の高い順に3つまで、根拠の行番号つきで」
code-improver エージェントで、src/cart.js と src/order.js を読んで、送料の計算が二重になる原因を調べて。ファイルは変更しないで、原因の候補を可能性の高い順に3つまで、根拠の行番号つきで報告して。

続きから再開する・会話ごと分岐する

  • 再開:サブエージェントは呼ぶたびに新しく作られますが、「さっきのレビューの続きで、認可の処理も見て」と頼むと、Claudeが前回の履歴を持ったまま再開させます。組み込みのExploreとPlanは使い切りなので再開できません
  • フォーク:/subtask 作業内容 で、ここまでの会話をすべて引き継いだサブエージェントを起動できます(v2.1.212以降)。背景の説明を繰り返さずに脇道の作業を任せたいときに向きます

Claude Code・AIエージェントの業務導入をご検討の方は、自社での開発実例を公開しているクリスタルメソッドの無料相談をご利用ください。

サブエージェントの活用パターンと実運用の注意

公式が紹介する3つの型

  • 出力の多い作業を切り出す:テストの実行、ドキュメントの取得、ログの処理など。例「サブエージェントでテストを実行し、失敗したテストとエラーだけを報告して」
  • 並行して調べる:互いに依存しない調査を、複数のサブエージェントに同時に任せます。例「認証・データベース・APIの各モジュールを、別々のサブエージェントで並行して調べて」。ただし、それぞれの結果がメインの会話に戻るので、詳しい結果を返すサブエージェントを多数動かすと文脈を多く使います
  • 順番につなぐ:「code-reviewer で性能の問題を見つけて、optimizer で直して」のように、前の結果を次のサブエージェントに渡します

役割を分ける例:計画・実装・確認を別のエージェントに任せる

1つのエージェントに作らせて、そのまま自分で採点もさせると、出来を甘く見がちです。Anthropic Labsチームのエンジニアは、エンジニアリングブログ「Harness design for long-running application development」(2026年3月24日)で、この問題を避けるために役割を3つに分けた構成を紹介しています。同記事は長時間のアプリ開発向けの仕組みの解説で、Claude Codeのサブエージェント機能そのものの手引きではありません。ただ、役割を分けて任せる考え方はサブエージェントの設計にもそのまま使えます。

役割 記事での仕事 サブエージェントなら
Planner(計画) 1〜4文の短い依頼を、製品の仕様書に広げる。細かい実装ではなく、製品の文脈と大きな技術設計に集中する 読み取り専用の調査・計画役にする
Generator(実装) 仕様にそって機能を作る。記事の初期の構成では機能を1つずつ(スプリント単位で)作り、バージョン管理にはgitを使う Edit や Bash を許した実装役にする
Evaluator(確認) 動いているアプリを実際に操作して画面・API・データベースの状態を確かめ、基準に満たなければ具体的な不具合として実装側に返す 実装役とは別の文脈で確認する役にする

役割を分ける理由として、記事は2つを挙げています。1つは自己評価の甘さで、エージェントは自分の成果物を採点すると「一貫して高く評価しがち」だと述べています。確認役を別にしたほうが、実装役に自分を批判させるより、厳しく調整しやすいという考えです。もう1つは文脈の不安で、モデルによっては、文脈の上限に近づくと作業を早く切り上げようとします。記事によると、Claude Sonnet 4.5を使った初期の構成ではこれを引き継ぎ書つきの文脈のリセットで抑えましたが、Opus 4.5ではこの挙動がほぼ見られなくなり、リセットをやめたとのことです。

実装を始める前に、実装役が「何を作り、何をもって完了とするか」を提案し、確認役が合意するまで見直す「スプリントの契約」も紹介されています。エージェント同士のやり取りはファイルで行われました。なお、記事は後の版で構成を簡素にしており、確認役は最後に1回だけ動く形に変わったと書いています。確認役は常に必要というわけではなく、モデルが1人では安定してこなせない難しさの作業で費用に見合う、という位置づけです。

確認役を甘くしないための工夫(記事より)

工夫 記事の記述
そのままでは甘い 筆者は「そのままのClaudeはQAエージェントとしては力不足」で、端のケースを突かず表面的なテストで済ませがちだったと書いています
見本を見せて調整する 点数の内訳つきの具体例(few-shot)を渡して、筆者の判断基準に合わせ、採点のぶれを減らしました
ログを読んで直す 確認役のログを読み、筆者の判断とずれた例を探して、QAのプロンプトを更新する流れを繰り返しました。確認役が「重大ではない」と自分を納得させて通してしまう例があったためです
基準にしきい値を置く 各基準に「しきい値」を設け、1つでも下回れば、そのスプリントは失敗として実装役に詳しい指摘が返ります。報告は「FAIL — ツールが範囲を塗りつぶさず、ドラッグの始点と終点にしか置かない」のように具体的でした
ファイルで受け渡す エージェント同士のやり取りはファイルで行い、片方が書いたファイルを、もう片方が読んで返しました
足し算を疑う 仕組みの各部品は「モデルが1人でできないこと」への仮定なので、その仮定を試し、新しいモデルが出たら不要になった部品を外すとよい、という趣旨です

3つの役割をClaude Codeのサブエージェントで書く例

上の分け方を、プロジェクトの .claude/agents/ に置く定義として書くと次のようになります(自作の例で、記事の実装そのものではありません)。ツールは役割に必要なものだけに絞ります。

# .claude/agents/planner.md(読み取り専用。仕様を作る)
---
name: planner
description: 短い依頼を、機能一覧と完了条件つきの仕様に広げるときに使う
tools: Read, Grep, Glob
model: sonnet
---
依頼を読み、作る機能の一覧と、それぞれの完了条件を書いてください。実装の細部には踏み込まないでください。

# .claude/agents/generator.md(実装役。編集とコマンドを許す)
---
name: generator
description: 合意した仕様と完了条件にそって実装するときに使う
tools: Read, Grep, Glob, Edit, Write, Bash
model: sonnet
---
仕様の機能を1つずつ実装し、終わったら変更点と動かし方を報告してください。

# .claude/agents/evaluator.md(確認役。ファイルは直さない)
---
name: evaluator
description: 実装が完了条件を満たすかを、実際に動かして確かめるときに使う
tools: Read, Grep, Glob, Bash
model: sonnet
---
完了条件を1つずつ確かめ、満たさないものは再現手順つきで不具合として報告してください。甘く採点せず、迷ったら不合格にしてください。

メインの会話からは、公式ドキュメントが示す「順番につなぐ」型で、たとえば「planner で仕様を作り、generator で実装し、evaluator で確かめて、不合格の項目は generator に直させて」と頼みます。各サブエージェントは結果をメインの会話へ返し、メインがそれを次へ渡す形になるため、途中の受け渡しはメインの会話が担います。確認役に Edit を持たせないのは、確認と修正の役割を混ぜないためです。

役割別の定義例:レビュー役・テスト役・デバッグ役

役割ごとにツールとモデルを絞った定義の先頭部分(フロントマター)の例です。どれも自作の例です。

# .claude/agents/code-reviewer.md(コードを読んで指摘するだけ)
name: code-reviewer
description: 変更したコードをレビューするときに使う。読み取り専用
tools: Read, Grep, Glob
model: sonnet

# .claude/agents/test-runner.md(テストを動かして失敗だけ報告)
name: test-runner
description: テストを実行し、失敗したテストとエラーだけを報告するときに使う
tools: Bash, Read, Grep
model: haiku

# .claude/agents/debugger.md(原因を調べて直す)
name: debugger
description: エラーやテスト失敗の原因を調べて直すときに使う
tools: Read, Grep, Glob, Edit, Bash

レビュー役は書き込みツールを持たせず、テスト役は軽いモデル(haiku)に回し、直す役だけに Edit を許す、という分け方です。本体の会話は「code-reviewer で見つけた問題を debugger で直して」のようにつなぐだけで済みます。

増やしすぎない:費用と向き不向き(Anthropic公式ブログより)

サブエージェントを何体も並べると速く深く調べられる一方、費用は増えます。Anthropicのエンジニアリングブログ「How we built our multi-agent research system」(2025年6月13日)は、研究用のマルチエージェント機能を作った経験から、次の数字と注意点を挙げています。これはClaude Codeの機能ではなく、同社のリサーチ機能の事例です。

論点 記事の記述
性能 司令役にClaude Opus 4、調査役にClaude Sonnet 4を使った構成が、社内の調査評価で単体のClaude Opus 4を90.2%上回ったと書かれています
速度 道具の呼び出しを並列にするなどの変更で、複雑な質問の調査時間を最大90%短縮したとされています
トークンの消費 エージェントは通常のチャットの約4倍、マルチエージェントは約15倍のトークンを使うと書かれています
向かない作業 全員が同じ文脈を共有する必要がある作業や、エージェント同士の依存が多い作業は不向きです。コーディングは並列にできる部分がリサーチより少ないため、相性がよくないとも述べています
数の目安(プロンプトの規則) 単純な事実の確認は1体で道具を3〜10回、比較は2〜4体で各10〜15回、複雑な調査は10体を超える構成で、役割を明確に分けるという規則を司令役に与えたとされています

Claude Codeで使うときも、考え方は同じです。依存のない調査だけを並行させ、数は作業の大きさに合わせます。さらに、モデルを指定してサブエージェントの費用を抑える、結果が返ってきたらメインの会話で突き合わせる、といった運用で無駄な消費を防げます(本記事の「よくある問題と対処法」の表も参照してください)。

監修者の実運用から:効く場面と落とし穴

監修者・河合継は1年以上、実務でClaude Codeとサブエージェントを使ってきました。その中で分かった、効く場面と注意点を補足します。

  • いちばん効くのは「調べ物の切り出し」:どこに何があるかを本体で延々と読ませると、その結果が本体の文脈に残り続けて後の作業まで重くなります。調査をサブエージェントに任せ、結論だけ受け取ると、本体を軽いまま保てました
  • 独立して進む作業に向く:互いに依存する処理を分けて回すと、後で束ねる手間が利点を上回ります。前後関係のない作業を切り出すのが、いちばん素直に効きました
  • 戻ってきた結果は確認する:文脈が分かれているぶん、本体の前提と食い違うことがあります。結論をそのまま使わず、一度突き合わせると事故が減りました
  • モデルの指定漏れに注意:モデルを指定しないと、メインの会話の高性能なモデルがそのまま多数のサブエージェントに引き継がれ、想定外に利用量が増えます。用途に応じてモデルを指定し、判断が必要な工程だけ高性能なモデルに絞る運用にしています
  • 失敗を前提に戻せる仕組みを持つ:ファイルを編集する直前に自動でバックアップを取るフック(PreToolUse)を入れ、意図しない上書きが起きても戻せるようにしています。実際に起きた問題は、そのつど運用ルールとして書き足しています

チームで .claude/agents を共有するときのルール

公式ドキュメントが示す、チームで使うときの決まりごとを表にまとめます。

ルール 内容(公式ドキュメント)
リポジトリに置く コードベース固有のサブエージェントは .claude/agents/ に置いてコミットします。チームで使い、改善していくための置き場所です
名前を重ねない 識別に使われるのは name だけです。フォルダを分けても、ツリー全体で name を一意にします。同じフォルダに同名があると1つしか読み込まれず、/doctor が報告します
優先順位を知る 同名なら、管理者の設定、--agents、.claude/agents/、~/.claude/agents/、プラグインの順で優先されます。入れ子のフォルダでは作業ディレクトリに近い定義が使われます
プロジェクトをまたぐ --add-dir で追加したディレクトリの .claude/agents/ も読み込まれます。--add-dir を使わずに共有するなら、~/.claude/agents/ かプラグインを使います
組織で配る 管理者は、管理設定のディレクトリの .claude/agents/ に置いて組織全体に配れます。同名のプロジェクト・個人の定義より優先されます
プラグインで配る プラグインのサブエージェントは自動で読み込まれ、my-plugin:code-reviewer のような名前で並びます。hooks・mcpServers・permissionMode の項目は無視されるので、フックは hooks/hooks.json、MCPサーバーは .mcp.json に書きます
書式を確かめる claude plugin validate で、.claude/agents のフロントマターが読めるかを調べられます。claude plugin eval は、プラグインの有無で同じ依頼を流し、サブエージェントへ任せる確実さを採点します

定義ファイルの変更をほかのコードと同じようにプルリクエストで見てもらう運用にすると、ツールの追加や権限の緩みに気づきやすくなります(これは公式の記述ではなく、運用上の提案です)。

サブエージェント・メインの会話・Skills・Agent Teamsの使い分け

サブエージェントは万能ではありません。まっさらな状態から始まるため、文脈を集める時間もかかります。公式ドキュメントの案内をもとに、サブエージェントを使う人の目線で、ほかの手段との使い分けを整理します。

手段 向いている場面
メインの会話 何度もやり取りして詰める作業。計画・実装・テストのように同じ文脈を使い続ける作業。すぐ終わる小さな変更。待ち時間を短くしたいとき
サブエージェント メインの会話には要らない長い出力が出る作業。ツールや権限を絞りたい作業。単独で完結し、要約を返せば済む作業
フォーク(/subtask) ここまでの会話をすべて引き継いだサブエージェントに、脇道の作業を任せたいとき。背景の説明が多すぎて、ふつうのサブエージェントには伝えきれないときや、同じ地点から複数のやり方を並行して試したいときに向きます
Skills 再利用したい手順や指示を、メインの会話の文脈の中で動かしたいとき
Agent View 独立した複数のセッションを並べて動かし、1つの画面で見守りたいとき
Agent Teams メンバー同士が直接連絡し合い、共有のタスク一覧で協力して進めたいとき(トークンの消費は多め)
プロジェクト claude.ai/code やデスクトップアプリで、数日から数週間にわたる多くの作業を、Claudeが並列のセッションで進めてほしいとき(公式はProとMaxのパブリックベータと表記。Claude Projectsの解説)
動的ワークフロー サブエージェント数個では足りない大きな作業や、結果を相互に確かめたい作業を、スクリプトで動かしたいとき
/btw いまの会話にある内容について、ちょっと質問したいとき(会話全体が見えるがツールは使えず、答えは履歴に残らない)

SkillsはClaude Code Skillsの解説、Agent ViewとAgent Teamsの使い方はClaude Code Agentの解説で詳しく説明しています。サブエージェントの定義は、Agent Teamsのメンバーを起動するときの役割として使い回すこともできます。

サブエージェントで足りなくなったら

サブエージェントは結果を、起動した会話にだけ返します。作業どうしが直接やり取りする必要が出てきたら、メンバー同士がメッセージを送り合うAgent Teamsが候補です。同じファイルを複数の作業で触るなら、サブエージェントは1体ごとに isolation: worktree でワークツリー(作業ごとに別のgitチェックアウト)に分けられます。一方、Agent Teamsのメンバーはワークツリーで分けられないので、担当するファイルを分けて渡します(2026年11月1日に公式ドキュメント「エージェントを並列実行する」で確認)。

名前が似ていて紛らわしい点が2つあります。1つ目は、/agents と claude agents は別のものだということです。/agents はサブエージェントのファイルの場所を案内するコマンド、claude agents はAgent Viewを開くコマンドです。2つ目は、Agent Teamsを有効にして始めたセッションでは、Claudeがメインの会話から名前(name)付きで起動したサブエージェントが、サブエージェントではなくチームメイトとして起動することです(会話のフォークと、呼び出しで isolation を指定した場合を除く。定義ファイル側の isolation ではこれを防げません)。

サブエージェント・Skills・CLAUDE.mdの違い

サブエージェントの解説記事では、Skills・CLAUDE.mdとの違いがよく問われます。3つは「どこで・いつ効くか」が違います。公式ドキュメントの説明をもとに整理します(2026年10月27日確認)。

手段 効き方 向いている内容
CLAUDE.md 会話の開始時に読み込まれ、プロジェクトのルールとして効き続ける。サブエージェントにも届く(ExploreとPlan、omitClaudeMd を付けたものは除く) 「vendor/ は触らない」のような、常に守らせたい決まり
Skills メインの会話の文脈の中で動く、再利用できる手順や指示 何度も使う作業の段取り。会話の流れの中で実行したいもの
サブエージェント 別の文脈(まっさらな状態)で動く担当者。独自のシステムプロンプト・ツール・権限を持ち、要約だけを返す 長い出力が出る調査やテスト。ツールを絞りたい作業

組み合わせることもできます。サブエージェントの定義の skills に書いたスキルは、起動時に中身すべてが文脈へ入ります(説明だけでなく全文。列挙できるのは先頭の32個の異なる名前まで)。反対に、スキルの側から特定のエージェントで実行させる方法(context: fork)もあります。どちらの場合も、サブエージェントは会話の履歴を持たずに始まります。Skillsの作り方はClaude Code Skillsの解説を参照してください。

サブエージェントでよくある問題と対処法

問題 主な原因 対処法
作ったサブエージェントが見つからない セッション開始時に agents フォルダが無かった/name や description が無い Claude Codeを再起動する。フロントマターを確認し、claude --debug で理由を見る
自動で任せてくれない description が曖昧 いつ使うかを具体的に書く。名前を出して頼むか、@メンションで指定する
使えるはずのツールが無い 背景で動くと組み込みツールが絞られる/tools の書き間違い tools の綴りを確認する。必要なら前面で動かすよう頼む
permissionMode が効かない メインの会話が auto・acceptEdits・bypassPermissions メインを default などで起動する
関係ないファイルまで編集する 依頼の範囲が曖昧/書き込みツールが使える 「src/user/ だけを対象」と書く。調べるだけの役は tools を読み取り系に絞る
利用量・費用が多い モデル未指定で高性能なモデルを引き継いでいる/並行させすぎ model: haiku などを書く。小さく試してから広げる
memory を書いたのに記憶されない 自動メモリが止まっている 設定の autoMemoryEnabled と環境変数 CLAUDE_CODE_DISABLE_AUTO_MEMORY を確認する
サブエージェントのつもりがチームのメンバーになる Agent Teamsが有効で、Claudeが名前を付けて起動した CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS を 0 に戻す
同時に起動できない 同時20個の上限に達した 終わるのを待つ。必要なら CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS を変える

よくある質問

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

A. メインの会話から特定の作業を任される、専用の文脈(コンテキスト)を持った補助のAIエージェントです。調査やテスト実行のように途中の出力が多い作業を自分の文脈の中で進め、終わったら要約だけをメインの会話へ返します。それぞれが独自のシステムプロンプト、使えるツール、権限を持ちます。

Q. サブエージェントはどうやって作りますか?

A. Claude Codeに「こういう役割のサブエージェントを、この場所に作って」と頼むか、YAMLのフロントマターを書いたMarkdownファイルを自分で置きます。必須の項目は name と description の2つです。セッションを始めた時点で agents フォルダが無かった場合は、作ったあとにClaude Codeを再起動します。

Q. .claude/agents と ~/.claude/agents の違いは何ですか?

A. プロジェクトの .claude/agents/ に置いたサブエージェントはそのプロジェクトだけで使え、リポジトリにコミットすればチームで共有できます。ホームの ~/.claude/agents/ に置いたものは、自分のすべてのプロジェクトで使えます。同じ名前があるときは、プロジェクト側が優先されます。

Q. サブエージェントが使えるツールを制限するにはどうしますか?

A. 定義ファイルの tools に使ってよいツールだけを並べるか、disallowedTools に使わせないツールを並べます。たとえば tools: Read, Grep, Glob とすると読み取り専用になります。何も書かなければ、サブエージェントで使えるすべてのツールを引き継ぎます。

Q. サブエージェントのモデルはどう決まりますか?

A. Claudeが呼び出しのたびに指定したモデル、定義ファイルの model、環境変数 CLAUDE_CODE_SUBAGENT_MODEL、メインの会話のモデルの順で決まります。model を書かず環境変数も設定していなければ、メインの会話と同じモデルで動きます。

Q. /agents コマンドはもう使えないのですか?

A. Claude Code v2.1.198以降は、/agents を実行すると、Claudeに作成を頼むか .claude/agents/ と ~/.claude/agents/ のファイルを直接編集するよう案内が表示されるだけです。対話式の作成画面(Running・Libraryのタブ)は v2.1.197 以前の機能です。

Q. サブエージェントはメインの会話の履歴を見られますか?

A. 見られません。フォーク以外のサブエージェントは、Claudeが書いた委任のメッセージと自分のシステムプロンプト、CLAUDE.mdなどから始まり、あなたとの会話の履歴やClaudeが読んだファイルは見えません。会話をすべて引き継ぎたいときは /subtask でフォークを起動します。

Q. サブエージェントに記憶を持たせられますか?

A. 持たせられます。定義ファイルに memory: project のように書くと、サブエージェントは .claude/agent-memory/名前/ に学んだことを書き残し、次の会話でも MEMORY.md の先頭200行(または25KB)まで読み込みます。自動メモリを止めていると効きません。

Q. サブエージェントから、さらにサブエージェントを呼べますか?

A. 呼べます。定義ファイルの tools に Agent を含めると、そのサブエージェントがさらにサブエージェントを起動できます。入れ子は既定でメインの会話の下に3階層までで、環境変数 CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH で変えられます。

Q. サブエージェントは無料プランで使えますか?

A. サブエージェントはClaude Codeの機能なので、Claude Codeが使える契約で使えます。Claude Codeは、Free以外の有料プラン(Pro、Max、Ultra、Team、Enterprise)に含まれるほか、APIキーで従量課金でも使えます。サブエージェントそのものに追加料金はありませんが、サブエージェントが送るリクエストもメインの会話と同じ利用上限に数えられます。

Q. サブエージェントとSkills・CLAUDE.mdの違いは何ですか?

A. CLAUDE.mdは会話の開始時に読み込まれる常に守らせたい決まり、Skillsはメインの会話の文脈の中で動く再利用できる手順、サブエージェントは別の文脈で動いて要約だけを返す担当者です。サブエージェントの定義の skills に書けば、起動時にスキルの中身をサブエージェントへ読み込ませることもできます。

Q. サブエージェントとAgent Teamsの違いは何ですか?

A. サブエージェントは1つのセッションの中で動き、結果を呼び出した会話に返します。Agent Teamsは、メンバーごとに独立したセッションが共有のタスク一覧とメンバー同士の直接の連絡で協力する仕組みで、そのぶんトークンの消費は多くなります。

まとめ

Claude Codeのサブエージェントは、脇道の作業を専用の文脈で進め、要約だけをメインの会話に返す仕組みです。最後に要点を整理します。

  • まっさらな文脈で始まり、会話の履歴は見えない。必要なことは本文(システムプロンプト)と依頼の文に書く
  • 最初から Explore・Plan・general-purpose などの組み込みがあり、Claudeが自動で使う
  • 自作するなら、Claudeに頼むか、.claude/agents/(プロジェクト用)か ~/.claude/agents/(全プロジェクト用)にMarkdownファイルを置く。必須は name と description
  • 使えるツールは tools・disallowedTools、モデルは model で決める。モデル未指定はメインの会話と同じモデルになる
  • permissionMode は、メインが auto・acceptEdits・bypassPermissions のときは無視される。v2.1.283以降は対話セッションがautoモードで始まるのが既定
  • memory で会話をまたぐ記憶を、skills でチームの手順を持たせられる
  • /agents は現在、置き場所を案内するだけ。動いているサブエージェントは /tasks で確かめる

まずは読み取り専用のレビュー役や調査役を1体作り、メインの会話が軽くなるかを試してみてください。

参考文献

公式ドキュメントは2026年10月14日に内容を確認し、「エージェントを並列実行する」と「カスタムサブエージェントの作成」は2026年11月1日に再確認しました。

関連記事



Claude Code・AIエージェントの業務活用をご検討の方へ

クリスタルメソッドは、AIエージェント・社員AIの導入と開発効率化を支援しています。自社サイトの表示速度をAI社員(Claude Code)で12.89秒→2.03秒に短縮した実例も事例記事として公開しています。「自社の開発・業務にAIをどう組み込むか」といったご相談を承っています。

AIニュースのまとめをメールで

毎週月曜、海外AIニュースの日次ダイジェストを1週間分まとめてお届けします。無料・いつでも配信を停止できます。

監修

河合 継(クリスタルメソッド株式会社 代表取締役)

AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番組でのAI解説実績を持つAI研究者として、AIの研究開発を主導している。
運営会社について | 編集方針

Read next

あわせて読みたい

  • Claude Code エージェントチームの使い方|複数AIをチームで動かす実装ガイド【2026年版】

    Claude Code Agentとは?サブエージェント・Agent Teams・Agent Viewの違いと使い方【2026年版】

    Claude Code Agentとは?エージェント機能の全体像 Claude Code Agent(エージェント機能)とは、Claude Codeが作業の一部...

  • Claude Code Skillsの仕組みと実装ガイド――設計から運用までのイメージ

    Claude Code Skillsとは?公式スキル一覧・作り方・使い方をわかりやすく解説【2026年版】

    Claude Code Skills(スキル)とは、Claude Codeに「この場面ではこう進めてほしい」という手順書(SKILL.md)を追加して、必要なと...

  • Claude Code branch/fork・並行実行の使い分け完全ガイドのイメージ

    Claude Code の /fork とは?/branch・/subtask との違いと会話を分けて並行で進める方法【2026年10月】

    Claude Code の /fork は、今の会話をそのまま新しいバックグラウンドセッションへコピーし、自分は元の会話で作業を続けるためのコマンドです。コピー...

View more