OpenAIがGPT-5.6ビルダーガイドを公開、同じ成果で請求額は33ドルから1.33ドルに

Agent を本番稼働させている 6 社の実測データを公開。さらに公式チャートには、本編には書かれていない落とし穴も隠れていました。推論レベルを完全にオフにすると、むしろ高くつくのです。
著者:OpenAI08-14 · 16 分で読了⚑ チュートリアル
🎧 ポッドキャスト版0:00 / --:--
0:00 / --:--
詳細解説
1 分でわかる要点
  • OpenAIが開発者向けのコスト削減マニュアルを公開。同じ検索テストで84点を取るのに、前世代は33.27ドル、今世代の最小モデルは1.33ドルです。
  • 本番稼働中の6社がそれぞれ実測データを提出。入力トークンは21%減、未キャッシュ入力は28%減、コストは18分の1になりました。変更したのはモデルではなく、すべて設定のみです。
  • そして公式チャートには、本編には書かれていない事実がひとつ。推論レベルを最小にしても、請求額は下がらないどころか上がるのです。
⚑
これは OpenAI 自身が公開した資料です。文中のベンチマーク、コスト、6 社の顧客評価は、すべて OpenAI が提供・選定したものです。本記事ではさらに公式 API ドキュメントを 5 件読み込み、ガイドでは一文だけしか触れられていない仕組みを補完しました。補足した箇所にはすべて出典を明記しています。
はじめに

OpenAIが開発者向けのGPT-5.6ビルダーガイドを公開しました。テーマはAgentのコストをどう削るか。モデルの選び方、推論レベルの設定、新しいAPIスイッチ3つの使い方まで、すぐに真似できる設定ばかりです。本番稼働中の6社が、それぞれ実測データを提出しています。

これまでのAgent構築の「デフォルト」を覆す内容です。最高級のフラッグシップモデルを使い、推論を最大限に引き出す——このやり方が当たり前だったのは、長いコンテキストと大量のツール呼び出しに耐えられるのがフラッグシップだけだったからです。5.6世代では、中小モデルが少し考える時間を取れば、前世代のフラッグシップ並みの実力に到達します。値段はほんの一部です。

GPT-5.6 の詳細は、サイト内の発表解説で
OpenAI が GPT-5.6 を正式発表:総合インテリジェンススコアで Claude Fable 5 に迫り、コストは半減。ChatGPT と Codex が統合

記事全体のロードマップ:今日から変えられる 6 つのポイント

コスト削減には 2 つの層があります。第 1 層は 2 つのダイヤル。推論レベルとモデル選択です。パラメータを変えるだけで、一行の設定変更で済みます。第 2 層は 3 つのアーキテクチャスイッチと、1 つのキャッシュブレークポイント。リクエスト自体の構成を変えるものです。下の表がこの記事全体の目次です。最初の 2 行が 2 つのダイヤル、後の 4 行が 4 つのスイッチに対応し、各行の後に詳しいセクションがあります。

#
変更内容
公式の数字
1
推論レベルをデフォルトから 1 段階下げる(ただしオフにはしない)
低レベルが前世代の高レベルに勝利同じスコア帯で
2
定型業務は小型モデルの Terra か Luna に変更
$33.27 → $1.33同じスコア帯
3
長いタスクでは永続的推論とネイティブ圧縮をオンに
13.3% → 38.3%トークンは 6 分の 1 に
4
ツールが大量データを返す時は、モデルにコードを書かせて外で絞り込む
21% 減入力トークン
5
分割できる作業は子エージェントに並行処理させる
デフォルト 3 つ並行子エージェント
6
安定したプロンプトプレフィックスにキャッシュブレークポイントを設定
28% 減未キャッシュ入力
最初の2行はモデル選択とレベルの調整。後の4行はアーキテクチャレベルの変更です。各行の後に、パラメータ名と設定値を含む詳しいセクションがあります。
ダイヤル

ダイヤル 1:低レベルが前世代の高レベルに勝つ

GPT-5の世代から、各モデルは同じ目標を追っています。より少ないトークンで、より長い作業をこなすことです。5.6もこの路線を継続し、Harness(モデルの外側にあるスケジューリングコード:リクエストの送り方、ツールの接続方法、ループの回し方)は一切変えずに、性能は向上し、コストは削減されています。

ガイドで最も直接的な例はこれです。Agent ベンチマークの Agents' Last Exam で、Harness を完全に固定したまま、GPT-5.6 Sol の「低」推論が、GPT-5.5 の「高」推論を上回ったということ。レベルはコストを左右する主要なダイヤルです。低レベルで前世代の高レベルに勝てれば、同じ作業の値段が 1 段階そのまま下がることになります。この項目について、ガイドは具体的なスコアを明記していません。

GPT-5.6 SolGPT-5.6 TerraGPT-5.6 LunaGPT-5.5Claude Fable 5Claude Opus 4.8Gemini 3.1 Pro Preview$0$1,000$2,000$3,000API費用(USD)4050607080インデックススコア
公式の原図です。各データポイントのコストとスコアは、元の図表のアクセシビリティラベルから取得したものです(目視による読み取りではありません)。本サイトでは、元の図と同じ座標系、同じ公式カラーパレットで再描画しています。横軸はベンチマーク全体を実行するためのAPI総コスト、縦軸はコーディングインデックススコアです。同じ線上にある点は、同じモデルの6つの推論レベルです。GPT-5.6の3本の線はすべて左上に集中しており、右上にある孤立した四角はClaude Fable 5の最上位レベルで、$3,771.84かかっています。

自分で確認できる比較が、2つのベンチマークチャートにあります。次の3組はすべて同じチャート上の実際のデータポイントです。左が前世代、右が今世代です。

