Claude Codeを使い始めると、まず驚くのはその「やってくれる感」です。ファイルを開き、コードを書き、コマンドを実行し、エラーを直す──これをひとつのAIが自律的にこなします。しかし、しばらく使い続けると「1つのセッションでは複雑すぎるタスクを抱えきれない」という壁にぶつかります。
この記事では、その課題を解決するAnthropicの2つの仕組み──Subagents(サブエージェント)とAgent Teams(エージェントチーム)──について、仕組みの違い・使い分けの判断基準・tmuxを使ったセットアップ・実際のユースケースをエンジニア視点でわかりやすく解説します。
この記事を読むとわかること:
- SubagentsとAgent Teamsの違いと仕組み
- 2つの機能をどんな場面で使い分けるかの判断基準
- tmuxを使ったAgent Teamsの導入〜実際の操作方法
- 日常の開発ワークフローへの組み込み方
前提知識:AIエージェントとセッションを理解する
「エージェント」とは、目標を与えられると自分で手順を組み立て、ツールを使いながら複数の行動を自律的に実行できるAIのことです。通常のAIチャットが「質問→回答」の1往復で終わるのに対し、エージェントは次のようなループを自律的にこなします。

Claude Codeはまさにこのエージェントとして動作します。ファイルを読み、コードを書き、テストを実行し、エラーがあれば修正するというサイクルを自律的にこなします。
セッションとは、Claude Codeを1回起動したときの1つの作業単位です。セッションはそれぞれ独立した「コンテキストウィンドウ」を持ちます。コンテキストウィンドウとは、AIが保持・参照できる情報の範囲のことです。
Subagentsは「複数セッションを使う」、Agent Teamsは「複数セッションが連携する」という設計になっています。この違いが、両者の使い分けの本質です。
Subagents(サブエージェント)を使いこなす
サブエージェントとは、特定の専門作業を担当させるために事前定義した軽量なAIアシスタントです。2025年7月にリリースされ、同時に最大10のサブエージェントを並列実行できます。

重要な特徴は以下のとおりです。
- 各サブエージェントは独自のコンテキストウィンドウを持つ(独立したプロセスで動作)
- メインエージェントからの情報は初期プロンプトに含まれた分だけを知る
- サブエージェント同士は直接通信できない
- 作業結果は必ずメインエージェントに返す
YAMLファイルでのサブエージェント定義
サブエージェントは、YAMLフロントマター付きのMarkdownファイルを所定のディレクトリに置くだけで定義できます。
| 保存場所 | 有効範囲 |
|---|---|
~/.claude/agents/ | 全プロジェクトで利用可能(個人用) |
.claude/agents/ | そのプロジェクト限定(チーム共有可) |
定義ファイルの例を示します。
---
name: code-reviewer
description: コードレビューを専門に行うエージェント。
Pull Requestのレビューや品質チェックを依頼するときに使用する。
tools: Read, Glob, Grep
model: sonnet
---
あなたはシニアエンジニアとして、コードの品質・セキュリティ・パフォーマンスを
詳細にレビューします。指摘は具体的な改善案とともに提示してください。Markdownについてはこちら
Markdownでサブエージェントを作成・更新した場合、exit後にclaude(またはclaude –continue)で再起動することでサブエージェントの設定が反映されます。会話履歴を維持したまま反映したい場合は/agentsコマンドが使えます。再起動は不要です。
/agent コマンドでのサブエージェント定義
/agents コマンドを使うと、対話形式でサブエージェントを作成することもできます。
# Claude Code内で実行
/agents
# → "Create new agent" を選択呼び出し方は自然言語での指示と明示的な指定の2通りがあります。
# 自然言語で(Claudeが自動判断)
「このPRのコードをレビューしてください」
# 明示的に指定する
「code-reviewerサブエージェントを使ってこのコードをレビューしてください」⚠️ 自動委任は完全には信頼できません。重要な場面では明示的にサブエージェント名を指定しましょう。
上記は自身でサブエージェントを作成するので正確にはカスタムサブエージェントと呼ばれます。一方、Claude Code側でもあらかじめ組み込みサブエージェントが用意されています。気になる方はこちらを確認してみてください。
設定された全ての(カスタムと組み込み)サブエージェントを確認するには、コマンドライン上で以下を実行すれば確認ができます。※Claude Codeコンテキスト上ではありません。
cmd $ claude agents
5 active agents
Built-in agents:
claude-code-guide · haiku
Explore · haiku
general-purpose · inherit
Plan · inherit
statusline-setup · sonnet
cmd $Agent Teams(エージェントチーム)で協調作業を実現する
2026年2月5日、Claude Opus 4.6と同時にリリースされた実験的機能です。複数のClaude Codeインスタンス(セッション)がチームとして連携し、共同で作業を進めます。1つのセッションがチームリーダーとして機能し、チームメンバーはそれぞれ独自のコンテキストウィンドウで動きながら、互いに直接通信できます。
Agent Teamsがサブエージェントと根本的に異なるのは、チームメンバー同士が直接通信できる点です。たとえばフロントエンド担当が型定義を完成させたとき、バックエンド担当に直接メッセージを送れます。

