マルチエージェント
Codexの並列実行機能を活用して、複数のタスクを同時に進める方法。Worktree統合、Cloud Tasks、Agents SDK連携を解説します。
Worktree並列実行
Codex AppにはビルトインのWorktree対応が組み込まれています。各エージェント(スレッド)がリポジトリの隔離されたコピー上で作業するため、ブランチの競合やチェックアウトの衝突が発生しません。
Worktreeの仕組み
Gitの git worktree 機能を内部で利用し、各スレッドに専用の作業ディレクトリを自動的に割り当てます。
- 完全な隔離 — 各スレッドが独自のファイルシステム状態を持つため、あるスレッドの変更が別のスレッドに影響しません。
- 自動管理 — Worktreeの作成・削除はAppが自動で行います。手動での
git worktree add/removeは不要です。 - 同一リポジトリ — すべてのWorktreeは同じGitリポジトリを共有しているため、コミット履歴やリモート設定は共通です。
Worktree対応により、「フロントエンドのバグ修正」と「バックエンドの新機能追加」を同時に進行させても、互いの作業が干渉しません。これはCodexのマルチエージェント運用の基盤となる重要な機能です。
Appでのマルチスレッド
Codex Appでは、複数のスレッドを同時に実行できます。各スレッドは独立したCodexエージェントとして動作し、それぞれが専用のWorktreeで作業します。
マルチスレッドの操作
- 新規スレッド作成 — Appのサイドバーから新しいスレッドを作成し、タスクを割り当てます。
- 並列実行 — 複数のスレッドが同時にタスクを実行します。各スレッドの進捗はリアルタイムで確認できます。
- 結果のマージ — 各スレッドの作業結果は個別のブランチに保存され、レビュー後にマージします。
スレッド1: "認証モジュールのリファクタリング"
→ worktree: .codex/worktrees/thread-1/
→ branch: codex/refactor-auth
スレッド2: "APIエンドポイントのテスト追加"
→ worktree: .codex/worktrees/thread-2/
→ branch: codex/add-api-tests
スレッド3: "READMEの更新"
→ worktree: .codex/worktrees/thread-3/
→ branch: codex/update-readme1スレッド=1タスク
マルチスレッド運用で最も重要な原則は、1スレッドに1プロジェクトではなく、1スレッドに1タスクを割り当てることです。
なぜ1タスクなのか
- コンテキストの明確化 — 1つのスレッドが1つのタスクに集中することで、AIの推論精度が向上します。複数のタスクを混在させると、コンテキストが混乱しやすくなります。
- レビューの容易さ — 各スレッドの成果物が単一のタスクに対応するため、コードレビューが明確になります。
- ロールバックの安全性 — 問題が発生した場合、特定のスレッドの変更だけを取り消せます。
「このプロジェクト全体を改善して」のような曖昧で大きなタスクは避けましょう。「ログイン画面のバリデーションエラーを修正」「ユーザー一覧APIにページネーションを追加」のように、具体的で範囲が限定されたタスクに分割してください。
タスク分割の例
悪い例: 1スレッドに複数タスク
"認証を修正して、テストを追加して、ドキュメントも更新して"
良い例: タスクごとにスレッド分割
スレッド1: "認証のトークン検証バグを修正" / スレッド2: "認証APIのテストを追加" / スレッド3: "認証ドキュメントを更新"
Cloud Tasks
codex cloud コマンドにより、タスクをクラウド環境で実行できます。ローカルマシンのリソースを消費せずに、バックグラウンドでCodexエージェントを動作させる仕組みです。
基本的な使い方
# クラウドでタスクを起動
codex cloud "テストスイート全体を実行してカバレッジレポートを生成"
# クラウドタスクの状態確認
codex cloud --status
# 結果のトリアージ
codex cloud --reviewCloud Tasksの利点
- ローカルリソースの解放 — CPUやメモリをローカルの作業に使いながら、Codexタスクをクラウドで実行できます。
- 長時間タスク — テスト実行や大規模なリファクタリングなど、時間のかかるタスクをバックグラウンドで処理できます。
- ターミナルからのトリアージ — 完了したタスクの結果をターミナルから確認し、承認・修正・却下を行えます。
Cloud Tasksはクラウドサンドボックスで実行されるため、ローカルのサンドボックス設定とは独立しています。ネットワークアクセスやファイルシステムの制約はクラウド側の設定に従います。
Agents SDK連携
OpenAI Agents SDKを使うと、複数のCodexインスタンスをプログラマティックにオーケストレーションできます。MCP経由でCodex CLIをツールとして組み込み、決定論的なパイプラインを構築します。
オーケストレーションパターン
from agents import Agent, Runner
from agents.mcp import MCPServerStdio
# Codexをツールとして接続
codex = MCPServerStdio(command="codex", args=["--mcp-server"])
# 分析エージェント
analyzer = Agent(
name="analyzer",
instructions="コードベースを分析し、改善すべき箇所を特定する",
mcp_servers=[codex]
)
# 実装エージェント
implementer = Agent(
name="implementer",
instructions="分析結果に基づいてコードを修正する",
mcp_servers=[codex]
)
# レビューエージェント
reviewer = Agent(
name="reviewer",
instructions="変更をレビューし、品質を検証する",
mcp_servers=[codex]
)
# パイプライン実行
async def pipeline():
analysis = await Runner.run(analyzer, "src/ の品質問題を特定")
fix = await Runner.run(implementer, f"以下の問題を修正: {analysis}")
review = await Runner.run(reviewer, f"以下の変更をレビュー: {fix}")Agents SDKによるオーケストレーションは、CI/CDパイプラインの一部としてCodexを組み込む場合に特に有効です。分析 → 実装 → レビューの一連のフローを完全に自動化できます。
Claude Code並列運用との比較
CodexとClaude Codeは、マルチエージェント運用のアプローチが異なります。それぞれの特徴を理解して、プロジェクトに適した選択をしましょう。
| 項目 | Codex | Claude Code |
|---|---|---|
| Worktree管理 | ビルトイン(自動管理) | 手動(git worktree add) |
| 並列実行 | App内マルチスレッド | 複数ターミナル / Agent Teams |
| クラウド実行 | codex cloud コマンド |
なし(ローカル実行のみ) |
| オーケストレーション | Agents SDK + MCP | MCP / サブエージェント |
| セットアップ | App起動のみ | 各Worktreeで手動セットアップ |
| タスク管理UI | App内ダッシュボード | ターミナルベース |
| 適したユースケース | 大量の並列タスク、クラウド処理 | 深い推論、複雑な単一タスク |
Codexの強みはビルトインWorktreeとクラウド実行による「スケーラブルな並列処理」です。一方、Claude CodeはAgent TeamsやSubagentによる「深い推論と柔軟なワークフロー」に優れています。両者を組み合わせるハイブリッド運用も効果的です。