Codex Multi-Agent V2 実践:タスクの分割、モデル割り当て、コスト管理の方法

OpenAI Codex DX チームの Eric Provencher 氏が、マルチエージェントのオーケストレーション手法を紹介します。タスクを分割できるかを見極め、モデル、推論強度、通信、コンテキストを設定し、最後に時間短縮と総作業量という二つの軸で効果を確かめます。

著者:Eric Provencher08-18 · 約9分
🎧 ポッドキャスト版0:00 / --:--
0:00 / --:--
ツールチュートリアル · 小互解読
1分で要点
  • マルチエージェントの価値は、独立した作業を並行して進められることです。しかし、結合度が高く、逐次処理が必要なタスクや、コア領域を共同で変更する必要があるタスクは、分割すべきではありません。
  • まず「独立して完了できるか」「独立して検証できるか」「書き込みの競合が少ないか」という三つの基準で並行処理が可能かを判断し、その難易度に応じて Scout、Worker、Smart worker に推論強度を割り当てます。
  • メインエージェントは所有権と最終検証を保持し、依存関係のあるメッセージはピアツーピアで直接送信できます。コンテキストはタスクの依存関係に基づいて切り詰められますが、プラットフォームのセキュリティ境界は依然として存在します。
  • マルチエージェントは完了までの時間を短縮できる可能性がありますが、総トークン数と調整コストは通常増加します。実際のタスクで、時間、重複、競合、手戻りを同時に確認する必要があります。

OpenAI Codex DX チームの Eric Provencher 氏が、最近マルチエージェントの実践解説を公開しました。Codex の Multi-Agent V2 において、複雑なタスクを複数のエージェントに分割する方法と、チームが重複した調査、コンテキストの肥大化、作業の相互干渉に陥らないようにするためのノウハウが詳しく紹介されています。

この手法の真の価値は、「エージェントをたくさん起動する」ことを促すのではなく、設定の順序を示している点にあります。まず作業を分割できるかどうかを判断し、次に誰が担当するか、どの程度の推論を行うか、どれだけのコンテキストを持たせるかを決定し、最後に有効なルールを Skill として定着させます。核となる原則も「モデルを変えればコストが下がる」というものではなく、不必要な推論を削減し、並列処理によって待ち時間を短縮するという点にあります。

Codex の Ultra モードでは、エージェントの協調がデフォルトの動作になります。これは、曖昧さが大きい作業や、コンテキストが分散している作業、リスクが高い作業に適しています。一般的なタスクで最初から Ultra モードを使う必要はありません。Eric 氏が提案するもう一つの方法は、Sol Medium を維持しつつ、短いプロンプトや Skill で調整ルールを明確に定義する方法です。メインエージェントはユーザーとのコミュニケーションを継続し、バックグラウンドの作業を他のエージェントに委任し、本当に困難な部分にのみ高い推論強度を割り当てます。

まず分割するか判断し、次にチームを構成し、最後に全体を評価する 7つの問いは、独立したテクニックではなく、順序を持つ構成チェーンです。
  1. 1なぜ多エージェントが必要か
  2. 2どのタスクを分割できるか
  3. 3どのモデルに割り当てるか
  4. 4エージェントをどう調整するか
  5. 5どの程度のコンテキストを与えるか
  6. 6どのようにスキルとして固定化するか
  7. 7何が節約され、何が犠牲になるか
まずタスク構造を見てから、モデルと並列性を検討します。そうしないと、後続の構成が誤った分割に基づく可能性があります。

なぜマルチエージェントが必要か

一つのエージェントが複雑なタスクを完了するには、通常、コードの読み取り、テストの確認、境界条件の検証、実装、再検証という手順を順番に踏む必要があります。問題は個々のステップが遅いことではなく、本来並行して実行できるはずの調査が、直列の待ち行列に強制されてしまうことにあります。

時間構造

各ステップは速くなっていない。重ねられる待ち時間を重ねただけ

