ANTIGRAVITY LABEN
記事一覧/Agents & Manager
Agents & Manager/2026-06-13上級

複数エージェントを同じリポジトリで並走させると壊れる — worktree で作業領域を分離する設計

Antigravity 2.0 で複数エージェントを同じリポジトリに同時に走らせると、index.lock の衝突や中途半端なステージングで失敗します。git worktree と projects を使ってエージェントごとに作業領域を分ける分離設計を、実運用で踏んだ事故とあわせてまとめました。

agents67git-worktree3parallel-execution4isolationantigravity-2

プレミアム記事

並列で動かしていたエージェントの片方が、もう片方のコミットを巻き込んで push してしまったことがあります。

個人開発で複数のサイトとアプリを並行運用しているため、Antigravity 2.0 でエージェントを同時に何本も走らせたくなります。あるエージェントには記事の追加を、別のエージェントには依存更新を任せる、といった具合です。ところが両方を同じクローンの上で動かした結果、依存更新側がまだステージしていない記事ファイルまで git add -A で巻き込み、意図しない内容が main に乗りました。

幸いすぐ revert できましたが、原因を突き詰めると「作業領域を共有したまま並列実行した」という設計の問題でした。私自身、ここで一度痛い目を見てから分離を徹底しています。同じリポジトリで複数エージェントを安全に走らせるための設計を、実運用の判断とあわせて順にたどっていきます。

なぜ同じ作業ツリーで並走すると壊れるのか

git のリポジトリは、履歴を保持する .git ディレクトリと、いま編集しているファイルが置かれる作業ツリー、そして次のコミットに含める内容を記録するインデックス(ステージングエリア)で構成されています。問題は、このインデックスと作業ツリーがクローンに対して1つしかないことです。

並列エージェントが同じクローンを共有すると、次の3種類の衝突が起きます。

ひとつ目は index.lock の衝突です。git はインデックスを書き換える操作の間 .git/index.lock を作ります。エージェント A が commit している最中にエージェント B が add を始めると、B 側が Unable to create '.git/index.lock': File exists で失敗します。VM 上の自動実行では、この失敗が無音で握り潰されて「コミットしたつもりで何もしていない」状態になりがちです。

ふたつ目は作業ツリーの汚染です。エージェント A が編集中のファイルを、エージェント B のチェックアウトが上書きしたり、git checkout . で消したりします。

みっつ目はブランチの取り違えです。作業ツリーは常に1つのブランチしか指せません。A が feature ブランチに切り替えた瞬間、B も同じブランチの上で作業することになり、変更が混線します。

worktree でエージェントごとに作業領域を分ける

この3つはすべて「インデックスと作業ツリーを共有している」ことが根本原因です。git worktree は、1つの .git(履歴)を共有しながら、独立した作業ツリーとインデックスを複数持てる仕組みです。エージェント1本につき worktree を1つ割り当てれば、衝突の根を断てます。

# ベアではない通常クローンから、エージェント用 worktree を派生させる
REPO="$HOME/repos/antigravitylab.net"
cd "$REPO"
 
# エージェントごとに専用ブランチ + 専用作業ツリーを作る
git worktree add "../wt-agent-articles"  -b agent/articles  origin/main
git worktree add "../wt-agent-deps"      -b agent/deps      origin/main
 
# それぞれの worktree は独立したインデックスを持つ
#   ../wt-agent-articles  … 記事追加エージェント専用
#   ../wt-agent-deps      … 依存更新エージェント専用

これで記事エージェントは ../wt-agent-articles の中だけで git add / git commit し、依存更新エージェントは ../wt-agent-deps の中だけで作業します。git add -A を打っても、巻き込む範囲はその worktree のファイルに限られます。冒頭の事故は、この分離があれば起きませんでした。

worktree は履歴を共有しているので、ディスク消費は作業ツリー分(数十 MB)だけで済みます。クローンを丸ごと2つ持つより軽量です。

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

この記事の続きを読む

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

この記事で得られること
同一リポジトリ上で並列エージェントが踏む3種類の衝突(index.lock・作業ツリー汚染・ブランチ取り違え)の発生メカニズムを理解できる
worktree をエージェント単位で割り当てる分離レイアウトと、後始末まで含めたライフサイクル管理スクリプトを持ち帰れる
Antigravity 2.0 の projects と worktree を組み合わせて、4 並列までなら安全に回せる運用境界の引き方が分かる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Agents & Manager2026-05-01
並列で動く Antigravity エージェントが「同じファイル」を奪い合うとき — 競合を予防する設計とレース条件の現実的な対処
並列に走らせた Antigravity エージェント同士の書き込み競合・ブランチ衝突・キャッシュ破壊を、リソースロックとレース条件の観点から整理し、再現可能な失敗とその修復パターンを実装レベルで紹介します。
Agents & Manager2026-03-14
Claude AI エージェントの自律タスク管理 — TodoWrite と並列実行の実践パターン
Claude AI エージェントを使用した自律的なタスク管理の実装方法。TodoWrite の活用法、並列実行パターン、実践的なコード例を詳しく解説します。
Agents & Manager2026-06-13
エージェントに品質チェックを飛ばさせない — Antigravity CLI Hooks と git pre-push の二段ゲート設計
依存更新を任せたエージェントが、落ちたテストを『無関係』と自己判断して push まで進めてしまった経験から、Antigravity CLI の Hooks と git pre-push を重ねた二段ゲートを組みました。品質チェックの省略を仕組みで防ぐ設定とスクリプトの実物をまとめています。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →