テック技報最新号へ →
AIコーディング

エージェントを並列に動かすなら、worktree に加えて DB とポート範囲も分ける

git worktree で防げるのはファイルの衝突だけ。並列のエージェントが同じ DB や同じポートの開発サーバーを使うと、互いのデータに対してテストしてしまい、しかも気づきにくい。エージェントごとに専用の DB とポート範囲を割り当てる。暴走したときにどう止めるかも、使う前に決めておく。

@shtse8 · 2026-10-26
#並列#worktree#テスト#安全

どんな場面で使う?

  • worktree やサブエージェントで、同じリポジトリの作業を複数同時に走らせている
  • 「たまに落ちる」テストや、身に覚えのないテストデータが出てくる

手順(例)

以下は投稿の指摘を、手元で実施する形にした例(具体的な実装は補足)。

  1. worktree ごとに番号を決め、環境変数で分ける
    bash
    # 例: worktree 名から番号を作る
    N=$(basename "$PWD" | cksum | awk '{print $1 % 50}')
    export PORT=$((3000 + N * 10))        # 3000〜3490 を10個ずつ
    export DATABASE_URL="postgres://localhost:5432/app_wt_${N}"
  2. 起動時に専用 DB を作ってマイグレーションする(テスト用 DB も同様に分ける)
  3. Redis のキー接頭辞、キューの名前、一時ディレクトリ、Docker Compose のプロジェクト名(-p)なども同じ番号で分ける
  4. エージェントへの指示(AGENTS.md / CLAUDE.md)に「PORT と DATABASE_URL を必ず環境変数から使う。固定値を書かない」と書く
  5. 止め方を先に決めておく: どのプロセスを止めれば作業が止まるか、API キーやトークンを無効にする手順、権限を絞る設定の場所を書き出しておく

注意点

出典

X の元の投稿を開く