📖

Claude CodeのSubagentとAgent Teamsの違いは?使い分けを整理する

に公開

はじめに

Claude Code を使っていると、SubagentAgent Teams がどちらも「複数のエージェントを使う仕組み」に見えて、違いが少し分かりづらいです。

実際に私も最初は、「レビュー担当やテスト担当を分けるならどちらを使うべきか」「並列で動かしたいときはどちらなのか」で迷いました。

まず結論

最初に結論を書くと、

  • Subagent は、1つのセッションの中で役割分担するための専用エージェント
  • Agent Teams は、複数のセッションにまたがって並列に協調作業するチーム構成

Claude Code の公式ドキュメントでも、Subagent は「single session」で動作し、必要に応じて Claude がその Subagent に委譲します。

一方で Agent Teams は、複数の Claude Code インスタンスを同時に立ち上げ、リード役が作業を割り振って結果を統合するものとして説明されています。

かなり短く言うと、こうです。

  • 役割を分けたい → Subagent
  • 本当に並列で手分けして進めたい → Agent Teams

Subagentとは何か

Subagent は、特定の役割やタスクに特化した専用エージェントです。

各 Subagent は独自の context window、custom system prompt、tool access、independent permissions を持って動作します。

Claude は Subagent の description を見て、「この仕事はこの担当に向いている」と判断したときに、その Subagent に委譲します。

たとえば実務では、次のような分け方が自然です。

  • review-agent
  • test-agent
  • implementation-agent

このときのポイントは、Subagent は「担当の切り分け」に向いているということです。

レビューだけに集中する担当、テスト設計だけに集中する担当、実装を進める担当、というように役割を明確にできます。

Agent Teamsとは何か

Agent Teams は、複数の Claude Code エージェントを同時に立ち上げて、別々の部分を並行して進めるための仕組みです。

つまり Agent Teams は、「役割分担」よりも一段進んで、「複数人で本当に同時に作業する」イメージに近いです。

たとえば、ある大きな機能開発で次のように分けるケースが考えられます。

  • 1人が既存コード調査
  • 1人が API 設計案の作成
  • 1人が UI 方針の整理
  • 1人がリスク洗い出し

そして最後に lead agent がそれらをまとめて、最終提案や実装方針に統合する、という形です。

SubagentとAgent Teamsのいちばん大きな違い

いちばん大きな違いは、単一セッションの中の委譲か、複数セッションをまたぐ協調かです。

Subagent は、メインの会話の中で Claude が一時的に別担当へ仕事を振る構造です。

Subagent は single session の中で動き、作業して結果を返します。

一方の Agent Teams は、複数の Claude Code インスタンスが同時に動き、
lead agent が全体を取り回します。

この違いを実務っぽく言い換えると、次のようになります。

Subagent は「自分の中の担当分け」です。
Agent Teams は「複数メンバーでのチーム開発」です。

どちらを使うべきか

ここが実務で一番大事なポイントですが、普段の開発ではまず Subagent から始めるのが扱いやすいと思います。

理由は、Subagent の方が導入しやすく、責務が分かりやすく、日常的な開発フローに乗せやすいからです。

コードレビュー担当、テスト担当、設計相談担当などを切り出すだけでも十分に効果があります。

しかも、Subagent は description をもとに Claude が自動委譲でき、ユーザーレベルやプロジェクトレベルで再利用もしやすいです。

一方で Agent Teams は、次のようなケースで真価を発揮します。

  • 複数の観点から同時に探索したい
  • 調査、設計、実装方針の整理を並行したい
  • 大きめのタスクを分割して一気に進めたい
  • 手元で tmux などを使いながら複数エージェントの動きを見たい

つまり、単発の役割分担なら Subagent、並列探索や複数人開発に近い使い方なら Agent Teams という整理がしっくりきます。

具体的な使い分け例

1. 日常のコードレビュー

この場合は Subagent が向いています。

たとえば review-agent を作って、設計・責務分離・保守性を重点的に見るようにしておけば、
メインの実装作業からレビューを切り離せます。

レビュー結果を返してもらうだけなら、Agent Teams ほど大きな仕組みは不要です。

2. テスト追加だけ任せたい

これも Subagent が向いています。

test-agent を作って、「まず純粋関数からテスト」「次に hooks」「最後に UI」といった方針を持たせれば、特定タスクに集中させやすくなります。

3. 新機能の実装方針を一気に詰めたい

この場合は Agent Teams も選択肢に入ります。

たとえば、1人が既存実装調査、1人が DB 設計、1人が UI 設計、1人が懸念点の洗い出し、という形で同時進行させると、短時間で選択肢を広く集めやすくなります。

こうした「多方向から同時に探索して最後に統合する」流れは、lead agent が分担と統合を行う Agent Teams に向いています。

4. まずは安全に導入したい

この場合は Subagent 一択でよいと思います。

Subagent は 1 つの会話の延長で考えられるので、運用の見通しが立てやすいです。

Agent Teams は強力ですが、そのぶん「どこまで分業させるか」「どこで統合するか」を考える必要があります。

最初からそこまで必要になるケースはそこまで多くありません。

実務ではどう構成すると分かりやすいか

私なら、まずは次のように始めます。

普段の開発は Subagent ベースにします。

  • implementation-agent
  • review-agent
  • test-agent

そして、必要に応じて Skills を組み合わせます。

  • review-frontend
  • write-tests
  • refactor-component

この構成で、日常的な開発はかなり整理できます。

Subagent は役割、Skills は手順、CLAUDE.md は共通前提という分け方です。

そのうえで、「大きめの調査や設計を複数観点で一気に進めたい」ときだけ Agent Teams を使うのがバランスがよいと思います。

迷ったときの判断基準

迷ったときは、次の基準で考えると判断しやすいです。

その作業が「1つの会話の中で担当を切り分けたい」なら Subagent

その作業が「複数の担当が同時に動いて、最後に統合したい」なら Agent Teams

まとめ

Subagent と Agent Teams は似ているようで、役割がかなり違います。

Subagent は、1つのセッションの中で役割を分担するための仕組みです。
レビュー担当、テスト担当、実装担当のように切り分けるなら、まずはこちらが使いやすいです。

Agent Teams は、複数の Claude Code エージェントを同時に動かし、lead agent が全体を取りまとめる仕組みです。
大きめの設計検討や多方向の探索を並列に進めたいときに向いています。

実務では、まず Subagent で役割分担を整え、必要になったら Agent Teams を使う、という順番が現実的だと思います。

Discussion