Subagent と Agent Teams の違い — 「働くエージェント」と「議論するエージェント」を設計レイヤで理解する
@dify_base 氏のポストが、Claude Code の Subagent と Agent Teams の違いを図解で整理しています。
Claude Code の「Subagent」と「Agent Teams」の違い、意外と知らない人が多いので、図解で整理しました👇
✅Subagent → 調査して結果を返すだけの部下 ✅Agent Teams → 複数AIが議論・協力する自律チーム
この2つの機能は名前が似ていて混同しやすいですが、設計思想が根本的に異なります。本記事では、公式ドキュメントと Qiita の設計レイヤ分析記事を基に、両者の違いを構造的に解説します。
一言で言う違い
Qiita の記事が最も端的に表現しています。
Subagent は「働くエージェント」、Agent Teams は「議論するエージェント」
| Subagent | Agent Teams | |
|---|---|---|
| 一言で | 調査して結果を返す部下 | 議論・協力する自律チーム |
| 比喩 | 上司に報告するだけの社員 | 横で相談し合うプロジェクトチーム |
構造的な違い — 通信モデルが本質
Subagent: スター型(親子通信のみ)
メインエージェント
/ | \
Subagent Subagent Subagent
(Explore) (Plan) (general)
Subagent はメインエージェントの単一セッション内で動作します。結果をメインエージェントに返すことしかできず、Subagent 同士は直接通信できません。
Agent Teams: メッシュ型(全方向通信)
リード(チームリーダー)
/ | \
Teammate Teammate Teammate
(API) (UI) (Test)
\ | /
共有タスクリスト
Agent Teams のメンバーは完全に独立したセッションとして動作し、互いに直接メッセージを送受信できます。リードを介さずに横の連携が可能です。
比較表
公式ドキュメントの比較をベースに整理します。
| 項目 | Subagent | Agent Teams |
|---|---|---|
| コンテキスト | 親から分岐した独自ウィンドウ。結果は親に返る | 完全に独立したコンテキストウィンドウ |
| 通信方式 | メインエージェントへの結果報告のみ | メンバー間の直接メッセージ |
| 調整方式 | メインエージェントが全体を管理 | 共有タスクリストで自律調整 |
| ファイル分離 | なし(同じ作業ディレクトリ) | Git worktree で完全分離 |
| 最適用途 | 結果だけが重要な集中タスク | 議論と協力が必要な複雑タスク |
| トークンコスト | 低い(結果を要約して返す) | 高い(メンバー数分のセッション) |
| ステータス | 安定機能 | 実験的機能(デフォルト無効) |
Subagent の詳細
組み込みサブエージェント
Claude Code には複数の組み込みサブエージェントがあります。
| タイプ | 用途 | ツールアクセス |
|---|---|---|
| Explore | コードベースの高速検索・調査 | 読み取り専用(Edit/Write 不可) |
| Plan | 実装計画の設計 | 読み取り専用(Edit/Write 不可) |
| general-purpose | 複雑な調査・多段階タスク | フルアクセス |
Subagent が適しているケース
- 「このファイルを調べて」のような独立した調査
- 複数ファイルの並列読み込み
- API ドキュメントの検索と要約
- コードベースのパターン検索
- 結果を返すだけで、他のタスクとの相互依存がない作業
Subagent の限界
Subagent 同士は直接通信できないため、以下のようなタスクには不向きです。
❌ Subagent A が生成した型定義を、Subagent B が参照してUIコードを書く
→ A の結果をメインエージェントが受け取り、B に渡す必要がある
❌ Subagent A の調査結果に基づいて、Subagent B の方針を変更する
→ メインエージェントが仲介しなければ情報が伝わらない
Agent Teams の詳細
有効化方法
Agent Teams はデフォルトで無効です。settings.json で有効化します。
| |
Agent Teams のアーキテクチャ
| コンポーネント | 役割 |
|---|---|
| チームリード | チームを作成し、タスクを割り当て、結果を統合する |
| チームメイト | 独立したセッションで作業し、互いに直接通信する |
| 共有タスクリスト | ~/.claude/tasks/{team-name}/ に保存。依存関係の自動管理 |
| メールボックス | エージェント間のメッセージングシステム |
Agent Teams が適しているケース
公式ドキュメントが推奨する最強のユースケースは4つです。
| ユースケース | 理由 |
|---|---|
| リサーチとレビュー | 複数の視点で同時調査し、発見を共有・挑戦し合う |
| 新モジュール・機能開発 | メンバーがそれぞれ別のファイルを担当し、互いに踏まない |
| 競合仮説でのデバッグ | 複数の仮説を並列検証し、互いの理論を論破し合う |
| クロスレイヤー調整 | フロントエンド・バックエンド・テストをそれぞれ担当 |
競合仮説デバッグの例
公式ドキュメントが紹介する最も印象的な使い方は「競合仮説でのデバッグ」です。
ユーザーから「アプリが1メッセージ後に切断される」という報告。
5人のチームメイトを起動して異なる仮説を調査させてください。
互いの理論を論破し合う科学的議論の形式で。
合意が得られた結論を調査報告書にまとめてください。
議論の構造が鍵です。逐次調査はアンカリングに陥ります。一つの理論を探索すると、後続の調査がそれに偏ります。独立した複数の調査者が互いの理論を積極的に論破し合うことで、生き残った理論こそが真の原因である確率がはるかに高くなります。
推奨チームサイズ
公式ドキュメントの推奨は 3〜5人です。
- 1人あたり 5〜6タスクが適切
- 15の独立タスクなら 3人のチームメイトが出発点
- 3人の集中したチームメイトは、5人の散漫なチームメイトを上回ることが多い
表示モード
| モード | 動作 | 要件 |
|---|---|---|
| In-process | 全メンバーがメインターミナル内。Shift+↓ で切り替え | なし |
| Split panes | メンバーごとに別ペイン。全員の出力を同時に確認 | tmux または iTerm2 |
現在の制限事項
Agent Teams はまだ実験的機能です。
| 制限 | 内容 |
|---|---|
| セッション再開不可 | /resume でチームメイトは復元されない |
| タスクステータスの遅延 | メンバーがタスク完了をマークし忘れることがある |
| シャットダウンに時間がかかる | 現在の処理完了を待つ |
| 1セッション1チーム | 同時に複数チームは不可 |
| ネスト不可 | チームメイトが自身のチームを作ることはできない |
| リード固定 | リーダーの交代不可 |
ハイブリッド設計パターン
最も実践的なアプローチは、Subagent と Agent Teams の組み合わせです。
パターン A: チーム内から Subagent を呼び出す
Agent Teams(戦略層・協調)
├── Teammate A(API設計)
│ └── Subagent(ドキュメント調査)← 軽量な調査は Subagent
├── Teammate B(UI実装)
│ └── Subagent(コンポーネント検索)
└── Teammate C(テスト)
└── Subagent(既存テスト調査)
パターン B: フェーズごとの切り替え
Phase 1: 設計 → Agent Teams(議論・合意形成)
Phase 2: 実装 → Subagent(独立した並列実装)
Phase 3: 統合 → Agent Teams(レビュー・調整)
パターン C: 3層レイヤ構造
Qiita の記事が提案する3層構造です。
| レイヤ | 担当 | 機能 |
|---|---|---|
| 戦略層 | Agent Teams | 方針決定、合意形成、レビュー |
| 実行層 | Subagent | 調査、コード生成、テスト実行 |
| ツール層 | MCP・外部 API | データ取得、外部サービス連携 |
判断フローチャート
タスクを並列化したい?
├── いいえ → 単一セッションで十分
└── はい → タスク間で情報共有が必要?
├── いいえ → Subagent(低コスト、シンプル)
└── はい → 議論・合意形成が必要?
├── いいえ → Subagent(メイン経由で情報伝達)
└── はい → Agent Teams
└── コスト許容できる?
├── いいえ → Subagent で代替し、品質不足なら Agent Teams に切り替え
└── はい → Agent Teams(Max プラン推奨)
コストの現実
Agent Teams は強力ですが、トークンコストが大幅に増加します。
| 構成 | トークン消費(概算) |
|---|---|
| 単一セッション | 1x(基準) |
| Subagent 3個 | 1.5〜2x |
| Agent Teams 3人 | 3〜4x |
Zenn の記事が指摘する通り、Pro プラン($20/月)ではレートリミットに頻繁に当たります。Agent Teams を本格的に使うには **Max プラン($200/月)**が事実上必要です。
迷ったら、まず Subagent で試し、品質が不足した場合に Agent Teams に切り替えるのが経済的です。
まとめ
- Subagent は「働く部下」: メインエージェントに結果を返すだけ。Subagent 同士は通信不可。低コストで独立タスクに最適
- Agent Teams は「議論するチーム」: メンバー間の直接通信、共有タスクリスト、自律調整が可能。複雑な協調作業に最適
- 本質的な違いは通信モデル: Subagent はスター型(親子のみ)、Agent Teams はメッシュ型(全方向)
- 最強のユースケースは4つ: リサーチ&レビュー、新モジュール開発、競合仮説デバッグ、クロスレイヤー調整
- ハイブリッドが実践的: 戦略層に Agent Teams、実行層に Subagent の3層構造が最も効果的
- コストに注意: Agent Teams は3〜4倍のトークンを消費。Max プランが事実上必要。迷ったら Subagent から始める
- Agent Teams はまだ実験的: デフォルト無効、セッション再開不可、1セッション1チームなどの制限あり
参考
- @dify_base のポスト
- Orchestrate teams of Claude Code sessions - 公式ドキュメント
- カスタムサブエージェントの作成 - 公式ドキュメント
- SubagentとAgent Teamsは何が違うのか──設計レイヤで理解する使い分け - Qiita
- Claude Code Agent Teamsの始め方 - Zenn
- Agent Teamsをどう使うか?サブエージェントの課題から考える - Zenn
- Agent Teams機能を使って専門家チームを作ってみた - DevelopersIO
- Claude Code Agent Teams: The Complete Guide 2026 - claudefa.st
- Claude Code Swarms - Addy Osmani
- From Tasks to Swarms: Agent Teams in Claude Code - alexop.dev
- Building Effective Agents - Anthropic