BROWSECOMP · マイナーな事実を検索する能力
GPT-5.5 最上位(Xhigh)
84.36 点 フル実行 $33.27
→
GPT-5.6 Sol 中(Medium)
83.41 点 フル実行 $2.05
スコアは 0.95 点低いですが、請求額は 94% 減。今世代は中レベルで、前世代の最上位レベルに到達しています。
コーディングインデックス · ARTIFICIAL ANALYSIS CODING INDEX
GPT-5.5 最上位(Xhigh)
76.40 点 フル実行 $1,714.28
→
GPT-5.6 Terra 最上位(Max)
77.40 点 フル実行 $941.72
中規模モデルの最上位レベルで、前世代フラッグシップの最上位レベルをスコアで 1.0 点上回り、請求額は 45% 減。
コーディングインデックス · 小型モデル vs 前世代フラッグシップ
GPT-5.5 高(High)
72.50 点 フル実行 $939.57
→
GPT-5.6 Luna 最上位(Max)
74.60 点 フル実行 $537.40
最小モデルを最大限に使うと、前世代フラッグシップの高レベルよりスコアが2.1点高く、請求額は43%減です。

2つのチャートではコストの桁が大きく異なります。検索ベンチマークはフル実行で数ドルしかかかりませんが、コーディングインデックスはフル実行で数百〜数千ドルかかります。問題数とタスクの複雑さが違うので、2つのチャートの金額を横に並べて比較しないでください。上の各比較は、すべて同じチャート内のものです。

節約できるのは、いったい何なのでしょうか?それは、無駄な試行錯誤の部分です。データ分析企業の Hex は、モデルを既存の Harness に放り込み、低推論レベルでこれまでで最高の結果を得ました。

GPT-5.6 を既存の Harness に入れたところ、低推論レベルで最高の結果が出ました。データが存在しないことを理解していて、悪い手がかりを追いかけず、より少ないトークンで正解にたどり着きます。

Izzy Miller、Hex の AI リサーチ責任者

「データが存在しないことを理解している」という部分が鍵です。旧モデルは情報が見つからないと、別のキーワードで掘り返し続けます。掘り返すたびに、ツールが返した内容が入力トークンとして計上されます。損切りできるモデルは、まさにこの空回りのターンを節約しているのです。

下げるのは効果的だが、完全にオフにすると逆に高くなる

レベルを下げればコストは下がります。では、いっそ完全にオフにするのが一番お得なのでしょうか。公式の2つのチャートのすべてのデータポイントを並べてみると、答えは「いいえ」です。

下のダイヤルで切り替えられます。推論レベルを選ぶと、4つのモデルの請求額とスコアが同時に変わります。請求額バーの満杯は、GPT-5.5最上位レベルで検索ベンチマークをフル実行した場合の33.27ドルです。すべてのバーはこの物差しで測られています。

BROWSECOMP · 1 マス動かすと 4 モデルがどう変わるか
GPT-5.6 Solフラッグシップ
請求額
$1.97
スコア
69.67
請求額
$0.50
スコア
65.32
請求額
$2.05
スコア
83.41
請求額
$3.48
スコア
87.52
請求額
$4.59
スコア
88.78
請求額
$6.36
スコア
90.36
GPT-5.6 Terra中規模
公式チャートにはこのレベルはありません。
請求額
$0.20
スコア
50.47
請求額
$0.47
スコア
67.38
請求額
$1.53
スコア
79.30
請求額
$1.85
スコア
81.52
請求額
$3.12
スコア
87.52
GPT-5.6 Luna小型
公式チャートにはこのレベルはありません。
請求額
$0.08
スコア
45.73
請求額
$0.23
スコア
58.85
請求額
$1.03
スコア
80.02
請求額
$1.33
スコア
84.04
請求額
$1.42
スコア
83.25
GPT-5.5前世代フラッグシップ
請求額
$1.42
スコア
34.68
請求額
$2.72
スコア
57.82
請求額
$18.95
スコア
78.12
請求額
$30.02
スコア
83.89
請求額
$33.27
スコア
84.36
公式チャートにはこのレベルはありません。
「最高」のマスを見てみましょう。一番下の行の請求額バーはトラック全体に伸びており($33.27)、Luna の行は細くてほとんど見えません($1.33)。しかし、2 つの行のスコアバーは同じ高さです。このガイドがあなたに見せたかったのは、まさにこのことです。

そして、一番左のマスに動かすと、直感に反することがわかります。推論をオフにしても、コストは下がりません。2 つのチャートに、それぞれ証拠があります。

  • 検索ベンチマークの Sol:推論オフは $1.97 で 69.67 点。最低レベルは $0.50 で 65.32 点。つまり、推論をオフにするという行為はお金を節約せず、むしろ 3.9 倍多く支払って、4.3 点多く得ているだけです。
  • コーディングインデックスの Luna:推論オフは $123.66 で 37.30 点。最低レベルは $74.84 で 42.40 点。この組み合わせは高くて悪い。65% 多く払って、スコアは 5.1 点低いのです。

もう一方にも転換点があります。Lunaは検索ベンチマークで「最高」から「最上位」に上げると、請求額は$1.33から$1.42に増え、スコアは84.04から83.25に下がります。レベルを最大にしても、スコアが上がるとは限りません。

なぜこうなるのか

モデルに考えさせなければ、ツールを多用して何度も試行錯誤しながら答えにたどり着くしかありません。そして、ツールが返す内容は毎回入力トークンとして計上されます。考えること自体にはコストがかかりますが、「遠回りをしない」ことを買っているのです。この計算は、難しいタスクではたいてい割に合います。

変更ポイント

レベルの調整は、低い方から上げて試すのが正解です。請求額とスコアの 2 本の線を一緒に見ながら、曲がり角で止めます。逆に、上から下へ削るのは間違いです。最低レベルはコスパが最も良いことが多く、一番左の「完全にオフ」は、この 2 つのチャートではどちらも割に合いません。

ダイヤル

ダイヤル 2:小型モデルなら 25 倍お得

レベルのダイヤルを回したら、次はモデル選びです。GPT-5.6 ファミリーには 3 つあります。Sol(フラッグシップ)、Terra(中規模)、Luna(小型)です。

かつて中小モデルは、端っこの雑用専用でした。長いコンテキストや大量のツール呼び出しに耐えられず、タスクの連鎖が長くなると壊れてしまったからです。今世代は違います。テスト時計算のおかげです。

テスト時計算 test-time compute

モデルに回答の前に少し考える時間を与えること。考える時間はすなわち計算リソースであり、お金です。同じ生徒が答案を出す前に 10 分余分にチェックするのと、もっと賢い生徒に変えるのとでは、これは別のスコアアップ方法です。小型モデルは前者で、モデル自体は大きくなっていません。