同じ4つの作業でも、最初の3つが順番待ちになるかどうかで違いが出ます。
単一エージェント順番に待つ
コード調査権限確認テスト探索統合
多エージェント独立調査を重ねる
コード調査権限確認テスト探索統合
本当に短縮されるのは経過時間独立したステップだけが重ねられます。最終的な判断と統合は依然として発生します。
図は固定の所要時間を示すものではありません。多エージェントの時間的利点は、タスクがきれいに分割できるかどうかに依存します。

マルチエージェントの最初の利点は、相互に依存しない待ち時間を重ね合わせられることです。調査担当がコールチェーンを追跡し、別の担当が権限とテストのギャップをチェックしている間にも、メインエージェントはユーザーと要件の範囲を確認できます。証拠が揃えば、後続の実装はやり直しの回数を減らせます。

しかし、作業の結合度が高い場合は、エージェントを増やしても意味がありません。次のステップが前のステップの結果に依存しなければならない場合、全員が同じコアコードを変更する必要がある場合、または最終的な答えを全体的に判断するしかない場合は、シングルエージェントの方が速いことがよくあります。並列処理を行うかどうかは、ツールバーで起動できるエージェントの数ではなく、タスクの構造によって決まります。

分割できるタスクとは

タスクを分割する価値があるかどうかは、少なくとも次の三つの条件を同時に満たすかどうかで判断します。サブタスクが独立して進められること、結果を独立して検証できること、書き込みの範囲が互いに競合しないことです。

分割実験

いずれかの条件をオフにすると、並列化の推奨がどう変わるか確認できます。

3つの条件が同時に成立するとき、比較的きれいな並列境界となります。

下の条件をクリックして、並列化の推奨がどう変わるか確認してください。

3 / 3 条件成立
並列化に適している

各エージェントに明確な所有権、成果物、検収条件を与えましょう。

並列化に適している各エージェントに明確な所有権、成果物、検収条件を与えましょう。

境界を明確にしてから分割独立性や検収条件が不足している場合は、まずメインエージェントが契約を明確にします。

単一エージェントを維持書き込み領域が重複している場合、並列化は通常、早期に競合を生むだけです。

操作は分割条件を変えるだけで、事実は変わりません。エージェントの数はタスク並列化の判断基準ではありません。

例えば、既存の製品に「CSV エクスポート」機能を追加するケースを考えます。既存のデータフロー調査、権限ルールの確認、テスト箇所の探索は並行して実行できます。ただし、フィールド定義と権限契約は先に決定しておく必要があります。契約が安定すれば、バックエンド API、フロントエンドの入り口、テストはそれぞれ個別に実装するのに適しています。三つのエージェントが共有の型と同一のコア関数を同時に変更する場合、並列処理によってもたらされるのは、より早く発生する競合だけです。

ここで重要なのは、「エクスポート機能を作る」という大まかな指示ではなく、各サブタスクの目標、範囲、成果物、検収条件を明確に定義することです。タスクの記述が不明瞭な場合は、境界がまだ描かれていないことを意味します。この段階でさらに分割を進めると、曖昧さがより多くのエージェントにコピーされるだけです。

どのモデルに割り当てるか

Eric Provencher 氏が提案する最もシンプルな設定は、まず同じモデルファミリーを維持し、reasoning_effort のみを調整する方法です。これにより、複数のモデルの能力、価格、出力傾向を最初から比較することなく、「タスクの難易度」という一つの変数を調整することに集中できます。

同じモデルファミリーでも、タスク難易度に応じて推論強度を割り当てるこれはシンプルな初期構成であり、プラットフォームのホワイトリストではありません。
役割推奨設定担当成果物
Scout偵察役Sol · Light読み取り専用で、ファイル、呼び出しチェーン、テスト、リスク入口を特定する証拠、パス、結論を提供。コードは変更しない
Worker一般作業役Sol · Medium範囲が明確な実装、確認、補助作業部分的な変更、テスト、結果
Smart worker難関突破役Sol · High困難な実装、曖昧さの解消、高リスクの調整重要な判断、計画、検証
アップグレード原則不確実性、結合度、失敗コストが高まる場合にのみ推論を増やしましょう。役割名だけで機械的に設定を選ばないでください。
現在は Terra、Luna など他のサポートモデルも利用可能です。まずベースラインを固定することで、一度に変更する変数を減らします。

