ANTIGRAVITY LABEN
記事一覧/Agents & Manager
Agents & Manager/2026-07-24上級

並列エージェントに実行環境をリースする — ポート帯・DBスキーマ・devサーバを1エージェント1環境で分離する設計

Antigravity 2.0 の真の並列実行で複数エージェントが同じポート・DB・devサーバに衝突する問題を、1エージェント1環境をリースする設計で解きます。ポート帯の決定的割り当てとスキーマ複製の実装、実測値つきです。

Antigravity351並列エージェント6環境分離設計パターン7PostgreSQL

プレミアム記事

3つのエージェントに、同じ Next.js アプリの別々の機能を同時に任せた日のことです。

1つ目が UI コンポーネント、2つ目が API ルート、3つ目がスキーマ移行。Antigravity 2.0 のデスクトップで並列に走らせれば、単純計算で3倍速い。そう思っていました。

結果は逆でした。3つとも localhost:3000 を掴もうとして EADDRINUSE が連発し、移行が同じデータベースで競合してロック待ちになり、片方のエージェントのテストがもう片方のシードデータを消しました。壁時計で測ると、直列で回すより 約1.4倍遅い。並列にしたのに遅くなる、という妙な光景でした。

原因は計算資源ではありません。共有された状態の副作用です。ポート、devサーバ、データベース、移行、ファイル監視 — これらは1つしかないのに、3つのエージェントが同時に触ろうとする。真の並列実行は、この「1つしかない資源」を容赦なく表面化させます。

個人開発で複数のアプリを並行して回す中で、私自身がたどり着いた解が「1エージェントに1つの実行環境をリースする」という設計でした。以下、実装とともに整理します。

「速くならない並列」の正体

並列エージェントの失敗は、ほとんどが次の4層のどこかで起きます。

衝突の中身症状
ネットワーク同じポートを複数のdevサーバが奪い合うEADDRINUSE :::3000
データベース同じテーブル・同じ行を書き換える/移行が競合するロック待ち・デッドロック・データ破壊
ファイルシステムlockfile・生成物・キャッシュの同時書き込み壊れた pnpm-lock.yaml・中途半端なビルド
OSリソースinotify 監視数・ファイルディスクリプタの枯渇ENOSPC(監視上限)・HMRの無反応

共通する構造は「1つしかない資源を、複数の主体が調停なしに触る」ことです。人間が1人で開発しているときは、そもそも同時に2つのdevサーバを立てないので表面化しません。エージェントを並列にした瞬間、隠れていた前提が崩れます。

だから対策は「エージェントを賢くする」ことではなく、環境の側を分けることに尽きます。1エージェントに1つ、他と重ならない実行環境を渡す。これがリースの発想です。

リースとは何を渡すことか

リース(lease)は、エージェントに一定期間貸し出す「重ならない資源の束」です。私は最小構成として次の5つを1つのリースにまとめています。

資源割り当て方分離される衝突
ポート帯エージェント番号から決定的にオフセットdevサーバ・API・DBプロキシの奪い合い
DBスキーマテンプレートから複製した専用スキーマ行の破壊・移行競合
作業ディレクトリgit worktree ごとに分離ファイル・lockfile・生成物の衝突
環境ファイルリース値を書き込んだ .env.agent設定の取り違え
リースID回収・掃除の起点になる一意な鍵クラッシュ後の資源リーク

肝は、これらを エージェント番号から決定的に導く ことです。ランダムに空きポートを取る方式は一見スマートですが、後述の理由で並列運用ではむしろ扱いにくくなります。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
エージェントごとに専用のポート帯・DBスキーマ・devサーバをリースする割り当て設計と、リース回収までの実装
database-per-agent より schema-per-agent が速い理由(複製は約80ms・新規DBは約900ms)と、移行を毎回走らせないテンプレート複製手法
ランダムな空きポートより決定的ポートが並列運用で優れる、直感に反する運用上の理由
同じ3タスクを直列・素朴な並列・リース並列で回した壁時計の実測比較(18分40秒 / 26分10秒 / 8分05秒)と、頭打ちになる地点の読み方
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Agents & Manager2026-06-18
並列エージェントが同じファイルに書き込むときの取り合いを防ぐ
並列エージェントが同じファイルへ書き込んで互いの変更を消し合う事故を防ぐために、所有権分割・直列化点・リース方式コーディネータの3戦略を整理しました。ワークツリー分離では足りない理由と、衝突を検出する番兵の置き方まで実装を交えて説明します。
Agents & Manager2026-08-07
変更したファイルからテストを選ばせたら、9 割が「該当なし」でした — import グラフで届く範囲を 3 リポジトリで測る
変更ファイル起点でテストを選ばせたところ、9割の変更で対象が0本になりました。import グラフの到達範囲を3つのリポジトリで実測し、バレルファイルが経路を広げる問題や、選択契約を組み直すまでの過程を、実測データを添えた記録としてまとめています。
Agents & Manager2026-07-29
agent.md の綴り誤りが権限を広げていた — frontmatter を厳格に検証する lint を書く
agent.md の frontmatter は綴りを間違えてもエラーになりません。既定値へ静かに落ちた結果、意図と逆の権限が適用されていた実例と、権限キーだけを厳しく検証する lint の実装・実測を記録しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →