並列エージェント
Agent Managerを使った最大5並列のエージェント実行。ワークスペース分離戦略でコード品質を維持しながら開発を加速。
並列エージェント概要
Google Antigravityは最大5つのエージェントを同時に実行できます。Agent Manager Viewを使えば、複数のエージェントに異なるタスクを割り当て、それぞれの進捗をリアルタイムで監視できます。
プラン別並列制限
| プラン | 最大並列数 | Work Done/時間 | 推奨用途 |
|---|---|---|---|
| Free | 2 | 週次リセット | 個人学習、小規模タスク |
| Pro ($20/月) | 5 | 5時間ごとリセット | 日常開発、中規模プロジェクト |
| Ultra ($249.99/月) | 10 | 5時間ごとリセット(最大クォータ) | チーム開発、大規模リファクタリング |
並列数を増やすとWork Done消費が比例して増加します。Free プランで2タスク並列×30分 = 単独1時間分のクォータ消費と同等です。
並列エージェントの主なメリット:
- 開発速度の大幅向上 — フロントエンド、バックエンド、テストを同時進行できる。単一エージェントでの直列実行と比べ、3-5倍の速度向上が期待できます。
- タスクの専門化 — 各エージェントが特定のタスクに集中するため、コンテキストウィンドウの消費を抑えられます。長い会話履歴による品質低下を防ぎます。
- 独立したコンテキスト — 各エージェントは独自のコンテキストを持ちます。あるエージェントの失敗が他のエージェントに影響しません。
- 柔軟なモデル選択 — エージェントごとに異なるモデルを指定できます。コスト重視のタスクにはFlash、品質重視にはOpusなど。
並列エージェントはAntigravityのUltraプラン($249.99/月)で5並列まで利用可能です。Proプラン($20/月)では最大2並列に制限されます。無料プランでは並列実行は利用できません。
エージェントの起動
Manager Viewからエージェントを起動する手順です。
-
Manager Viewを開く
画面上部のタブから「Manager」を選択します。現在実行中のエージェント一覧が表示されます。初回は空の状態です。 -
新規エージェントを作成
「+ New Agent」ボタンをクリックします。エージェント名、使用モデル、ワークスペースディレクトリを指定します。 -
タスクを割り当てる
テキストエリアにタスクの指示を入力します。具体的かつ明確な指示を心がけてください。曖昧な指示は品質低下の原因になります。 -
実行開始
「Start」をクリックするとエージェントが動き始めます。Manager Viewで進捗状況をリアルタイムに確認できます。
効率的なタスク割り当て例
Agent 1: フロントエンド
「ユーザーダッシュボード画面をReactで実装してください。デザインはFigmaのリンクを参照。レスポンシブ対応必須。」
Agent 2: バックエンドAPI
「ダッシュボード用のREST APIを実装してください。GET /api/dashboard/stats, GET /api/dashboard/activity のエンドポイントを作成。」
Agent 3: テスト作成
「既存のユーザー認証モジュール(src/auth/)のユニットテストを作成してください。カバレッジ80%以上を目指す。」
タスクの指示には「完了条件」を明記してください。例えば「テストが全てパスすること」「TypeScriptの型エラーが0であること」など。完了条件が明確だと、エージェントが自律的に品質を担保できます。
ワークスペース分離戦略
並列エージェントで最も重要なのがワークスペースの分離です。同じディレクトリで複数のエージェントを実行すると、深刻な問題が発生します。
同一フォルダでの並列実行リスク
- ファイル競合 — 2つのエージェントが同じファイルを同時に編集し、互いの変更を上書きしてしまう
- コンテキスト汚染 — Agent Aが書いた中間コード(未完成)をAgent Bが読み取り、誤った前提で作業を進めてしまう
- ビルドエラーの連鎖 — Agent Aが一時的にビルドを壊すと、Agent Bのテスト実行も全て失敗する
- Git競合 — 複数エージェントが同時にgit操作を行い、ロックファイルの競合やマージコンフリクトが発生する
同一ディレクトリでの並列エージェント実行は、最も多い失敗パターンです。必ずワークスペースを分離してから並列実行してください。分離しない並列実行は、直列実行より遅くなることがほとんどです。
分離戦略の比較
| 戦略 | 方法 | メリット | デメリット |
|---|---|---|---|
| Git Worktree | ブランチごとに作業ディレクトリ分離 | ディスク効率が良い、Git標準機能 | 学習コストあり |
| ディレクトリコピー | プロジェクトを丸ごとコピー | シンプル、理解しやすい | ディスク使用量大、node_modules重複 |
| モノレポ内分離 | パッケージ単位でエージェント割当 | 自然な分離、マージ不要 | モノレポ構成が前提 |
| 機能ファイル分離 | 変更対象ファイルが重複しないよう設計 | 追加設定不要 | 完全分離が難しい場合が多い |
監視と管理
Agent Manager Viewでは、各エージェントの状態をリアルタイムで監視できます。
ステータス表示
各エージェントは以下のステータスを持ちます:
| ステータス | 意味 | アクション |
|---|---|---|
Running |
タスク実行中 | 進捗を監視。必要に応じて追加指示を送信 |
Waiting |
承認待ち(ファイル変更やコマンド実行の許可を求めている) | 内容を確認し、承認または拒否 |
Completed |
タスク完了 | Artifactsを確認し、成果物をレビュー |
Error |
エラー発生で停止 | エラーログを確認し、修正指示を送信 |
Paused |
手動で一時停止 | 必要に応じて再開 |
Artifacts確認
各エージェントが生成した成果物(コード、設定ファイル、テスト結果など)は「Artifacts」タブで確認できます。差分表示機能を使えば、元のコードからの変更点をひと目で把握できます。
承認リクエスト対応
承認ポリシーが「Ask」に設定されている場合、エージェントはファイル変更やコマンド実行の前に承認を求めます。Manager Viewでは全エージェントの承認リクエストが一元表示されるため、効率的に対応できます。
並列実行中は承認リクエストが頻繁に発生します。生産性を最大化するには、信頼できるタスク(テスト実行、リント、フォーマットなど)の自動承認を設定し、破壊的操作(ファイル削除、git push等)のみ手動承認にすることをお勧めします。
Git Worktree連携
Git Worktreeは並列エージェントとの相性が最も良い分離戦略です。1つのリポジトリから複数の作業ディレクトリを作成し、それぞれ異なるブランチで作業できます。
基本的なセットアップ
# メインリポジトリ(通常の作業ディレクトリ)
cd ~/projects/my-app
# Agent 1用のworktreeを作成(feature/dashboardブランチ)
git worktree add ../my-app-agent1 -b feature/dashboard
# Agent 2用のworktreeを作成(feature/apiブランチ)
git worktree add ../my-app-agent2 -b feature/api
# Agent 3用のworktreeを作成(fix/auth-bugブランチ)
git worktree add ../my-app-agent3 -b fix/auth-bugこれで以下の3つの独立した作業ディレクトリが作成されます:
~/projects/my-app-agent1/— feature/dashboardブランチ~/projects/my-app-agent2/— feature/apiブランチ~/projects/my-app-agent3/— fix/auth-bugブランチ
各ワークディレクトリは同じGitオブジェクトデータベースを共有するため、ディスク使用量は最小限です。
Worktree管理コマンド
# worktree一覧を確認
git worktree list
# 作業完了後にworktreeを削除
git worktree remove ../my-app-agent1
# ブランチをmainにマージ
git checkout main
git merge feature/dashboard
git merge feature/api
git merge fix/auth-bug
# 不要になったworktreeを一括削除
git worktree pruneGit Worktreeでは同じブランチを複数のworktreeでチェックアウトできません。必ず各worktreeで異なるブランチを使用してください。ブランチ名の規約(例: agent/1/feature-name)を決めておくと管理が楽になります。
node_modulesの共有
Node.jsプロジェクトの場合、各worktreeで npm install を実行する必要があります。pnpmを使っている場合はコンテンツアドレッサブルストレージが自動的にキャッシュを共有するため、ディスク効率が良くなります。
初心者向けWorktreeセットアップ
-
Step 1: メインブランチの確認
git branchで現在のブランチを確認し、feature用ブランチを作成する準備をします。mainブランチが最新であることをgit pull origin mainで確認してください。 -
Step 2: Worktree作成
git worktree add ../project-agent-1 feature/refactorを実行します。これにより親ディレクトリにproject-agent-1フォルダが作成され、feature/refactorブランチがチェックアウトされます。 -
Step 3: Antigravityで新しいワークスペースとして開く
Antigravityで../project-agent-1を新しいワークスペースとして開きます。Agent Manager Viewから「+ New Agent」で、ワークスペースディレクトリにこのパスを指定します。 -
Step 4: 作業完了後のクリーンアップ
git worktree remove ../project-agent-1で不要になったworktreeを削除します。ブランチのマージはメインリポジトリ側で行ってください。
✅ 各worktreeに異なるブランチを割り当てる
✅ node_modulesはシンボリックリンクで共有可能
✖ 同じブランチを複数worktreeで開かない
✖ worktree内でgit checkout mainしない
ベストプラクティス
タスク粒度の設計
並列実行の効果を最大化するには、タスクの粒度が重要です。
| 粒度 | 例 | 並列向き度 |
|---|---|---|
| 大きすぎる | 「アプリ全体をリファクタリングして」 | 不向き(コンテキスト枯渇のリスク) |
| 適切 | 「認証モジュールのユニットテストを作成して」 | 最適(明確な範囲、独立性が高い) |
| 小さすぎる | 「変数名をcamelCaseに変えて」 | 不向き(オーバーヘッドが大きい) |
独立性の確保
- 共有ファイルを避ける — 同じファイルを複数のエージェントが変更するタスクは避ける。共有の型定義ファイルや設定ファイルの変更は1つのエージェントに集約する
- インターフェースを先に決める — API仕様やコンポーネントのプロパティを先に定義してから並列実行すると、統合がスムーズになる
- テストを独立して実行可能にする — 各エージェントのタスク範囲内で完結するテストを書く
タスク別の並列化適性
| タスクタイプ | 並列化 | 理由 |
|---|---|---|
| フロントエンド + バックエンド実装 | ✅ 適 | 依存関係が少なく独立して作業可能 |
| ユニットテスト + E2Eテスト作成 | ✅ 適 | テスト対象が異なり干渉しない |
| APIエンドポイント追加 × 3本 | ✅ 適 | ルートごとに独立 |
| DB migration + それに依存するコード変更 | ✖ 不適 | 順序依存性がある |
| 同一ファイルの異なるセクション修正 | ✖ 不適 | マージコンフリクトが発生 |
| グローバルCSS変更 + コンポーネント修正 | ⚠️ 注意 | スタイル競合の可能性 |
マージ戦略
最も安定した変更から先にマージ
テスト追加、ドキュメント更新など、コンフリクトリスクの低い変更を先にmainにマージします。基盤が安定してから、大きな機能変更をマージする順序がベストです。
PRベースのレビュー
各エージェントの成果をPull Requestとして提出し、人間がレビューしてからマージします。自動マージは避け、必ず差分を確認してください。
コンフリクト解決は別エージェントで
マージコンフリクトが発生した場合、新たにエージェントを起動して解決させます。コンフリクト解決の指示には両方のブランチの意図を明記してください。
並列エージェントの理想的なパターンは「Fan-out / Fan-in」です。計画フェーズで全体設計を固め(Single Agent)、実装フェーズで並列展開し(Multi Agent)、統合フェーズで再び一本化する(Single Agent)。この3段階を意識するだけで、並列実行の成功率が大幅に向上します。