💬

ClaudeCodeのAgent Teamsのざっくり所感

に公開

フクロウラボの若杉です。最近は、社内のAI推進にコミットしています。
さて、2月の上旬に、ClaudeのOpus4.6がリリースされ、そのタイミングで、Agent Teamsという機能もリリースされました。Agent Teamsをいろいろ試して使ってみたので、その所感について、書きたいと思います。

https://code.claude.com/docs/ja/agent-teams

簡単な使い方

まず設定と使い方です。今回、利用したClaudeCode CLIのバージョンは、v2.1.56です。
ClaudeCodeは、起動時に最新アップデートが自動で適用されるようになっているようですが、念のため、起動前に、下記のコマンドで確実に最新バージョンにアップデートもできます。

claude update

そのうえで、~/.claude/settings.jsonに、下記の記述を追加することで、利用できるようになります。

{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  },
  ...
}

早速利用してみます。
CLIを起動し、例えば、下記のようにプロンプトを入力するとエージェントのチームを組成することができます。ただし、本来は、チームを組成する前に、何をするのか、目的や背景を定義した後にチームを組成した方が良いです。目的を伝えた上でどのようなチームの組成が良いのかをそのまま聞き、その提案で問題なさそうであれば、「そのチームを組成して、実行してください」的なプロンプトでいい感じにやってくれます。

公式サイトにサンプルのプロンプトがありますが、それを参考に下記のようにプロンプトを流すとチームだけ組成してくれます。

開発者がコードベース全体のTODOコメントを追跡できるCLIツールを設計しています。UX担当、技術アーキテクチャ担当、そして反論担当のエージェントチームを編成してください。ただし、まだ検討作業は開始しないでください。

すると、下記のようにチームが編成されます。

3名分のエージェントが起動しますが、その3つのエージェント以外にリーダー役のエージェントが必ず存在します。下記の画像でいうところの「team-lead」というやつです。

基本的には、team-leadとコミュニケーションを取ります。
team-leadに指示を出すと、他のエージェントへの指示を的確に行ってくれますし、他の3つのエージェントから来るユーザーに対する質問もteam-lead経由でユーザーヒアリングしてくれます。

表示モードについて

また、エージェントの表示モードは、2種類あります。
デフォルトの「In-process」という表示モードでは、Shift+↓で、エージェントを切り替え、Returnで選択できます。
すると、その役割のエージェントの表示に切り替え、今何をしているかを確認できます。また、指示を直接出す事もできます。

もう1つの表示モードが、「Split panes」というモードです。
tmuxやiTerm2を利用している場合、作成されたエージェント分の分割ペインに対応してくれます。
このモードでは、下記の画像のように、全てのエージェントを表示できます。team-leadからどのような指示を受けているかを、リアルタイムでの把握がしやすいです。

設定の仕方は、先程の ~/.claude/settings.json に例えばtmuxの場合、下記を記述することで、デフォルトで対応します。

{
  ...
  "preferences": {
    "tmuxSplitPanes": true
  },
  ...
}

tmuxのタブでセッションを開始した状態で、claudeを起動すればOKです。

ざっくり所感

コーディングにおいては、プロジェクトのゼロから作ってもらう時などは、良いかなと感じました。最初のコミットを作る前の段階で、要件からシステム的な仕様、環境構築を作成するための準備をするフェーズにおいては、実装前の仕様などをきめ細かく作成してくれるイメージです。
ただ、運用が開始されていて、機能を追加していくというフェーズでは、基本的にはAgent Teamsを使わなくても、今までのやり方でも十分かなという所感です(いまのところ)。理由としては、Agent Teamsを使うとどうしてもコストが多くかかりがちというコスパ面と、リーダーエージェント経由での複数エージェント管理するため通常にくらべ制御がしにくいところです。粒度が小さいタスクにおいては、普通に進めた方が、安く早く完了できます。

コーディングにおいては、「複数の機能を並行して開発させる」というシーンで、コンフリクトが起きないように良い感じにやってくれると便利だなーと思ったのですが、その理想とはちょっと違っていました。

機能開発する機能毎でエージェントを分けて並行で実行してもらうことはできますが、同じファイルの編集において、リーダー役のエージェントが同一ファイルの同時編集が行われないように、それぞれのエージェントを管理する、ファイルロックをしっかり制御してくれるとうれしかったのですが、そこまでの担保は難しいようで、上書きやコンフリクトの可能性は残ったままです。公式ドキュメントにも、下記のような記述がありました。
https://code.claude.com/docs/ja/agent-teams#ファイルの競合を回避する
また、下記の項目に、

同じファイルの編集、または多くの依存関係を持つ作業の場合、単一セッションまたはsubagentsがより効果的です。

とも記載されている通り、同一ファイルを変更する可能性がある場合は、Agent Teamsでの並行・非同期な開発は向いてなさそうです。(ただ、コンフリクトを起こさず並行での機能開発ができると便利ではあるので、プロンプトでうまく制御できないか、いろいろ試してみたいとは思います。これはSubagentの話ですが、直近で、「Subagentにworktreeを提供して処理をさせる」というアップデートもリリースされていて、Agent Teamsでも似たようなことができないかとか妄想を膨らましています。)

https://code.claude.com/docs/ja/agent-teams#エージェントチームを使用する場合

その他、Agent Teamsが効率的に効果を発揮しそうなのは、DeepResearchのような書斎な調査や、社内の様々なドメイン知識を参照して経営層向けの分析やレポート作成などの多角的な分析やリサーチなどは、割とマッチする気がしました。実際に、下記のようなチーム構成で、社内の様々な活動ログから自社の脅威を分析し経営層向けレポートを作成してもらいました。

Agent Teamsならではの、精度の高さや網羅性の広さが活かされたアウトプットが得られました。(アウトプットのキャプチャも共有したいのですが、あまりにも赤裸々過ぎる内容のため、自重しますm(_ _)m)


以上、現時点での、ざっくりとした所感です。
ポイントとしては、「小さすぎず、大きすぎない適切なタスクサイズでの運用」が重要そうです。
適切なタスクの粒度は、実際にいろんなタスクの粒度で使い込む体験を繰り返すことで、感覚が掴めるかと思います。
まだまだ使いこなせていないので、もっといろんなシーンで利用してみたいと思います!

フクロウラボ エンジニアブログ

Discussion