まず環境変数で有効化します。
# 環境変数で有効化
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1または settings.json に追記します。
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
}
}| 場所 | 適用範囲 |
|---|---|
| .claude/settings.json | そのプロジェクトのみ |
| ~/.claude/settings.json | 全プロジェクト共通 |
有効化したあとは、自然言語でチームを指示するだけです。
「認証モジュールをリファクタリングするチームを作成してください。
メンバー:バックエンドロジック担当、フロントエンドフック担当、
テスト継続実行担当の3名。変更前に必ずプラン承認を求めること。」操作時のキーボードショートカットは以下のとおりです。
- Ctrl+T:タスクリストを確認
- Shift+Down:メンバーを切り替えて直接話しかける
⚠️ コスト注意:Agent Teamsのトークン消費は単一セッションの3〜4倍になります。複雑で協調が必要なタスクに絞って使いましょう。
Agent Teamsを終了する
実装が完了したらチームリーダー(Lead)に対してシャットダウンを指示します。
チームをシャットダウンしてください。これによりグレースフルシャットダウン(Graceful Shutdown)が実行されます。具体的な挙動としては以下となります。
- 起動していたチームメンバーが停止します(※起動中の場合、停止拒否が行われます)
- 各チームメンバーのコンテキストが集約され、チームリーダーにフィードバックされます
- 各チームメンバーが使用していた計算リソースやAPI呼び出しが解放されます
次にチームリーダーにクリーンアップの指示を行います。
チームをクリーンアップしてください。この指示により共有タスクリストが解放されます。チームメンバーたちが「今、何をどこまでやったか」という進捗管理表を白紙に戻すイメージです。具体的な挙動としては以下となります。
- 未完了タスクの破棄:まだ着手していない、あるいは実行中だったタスクのリストが消去されます。
- 依存関係の解消:「タスクAが終わったらタスクBをやる」といったエージェント間の約束事(依存関係)がリセットされます。
- 完了済みフラグのリセット:「これは終わった」という記録も消えるため、同じ指示を出すと最初からやり直すことになります。
クリーンアップ指示前にアクティブなチームメンバーがいないかを確認しておきましょう。Agent Teams を終了する場合、必ず事前にチームメンバーをシャットダウンさせておくことです。
| 項目 | シャットダウン | クリーンアップ |
|---|---|---|
| 主な目的 | プロセスの停止・終了 | 環境の整理・最適化 |
| 後の状態 | チームメンバー解散(メインに戻る) | チームメンバーは維持(次の指示を待つ) |
| ファイル | そのまま残ることが多い | 一時的なものは削除される |
| ITの例え | PCの電源を切る | ブラウザのキャッシュを消す |
「チームをクリーンアップしてください」と伝えた後は、エージェントたちは「真っさらな状態」で次の指示を待っていると考えて間違いありません。
特定のチームメンバーを削除する場合はチームリーダーに対して以下のように指示を行います。
チームメンバーCをシャットダウンしてください。チームリーダーがシャットダウンリクエストを送信し、チームメンバーはそれを承認(正常終了)するか、理由を添えて拒否することができます。
Agent Teamsのシャットダウンとクリーンアップはどちらもチームリーダーに対して指示を行なってください。
Agent Teamsを利用した際に作成される ~/.claude/ 内のディレクトリは「マルチエージェントの状態をローカルに永続化(保存)するための作業領域」です。ここでは、tasksとteamsについて解説しておきます。
ディレクトリの正体
~/.claude/tasks
ここでは「共有タスクリスト」の具体的なデータが格納されています。
- 役割: 実行中のタスクの状態(Pending, In Progress, Completed)、各タスクのID、およびその詳細な説明(Description)を管理します。
- なぜあるのか: 複数のエージェントが並列で動く際、「今誰がどのタスクをやっているか」を同期するための共通データベース(ファイルベース)として機能します。
~/.claude/teams
ここには、「Agent Teamsの構成とセッション情報」が格納されています。
- 役割: 現在アクティブなチームの構成(どのエージェントがどの役割を持っているか)、セッションID、親エージェントと子エージェントの紐付けなどを管理します。
- なぜあるのか: ターミナルを閉じたり、一度処理を中断したりしても、再び同じチーム構成で作業を再開(リジューム)できるようにするために存在します。
SubagentsとAgent Teamsの使い分け
2つの機能を比較すると以下のとおりです。
| 比較項目 | Subagents | Agent Teams |
|---|---|---|
| リリース時期 | 2025年7月 | 2026年2月(実験的) |
| メンバー間通信 | ❌ できない | ✅ 直接通信可能 |
| 共有タスクリスト | ❌ なし | ✅ あり(自動管理) |
| 設定方法 | Markdownファイルで事前定義 | プロンプトで都度指示 |
| コスト | 比較的低い | 高め(3〜4倍) |
| 安定性 | 安定 | 実験的(制限あり) |
使い分けの判断は「AIエージェント同士で相談や結果共有が必要か?」という問いからスタートします。