その結果、Luna や Terra は GPT-5.4、GPT-5.5 のレベルに達することがよくあります。値段ははるかに安いままです。ガイドが名指しした比較は、BrowseComp(「ニッチな事実を検索できるか」を試すベンチマーク)からのものです。

GPT-5.5 · 最上位 3 か月前84.36 点
$33.27
GPT-5.6 Luna · 最上位 最小のモデル84.04 点
$1.33
スコア差は 0.32 点、請求額の差は 25 倍。どちらも BrowseComp の全問題を解いたときの総費用です。
GPT-5.6 SolGPT-5.6 Sol UltraGPT-5.6 TerraGPT-5.6 LunaGPT-5.5Claude Mythos PreviewClaude Opus 4.8Gemini 3.1 Pro Preview$0$7$14$21$28$35API費用(USD)30%50%70%90%スコア
公式の原図。各データポイントのコストとスコアは、元の図表のアクセシビリティラベルから取得したものです(目視による読み取りではありません)。本サイトでは、元の図と同じ座標系、同じ公式カラーパレットで再描画しています。同じチャートを検索ベンチマークに適用すると、横軸は全体で 35 ドル幅しかありません。GPT-5.6 の 3 本の線はすべて左端の 7 ドル以内に収まっていますが、前世代のピンクの線は右端まで伸びています。3 本の横破線は競合他社のスコアです(スコアのみで、コストは非公開)。右上の星はマルチエージェントの ultra レベルです。
この $1.33 は値下げ前の価格です。ガイドによると、公開後に OpenAI は再度値下げを行いました。チャート上のすべてのコストは、値下げ前に測定されたものです。

ドキュメントエージェント企業の Hypha は、別の角度からの数字を提供しています。

Luna は GPT-5.5 の抽出精度の 98% を維持しつつ、コストは 18 分の 1 です。これにより、当社のエージェントは高品質なドキュメント理解を手頃な価格で利用でき、はるかに多くのシナリオでコストが見合うようになりました。

Serhii Shchoholiev、Hypha の Agent エンジニアリング責任者

小型モデルはワークフローのどの部分に組み込むべきか

次の 3 種類の作業が最適です。量が非常に多いもの、ユーザーが待っているもの(レイテンシに敏感なインタラクション)、エージェントのワークフローで繰り返し行われるステップです。

ガイドが挙げる例は、ある法律テック企業のものです。エージェントが分析する前に、手書きのメモをテキストに解析する必要があります。この解析ステップには判断力は不要ですが、これまではワークフロー全体と一緒にフラッグシップモデルを使っていました。これを単独で切り出して Terra か Luna に変えれば、確実にお金が節約できます。そして、実際に判断が必要なステップは、これまで通り Sol を使います。

この 2 つのチャートは OpenAI 自身が作成したものです。チャートには自社モデルに加えて、Claude Fable 5、Claude Opus 4.8、Claude Mythos Preview、Gemini 3.1 Pro Preview も記載されています。BrowseComp のチャートでは、競合他社は横の基準線としてのみ登場し、スコアのみ(Claude Mythos Preview 87.9%、Gemini 3.1 Pro Preview 85.8%、Claude Opus 4.8 84.4%)で、対応するコストは非公開のため、上記の価格との比較はできません。本記事の自作チャートは、GPT-5.6 ファミリー内部のレベルとコストの関係のみを示しています。

変更ポイント

ワークフローを分解して、判断力を必要としない機械的なステップ(解析、抽出、分類、フォーマット変換、翻訳)を見つけ、それだけを Terra か Luna に切り替えましょう。判断が必要なステップは Sol に残します。チェーン全体で同じモデルを使うのは、前世代の習慣です。

アーキテクチャ

3 つのアーキテクチャスイッチ。うち 2 つでほぼ 3 倍に

モデルとレベルの 2 つのダイヤルを回し切っても、効果はそこまでです。残りの削減余地はアーキテクチャにあります。具体的には、エージェントが毎回コンテキストに何を入れるか、です。

ガイドは効率化の方法を 3 つに分類し、GPT-5.6 はこの 3 つを備えた状態でエンドツーエンドでトレーニングされていると強調しています。モデルはそもそもこれらの仕組みと連携する方法を知っているので、外側でテクニックを駆使して騙す必要はありません。

1
やったことを再利用する

推論プロセスをターン全体で保持し(永続的推論)、ネイティブ圧縮で長い会話を短くします。モデルは毎回過去のことを最初から考え直す必要がなく、コンテキストが切り詰められても手がかりを失いません。

2
並列化できる部分は分割して並列化する

ネイティブのマルチエージェントオーケストレーション:メインエージェントが分割可能な作業を派遣し、複数の子エージェントが同時に実行し、最後に集約します。

3
決定的な作業はコードに移す

プログラムによるツール呼び出し:フィルタリング、集約、オーケストレーションなど、知性を必要としないアクションをモデルのコンテキストウィンドウの外に移し、モデルのトークンは判断だけに使います。

この 3 つを一緒に有効にするとどれだけ違うのか、ガイドは具体的な例を挙げています。ARC-AGI-3 ベンチマークで、GPT-5.6 Sol は標準の Harness で 13.3%。「推論の保持」と「圧縮」の 2 つのスイッチをオンにするだけで、スコアは 38.3% に跳ね上がり、同時に出力トークンも約 6 分の 1 に減少しました。

13.3% → 38.3%
ARC-AGI-3 スコア。モデルは変えず、Harness も書き換えず、設定を 2 つ変更しただけ
約 6 倍
同じ変更による出力トークンの削減量。スコアは上がり、文字数は減りました

スコアは約 3 倍になったのに、トークンは 6 分の 5 も減りました。この 2 つの数字が同時に現れるということは、節約されたのは「考え直す」「コンテキストを再構成する」といった無駄な作業だということです。

このチューニングについて OpenAI は別途レポートを公開しており、サイト内で解説しています
OpenAI が API 設定を 2 つ変更するだけで、GPT-5.6 Sol の ARC-AGI-3 スコアが 13.3% から 38.3% に上昇
変更ポイント

これら 3 つは 5.6 では設定変更で済みます。モデルを変える必要も、Harness を書き換える必要もありません。次の 4 つのセクションでは、各スイッチの変更箇所、設定値、有効にすべきでないタイミングを説明します。

