「Claude Codeでトークン浪費」の原因 Anthropicが明かす「サブエージェント」5つの使い所と止め所:AIエージェントは「Webブラウザのタブ」
Anthropicは、同社のCLI型AIコーディングツール「Claude Code」のサブエージェントにおけるベストプラクティスやアンチパターンなどを解説したブログ記事を公開した。
Anthropicは2026年4月7日(米国時間)、同社のCLI(コマンドラインインタフェース)型AIコーディングツール「Claude Code」でサブエージェントをいつ、どのように使うべきかや、使うべきではないケースなどを解説したブログ記事を公開した。
Claude Codeでサブエージェントにタスクを委任することで、メインのコーディングセッションをクリーンに保ち、トークンコストを抑え、マルチステップのワークフローを高速化できるという。以下、その実践的な手法を要約する。
サブエージェントとは何か
サブエージェントは、メインのClaude Codeセッションから独立して動作する自己完結型のClaudeインスタンスだ。それぞれが独自のコンテキストウィンドウを持ち、ファイルの読み取り、コードの探索、変更などを独立して行う。タスクが完了すると、関連する結果のみをメインの会話に返す。
Anthropicはサブエージェントを、「Webブラウザのタブ」に例え、「本筋を見失うことなく、脇道を探索するための場所だ」としている。各サブエージェントは、メインセッションの蓄積された履歴を持たない新鮮な状態で起動する。複数のサブエージェントを並列で実行でき、それぞれに異なる権限を割り当てることも可能だ。調査用のサブエージェントに読み取り専用アクセスを、実装用のサブエージェントに完全な編集権限を付与できるといった具合だ。
Claude Codeには、数種類の組み込みサブエージェントが用意されている。複雑なマルチステップタスク向けの「汎用(はんよう)エージェント」、実装戦略を提示する前にコードベースを調査する「計画エージェント」、高速な読み取り専用コード検索に最適化された「探索エージェント」などだ。
サブエージェントはどんなときに使うとよいのか
Anthropicは、サブエージェントへの委任が有効なタスクや場面として、以下の5つを挙げている。
調査が多いタスク
何かの仕組みを理解するために数十のファイルを読む必要がある場合などに、サブエージェントがコードベースを探索し、要約を返すことで、メインの会話が整理された状態を保てる。メインの会話に生のファイル内容が大量に流れ込むのを防げるからだ。
複数の独立したタスク
複数のファイルにまたがるエラー修正や、複数コンポーネントのパターン更新など、サブタスク間に依存関係がない場合は、並行して動作するサブエージェントによって作業がより速く完了する。
新鮮な視点が必要なとき
サブエージェントは、メインの会話から前提や盲点を引き継がないので、コードレビューにおいてクリーンな状態を提供する。「/clear」コマンドもコンテキストをリセットするが、会話履歴が完全に失われてしまうという代償がある。サブエージェントなら、メインの会話を維持したまま、同様のバイアスのない評価が可能になる。
コミット前の検証
独立したサブエージェントが、実装がテストに過適合していないかどうか、エッジケースを見落としていないかどうかを確認でき、コードへの慣れが隠してしまう問題を発見できる。
パイプラインワークフロー
設計、実装、テストなど明確なフェーズを持つタスクでは、各フェーズをそれぞれのサブエージェント内で集中的に扱うことで、他のフェーズのコンテキストがノイズにならない。
Anthropicは目安として、タスクが10以上のファイルの探索を必要とする場合や、3つ以上の独立した作業を含む場合は、サブエージェントの活用を検討すべき強いシグナルだとしている。
サブエージェントの使用を指示する方法
Anthropicは、「会話での呼び出し」「カスタムサブエージェント」「CLAUDE.mdとスキル」「フック」という4つの使用方法を紹介している。
会話での呼び出し
最も手軽な方法は、Claudeに自然言語で、サブエージェントの使用を依頼することだ。これはClaude Codeの全てのインタフェース(ターミナル、VS Code、JetBrains IDE、Web、デスクトップアプリケーションなど)で機能する。Anthropicは、効果的なプロンプトとして以下を例示している。
サブエージェントを使ってこのコードベースを調査し、以下の作業を並列で実行してください。 1.全てのAPIエンドポイントを見つけ、その目的を要約する 2.データベーススキーマとリレーションシップを特定する 3.認証フローを整理する
会話での呼び出しを効果的に行うポイントとしては、「タスクの範囲を明確に定める」「並列化を明示的に要求する」「望む出力形式を指定する」「バイアスのない分析が重要な場合は、新鮮なコンテキストを要求する」が挙げられている。
カスタムサブエージェント
セキュリティレビュー担当者、テスト作成者、ドキュメント校正者など、同じ種類のサブエージェントを繰り返し利用する場合は、カスタムサブエージェントとして一度定義しておけばよい。Claudeは、定義の説明(Markdownファイルのdescription)と一致するタスクが発生するたびに、自動的にそのサブエージェントに委任する。
カスタムサブエージェント定義は、プロジェクトレベルでは「.claude/agents/」に、ユーザーレベルでは「~/.claude/agents/」にMarkdownファイルとして保存する。カスタムサブエージェント定義を作成する最も簡単な方法は、「/agents」コマンドを使うことだが、Markdownファイルを手動で記述することもできる。以下に例を示す。
--- name: security-reviewer description: コードの変更内容をレビューし、セキュリティ上の脆弱性、インジェクションのリスク、認証の問題、機密データの漏洩を確認する。 認証、決済、またはユーザーデータに関わるコミットを行う前に、積極的に活用すること。 tools: Read, Grep, Glob model: sonnet --- あなたはセキュリティに特化したコードレビュー担当者です。以下について、提供された変更内容を分析してください。 ・SQLインジェクション、XSS、コマンドインジェクションのリスク ・認証と認可の不備 ・ログ、エラー、レスポンス内の機密データ ・安全でない依存関係や設定 ファイル名、行番号の参照を含む、優先順位付けされた発見事項のリストと、各項目に対する推奨修正を返してください。
Anthropicは、「description」フィールドはClaudeのタスク委任判断に使われるため、カスタムサブエージェントの一般的な能力ではなく、トリガー条件を具体的に記述すべきだと強調している。
CLAUDE.mdとスキル
CLAUDE.mdファイルは、Claudeがサブエージェントをいつ使うべきかについて、プロジェクトレベルのルールを定義するために使用できる。Claudeは全ての会話の開始時にこのファイルを読み込むので、セッションやチームメンバー間で一貫した動作が保たれる。
スキルは、繰り返し実行される複雑なマルチステップワークフローについて、再利用可能なインタフェースを提供する。「.claude/skills/」に一度定義すれば、スラッシュコマンド(/skill-name)で呼び出すか、タスクが定義の説明と一致した場合に、Claudeに自動的に読み込ませることができる。
そのため、スキルによってClaudeにサブエージェントの使用を指示することは、特定のアクションが定期的に実行される場合や、異なるチームメンバーが同じ複雑な操作を利用する必要がある場合、チーム全体で特定のタスクの実行方法を標準化することが重要な場合などに適している。
フック
フックは、Claude Codeのライフサイクルにおける特定の時点で自動的に実行される、ユーザー定義のシェルコマンド、HTTPエンドポイント、LLM(大規模言語モデル)プロンプトだ。フックにより、イベントに基づいてサブエージェントのワークフローを自動化できる。全てのコミットを作成前に自動的にレビューすべき場合や、セキュリティチェックを誰かが依頼しなくても必ず実行すべき場合、CI(継続的インテグレーション)のような品質ゲートをローカル開発プロセスに組み込む場合などに適している。
トークン浪費を防ぐ――サブエージェントを使うべきでないケース
Anthropicは、サブエージェントは有用だが、オーバーヘッドも伴うと注意を促している。それぞれが独自のコンテキストを立ち上げ、トークンを消費し、開発者と作業の間に間接層を追加するからだ。メインの会話にとどまる方が望ましい場面があると述べ、以下の5つの例を挙げている。
逐次的で依存関係のある作業
各ステップが前のステップの完全な出力を必要とする場合、単一のセッションで連鎖を処理する方がクリーンになる。
同一ファイルの編集
2つのサブエージェントが同じファイルを並列で編集すると、コンフリクトが発生する。
小さなタスク
簡単な修正や集中的な質問では、委任のオーバーヘッドがメリットを上回る。
専門エージェントの過多
カスタムサブエージェントの選択肢が多過ぎると、自動委任の信頼性が低下する。多くのチームは、少数の適切に範囲を定めたエージェントに落ち着く。
エージェント間の連携が必要な作業
サブエージェントはメインの会話に報告するが、互いにやりとりすることはできない。エージェント間のやりとりが必要なタスクには、「エージェントチーム」機能の利用が推奨されている。
まず会話から始め、後から自動化する
Anthropicは、Claudeにサブエージェントの使用を依頼する場合、「まず会話でのプロンプトから始め、Claudeに対してどんなリクエストが繰り返し発生するかを把握し、パターンが明確になった段階で、自動化を進める方がよい」という実践的なアドバイスでブログ記事を締めくくっている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
「Gemini」「Claude Code」「Codex」 全社展開・本番実装に役立つ5つのポイント
開発現場における生成AIの利用は常態化しつつあるものの、「コード補完の域を出ない」「特定の個人のスキルに依存している」といった課題があります。本稿では、個人の生産性向上からチームへの定着、全社規模での展開、そしてAIエージェントの本番実装に至るまで、開発プロセス変革に役立つ5つのポイントを整理します。
AIコーディングツールの利用率、「GitHub Copilot」一強揺らぐ? 「Claude Code」急伸
JetBrainsは開発者1万人超を対象としたAIツール利用動向の調査結果を発表した。「GitHub Copilot」の成長が鈍化する一方、「Claude Code」が急伸したという。
【入門】.claudeフォルダの構造と使い方 Claude Codeを思い通りに動かそう
Claude Codeを使い始めたものの、プロジェクト内に生成される「.claude」フォルダをそのままにしていませんか? 実はこのフォルダこそが、Claude Codeの振る舞いを決定づける重要なポイントです。このフォルダの構造と役割を整理し、初心者の方でも理解できるように解説します。
「Claude Code」がプラグインをサポート AIエージェントやツールをまとめて配布可能に
Anthropicは、エージェント型コーディングツール「Claude Code」がプラグインでカスタマイズできるようになったと発表した。これによって「スラッシュコマンド」「サブエージェント」「MCPサーバ」「フック」など、機能拡張のための仕組みを一つのパッケージにまとめて共有できるようになるという。
「Claude Code」にカスタマイズ可能な「サブエージェント」機能が登場
Anthropicのエージェント型コーディングツール「Claude Code」で「カスタムサブエージェント」が作成、利用できるようになった。ユーザーは専門性やツールをカスタマイズしたサブエージェントを複数作成し、効率的で高度なワークフローを構築できる。