Agent Teams は、複数のエージェントに 1 つのタスクを真に並列で実行させるための Claude Code の実験的機能であり、素朴なサブエージェント構成には欠けている調整のためのプリミティブを追加する。環境変数 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 で有効化され、作業を 3 つの層で構成する。作業を分解し、タスクリストを作成し、結果を統合するチームリード(Team Lead)。各タスクのステータス(pending、in-progress、completed、blocked)を依存関係の追跡とファイルロックとともに管理する共有タスクリスト。そして、リストからタスクを自ら引き受けるチームメイトである。各チームメイトは独自のコンテキストウィンドウを持つ独立した Claude Code インスタンスであり、コードエージェント・オーケストラ:マルチエージェントのコーディングを機能させるもの では別々の tmux ペインで動くものとして説明されている。
用法
チームメイトはリードを経由せずに互いに直接メッセージをやりとりする。そのため、あるチームメイトがタスクを終えて完了とマークすると、それに依存していたタスクは、リードが仲介しなくても自動的にブロックが解除される。ファイルロックにより、2 人のチームメイトが同じファイルを同時に編集することが防がれる。報告されている実践として、lint、テスト、セキュリティスキャンのツールだけに制限され、タスクが完了するたびに自動的に起動する読み取り専用の「@reviewer」チームメイトを専任で立ち上げ、リードが常にレビュー済みのコードだけを統合するようにするというものがある。
この機能がリサーチプレビューに入った時点で書かれた Claude Code のスウォーム は、コミュニティがこうした協調するチームを「swarms」と呼んでいたことに触れている。同記事によれば、チームは自然言語で依頼され、リードがチームメイトを立ち上げ、チームメイト同士の直接のメッセージングにはメールボックスが使われる。共有タスクリストの状態は pending、in progress、completed とされ、未解決の依存関係を持つ pending のタスクは、それらが完了するまで引き受けることができない。また、タスクの引き受けには競合状態を防ぐためにファイルロックが使われる。チームとタスクはローカルの ~/.claude/teams/ と ~/.claude/tasks/ に保存される。同じ記事は 2 つの表示モードも説明している。すべてのチームメイトがメインのターミナル内で動くインプロセスモード(デフォルト)と、tmux または iTerm2 による分割ペインである。さらに、リードがアプローチを承認するまでチームメイトが読み取り専用モードで作業するオプションのプラン承認と、リードを調整だけに限定するデリゲートモードも説明されている。
同記事は Agent Teams とサブエージェントを対比している。サブエージェントは単一の親に結果を報告するだけで互いに会話できないのに対し、チームメイトは発見を共有し、互いのアプローチに異を唱え、独立して調整を行う。ただし、各チームメイトが別個の Claude インスタンスであるため、トークンのコストは高くなる。実験的機能としての制約として同記事が挙げているのは、インプロセスのチームメイトはセッションの再開時に復元されないこと、タスクのステータスが遅れて反映されることがあること、リードは 1 セッションにつき 1 つのチームしか管理できず、チームメイトは自分のチームを立ち上げられないこと、そしてすべてのチームメイトがリードのパーミッション設定を引き継いで開始することである。