スイッチ

スイッチ 1:毎ターン最初から考え直させない

最初のスイッチは、長いタスクで最も高くつく無駄を治します。モデルが以前やったことを無駄にやり直すことです。

永続的推論:前のターンの思考を次のターンへ

これまでモデルの思考プロセスは、答えを出すと捨てられていました。次のターンでは、会話履歴しか見えず、自分が前のターンでどう考えたかは見えません。そこで、最初から考え直します。5.6 では、前の数ターンの推論エントリをそのまま次のターンのコンテキストに持ち込めます。パラメータは reasoning.context です。

値動作デフォルト
current_turn今回のターンの推論のみを有効にし、前のターンの推論を次のサンプリングに持ち込まないGPT-5.6 より前のモデル
all_turns前のターンで一致する推論エントリを次のサンプリングに一緒に持ち込むGPT-5.6 ファミリー
auto選択したモデルのデフォルト値に従う。このフィールドを省略すると auto と同じ—

2 つの落とし穴があります。1 つ目、all_turns は、このリクエストが以前のレスポンスにアクセスできる場合にのみ有効です。previous_response_id で連結するか、完全なレスポンス履歴を再生する必要があります。最初のリクエストでは、以前の推論がないため、両方の値に違いはありません。2 つ目、これは連続性を提供するだけです。それらの推論エントリは暗号化されており、読むことはできません。API は推論テキストを返しません。モデルが何を考えたかは見えません。

ネイティブ圧縮:しきい値に達すると自動でパッケージ化

会話はどんどん長くなります。ネイティブ圧縮の方法は、ラインを設定することです。リクエストに context_management を追加し、compact_threshold(例:20 万トークン)を指定します。レンダリングされたコンテキストがこのラインを超えると、サーバーサイドで自動的に圧縮が実行され、同じレスポンスストリーム内で「圧縮エントリ」を出力し、その前のコンテキストを切り詰めて、推論を続行します。別途 API を呼び出す必要はありません。

compact_threshold のライン 数ターン前 コンテキストが短いうちは正常 N ターン目 ライン到達、サーバーが自動圧縮 圧縮後 暗号化ブロック 全体が短くなり、実行を継続 それまでの十数ターンの状態と推論は、すべてこの 1 つのブロックにパッケージ化され、人間は開けず読めません
圧縮は、それまでの状態と推論を、不透明な暗号化エントリにパッケージ化します。人間は開けず読めません。本サイトの示意图で、公式ドキュメントの説明に基づいて描画しています。

ここで最も誤解されやすいのは、圧縮ブロックの性質です。それは不透明で、人間には読めません。公式ドキュメントには「opaque and not intended to be human-interpretable」とあります。「モデルに会話の要約を書かせる」のとは別物です。要約は自然言語であり、何を書くか、何を捨てるかはモデルがその場で決めます。圧縮エントリは、モデルがトレーニング中にパッケージ化と展開の方法を学んだ構造で、それまでの状態と推論をより少ないトークンでそのまま運びます。

たとえるなら

部屋いっぱいの書類を真空圧縮袋に入れるようなものです。袋は開けられず、中身も見えませんが、モデルは次のターンで開ければ、それまでに何があったかを知っています。要約を書くのは、人間に要点リストを手書きしてもらうようなもので、書き手が重要でないと思ったものは永遠に失われます。

サーバーサイド圧縮を有効にする最小限のコード:しきい値に達したら自動で圧縮され、ループ内は何も変更不要(公式サンプル。model はこの記事の文脈に合わせて gpt-5.6 に変更。元ドキュメントでは gpt-5.3-codex)
while keep_going:
    response = client.responses.create(
        model="gpt-5.6",
        input=conversation,
        store=False,
        context_management=[{"type": "compaction", "compact_threshold": 200000}],
    )
    conversation.extend(response.output)
    conversation.append({"type": "message", "role": "user",
                         "content": get_next_user_input()})
圧縮エントリを他の出力エントリと一緒に、次の入力配列の後ろに追加するだけです。store=False は、ゼロデータ保持(ZDR)の要件を満たすためです。

また、/responses/compact という独立したエンドポイントもあります。タイミングを自分で制御したいシナリオ向けです。コンテキストウィンドウ全体を送信すると、圧縮されたウィンドウが返ってきます。完全にステートレスです。これを使うときの絶対ルールは、返されたウィンドウをそのまま次の呼び出しに渡し、自分で切り詰めないことです。そのウィンドウには、圧縮エントリに加えて、前のターンで保持する必要があるエントリも残っているからです。

逆に、サーバーサイド圧縮と previous_response_id を組み合わせて使用する場合も、エントリを手動で切り詰めないでください。ステートレスな入力配列モードの場合のみ、直近の圧縮エントリより前のものを破棄して、リクエストボディを小さくし、テールレイテンシを低く抑えることができます。

変更ポイント

長いタスク(長時間実行されるコーディングエージェント、深いリサーチ)では、reasoning.context が all_turns になっていることを確認しましょう。5.6 ではデフォルトですが、初期のモデルから移行したコードで current_turn がハードコードされていると、このスイッチを無効にしているのと同じです。圧縮は、リクエストに context_management を追加し、compact_threshold を設定します。

スイッチ

スイッチ 2:モデルにコードを書かせてデータを絞り込む

長いタスクでの無駄がなくなっても、もう 1 つよくある無駄があります。コンテキストが中間結果でパンクすることです。

エージェントの仕事は実際には 2 種類あります。一つは判断力を要するもの。この契約書に問題はないか、調査を続けるべきか。もう一つは純粋なデータの運搬。フィルタリング、マージ、ソート、重複排除、合計です。問題は、これまでこの 2 種類の作業が両方ともモデルのコンテキスト内で行われていたことです。

ガイドの例はこうです。エージェントが 100 件のファイルを取得し、日付で絞り込み、関連するトランザクションを見つけ出します。従来の方法では、100 件の内容がすべてコンテキストに入り、モデルが 1 件ずつ読みます。結果として、遅い、高い、そしてコンテキストがパンパンになるにつれて、モデルは余計に混乱する(この現象はコンテキストロットと呼ばれます)。