- 相談・連携が必要 → Agent Teams:フロント・バック・テストが絡む横断的なリファクタリング、「APIの型定義が決まったらUIを作る」など依存関係がある作業、複数視点でリサーチ・議論させたい場合
- 独立したタスク → Subagents:「コードレビュー」「セキュリティ監査」など役割が明確なタスク、タスク同士が独立していて相互依存が少ない、繰り返し発生する定番作業、コストを抑えたい場合
tmux:エージェントの動きを「見える化」する
tmux(ターミナルマルチプレクサ)とは、1つのターミナル画面を複数のエリアに分割し、並列で作業できるソフトウェアです。Agent Teamsと組み合わせることで、各エージェントの動きをリアルタイムに確認できます。
イメージ図

tmuxの基本概念は以下のとおりです。
| 概念 | 説明 |
|---|---|
| セッション | 作業部屋(デタッチしても継続する) |
| ウィンドウ | ブラウザのタブ(複数切り替えられる) |
| ペイン(Pane) | 画面の分割エリア(1ウィンドウ内の区切り) |
Agent Teamsでtmuxを使うセットアップ手順は以下のとおりです。
Step 1:tmuxをインストールする
# macOS
brew install tmux
tmux -V # tmux 3.x と表示されればOKStep 2:tmuxセッションを起動し、Claude Codeを始める
tmux new-session -s claude-team
claudeStep 3:settings.jsonに追記する
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
},
"teammateMode": "auto"
}tmuxセッション内でClaude Codeを起動すれば、Agent Teamsがチームを作成したとき、自動的に画面が分割されます。よく使うtmuxコマンドは以下のとおりです。
| 操作 | コマンド |
|---|---|
| デタッチ(作業を続けたまま離席) | Ctrl+b → d |
| 再アタッチ(戻る) | tmux attach -t セッション名 |
| ペインを切り替える | Ctrl+b → 矢印キー |
| ペイン番号を表示する | Ctrl+b → q |
💡 tmuxはAgent Teamsの必須要件ではありません。まずtmuxなしで動かしてみて、エージェントの動きを視覚的に確認したくなったタイミングで導入するのがおすすめです。
合わせてこちらも
実際の使いどころ:ユースケース3選
ここでは日常の開発で使いやすい3つのユースケースを紹介します。
ユースケース①:PRレビューをサブエージェントに任せる
使う機能:Subagents / 場面:コードレビューを体系的に、毎回同じ品質でこなしたい
---
name: pr-reviewer
description: Pull Requestのコードレビューを行う。
tools: Read, Glob, Grep
model: sonnet
---
品質・セキュリティ・パフォーマンスを観点にレビューし、改善案を提示する。ユースケース②:フロント・バック並列で新機能を実装する
使う機能:Agent Teams / 場面:ログイン機能追加など、フロントとバックを同時に進めたいケース
「ログイン機能を追加するチームを組んでください。
バックエンド担当、フロントエンド担当、テスト担当の3名で。
バックエンドがAPIの型定義を完成させたら、フロントに直接連絡して連携してください。」バックエンドがAPIレスポンスの型を決定した瞬間、フロントエンド担当に直接メッセージが飛びます。
ユースケース③:本番リリース前のQAチームを組む
使う機能:Agent Teams / 場面:リリース前に多角的な品質確認をまとめてやりたい
「本番リリース前のQAチームを作ってください。
・動作確認担当:主要画面を確認
・セキュリティ担当:認証・入力バリデーションをチェック
・パフォーマンス担当:レスポンス速度を計測
3つを並列で実施し、リードが問題点を一覧にまとめてください。」まとめ:今日から始める第一歩
この記事のポイントをまとめます。
- Subagentsは専門役割をMarkdownで事前定義し、独立したタスクを並列実行させる仕組み
- Agent Teamsはメンバー同士が直接通信・協調できる、より高度なマルチエージェント方式
- 「AIが相談・連携する必要があるか?」で使い分けを判断する
- tmuxを使うと各エージェントの動きをリアルタイムで確認できる
- Agent Teamsはトークンコストが高めなので、複雑で協調が必要なタスクに絞る
まずは安定しているSubagentsから始めるのがおすすめです。/agents コマンドを起動して、「〇〇専門のサブエージェントを作って」と話しかけてみてください。Agent Teamsはそのあと、「フロントとバックを同時に作りたい」という場面で試してみましょう。




コメント