Skip to main content
ブログに戻る
ブログ

複数の AI エージェントを同時に動かす方法

Claude Code、Codex、その他の AI コーディングエージェントを並行実行し、開発を高速化するためのステップバイステップガイドです。

1 度に 1 つの AI エージェントを動かすのが普通です。しかし、2 つでも 3 つでも 5 つでも、異なる作業を同時に進めることはできます。やり方、注意点、向いている場面を見ていきましょう。

なぜ複数のエージェントを動かすのか?

理由は単純に時間です。独立したタスクが 3 つあり、それぞれに 5 分のエージェント作業が必要なら、順番にやると 15 分かかります。並列なら 5 分です。

ただし、メリットは時間短縮だけではありません。

  • 専門化 — エージェントごとに得意分野を分けられます。複雑なリファクタリングは Claude Code、素早い試作は Codex、機械的な作業はシェルスクリプト、という具合です。
  • レビューの流れ — 1 つのエージェントがコードを書き、別のエージェントがレビューする。待ち時間のない即時フィードバックが得られます。
  • コンテキスト分離 — 各エージェントは、自分のタスクに集中したクリーンな文脈を持てます。1 つの過負荷なコンテキストで全てを抱える必要がありません。

方法 1: 複数のターミナルウィンドウ

最も単純な方法です。複数のターミナルを開き、それぞれでエージェントを起動します。

Terminal 1:

cd ~/project
claude  # 認証リファクタリング用の Claude Code を起動

Terminal 2:

cd ~/project
claude  # API テスト用の Claude Code を起動

Terminal 3:

cd ~/project
codex   # ドキュメント用の Codex を起動

これは機能しますが、大きな欠点があります。1 度に見えるのは 1 つのターミナルだけで、画面を小さな分割ペインにするしかありません。Agent 1 が終わっても、そのターミナルに切り替えて確認しない限り分かりません。

方法 2: tmux の分割ペイン

tmux を使うと、1 つのウィンドウに複数の端末セッションを並べられます。

tmux new-session -s agents
# Ctrl+b % で縦分割
# Ctrl+b " で横分割

別ウィンドウよりはましで、複数のエージェントを同時に見られます。ただし tmux のペインは固定グリッドです。3 つ以上になると、各ペインが小さすぎて読みづらくなります。さらに、エージェントの状態(作業中、待機中、完了)を視覚的に示してはくれません。

方法 3: キャンバスベースのワークスペース

2 つ以上のエージェントに最も有効なのは、視覚的なキャンバスワークスペースです。各エージェントを無限キャンバス上の別タイルに配置し、ワークフロー内での役割に応じて空間的に並べます。

ターミナルウィンドウや tmux より優れている点:

  • 自由にサイズ変更できる — 今注目しているエージェントに広くスペースを割ける。
  • エージェント状態の表示 — どれが作業中、待機中、完了かを一目で把握できる。
  • ルーティング接続 — あるエージェントの出力を別のエージェントに自動で渡せる。
  • 永続化 — レイアウトが保存される。閉じても開き直しても、すべて元の場所にある。

MadoHub はこのために作られています。無限キャンバス上で、ドラッグ可能でサイズ変更可能なタイルとしてターミナルベースのエージェントを実行し、リアルタイムで状態を検出します。

注意点

ファイル競合

2 つのエージェントが同じファイルを同時に編集すると、競合が発生します。並列実行する前に、別々のファイルやモジュールを担当していることを確認してください。

良い分割:

  • Agent A が src/auth/ を担当し、Agent B が src/api/ を担当する

悪い分割:

  • Agent A と Agent B の両方が src/config/database.ts を変更する

リソース消費

各 AI エージェントセッションは、RAM(ターミナル + エージェントプロセス)と API クレジットを消費します。Claude Code を 5 インスタンス同時に動かせば、API 利用も 5 倍になります。従量課金プランではクレジット消費に注意してください。

コンテキスト汚染

複数のエージェントが同じ git リポジトリで動いていると、あるエージェントの未コミット変更が、同じファイルを読む別のエージェントを混乱させることがあります。解決策は次の通りです。

  • Git ブランチ — 各エージェントを別ブランチで動かす。
  • 独立ディレクトリ — タスクが本当に独立しているなら、別コピーのプロジェクトを使う。
  • 順次依存 — Agent B は Agent A が変更をコミットした後に開始する。

複数エージェントを使うべき場面

シナリオ単一エージェント複数エージェント
小さなバグ修正 1 件はい過剰
大きなリファクタリング + テスト場合によるはい - 実装とテストに分ける
独立した複数機能いいえはい - 機能ごとに 1 エージェント
実装後のコードレビュー逐次はい - パイプライン方式
未知のコードベース探索はい過剰

目安はこうです。仕事を明確な境界で独立した部分にきれいに分割できるなら、複数エージェントのほうが速いです。逆に、作業が深く絡み合っているなら、完全なコンテキストを持つ 1 つのエージェントのほうが向いています。

引き継ぎを自動化する

複数エージェント作業で最大の摩擦は、情報の手渡しです。Agent A が終わったあと、その要点を Agent B に伝えるには、テキストをコピーし、プロンプト用に整形し、貼り付ける必要があります。

自動ルーティングはこの摩擦をなくします。Agent A が終わると、システムがその完了を検出し、関連出力を抽出し、Agent B に適したプロンプトへ変換して渡します。

これで、手作業のマルチエージェントワークフローが、最小限の介入で動くパイプラインになります。セットアップしたら進捗を監視し、エージェントが方向性を必要とする時だけ介入すればよいのです。

始め方

  1. 現在のプロジェクトから、互いに独立した 2 つのタスクを選ぶ。
  2. 2 つのターミナルを左右に開く。
  3. それぞれでエージェントを起動する。
  4. 注意の向き方がどう変わるか観察する。1 つのタスクに深く集中するのではなく、2 つのタスクを横断して見るようになるはずです。
  5. 片方が終わったら、その要点をもう一方に手動で渡してみる。

これを実際にやってみると、自動ルーティングやビジュアルワークスペースがなぜ存在するのかが分かります。手動版を、ほぼ無意識で済む状態にするためです。