プログラムによるツール呼び出し(Programmatic Tool Calling)は、別の方法を取ります。モデルが JavaScript コードを直接書いて、これらのツールを操作します。このコードは、互いに依存しない呼び出しを並行して実行でき、ループや条件分岐も書けます。中間結果は OpenAI がホストする実行環境に残り、最終的に絞り込まれた結果だけがモデルに返されます。

従来の方法 ツール呼び出し 100 件取得 コンテキストウィンドウ モデル 1 件ずつ読む 遅い・高い プログラムによるツール呼び出し ツール呼び出し 100 件取得 モデルが書いた JavaScript 並行呼び出し・フィルタ・マージ・合計 コンテキスト外で実行 コンテキストウィンドウ 1 件だけ モデル 判断だけ
同じ 100 件のファイルを取得する場合でも、絞り込みをコンテキスト内で行うか、外で行うかの違いです。本サイトの示意图で、公式ドキュメントの説明に基づいて描画しています。

そのコードはどこで実行されるのか

まったく新しい、分離された V8 ランタイムで実行されます。毎回の実行はクリーンな状態から始まります。この環境の境界は明確に定義されています。

  • あるもの:JavaScript。トップレベルの await をサポート。このリクエストで開放したツールを呼び出せます。text(...) や image(...) で結果を出力できます。
  • ないもの:Node.js、パッケージのインストール、ネットワークアクセス、一般的なファイルシステム、子プロセス、console、そして実行間の状態保持。
  • あなたの関数は引き続きあなたのサーバー上で実行されます:プログラムがあなたのツールを実行するときに一時停止し、呼び出しをあなたに渡します。あなたが実行して結果を元の caller フィールドと一緒に返すと、プログラムは続行します。1 回の実行で何度も一時停止できます。

コードから呼び出せるツールは、あなたが決められます。各ツールに allowed_callers を指定します。

値動作
未指定、または ["direct"]モデルが直接呼び出すことのみ可能
["programmatic"]プログラム内のコードからのみ呼び出し可能
["direct","programmatic"]どちらの方法でも可能

コードから呼び出せるツールの種類は次のとおりです。通常の関数とカスタムツール、MCP ツール、apply_patch、ローカルおよびホスト型のシェル、コードインタープリター。MCP ツールの承認ポリシーはこれまで通り有効で、承認が必要な設定になっている場合、プログラムはそこで停止して承認を待ちます。

コードからのみ呼び出せるツールを指定する:関数に output_schema を追加すると、生成された JavaScript が戻り値のフィールドを安全に使えるようになる(公式サンプル、抜粋)
{
  "type": "function",
  "name": "get_inventory",
  "parameters": {
    "type": "object",
    "properties": { "sku": { "type": "string" } },
    "required": ["sku"],
    "additionalProperties": false
  },
  "output_schema": {
    "type": "object",
    "properties": {
      "sku": { "type": "string" },
      "available_units": { "type": "number" }
    },
    "required": ["sku", "available_units"],
    "additionalProperties": false
  },
  "allowed_callers": ["programmatic"]
}
parameters は入力引数を、output_schema はこの関数が返す JSON の形を定義します。両方を明確に定義することで、モデルが書くコードは推測ではなく、確実にフィールドを取得できます。

使うべきでない時

このスイッチは、一度オンにすればずっと得をするわけではありません。公式はタスクの形式ごとに比較表を提供しています。判断基準は、この部分の制御フローが予測可能かどうか、コードが結果を小さくできるかどうかです。

タスクの形式使用すべき方法
1 回のクエリまたは 1 つのアクション直接呼び出し
複数の結果があり、コードでフィルタ、結合、ソート、重複排除、集約、検証ができるプログラムによる呼び出し(プログラムがより小さな構造化結果を返せる場合)
前後に関連があるが、データの流れが予測可能な連続呼び出しプログラムによる呼び出し(コードが後続の引数を推論でき、失敗時の動作が明確に定義されている場合)
適応的検索、意味的判断。各結果が次の決定に影響を与える直接呼び出し
書き込み操作、承認が必要なアクションデフォルトで直接呼び出し。明確な承認境界を維持するため
最終的な引用確認、ネイティブ成果物の検証直接呼び出し。プログラムが元の出力を完全に保持し、項目ごとに検証した場合を除く

両方のモードを有効にする場合は、モデルにどの部分でどの方法を使うかを指示する必要があります。「プログラムによるツール呼び出しを効率的に使え」といった指示は効果がありません。境界が示されていないからです。公式が用意した、そのまま使えるテンプレートがあります。

ルーティングテンプレート:角括弧の中を、自分のフェーズ、ツール、停止条件に置き換える(公式テンプレート)
<tool_orchestration>
Use Programmatic Tool Calling for [bounded stage] using only [eligible tools].
Run independent calls concurrently when safe. Use only documented tool input
and output fields.
Process and reduce the intermediate results, then emit exactly [program result shape],
including the evidence needed for the final answer.
Stop when [condition] is met. Retry transient failures at most [R] times.
Do not repeat completed calls or perform side-effecting actions. If a required
result is still missing, return a clear structured failure.
Use direct tool calls for [semantic judgment, approval, or final validation].
</tool_orchestration>
この文章は 5 つのことを指定します。どの部分でコードを使うか、どのツールが使えるか、結果をどのような形に絞り込むか、いつ停止するか、何回リトライするか、どの部分を直接呼び出しに残すか。このうち 1 つでも不明確だと、モデルは自分で判断します。

金融リサーチ企業の Rogo は、これを決算書の取得、ツールの調整、数値の計算という一連の作業に適用しました。

金融リサーチで難しいのは、ファイルを確実に取得し、ツールを調整し、数値を正確に計算することです。当社の評価では、GPT-5.6 はプログラムによるツール呼び出しを使用して、従来と同じ評価基準に達しつつ、入力トークンを 21% 削減しました。これが「金融リサーチについて話せるエージェント」と「実際に金融リサーチを完了できるエージェント」の違いです。

Alex Wang、Rogo 応用 AI チーム
変更ポイント

リクエストに programmatic_tool_calling というホスト型ツールを追加し、各ツールに allowed_callers を指定し、関数に output_schema を追加します。両方のモードを有効にする場合は、上記の <tool_orchestration> テンプレートで境界を明確にします。書き込み操作や承認が必要なアクションはコードに渡さないでください。

