Claude Code を使い込んでいくと、「1つの会話に色んな作業を詰め込みすぎて、だんだん精度が落ちる・コンテキストがすぐ埋まる」という壁にぶつかります。調べ物・実装・レビューを全部メインの会話でやると、文脈が散らかってトークンも一気に消費する——そんな経験のある人は多いはずです。
その解決策が サブエージェント(subagents) です。ざっくり言うと「別のコンテキストで動く、専門特化したもう一人のClaude」。調査や検索といった重い作業をサブエージェントに丸投げし、結論だけ受け取ることで、メインの会話をきれいなまま保てます。
私自身、このブログの運営作業(記事の調査・競合リサーチ・大量ファイルの確認)で実際にサブエージェントを日常的に使っています。この記事では、サブエージェントとは何か→使いどころ→呼び出し方→自作の手順→使って分かった注意点までを、実体験ベースでまとめます。
結論:サブエージェントの強みは「汚さず・並列で・専門特化」の3点
先に要点だけ。サブエージェントのメリットは次の3つに集約されます。
- ① メインのコンテキストを汚さない:調査ログや大量の検索結果をサブ側に閉じ込め、メインには結論だけ返す。→ コンテキスト枠を節約でき、精度もコストも安定する。
- ② 並列で動かせる:独立した作業(複数テーマの調査など)を同時に走らせられる。待ち時間が短い。
- ③ 専門特化させられる:用途別に「専用の指示(システムプロンプト)」と「使えるツール」を絞ったエージェントを自作できる。レビュー専門・調査専門、といった役割分担ができる。
逆に言うと、「短い単発の作業」にはオーバーヘッドのほうが大きいので不要。重い・独立・繰り返す作業ほど真価を発揮する——これが結論です。
サブエージェントとは?(メインのClaudeとの違い)
サブエージェントは、メインの会話から呼び出される独立したClaudeです。メインとの一番の違いは「自分専用のコンテキストウィンドウを持つ」こと。
| メインのClaude | サブエージェント | |
|---|---|---|
| コンテキスト | あなたとの会話そのもの | 別枠(独立) |
| あなたへ返すもの | 会話 | 最終結果(結論)だけ |
| 指示(人格) | 全体の指示 | 用途別に絞れる |
| 使えるツール | 全部 | 必要なものだけに制限可 |
大事なのは、サブエージェントが内部でどれだけファイルを読もうが検索しようが、その作業ログはメインに流れてこないこと。返ってくるのは「調べた結論」だけです。だからメインの会話は散らからず、コンテキストの無駄食いも防げます。
Claude Code には最初から用途別の組み込みエージェントも用意されています(汎用の調べ物用、広く探索する検索用、実装計画を立てる設計用、など)。まずはこれらを使うだけでも十分役に立ちます。
どんな時に役立つか(使いどころ)
実際に使ってみて「これは便利だ」と感じた場面を挙げます。
- 大量ファイルから探す調査:「この処理どこで定義されてる?」のような、何十ファイルも横断する検索。サブに任せれば、メインには該当箇所だけ返ってくる。読み込んだファイルの中身でコンテキストが埋まらない。
- 独立した複数テーマの並列リサーチ:たとえば私はブログの競合調査で、調べる対象ごとにサブエージェントを分けて同時に走らせました。1件ずつ順番にやるより圧倒的に速い。
- コードレビュー・設計レビュー:「レビュー専門」のサブに、観点を決めて見させる。メインの実装の流れを止めずにチェックを挟める。
- 実装計画を立てる:いきなり書き始めず、設計用エージェントに「手順とリスクを洗い出して」と頼んでから着手する。
共通するのは、「結論だけ欲しい・途中の大量情報はいらない」作業だということ。ここがサブエージェント向きの判断基準です。
コンテキスト枠をどれだけ使っているかは、ステータスラインに表示しておくと判断しやすくなります(やり方は【ステータスラインにコスト・コンテキスト使用率を表示する設定】)。
使ってみる(呼び出し方)
呼び出し方は大きく2通りです。
① 自動で起動される
作業の内容が「調査向き」「検索向き」だとClaudeが判断すると、自動的に適切なサブエージェントに振り分けてくれます。特別な操作は要りません。普段どおり頼むだけで、裏で使われていることも多いです。
② 明示的に頼む
「サブエージェントで〇〇を調べて」「並列で複数のエージェントに分けて調査して」とこちらから指定することもできます。重い調査や、複数テーマを同時に進めたいときは、明示したほうが意図どおりに動きます。
管理する(/agents)
用意されているエージェントの一覧確認や、自作エージェントの作成・編集は /agents コマンドから行えます。まずはここで「どんなエージェントが使えるか」を眺めてみるのがおすすめです。
自作サブエージェントの作り方
組み込みだけでなく、自分専用のサブエージェントを作れます。これが本領です。実体は1枚のMarkdownファイルで、置き場所は2種類。
- プロジェクト用:そのプロジェクトの
.claude/agents/に置く。リポジトリでチーム共有できる。 - 個人用:ホームの
~/.claude/agents/に置く。全プロジェクト共通で使える。
ファイルの形はこんなイメージです(フロントマターで設定、本文がそのエージェントへの指示)。
---
name: code-reviewer
description: コードの変更をレビューする。バグ・可読性・規約違反を指摘する専門エージェント。
tools: Read, Grep, Glob # 使わせるツールを絞れる(省略すると全部)
model: sonnet # 速い/安いモデルに固定することも可
---
あなたはコードレビュー専門のエージェントです。
変更点を読み、次の観点で指摘してください。
- バグ・境界条件の見落とし
- 命名・可読性
- プロジェクト規約(CLAUDE.md)との不整合
指摘は「ファイル:行」と理由をセットで、結論を簡潔に返すこと。
ポイントは2つ。
descriptionが肝:Claudeはこの説明文を見て「この作業はこのエージェントに振ろう」と判断します。いつ呼ばれてほしいかが伝わる説明にする。- ツールとモデルを絞れる:レビューや調査なら書き込み系ツールは不要なので外す。軽い作業は速い・安いモデルに固定するとコスト削減になる。
自作エージェントの指示には、CLAUDE.mdと同じく「簡潔に・役割を明確に」が大事です。CLAUDE.mdの考え方は【CLAUDE.mdの書き方・実例テンプレート】も参考にしてください。
実際に使って分かった注意点(一次情報)
便利な一方で、使い込んで気づいた「ハマりどころ」もあります。
- 乱発するとトークンを食う:サブエージェントは独立して動く分、それぞれが別途トークンを消費します。1行で済む確認までサブに投げると、かえって割高。「重い・独立・繰り返す」作業に絞るのがコツ。コスト感は【Claude Code 1ヶ月のトークンコストを実測】や【ccusageでコストを可視化】で掴んでおくと判断しやすいです。
- 途中の根拠は残らない:返ってくるのは結論だけなので、レビュー系では「結論+根拠(ファイル:行)をセットで返して」と指示しておかないと、後で確認しづらい。
- 並列は“独立タスク”だけ:互いに依存する作業を並列に投げると噛み合いません。「Aの結果を使ってB」のような直列の依存があるものは、分けずに順番に。
- 裏で動くぶん見えにくい:サブの作業はメインに流れてこないので、何をどう調べたかを後から追いにくい。重要な判断に使うときは、結論の根拠を明示的に返させると安心です。
要するに、「結論だけ欲しい重い作業を、役割を決めて渡す」と決めて使えば、サブエージェントはかなり強力です。
まとめ
- サブエージェント=別コンテキストで動く専門特化したもう一人のClaude。強みは①コンテキストを汚さない②並列③専門特化の3点。
- 使いどころは大量ファイルの調査・独立テーマの並列リサーチ・レビュー・実装計画など、「結論だけ欲しい重い作業」。
- 呼び出しは自動 or 明示的に依頼。
/agentsで一覧・管理。 - 自作は
.claude/agents/(共有)or~/.claude/agents/(個人) にMarkdown1枚。descriptionで振り分け、ツール・モデルを絞れる。 - 注意は乱発でトークン増/根拠を返させる/並列は独立タスクのみ。
「会話が散らかってきた」「調べ物でコンテキストがすぐ埋まる」と感じたら、サブエージェントの出番です。役割を決めて渡すだけで、メインの作業がかなり軽くなります。
あわせて読みたい:
・CLAUDE.mdの書き方・実例テンプレート(指示書の書き方=自作エージェントにも応用できる)
・ステータスラインにコスト・コンテキスト使用率を表示する設定(コンテキスト枠の見える化)
・Claude Code 1ヶ月のトークンコストを実測(コスト感の把握)
・ccusageでClaude Codeのコストを可視化する方法(サブエージェント分のコストも追える)
・ant CLI 入門|Claude APIをターミナルから使う公式CLIの使い方(API側を直接叩く公式ツール)
・Claude Codeのスキル機能(Skills)入門|SKILL.mdで自分専用コマンドを作る(手順を登録する仕組み・サブエージェントとの違いも)


コメント