公開日:
更新日:
状態: 公開中 / Snapshot
AI Agent並列開発:導入レベルと判断表
本編は、初めてローカルで複数 Agent を並べる人が、1つのケーススタディを追って最初の 2 並列を完走できるようにしている。 このページでは、導入段階や作業内容ごとにどこまで分けるかを決める。
判断に迷った時の参照表
このページは、作業内容ごとにどこまで分けるかを判断するための表。 初回は Level 1 として branch / worktree を分け、起動、検証、PR、cleanup は人間が順番に行う。
導入段階の見方
この資料では、並列 Agent 開発を 2 つの軸で考える。
1 つ目は、同時に進める作業数。 最初は 1 作業を確実に完走し、次に 2 作業へ増やす。
2 つ目は、どこまで環境を分離するか。 この資料では、これを Level 1〜3 と cleanup の注意に分ける。
- Level 1: 差分作成を並列化し、検証以降は作業ごとに直列で進める
- Level 2: ローカル起動まで並列化する
- Level 3: 検証まで独立させる
- cleanup 自動化: 本資料の主対象外。必要な場合だけ、所有者確認と停止条件をプロジェクト側で設計する
| まず 1 作業で流れを確認 | 2 作業に増やす | |
|---|---|---|
| Level 1 | 1 Agent で差分作成から検証、PR、cleanup までの流れを確認する | 2 Agent が別 worktree で差分作成し、検証、PR、cleanup は作業ごとに直列で進める |
| Level 2 | 起動中の URL / port を記録し、どの作業の画面かを説明できるようにする | 2 つを別 URL で同時起動する |
| Level 3 | 検証対象と artifact(検証成果物)を対応付ける | 2 つの test / E2E を独立して同時実行する |
| cleanup の注意 | 担当と対象を明示して人間が確認する | 自動化する場合も、他作業のリソースを消さない停止条件を先に決める |
Level 1〜3 と cleanup の注意
| Level | 分けるもの | 説明 |
|---|---|---|
| Level 1: 差分作成だけ並列 | branch / worktree | 複数 Agent に別 worktree で変更作業を進めさせる。起動、test、E2E、PR、cleanup は作業ごとに直列で進める。 |
| Level 2: 同時起動 | process、port、URL、必要なら Docker Compose project | 2 つのアプリを同時に見るなら、port と URL を分ける。Compose で起動するなら project name を分ける |
| Level 3: 同時検証 | DB、schema、cache prefix、queue、artifact path | test / E2E が状態を書き換えるなら、共有リソース内で作業ごとに名前を分ける |
| cleanup の注意 | cleanup 対象、所有者、停止条件 | cleanup で他作業を壊しそうになったら、並列数を増やさず、人間が対象と所有者を確認する |
状態把握の段階
| Level | 状態把握の方法 |
|---|---|
| Level 1 | terminal、dashboard、作業メモで branch / worktree の対応を管理し、PR の検証欄にはレビューアに意味のある検証結果を書く |
| Level 2 | 起動中の URL、port、terminal、Agent session を一覧できるようにする |
| Level 3 | test / E2E の結果、artifact、対象 URL を作業ごとに追えるようにする |
| cleanup の注意 | 削除してよい process、container、volume、artifact を作業ごとに説明できるようにする |
dashboard や terminal 一覧は高度な自動化専用ではない。 Level 1〜2 でも、どの Agent が何をしているかを見る時に使える。 ただし、一覧できるだけでは、DB、cache、queue、artifact、cleanup の安全性は保証されない。
作業別の分離判断表
この表の表記は次の意味で使う。
| 表記 | 意味 |
|---|---|
| 不要 | この作業では分離しなくてよい |
| 任意 | 必要な場合だけ記録または分離する |
| 条件付き共有可 | 読み取り専用、同時書き込みなし、reset で既知状態へ戻せる場合のみ共有できる |
| 分ける | 特別に安全を説明できない限り分ける |
| 必ず分ける | この作業を安全に並列化するなら共有しない |
| 作業例 | branch / worktree | port / URL | DB / schema | cache / queue | artifact | 推奨レベル |
|---|---|---|---|---|---|---|
| ドキュメント修正 | 同時編集なら分ける | 不要 | 不要 | 不要 | 任意 | Level 1 |
| lint・型エラー修正 | 分ける | 不要 | 不要 | 不要 | 任意 | Level 1 |
| DBを使わない unit test / flaky test 修正 | 分ける | 不要 | 不要 | 不要 | test log は任意 | Level 1 |
| UI実装後、人間が順番に確認 | 分ける | 同時起動しないなら共有可 | 条件付き共有可 | 条件付き共有可 | 任意 | Level 1 |
| 2つの画面を同時起動して比較 | 分ける | 必ず分ける | 条件付き共有可 | 条件付き共有可 | URLごとに分ける | Level 2 |
| 2つの E2E を同時実行 | 分ける | 必ず分ける | 分ける | 分ける | 必ず分ける | Level 3 |
| seed や更新系 test を同時実行 | 分ける | 条件付き共有可 | 必ず分ける | 利用するなら分ける | 分ける | Level 3 |
| DB migration を複数並列で開発 | 分ける | 分ける | 分ける(完全分離を推奨) | 分ける | 必ず分ける | Level 3。cleanup 自動化は急がない |
| 読み取り専用の調査・レビュー Agent | 実装しないなら不要な場合あり | 不要 | 不要 | 不要 | レビュー結果のみ | Level 1 |
次のレベルへ進む判断
- 起動の順番待ちが増えたら、port と URL を分ける。
- test / E2E の順番待ちが増えたら、DB / schema、cache、queue、artifact を分ける。
- cleanup で他作業を壊しそうになったら、並列数を増やさず、cleanup 対象と所有者を人間が確認する。
- 人間がどの作業の状態か追えなくなったら、同時実行数を減らすか状態一覧を作る。