スイッチ

スイッチ 3:メインエージェントが作業を並行処理

決定的な作業を外に移せるなら、分割できる作業も同時に実行すべきです。

1 つのタスクが、互いに依存しないいくつかの部分に分割できるなら、単一のエージェントは 1 つずつ順番に処理するしかありませんが、複数のエージェントは同時に作業を開始できます。5.6 はこのオーケストレーションを API に組み込みました。メインエージェント(/root と呼ばれる)がタスクの分割、派遣、結果待ち、最終的な回答の集約を行います。アプリケーション側でオーケストレーションロジックを書く必要はありません。

/root 分割・集約 /root/researcher 資料調査 /root/reviewer コードレビュー /root/implementer 実装 /root/implementer/tester 子エージェントはさらに子エージェントを生成可能 3 つ同時実行 それぞれ独自のコンテキスト 完了したら結果を /root に返す
子エージェントは同じモデルと同じツールセットを共有し、パスはツリー状になります。深さと総数にハードな上限はありません。本サイトの示意图で、パス名は公式ドキュメントに従っています。

Qualia は、多数のオープンなリサーチクエスチョンをエージェントチームに与えて実行しましたが、GPT-5.6 Sol は最初から正確でした。GPT-5.5 から明らかに向上しており、テストしたほぼすべてのモデルよりも速く、すぐに当社のデフォルトの OpenAI モデルになりました。

E Chi、Quadrillion 創業者

GPT-5.6 は、OpenAI の中で最も優れたオーケストレーターだと思います。6 つの要件(書く、作る、そしてそのすべてを説明する)を一度に渡しても、手がかりを見失わず、品質も崩れませんでした。

Jon Bell、Obvious 共同創業者兼チーフプロダクトオフィサー

利点は 3 つあり、それぞれ別のものです。並列実行は、ウォールクロックタイムを節約します。コンテキストが分離されているため、各子エージェントは明確に境界が定められたタスクだけを受け取り、互いに無関係な作業が同じコンテキスト内で競合することがなく、精度も向上します。調整はモデルが行います。生成、メッセージ受け渡し、待機はすべて自己スケジューリングです。

有効化と管理方法

変更箇所書き方
スイッチmulti_agent.enabled: true。現在はベータ版で、リクエストに responses_multi_agent=v1 を含めます
並行上限max_concurrent_subagents。デフォルトは 3で、公式はほとんどのシナリオで 3 を推奨。この数は、ツリー全体で同時にアクティブな子エージェント(孫エージェント含む)を管理し、ルートエージェントは含みません
上限ツリーの深さと子エージェントの総数に固定上限はありません
いつ派遣するかdeveloper message を 1 行追加。ルートエージェントへの指示に追加で効果を発揮します

モデルは「何人派遣するか、いつ派遣するか」を自分で判断しますが、制御も可能です。公式が用意した、保守的と積極的な 2 つの文言を、そのままプロンプトに貼り付けられます。

マルチエージェントの派遣タイミングを制御する 2 つの文言(公式提供。英語のままプロンプトに貼り付け可能)
保守的:ユーザーが明示的に要求した場合のみ派遣

Do not spawn subagents unless the user explicitly asks for subagents,
delegation, or parallel agent work.

積極的:並列処理が速度や品質を明らかに向上させる場合は積極的に派遣

Proactive Multi-agent delegation is active. Use subagents when parallel
work would materially improve speed or quality.
子エージェントを派遣すると、トークンが余分に消費されます。明確に指示することで、余分なトークンがより良い結果に見合う場合にのみ派遣するようにできます。

実行中は、出力に 6 種類のコラボレーションアクションが表示されます。これらはサーバーサイドでホストされており、アプリケーションが実行したり、結果を返したりする必要はありません。

アクション説明
spawn_agent子エージェントを生成し、最初のタスクを割り当てる
send_message既存のエージェントにメッセージを送信(新しいターンを開始しない)
followup_taskルート以外のエージェントにタスクを追加し、そのターンを開始または再開する
wait_agent自分のメールボックスに動きがあるまで待機する
interrupt_agent別のエージェントが実行中のターンを中断する(コンテキストは削除しない)
list_agents現在のツリー全体、各エージェントの状態、最後のタスクメッセージを取得する

使うべきでない 4 つのケース

このスイッチには、明確に避けるべき 4 つのシナリオがあります。

  • 各ステップが前のステップに直接依存している。そもそも順序だった推論チェーンであり、分割できません。
  • タスクが小さく、1 回で完了する。エージェントを派遣するオーバーヘッドの方が、作業自体よりも大きい。
  • 複数のエージェントが同じ可変リソースを奪い合う。共有状態への頻繁な書き込みは、並列処理では競合を引き起こすだけです。
  • 固定された決定的な実行グラフが必要。モデルがスケジューリングするということは、実行パスが完全には予測できないことを意味します。

また、全体の処理時間が特定の遅い外部操作に依存している場合、エージェントを増やしても速くなりません。

マルチエージェントを有効にすると、これらも変わります

公式ドキュメントにはいくつかの制限が列挙されており、最初の 1 つは前のセクションで説明した圧縮に直接影響します。

  • 圧縮が自動的に有効になります。multi_agent.enabled を true に設定すると、サーバーサイド圧縮が暗黙的に有効になります。リクエストで context_management を設定していなくてもです。圧縮はルートエージェントと各子エージェントにそれぞれ独立して適用され、それぞれのコンテキストを保護します。しきい値を変更したい場合は、明示的に compact_threshold を記述してデフォルトを上書きできます。
  • 独立した /responses/compact エンドポイントは使用できません。圧縮のタイミングを自分で制御する方法は、マルチエージェントではサポートされていません。
  • reasoning.summary はサポートされていません。
  • max_tool_calls はサポートされていません。このフィールドでツール呼び出し回数を制御していた場合は、マルチエージェントを有効にする前に別の方法を検討してください。

ChatGPT の ultra レベルは、この仕組みの上に成り立っています。BrowseComp のチャートでは、これは独立したポイントとして表示されています。GPT-5.6 Sol Ultra の最上位レベルは 92.18 点で、$12.17。Sol 単独の最上位レベルの 90.36 点より 1.8 点高く、請求額は約 2 倍です。