Light が能力が低いというわけではありません。単に、範囲が限定された発見タスクに推論をあまり使わないだけです。High がすべての作業により適しているわけでもありません。曖昧さ、リスク、システムの結合度が実際に高い部分にこそ使うべきです。すべてのファイル配置タスクを High に任せると、安価な検索が高価な熟考に変わります。アーキテクチャ上の競合を Light に任せると、節約した推論コストは手戻りで支払うことになります。

この役割分担表は実用的なデフォルト値であり、プラットフォームのホワイトリストではありません。現在の GPT-5.6 ファミリーには Terra や Luna などの選択肢もあり、マルチエージェントは他のサポート対象モデルに委任することもできます。安全なアプローチは、まず同じベースラインで実行し、その後に実際のタスクを使用して異なるモデルと推論強度を比較することです。「最も多くの設定」を「最適化」と誤解しないようにしてください。

エージェントの調整方法

タスクを分割した後も、メインエージェントが調整役を務めます。重複した調査の回避、ファイル所有権の明確化、依存関係の追跡、結果の統合、ユーザーとの継続的なコミュニケーションを担当します。委任されるのは具体的な作業であり、最終的な責任ではありません。

協調パス

情報は直接届けても、所有権はメインエージェントに残る

パスを切り替えて観察してください。メッセージ転送と責任の所在は別物です。

2つのパスをクリックして、情報が依存先に届く流れを比較してください。

Scout、メインエージェント、Worker 間のメッセージパス中継パスはメインエージェントを経由し、直接パスは Scout から Worker に直接接続します。メインエージェントは常に所有権と検収を担当します。
Scout依存情報を発見
メインエージェントタスクグラフと検収
Worker証拠を待って実装
中継: まず報告、その後転送 直接: 事実を直接依存先へ
直接パス: 転送と待ち時間を減らすファイルパス、テスト位置、検証済みの事実など、境界が明確な発見に適しています。
共通境界ファイル所有権、共有契約、最終統合、ユーザー承認は、メインエージェントが管理します。
メッセージが最短経路を取っても、調整が不要になるわけではありません。重要な範囲変更はメインエージェントに戻すべきです。

ただし、情報を必ずしも階層的に上へ報告する必要はありません。調査担当が権限チェックの入り口を見つけた場合、ファイルパスと結論を、実際にそれを必要とする実装担当に直接送信できます。メインエージェントは、依存関係が解決されたことだけを知っていれば十分です。これにより、転送が一度減り、調整役のコンテキストが中間メッセージで埋め尽くされるのを防げます。

並行処理の予算はスレッド単位で設定できます。Eric 氏がこの方法を共有した時点では、デフォルトは四つのエージェントで、調整役も含まれていました。最も直接的な組み合わせは「一人の調整役+三人の調査担当」で、それぞれが異なる問題を調査します。また、一人の上位担当が一人の調査担当と一人の実装担当を率いて、複雑なサブ問題を処理する小チームを形成することもできます。四つは当時のデフォルト値であり、永続的な上限でも、毎回使い切るべき割り当てでもありません。

直接通信は、非中央集権的な制御不能を意味するものではありません。誰がどのファイルを変更できるか、共有契約を誰が決定するか、いつマージするか、最終的に誰が検収するかは、明確なタスクマップが依然として必要です。通信は最短経路を取れても、所有権は曖昧にできません。

どれだけのコンテキストを与えるか

サブエージェントが親の会話を引き継ぐかどうかは、既存の決定への依存度によって決まります。範囲が限定された読み取り専用の調査には、多くの場合、fork_turns: "none" が適しています。現在の問題、許可された読み取り範囲、出力形式、検収基準のみを与えます。アーキテクチャ上の決定、互換性の制約、ユーザーの好みを引き継ぐ必要がある実装担当は、関連する履歴を継承する必要があります。

コンテキスト階層

