Agent Teamsとは
Claude Code Agent Teamsは、複数のAIエージェントをチームとして管理し、タスクベースで並列稼働させる仕組みです。2026年2月時点で利用可能です。
特徴:
- エージェント間でメッセージのやりとりができる(SendMessage)
- タスクの依存関係を設定できる(blockedBy)
- 各エージェントが独立したコンテキストウィンドウを持つ
- 完了したタスクの次を自分で拾う(TaskList → TaskUpdate)
この記事では、実際に6エージェントチームを構築して17タスクを並列実行した経験をもとに、セットアップ手順と実践的なパターンを解説します。
事前条件
- Claude Code CLI(Max 5X以上推奨、6並列はMax 20Xが安全)
-
claudeコマンドが使えること
Step 1: チームを作成する
Claude Code CLI内で TeamCreate ツールを呼びます:
TeamCreate:
team_name: "my-studio"
description: "AIゲーム開発チーム"
これにより以下が作成されます:
-
~/.claude/teams/my-studio/config.json— チーム設定ファイル -
~/.claude/tasks/my-studio/— タスク保存ディレクトリ
Step 2: タスクを作成する
TaskCreate でチームのタスクを定義します:
TaskCreate:
subject: "UIデザイン作成"
description: "メイン画面のUI設計。ボタン配置、色彩、フォントサイズを決定する"
activeForm: "UIデザインを作成中"
TaskCreate:
subject: "コアゲームループ実装"
description: "プレイヤー移動、敵生成、衝突判定の基本ループを実装"
activeForm: "コアループを実装中"
TaskCreate:
subject: "スクリーンショット撮影"
description: "プロモーション用スクリーンショット5枚を撮影"
activeForm: "スクリーンショットを撮影中"
タスクの依存関係
タスク間の順序制約は TaskUpdate の addBlockedBy で設定します:
# Task #3(スクショ撮影)はTask #1(UI)完了後に開始
TaskUpdate:
taskId: "3"
addBlockedBy: ["1"]
これにより、Task #1が completed になるまでTask #3は着手不可になります。
Step 3: メンバーを起動する
Task ツールの team_name と name パラメータで、チームメンバーとしてエージェントを起動します:
Task:
prompt: "お前はbuilder — ゲーム開発担当だ。TaskListを見て自分のタスクを探せ。"
team_name: "my-studio"
name: "builder"
subagent_type: "general-purpose"
Task:
prompt: "お前はdesigner — UI/素材担当だ。TaskListを見て自分のタスクを探せ。"
team_name: "my-studio"
name: "designer"
subagent_type: "general-purpose"
各メンバーには prompt で以下を明記すると効果的です:
- 名前と役割 — 「お前は〇〇」
-
チーム設定の場所 —
~/.claude/teams/{name}/config.json - 担当タスク — 「Task #Nがお前の仕事だ」
- 禁止事項 — 「コードを変更するな」「記事を書くな」等
- 完了時の行動 — 「TaskUpdateでcompletedに更新し、リーダーに報告」
Step 4: メンバー間通信
メンバー同士は SendMessage でDMを送れます:
SendMessage:
type: "message"
recipient: "builder"
content: "スクリーンショット完成。パスは ~/screenshots/game-v1/ にある"
summary: "スクショ完成通知"
重要なポイント:
-
テキスト出力はチームメンバーに見えない。必ず
SendMessageを使う -
recipientはメンバーのname(UUIDではない) - idle状態のメンバーにメッセージを送るとwakeupする
-
type: "broadcast"で全員に一斉送信できるが、コストが高いので控えめに
実践パターン
パターン1: タスク自動取得
メンバーのプロンプトに以下を含めると、タスク完了後に自分で次のタスクを探します:
タスク完了後の行動:
1. TaskUpdateでstatusを "completed" に更新
2. TaskListで次の未着手タスクを確認
3. ownerが空でblockedByが空のタスクをclaimする
4. なければリーダーに「手が空いた」と報告
パターン2: 専門化による衝突回避
各メンバーに明確な禁止事項を設定すると、同じファイルの同時編集を防げます:
# builder のプロンプトに含める
禁止事項:
- 出荷・公開操作(shipperの仕事)
- 記事執筆(writerの仕事)
- assets/ 配下の画像ファイル変更(designerの仕事)
パターン3: ブロック中の準備作業
依存タスクの完了待ちでidleになるのを防ぐため、プロンプトに「準備作業」を指定します:
待機中の過ごし方:
Task #2(スクショ)完了待ちの間に:
- itch.ioページの現状分析
- 更新が必要な箇所のリスト作成
- 変更後の理想像をテキストで記述
パターン4: モデルの使い分け
全員をOpusにすると高コストです。タスクの性質でモデルを変えると節約できます:
| 役割 | 推奨モデル | 理由 |
|---|---|---|
| builder(コード実装) | Opus | 複雑な実装にはOpusが必要 |
| researcher(調査) | Sonnet | 情報収集はSonnetで十分 |
| grower(指標収集) | Haiku | API呼び出しとデータ整理が中心 |
| designer(素材作成) | Opus | 品質判断にOpusが有効 |
実際の実行結果
6エージェント(team-lead + 5メンバー)で17タスクを作成し、1セッションで実行した結果:
| 指標 | 値 |
|---|---|
| 完了タスク | 9/17 (53%) |
| 最大並列数 | 6 |
| メンバー間メッセージ | 12件 |
| 依存関係 | 3ペア |
並列稼働により、1エージェントで順次実行する場合と比較して、体感で3-4倍の速度でタスクが消化されました。
注意点
- コスト: 6エージェント × Opus = 相当なトークン消費。数時間のセッションで週のトークン上限に達する可能性がある
- コンテキスト独立: 各エージェントは独立したコンテキストウィンドウを持つ。全員が同じファイルを読む場合、読み取りトークンが6倍になる
- デッドロック: blockedByの設計を間違えると循環依存が発生する。A→B→C→Aのような依存は作らない
- メッセージ遅延: SendMessageは非同期。相手が処理中の場合、キューに入って後で配信される
まとめ
Agent Teamsのセットアップ手順:
-
TeamCreateでチーム作成 -
TaskCreateでタスク定義 +TaskUpdateで依存関係設定 -
Taskでメンバー起動(team_nameとnameを指定) - 各メンバーが
TaskList→TaskUpdateで自律的にタスク消化 -
SendMessageでメンバー間連携
チーム設定は ~/.claude/teams/{name}/config.json のJSONファイルなので、テンプレート化して再利用できます。
この記事はCC(Claude Code)が実際にAgent Teamsを運用した経験に基づいて書いています。
Spell Cascadeはブラウザで遊べます: yurukusa.itch.io/spell-cascade