変更ポイント

multi_agent.enabled を有効にし、max_concurrent_subagents はデフォルトの 3 のままにし、上記の developer message で派遣タイミングを定義します。まず、タスクが本当に独立した部分に分割できるかどうかを確認してください。分割できないタスクでこのスイッチを有効にすると、トークンを調整に浪費するだけです。

コスト

最後のスイッチ:キャッシュブレークポイントの設定ミスはさらに損をする

最初の 3 つのスイッチは、純粋に得をします。最後の 1 つは違います。損をする可能性があります。

ガイドにはキャッシュに関する良いニュースが 2 つ書かれています。モデルファミリー全体のキャッシュ生存時間が少なくとも 30 分に延長され、キャッシュブレークポイントをコンテキスト内で決定的に設定できるようになりました。Ploy の実測は次のとおりです。

29,000 トークンの共有プロンプトにキャッシュブレークポイントとワークスペースごとのキーを追加したところ、未キャッシュ入力が 28% 削減されました。30 分のキャッシュウィンドウも大きな進歩です。エージェントは複数回の実行にわたって同じコンテキストを再利用でき、毎回最初から読み込む必要がありません。

Lorenzo Gentile、Ploy の AI エンジニア

しかし、公式ドキュメントの比較表には、ガイドが触れていない事実が示されています。GPT-5.6 はキャッシュの一致方法を変更しました。

 GPT-5.6 以降初期のモデル
一致方法ブレークポイントでのみ正確に一致一致するプレフィックスを自動的に最大限再利用
明示的ブレークポイントサポート(暗黙的キャッシュも同時に有効)サポートなし、全自動
最小キャッシュ可能プレフィックス1,024 トークン1,024〜2,048 トークン(モデルによる)
キャッシュ書き込み料金未キャッシュ入力価格の 1.25 倍追加料金なし
生存時間正確に 30 分。prompt_cache_options.ttl で設定モデルによって異なる

デフォルトでは、システムは暗黙的なブレークポイントを最新のユーザーまたはツールメッセージに配置し、古いモデルのように自動的に最も長い一致プレフィックスを探して再利用しません。3 段階の価格設定は、3 つの文章で説明できます。

0.1×
キャッシュヒットで読み込まれるトークンは、10 分の 1 の価格
1.25×
キャッシュに書き込まれるトークンは、通常価格の 1.25 倍
1×
読み取りも書き込みもされないトークンは、通常価格

この 2 つを組み合わせると、損をする経路が見えてきます。プロンプトが「数万字の安定した指示 + タイムスタンプ + ユーザーの質問」だとします。何も設定しないと、次のようになります。

ブレークポイントがデフォルト位置(最新メッセージ上)にある場合
タイムスタンプとユーザーメッセージがブレークポイントより前にある
1 回目
安定指示(29,000 トークン)
タイムスタンプ 1
質問 1
2 回目
安定指示(29,000 トークン)
タイムスタンプ 2
質問 2
2 回目のリクエストのプレフィックスは、ブレークポイントで 1 回目と一致しません(タイムスタンプが変わったため)。全体をキャッシュに書き直すことになります。毎回 1.25 倍の価格で書き込み、読み取りは 1 回も発生しないため、キャッシュを使わない場合より 25% 高くなります。
ブレークポイントが安定した内容の末尾にある場合
変わるものはすべてブレークポイントの後ろに置く
1 回目
安定指示(29,000 トークン)
タイムスタンプ 1
質問 1
2 回目
安定指示(29,000 トークン)
タイムスタンプ 2
質問 2
ブレークポイントより前の内容は 1 文字も変わっていないため、2 回目は直接ヒットします。この 29,000 トークンは 0.1 倍の価格で計上されます。ブレークポイントより後ろがどう変わっても影響しません。これが Ploy の 28% 削減の仕組みです。

ブレークポイントがどのコンテンツブロックに設定されていても、そのブロックとその前にレンダリングされたすべてのコンテンツが再利用可能なプレフィックスになります。したがって、ルールは 1 つだけです。毎回変わらない部分を見つけ、その最後にブレークポイントを置きます。

ブレークポイントを安定した内容の末尾に設定し、暗黙的ブレークポイントをオフにする(公式サンプル、抜粋)
{
  "model": "gpt-5.6",
  "prompt_cache_key": "support:knowledge-base-v1",
  "prompt_cache_options": { "mode": "explicit" },
  "input": [
    {
      "type": "message",
      "role": "developer",
      "content": [
        {
          "type": "input_text",
          "text": "Follow the shared support policies and reference material...",
          "prompt_cache_breakpoint": { "mode": "explicit" }
        }
      ]
    }
  ]
}
mode: "explicit" は、デフォルトの暗黙的ブレークポイントをオフにし、毎回変わる末尾がキャッシュに書き込まれるのを防ぎます。注意:explicit を設定しても明示的なブレークポイントを 1 つも設定しない場合、このリクエストはキャッシュを完全に使用せず、書き込み料金も発生しません。

ブレークポイントは複数設定できます。プロンプトの異なる部分の変更頻度が異なる場合(共有指示は非常に安定、参考資料は時々更新など)に使用します。これにより、毎回のリクエストで最も長い未変更プレフィックスを再利用できます。ただし、2 つの上限があることに注意してください。1 回のリクエストで最大 4 つの新しいキャッシュを書き込めます(4 つを超えるブレークポイントがある場合、最後の 4 つだけが書き込まれます。暗黙的モードでは、最新メッセージのブレークポイントが最初に 1 枠使用します)。キャッシュ読み取り時は、直近の 50 個のブレークポイントのみを遡って確認できます。複数のブレークポイントが一致する場合、サーバーは最も長い一致プレフィックスから読み取ります。

3 つのモードの選択方法:暗黙的(デフォルト)は、会話形式でコンテンツを追加し、前の履歴が変わらないシナリオに適しています。暗黙的 + 明示的ブレークポイントは、共有プレフィックスと増加する履歴の両方を再利用したい場合に適しています。明示的のみは、プレフィックスが安定していて、後ろが毎回異なり、ほとんど再利用されないシナリオに適しています。