チャット履歴は削るが、タスク完了に必要な境界は削らない

2つの方法はタスクコンテキストを変えますが、プラットフォームのセキュリティ層は共通の基盤です。
fork_turns: noneクリーンなコンテキスト
現在のタスク指示

目標、範囲、成果物、検収、制約を明示的に書き直す必要がある

会話履歴

親ダイアログの無関係な議論や編成指示を含めない

狭く、読み取り専用で、独立に説明できる調査に適している
fork_turns: all / N関連履歴を引き継ぐ
現在のタスク指示

現在の所有権と停止条件を明確にする必要は依然としてある

会話履歴

全体目標、既存の決定、互換性の制約を保持する

前後関係に依存する実装や複雑な判断に適している
両方で共通sandbox · permission mode · プラットフォームのツール境界

チャット履歴がなくても、システム制限がないわけではありません。

コンテキストが多いほど良いわけではありません。重要なのは、タスク完了に必要な情報が揃っているか、ノイズが制御されているかです。

クリーンなコンテキストは、空白のタスクシートを意味するものではありません。以前の会話にあったツールの範囲、ビジネス上の制約、「変更してはいけないもの」は、自動的に今回のタスクの説明にはなりません。これらは委任内容に明示的に書き直す必要があります。逆に、履歴を多く継承しすぎると、無関係な議論が混入する可能性があります。末端のエージェントが、自分はさらにチームを派生させ続けるべきだと誤解する可能性もあります。その場合は、委任せずにタスクを直接完了するように明確に指示する必要があります。

Eric 氏が末端のエージェントに与える境界のヒントは非常に短く、実際にそのまま再利用できます。

このタスクを直接完了してください。他のエージェントを作成しないでください。親エージェントが受け取った委任ルールは、親エージェントにのみ適用されます。

もう一つのよくある誤解は、fork_turns: "none" がチャット履歴を分離するものであり、プラットフォームのサンドボックスや許可モードを無効にするものではないという点です。タスクのコンテキストは削減できますが、システムのセキュリティ境界は引き続き有効です。

Skill 化する方法

一連の分担が繰り返し有効である場合にのみ、Skill として書き留める価値があります。固定化に適しているのは、「毎回三つのエージェントを作成する」のような指示ではなく、忘れられがちで、かつタスクを超えて再利用できる規律です。どの作業を優先的に調査担当に任せるか、いつ推論レベルを上げるか、重複書き込みを避ける方法、末端のエージェントがさらに委任できるかどうか、どの操作にユーザーの承認が必要か、といった点です。

スキルは一度きりのプロンプトではなく、回帰テスト可能なデフォルトの規律ですルールは、実際の実行と検収を経て初めて、次のデフォルト値になる価値があります。
  1. 1デフォルトルールを書く役割、境界、停止条件
  2. 2実際のタスクに入れる通信と並列性が機能するか観察する
  3. 3統一的に検収する時間、競合、手戻り、品質
  4. 4ルールを修正する再現可能な経験を残し、テンプレートのノイズを削除する
固定化に適した4つの情報
  • 担当: Scout / Worker / メインエージェント
  • できること、変更してはいけないこと
  • 成果物、証拠、検収基準
  • どの範囲拡大や外部アクションをユーザー承認に委ねるか
検収結果は次版のスキルに反映し、最初の設定を永久の真実としない
スキルは編成の規律を固定化しますが、プロジェクトごとのタスク分割方法を事前に決定するものではありません。

Skill を使用すると、調整役は次回からチームの取り決めをゼロから繰り返す必要がなくなります。しかし、Skill がプロジェクトのタスク境界を事前に描くことはできません。コード構造、リスク、モデルの能力が変化した場合は、デフォルト値も実際の結果に合わせて調整する必要があります。最も優れた Skill は、永久に正しい自動化の呪文ではなく、改訂可能な運用マニュアルのようなものです。

