エージェントチーム
エージェントチームは、複数の Claude インスタンスが協力して タスクに取り組む実験的な機能です。チームリードとチームメイトが共有タスクリストを通じて連携します。
エージェントチームとは
エージェントチームでは、複数の Claude が 対等な関係 で協力します。サブエージェントとは異なり、各メンバーが独立して動作しながら、共有タスクリストを通じてコミュニケーションを取ります。
サブエージェント(階層型):
メイン Claude → サブエージェント A
→ サブエージェント B
エージェントチーム(協調型):
チームリード ←→ チームメイト A
←→ チームメイト B
←→ チームメイト C
↕
共有タスクリスト実験的機能
エージェントチームは Anthropic が提供する 実験的な機能 です。仕様や動作が今後変更される可能性があります。本番環境での利用は慎重に判断してください。
エージェントチームの構成
チームリード
チームリードは、タスク全体を管理する 指揮者 の役割です。
チームリードの役割:
- タスクの分解と割り当て
- 進捗の監視
- 成果物の統合
- 最終的な品質確認チームメイト
チームメイトは、割り当てられたタスクを 独立して実行 するメンバーです。
チームメイトの特徴:
- 専用の Git Worktree で動作
- 独立したコンテキスト
- タスクリストを通じて進捗を報告
- 他のメンバーとメッセージング可能共有タスクリスト
チーム全員がアクセスできる 共有のタスクリスト で、作業の進捗を管理します。
共有タスクリスト:
[完了] フロントエンドのログイン画面を実装
[進行中] バックエンドの認証 API を実装 (← チームメイト A)
[進行中] テストを作成 (← チームメイト B)
[未着手] ドキュメントを更新タスクリストの役割
タスクリストは、チームメンバー間のコミュニケーション手段でもあります。各メンバーはタスクの状態を更新し、他のメンバーの進捗を確認できます。
エージェントチームの始め方
基本的な起動方法
# チームメイトを追加してプロジェクトに取り組む
claude
> この機能を複数のエージェントで並列に開発してください。
フロントエンドとバックエンドを分担して実装してください。Claude がタスクの性質を判断し、必要に応じてチームメイトを生成します。
手動でチームメイトを指定
> 以下のタスクを3人のチームメイトに分担してください:
1. フロントエンド: ログインフォームの実装
2. バックエンド: 認証 API の実装
3. テスト: E2E テストの作成メッセージング
チームメンバー間でメッセージを送り合うことができます。
チームリード → チームメイト A:
「認証 API のエンドポイントは /api/v2/auth にしてください」
チームメイト A → チームリード:
「了解しました。POST /api/v2/auth/login を実装中です」
チームメイト B → チームメイト A:
「テスト用のモックレスポンスの形式を教えてください」メッセージングの活用
チームメンバー間で情報を共有する際に、メッセージング機能が役立ちます。例えば、API の仕様が決まったタイミングでフロントエンド担当に通知するなど、リアルタイムな連携が可能です。
実践例
例 1: フルスタック機能開発
> ユーザー管理機能を開発してください。以下の分担で進めてください:
- チームメイト1: React でユーザー一覧・詳細画面を実装
- チームメイト2: Express で REST API を実装
- チームメイト3: ユニットテストと E2E テストを作成各チームメイトの作業:
チームメイト 1(フロントエンド):
├── src/components/UserList.tsx
├── src/components/UserDetail.tsx
├── src/hooks/useUsers.ts
└── src/pages/UsersPage.tsx
チームメイト 2(バックエンド):
├── src/routes/users.ts
├── src/controllers/userController.ts
├── src/services/userService.ts
└── src/models/user.ts
チームメイト 3(テスト):
├── tests/unit/userService.test.ts
├── tests/unit/UserList.test.tsx
└── tests/e2e/users.spec.ts例 2: 大規模リファクタリング
> このプロジェクトを以下のように分担してリファクタリングしてください:
- チームメイト1: src/services/ を async/await に変換
- チームメイト2: src/components/ をクラスから関数コンポーネントに変換
- チームメイト3: TypeScript の any 型を具体的な型に変更例 3: バグの並列修正
> 以下のバグを並列で修正してください:
- Issue #10: ログイン画面のバリデーションエラー
- Issue #11: 検索結果のページネーション不具合
- Issue #12: ファイルアップロードのタイムアウトエージェントチームのアーキテクチャ
┌──────────────────────────────────────────────┐
│ チームリード (Claude) │
│ - タスクの分解・割り当て │
│ - 進捗監視・成果統合 │
└────────┬───────────┬───────────┬─────────────┘
│ │ │
┌────┴────┐ ┌────┴────┐ ┌────┴────┐
│ Worktree │ │ Worktree │ │ Worktree │
│ Claude A │ │ Claude B │ │ Claude C │
│ (実装) │ │ (テスト) │ │ (レビュー) │
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
┌────┴───────────┴───────────┴────┐
│ 共有タスクリスト │
│ [完了] タスク1 │
│ [進行中] タスク2 │
│ [未着手] タスク3 │
└────────────────────────────────┘エージェントチームのベストプラクティス
1. タスクの独立性を確保する
# 良い例: 各タスクが独立している
> フロントエンドとバックエンドを別々に実装してください
# 避けるべき例: タスク間の依存が強い
> まず API を実装してから、その API を呼び出す UI を作ってくださいタスクの依存関係に注意
チームメイトは並列で動くため、タスク間の依存関係が強いと問題が起きます。できるだけ 独立したタスク に分割しましょう。
2. 明確な分担を指定する
ファイルやディレクトリの担当を明確にすることで、コンフリクトを避けられます。
3. インターフェースを先に決める
フロントエンドとバックエンドを分担する場合、API のインターフェース(エンドポイント、リクエスト/レスポンスの形式)を先に決めておきましょう。
まとめ
| 項目 | 内容 |
|---|---|
| 構成 | チームリード + チームメイト |
| コミュニケーション | 共有タスクリスト + メッセージング |
| 実行環境 | 各メンバーが独立した Worktree で動作 |
| 適した場面 | 独立性の高いタスクの並列実行 |
| 注意点 | 実験的機能、タスクの独立性確保が重要 |
次は、マルチエージェントの実践的な活用法 オーケストレーション を学びましょう。