ネイティブなマルチエージェントAPI:OpenAIのResponsesマルチエージェントベータ vs 自作
18か月間、「マルチエージェント」とはあなたがファンアウトを書くことを意味した。コーディネータープロンプトを書き、N個の呼び出しを並列で発火させ、JSONをマージし、リトライを処理した。2026年7月9日、OpenAIはそれをリクエストパラメータに畳み込んだ:multi_agent.enabled: true をResponses APIに、そしてSol Ultra Modeという消費者向け機能でラップした。モデル自身がいくつのサブエージェントを生成するかを決め、並列で実行し、結果を統合する — すべて1回のHTTP呼び出しの中で。他のフロンティアベンダーはまだ対称的なプリミティブを出荷していない。このページでは、実際に出荷されたもの、その背後の数字、Anthropicが代わりに提供するもの、そして — 本当に重要な部分 — ネイティブプリミティブがコストに見合う3つのワークロードと、DIYファンアウトが依然として勝つ2つのワークロードを整理する。
- Responses APIのマルチエージェントリクエストボディの正確な形を読み、max_concurrent_subagentsが実際に何を上限にしているかを知る
- コスト計算を行う:『モデルが4つのサブエージェントを生成する』とSol価格で実際にいくらかかるか
- Anthropic側の同じ領域 — Cowork、Managed Agents、Claude Codeサブエージェント — をマッピングし、プリミティブのギャップを見る
- ワークロードごとに正しいプリミティブを選ぶ:ネイティブマルチエージェント、DIYファンアウト、A2A、または単一の長いターン
- 4エージェントのUltra呼び出しを、精度向上ゼロの4倍請求に変える4つの失敗モードを避ける
一文で言うと
Ultra ModeはResponses API上の multi_agent.enabled: true の消費者向けスキンである — モデルが1リクエスト内でサブエージェントを並列生成し、出力を統合して、単一のレスポンスを返すネイティブプリミティブ。並列化可能なタスクで小さいが実質的な精度向上を買える(Terminal-Bench 2.1: 88.8% → 91.9%)。トークン請求はモデルが生成することを選ぶサブエージェントの数にほぼ比例してスケールする。
2026年7月9日に実際に出荷されたもの
同じローンチで2つのものが登場した。分けて考える価値がある:
- Ultra Mode — ChatGPTとCodex内のプロダクトトグル。フラッグシップティア(Sol)で利用可能。有効にすると、難しいタスクは統合前に並列サブエージェント実行に分解される。「4+エージェントを生成」と宣伝されるが、OpenAI自身のGAベンチマークチャートのいくつかはBrowseCompとSEC-Bench Proで16エージェント構成も示している。ただし4が既定の作業値。
- Responses APIマルチエージェントベータ — 開発者向けプリミティブ。同じ基盤能力が
client.beta.responses.create()のmulti_agent.enabled: trueとして公開されている。Ultraライクな体験を自分で作りたいならこれを使う。
マーケティングが残した混乱は本物:ビルダーが「Ultra ModeをAPIからどう呼ぶのか?」と繰り返し訊く。答えは、呼ばない — プロダクト機能の背後にあるプリミティブであるマルチエージェントベータを有効にするだけ。
Responses APIマルチエージェントリクエスト
具体的にはこの形(Python SDK):
最小限のマルチエージェントResponses API呼び出し
from openai import OpenAI
client = OpenAI()
resp = client.beta.responses.create(
model="gpt-5.6-sol",
input="Audit this repo for auth-bypass patterns and write a report.",
multi_agent={
"enabled": True,
"max_concurrent_subagents": 3,
},
tools=[...], # your MCP tools, function tools, etc.
extra_headers={"OpenAI-Beta": "responses_multi_agent=v1"},
)この形について自明でない点が4つ:
max_concurrent_subagentsは総予算ではない。 これは任意の瞬間にツリー全体(ルート+子孫)でアクティブなサブエージェントターン数を上限にする。モデルはリクエストの生存期間にわたってはるかに多い総数のサブエージェントを生成できる;単に一度にNを超えるアクティブ状態にできないだけ。- 深さは無制限。 サブエージェント自身がサブエージェントを生成できる。ツリー深さや実行あたりの総サブエージェント数に固定の上限はない。コスト面は「N呼び出し」ではなく — 実行時にモデルが形作るツリーである。
- ルートが統合する。 ルートエージェントがサブエージェントの応答を最終回答にマージする責任を持つ。構造化された
{subagents: [...]}オブジェクトは返ってこない;1つのレスポンスが返り、中間のエージェントターンはコードから不透明。 - 一部のパラメータは黙って無効化される。
reasoning.summaryとmax_tool_callsはマルチエージェント有効時にサポートされず、コンパクションエンドポイントはマルチエージェント応答に対してサポートされない。可観測性のために推論サマリーに依存しているなら、これをオンにした瞬間に失う。
マーケティングページに載っていないコスト計算
SolのGA価格 入力$5 / 出力$30 / 100万トークン で、算術は容赦ない。実際のUltra実行をリバースエンジニアリングしたビルダーの記録から:
- Ultraが2サブエージェントに分解するタスク ≈ 単一Sol呼び出しの出力トークンコストの2倍 — 両サブエージェントが出力を生成し、ルートがその上に統合を生成するため。
- Ultraが5サブエージェントを生成するタスク ≈ 5倍 — 同じ推論、加えてツリー全体で比例して多くの入力トークンリプレイ。
- BrowseComp / SEC-Benchチャートが示す16エージェント構成は無料の昼食ではない:研究グレードのデモであり、既定値ではない。Solで16並列サブエージェントなら、難しいクエリごとに出力トークンだけで2桁ドル台中盤の請求を見ることになる。
考え方:Sol呼び出しのモンテカルロ + その上の1回の統合パスに払っている。 時にそれは意味のある精度を買う。時にそれは、単一の呼び出しで解けたタスクへの4倍請求にすぎない。
精度が実際に買うもの
並列化可能な評価 — Ultra Modeが設計対象とするワークロード — で公表されたデルタは本物だが控えめ:
| ベンチマーク | Sol(単一) | Sol Ultra | デルタ | 評価が測るもの |
|---|---|---|---|---|
| Terminal-Bench 2.1 | 88.8% | 91.9% | +3.1 | マルチステップのコマンドライン計画、ツール調整 |
| BrowseComp | 87.5% | 92.2% | +4.7 | 複数ソースのウェブリサーチと統合 |
| SEC-Bench Pro | — | 74.3% | (単一モード数値は非公表) | 大規模コーパスにわたる規制文書推論 |
この表について3点:
- +3〜5点の帯は、並列サンプリング(best-of-N、自己一貫性)が他のフロンティアで歴史的に買ってきたものと一致する。プリミティブは真に有用だが、デルタはステップチェンジではない。
- これらはベストケース — モードを見せるために選ばれた評価。順次タスク(線形なコード編集、単一ファイル書き換え、短いチャット)では、Ultraは統合レイテンシとコストを追加するが精度は動かない。
- 同じTerminal-Bench 2.1チャートで、AnthropicのOpus 4.8は78.9%を記録した — つまりSol Ultraのリードはより良いベースモデルとその上に積まれたマルチエージェント上昇の両方から来ている。OpusからSol Ultraに移行するなら、ギャップ全体をマルチエージェントプリミティブに帰属させないこと。
Anthropicは代わりに何をしているか
Anthropicは対称的なAPIプリミティブを出荷していない。最も近い類似物はそれぞれ同じ問題の異なる断面を解く:
- Cowork — プロダクト面。エージェントがユーザーと並んで持続的なマルチステップ作業を行うエージェンティックなデスクトップワークスペース。Ultra Modeと機能としては比較可能だが、APIプリミティブとしてではない。
- Managed Agents と managed-agentsメモリストア — 永続状態とスケジューリングを備えたホスト型エージェントループ。「長時間実行のバックグラウンドエージェント」枠を埋めるものであり、「4つを並列に生成してマージ」枠ではない。
- Claude Codeサブエージェント と サブエージェントフリート制限 — ファーストクラスのサブエージェントプリミティブだが、Claude Code CLIにスコープされる。文書化されており、並列で生成可能で、
multi_agent.enabledに最も近い類似物 — 重要な違いは、コーディネータープロンプトを自分で書くこと。 - Messages APIでの エージェント構築 — DIY経路。N個の
messages.create呼び出しを並列でファンアウトし、統合プロンプトを書き、リトライを処理する。同じ結果、より多くのコード。
ギャップ:現在、単一のブール値を反転させるだけでモデル自身がいくつのサブエージェントを生成しどうマージするかを決めるAnthropic API面は存在しない。 Claudeに対してその動作が欲しいなら、自分で作る — プロダクト側のストーリーは Cowork & Agent Teams、ホストループのプリミティブは Managed Agents を参照。
ワークロードごとに正しいプリミティブを選ぶ
- サブタスクが互いの結果を待たずに実行できるなら — リポジトリ監査、多数のソースにわたるトピック調査、N個のファイルを独立にリファクタ — ファンアウト形はコストに見合う。タスクが順次(Aを編集、次にAの結果を読み、次にBを編集)なら、どのマルチエージェントプリミティブも利得なしに統合オーバーヘッドを追加する。
- ネイティブマルチエージェント(Ultra、Responsesマルチエージェントベータ)はサブエージェントターンをコードから隠す。監査証跡、サブエージェントごとのコスト帰属、実行中の注入能力が必要なら — ファンアウトを自分で作る。Claude Codeのサブエージェントは可視性を与える;Responses APIマルチエージェントベータは与えない。
- サブタスクが異なる組織、クラウド、ベンダーに属するなら、どの単一ベンダープリミティブのスコープも外れる。A2Aを使う — /docs/models/a2a-protocol-agent-to-agent 参照。ネイティブマルチエージェントはモデル内;A2Aはエージェント間。
- ネイティブマルチエージェントのツリーは実行時に形作られる:リクエストからトークン請求を予測できない。アプリにリクエストごとのコストSLAがあるなら、ファンアウト幅を制御できるDIYファンアウトを優先する — またはルートに厳格な max_output_tokens 上限を設定する。
- 評価がタスクは単一呼び出しで85%解決可能、90%が出荷と非出荷の差だと言うなら、ネイティブマルチエージェントはそれを買う低摩擦の方法。単一のSolまたはOpus呼び出しでタスクをすでに解けているなら、Ultraは0点利得への4倍請求。
Ultraを何もない4倍請求に変える4つの失敗モード
- 順次タスクでオンにする。 タスクが並列化しないときでもモデルは分解して統合する。並列化が不要だった作業への調整オーバーヘッドを払う。経験則:最初のサブエージェントが走っている間に2番目のサブエージェントが何をしているか説明できないなら、マルチエージェントを有効にしない。
- 推論サマリー可観測性をダッシュボードに残す。
reasoning.summaryはマルチエージェントで黙ってサポートされない。監視がそれに依存していると、空フィールドを取得してモデルが考えていないと思う。フラグを反転させる前にスキーマ変更を出荷する。 max_tool_callsを安全リミットとして使う。 マルチエージェントで同じく黙って無効化される。持っていたと思っていた安全ストーリー — 「リクエストあたり最大20ツール呼び出し」 — は消える。ツール呼び出し上限はリクエストパラメータ経由ではなく、ツールアダプター層で強制する。max_concurrent_subagentsをコスト上限と仮定する。 リクエスト全体で生成された総数ではなく、瞬間のアクティブサブエージェントを上限にする。単一のUltra呼び出しは順次に数十のサブエージェントを生成してもmax_concurrent_subagents: 3制限を尊重できる。コストが天井なら、リクエストレベルで max_output_tokens を追加する。
「ネイティブマルチエージェント」ではないもの
隣接する2つのプリミティブがしばしば混同される:
n > 1サンプリングではない。 OpenAIの古いnパラメータは複数の補完をサンプルして全部返す;あなたが1つを選ぶ。マルチエージェントは異なるサブエージェントが異なる作業を行い、その出力を統合する。前者は温度サンプリング;後者はタスク分解。- バッチ推論ではない。 バッチAPI は多数の独立リクエストをバックグラウンドで処理する。マルチエージェントは1つのインタラクティブリクエスト内の多数の協調されたサブエージェント。バッチはスループット指向、マルチエージェントは結果指向。
これがどこに向かっているか
A2Aプロトコル(A2A: The Agent-to-Agent Protocol 参照)はベンダー間マルチエージェントをカバーする。multi_agent.enabled: true はモデル内マルチエージェントをカバーする。埋まっていないスロットはクロスベンダープリミティブ — ベンダーA上のモデルがベンダーB上のサブエージェントを生成し結果をマージ — で、まだそれの公開仕様はない。到着するときは、どちらか側の新しいAPIとしてではなく、A2A + ネイティブなハンドオフ動詞として着地する。その空間を注視すること。
Check yourself
0/4情報源と追加読解
- Multi-agent — OpenAI API guide — 公式Responsesマルチエージェントベータリファレンス:リクエスト形、
max_concurrent_subagentsセマンティクス、非サポートパラメータリスト、ベータヘッダー。 - GPT-5.6: Frontier intelligence that scales with your ambition — OpenAI — Sol、Terra、LunaとUltra Modeのローンチポスト、ファミリーのポジショニング。
- Previewing GPT-5.6 Sol — OpenAI — 以前のプレビューページ、ベンチマーク方法論に有用。
- GPT-5.6 Sol Ultra Mode: subagents, parallel architecture, builder guide — ChatForest — リバースエンジニアリングされたコスト計算(2サブエージェント ≈ 2倍、5サブエージェント ≈ 5倍)、および「不透明なサブエージェント内部」の観察。
- How to Use GPT-5.6 Ultra Mode: Multi-Agent Coordination for Complex Tasks — MindStudio — 既定4エージェントと一部チャートの16エージェント詳細。
- OpenAI Releases GPT-5.6 (Sol, Terra, Luna) — MarkTechPost — ローンチと、マルチエージェントと並んで出荷されたProgrammatic Tool Callingプリミティブの報道。
- GPT-5.6 & ChatGPT Work for Claude Users — モデルファミリー自体の姉妹AILmanacページ。
- Cowork & Agent Teams — Anthropicのプロダクト面の類似物。
- Managed Agents — Claude上のホストループプリミティブ。
- Claude Codeサブエージェント と サブエージェントフリート制限 — CLI内ファーストクラスサブエージェントプリミティブ。
- A2A: The Agent-to-Agent Protocol — クロスベンダーの兄弟;サブエージェントが信頼境界を越えるときに使う。
- Programmatic Tool Calling — 同じOpenAIローンチで出荷された別のプリミティブ(彼らのJSベース版)、ClaudeのPythonサンドボックス版。