Eric 氏は、この一連の取り決めをオープンソースリポジトリ provencher/codex-skills として公開しています。orchestrate/SKILL.md は、非常に短く実行可能なバージョンです。インストールするには、orchestrate ディレクトリを ~/.codex/skills/ にコピーし、その後 $orchestrate で呼び出します。この Skill から学ぶべき最も価値のある点は、特定のプロンプトの文言ではなく、「役割、推論の強度、コンテキスト、所有権、承認の境界」を再利用可能なルールとして一緒に記述している点です。

何が節約され、何が犠牲になるのか

マルチエージェントは「より速く、より少ないトークンで済む」と誤解されることがよくあります。実際には、時間と総作業量という二つの異なる軸で考える必要があります。独立した作業を重ね合わせることで、完了までの時間は短縮される可能性があります。しかし、各エージェントが資料を読み、推論し、ツールを呼び出し、結果を確認するため、総トークン数は増加することが多く、さらに調整、競合、手戻りのコストも増加します。

2つの勘定

時間勘定は改善されるかもしれないが、作業量勘定は同時に増えるかもしれない

経過時間、トークン、最終品質を曖昧な「効率」としてまとめないでください。
時間勘定

開始から完了まで

独立作業の重ね合わせ → 減少の可能性
  • 直列調査の待ち時間が減る
  • リスクと依存関係を早期に顕在化させる
≠
作業量勘定

全エージェントの総消費

複数の読み取りと推論 → 通常は増加
  • トークン、ツール呼び出し、チェックの増加
  • 調整、競合、手戻りのコスト
単一エージェントに残す結合度が高く、直列実行が必要、コア領域を共同変更
チーム編成に適している独立に進められ、独立に検証でき、書き込み競合が少ない
完了時間重複調査書き込み競合最終的な手戻り
すべてのタスクに適用できる固定の節約率はありません。まず単一エージェントのベースラインを記録し、同じ種類のタスクで比較しましょう。

したがって、マルチエージェント最適化の第一の目標は、通常、待ち時間の短縮、探索範囲の拡大、または一度で間違えるリスクの低減であり、総トークン数の削減ではありません。メインエージェントのコンテキストがよりクリーンになる可能性もありますが、それは作業を他の場所に分散したに過ぎず、システム全体の消費量が減ったわけではありません。

評価する際は、少なくとも次の四つの項目を同時に確認します。完了時間、重複した調査、書き込みの競合、手戻りの回数です。まずシングルエージェントのベースラインを記録し、その後一度に一つの変数のみを変更します。Eric 氏は、次の四つの調整項目を重点的に実験することを提案しています。推論の強度、コンテキストの継承、委任の権限、エージェント間の協調方法です。例えば、最初は二つの読み取り専用調査のみを並行して実行するか、曖昧さの高い一つのタスクを Medium から High に引き上げるだけにします。実際の比較対象がなければ、「最適なオーケストレーション」は存在しません。

最後に、選択を一文にまとめられます。密に結合した作業は一つのエージェントに任せ、独立して進められ、独立して検証でき、競合が少ない作業だけをチームに分けます。 マルチエージェントが本当に節約するのは非効率的な待ち時間であり、その代償として、より多くのモデル作業とより厳格な調整規律が必要になります。

分割できるかの判断から、担当の割り当て、引き継ぎ、検収まで。実行順に並べた四つの道具と、オープンソース Skill の入口です。
  • 役割と推論強度の早見表
  • タスク分割の三つの関門
  • 再利用できる委任タスクシート
  • Multi-Agent 効果確認表
  • オープンソース Skill と参照先
出典
Practical multi-agent orchestration in CodexEric Provencher·一次資料を見る
当サイトの注記
この記事は、Eric Provencher 氏が公開した実践ノート、付属の Skill、および OpenAI の現在のモデルガイドに基づいてまとめています。製品の機能やデフォルト値は、バージョンによって変わる可能性があります。
↑ 本文ここまで
✓ この記事は全文無料です

メンバーは全文 Markdown のコピー・保存に加え、自分の AI に購読・質問させることができます。

原文を読む ↗
📮 新着解説をメールでいち早く

役に立ちましたか?メールを登録すると、新着解説を公開と同時にお届けします。解除はいつでも。