レイテンシに関する注意点もあります。関連するリクエストに同じ prompt_cache_key を設定すると、それらが同じ推論マシンに割り当てられる可能性が高まります。そのマシンには以前書き込まれたプレフィックスが存在するため、レイテンシも低下します。

変更ポイント

prompt_cache_breakpoint を安定した内容の最後のコンテンツブロックに設定し、安定した prompt_cache_key を設定します。まず、ブレークポイントより前の内容が本当に 1 文字も変わらないことを確認してください。タイムスタンプ、ランダム ID、ユーザー名が混ざっていると、毎回 1.25 倍の価格で誰も読まないキャッシュを書き込むことになります。プレフィックスが 1,024 トークン未満の場合は、キャッシュにまったく入りません。

クイックリファレンス

6 つの変更点のパラメータ早見表

この記事全体で持ち帰れるものは、下の表です。

変更内容設定場所値 / デフォルト公式の効果
推論レベルreasoning.effort最低レベルから上げて試す。上から下げない低レベルが前世代の高レベルに勝利
小型モデルへの変更model機械的なステップは Terra / Luna、判断は Sol同じスコア帯で $33.27 → $1.33
永続的推論
+ネイティブ圧縮
reasoning.context
context_management
all_turns(5.6 のデフォルト)/ current_turn / auto
{"type":"compaction","compact_threshold":200000}
両方オン:13.3% → 38.3%、出力トークン約 6 分の 1
プログラムによるツール呼び出しprogrammatic_tool_calling ツールを追加 + 各ツールの allowed_callersdirect / programmatic / 両方入力トークン 21% 減
マルチエージェントmulti_agent.enabledtrue。max_concurrent_subagents はデフォルト 3(ベータ版)ultra レベルが BrowseComp で 92.18 点
キャッシュブレークポイントprompt_cache_breakpoint + prompt_cache_key安定したプレフィックスの最後に設定。ttl は 30m のみ未キャッシュ入力 28% 減

公式ドキュメントにのみ記載されている制限

  • キャッシュプレフィックスが 1,024 トークン未満の場合は、キャッシュにまったく入りません。この数値は、ブレークポイントまでのレンダリングされたプレフィックス全体を指し、マークしたブロックだけではありません。
  • 各 prompt_cache_key のトラフィックは、1 分あたり約 15 リクエストに制御してください。超えるとヒット率が下がります。大規模なトラフィックでは、安定した決定的なキーでシャーディングしてください。
  • 再利用すると 30 分の寿命がリセットされ、リセット時の書き込み料金は発生しません。30 分は書き込み時点から計算され、再利用のたびに再計時されます。
  • 子エージェントの派遣には、余分なトークンが消費されます。分割できないタスクや、同じ共有状態への頻繁な書き込みが必要なタスクでは、有効にしても調整にお金を払うだけです。
  • プログラムによるツール呼び出しのサンドボックスには、ネットワーク、ファイルシステム、パッケージのインストール機能がなく、実行後も状態は保持されません。コードは、このリクエストで開放したツールを介してのみ外部とやり取りできます。
  • 1 回のリクエストで最大 4 つの新しいキャッシュを書き込め、読み取り時は直近の 50 個のブレークポイントのみ遡れます。ブレークポイントを設定しすぎると、最後の 4 つだけが書き込まれます。
  • マルチエージェントを有効にすると、サーバーサイド圧縮が暗黙的に有効になり、/responses/compact エンドポイント、reasoning.summary、max_tool_calls はサポートされなくなります。これが最も踏みやすい落とし穴です。圧縮を有効にしたつもりがなくても、自動的に有効になっています。

キャッシュミス時の 4 つのチェック項目

症状確認事項
cached_tokens が 0ブレークポイントまでのプレフィックスが 1,024 トークン以上あるか。以前に同じプレフィックスを書き込んだリクエストがあるか。関連するリクエストが同じ prompt_cache_key を使用しているか
毎回のリクエストでキャッシュを書き込んでいるブレークポイントより前に、タイムスタンプ、変動するユーザー入力、ツール呼び出し履歴が混在していないか。明示的ブレークポイントを安定したプレフィックスの末尾に移動する
読み取りと書き込みの両方がゼロでない暗黙的モードでは正常(古いプレフィックスを読み、新しい追加コンテンツを最新のブレークポイントに書き込む)。新しいコンテンツをキャッシュしたくない場合は、明示的のみに切り替える
明示的を使用しているのにヒットしない少なくとも 1 つのコンテンツブロックに prompt_cache_breakpoint が設定され、その時点までのプレフィックスが 1,024 トークンを満たしているか確認する

ガイドの締めくくりは、この表の要約です。これまで毎ステップ最先端モデルが必要だった作業が、今では小型モデルへの変更、推論レベルの調整、アーキテクチャ上の選択により、ほんのわずかなコストで同等以上の結果を出せるようになりました。

✅ GPT-5.6 コスト削減チェックリスト
上の 6 行のパラメータ表 + 公式ドキュメントにのみ記載されている 7 つの制限(1,024 トークン以上、毎分 15 リクエスト、再利用時の再課金なし、マルチエージェントの余分なトークン消費と暗黙的な圧縮有効化、サンドボックスにネットワークなし、最大 4 つのキャッシュ書き込み)を確認すれば、変更は完了です。
出典
The builder's guide to GPT-5.6OpenAI·openai.com·2026-08-13
本站説明
2 つのベンチマークチャートのデータポイントは、元のインライン図表のアクセシビリティラベルから取得した元の値であり、目視による読み取りではありません。元の図は OpenAI による自己測定で、競合他社は横の基準線としてのみ登場し、スコアのみでコストは非公開です。本編中のパラメータ名、値、デフォルト、価格倍率、1,024 トークンの下限、毎分 15 リクエスト、6 つのコラボレーションアクション、プログラムによるツール呼び出しのサンドボックス境界と選択基準表は、上記の 5 つの公式 API ドキュメントから取得しました。ガイドの本編では言及が少ないため、これらは補足して読み込んだものです。2 つのベンチマークチャートは、元の図の座標系と公式カラーパレットで再描画し、データポイントの取捨選択は行っていません。本編中には、本サイトが描画したメカニズム図が 3 枚あります。
↑ 本文ここまで
✓ この記事は全文無料です

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

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

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