ジェミニ4アルゴン 100万出力トークン:100万トークン応答がAPIスタックに与える影響

ジェミニ4 アルゴンの100万出力トークンはコンテキストウィンドウではなく、出力上限です。最大応答にかかる費用、ストリーミング、タイムアウト、そして上限について。

Ashley Goolam

Ashley Goolam

2 10月 2026

ジェミニ4アルゴン 100万出力トークン:100万トークン応答がAPIスタックに与える影響

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

Gemini 4 Argonの目玉である100万トークンは、その出力上限であり、コンテキストウィンドウではありません。Googleによると、Argonの単一応答は最大100万トークンに達する可能性があり、これは以前の64K上限の約16倍です。Argonの入力ウィンドウは一切公開されていません。まだ呼び出すべきものもありません。Argonは現在、Fairwind Programの保護者のみが利用可能で、Googleがアクセスを解放すれば、有料API顧客が次に利用できるようになります(リリース日とアクセスガイドを参照)。

そのような長い応答は、ほとんどのAPIスタックが依存している3つの前提を破ります。すなわち、呼び出しが数秒で完了すること、ボディがメモリに収まること、および1つのリクエストが小さく予測可能なコストを持つことです。このガイドでは、アクセスが開始される前に、最大出力応答のコスト、ストリーミング、タイムアウト、出力上限、ストレージ、およびApidogでそれらすべてをテストする方法について説明します。モデルの概要については、Gemini 4 Argonとは何かを、リクエストの形式については、Gemini 4 Argon APIガイドを参照してください。

100万出力トークンは100万コンテキストウィンドウではない

Argonで上位に表示されるいくつかのページでは、100万という数字をコンテキストウィンドウとして説明しており、ある見出しでは「16倍大きなコンテキストウィンドウ」と呼んでいます。これは逆です。Googleの発表記事では、「モデルの出力トークン制限を業界をリードする100万トークンに拡大した」と述べています。その64Kは、Googleの以前のトップProモデルであるGemini 3.1 Pro Previewの65,536トークンの出力上限と一致します。

入力はGoogleが公開していない別の数値です。評価方法論で説明されているその長文コンテキスト評価では、256Kから1Mトークンの間のプロンプトを使用しました。これはベンチマークのサブセットであり、仕様ではありません。出力側にも注意点があります。Vals AIは、テストしたArgon構成の最大出力を262Kと記載しています。Googleはモデルの上限を100万と述べていますが、少なくとも1つの第三者評価者は、使用したエンドポイントでより低い上限を確認しました。

モデル 応答あたりの最大出力 入力またはコンテキストウィンドウ
Gemini 4 Argon 100万(Google公称上限) 未公開
Gemini 3.1 Pro Preview 65,536 1,048,576
Gemini 3.8 Flash 65,536 1,048,576
GPT-6 Astra 128,000 1,050,000(最大入力922K)
Claude Opus 5.5 128K(ベータヘッダー付きのバッチでは300K) 100万

競合他社はすべて同期出力を128Kに制限しているため、Argonの公称上限はその約8倍です。Googleの理由は推論の深さにあります。余裕があることで、モデルは「単一の軌跡で数十万トークンを生成」し、難しい問題を一度に解決できるとされています。他のベンダーが長時間実行をどのように処理するかについては、Claude Opus 5.5の18時間タスクおよびGPT-6 Astra APIガイドを参照してください。

最大出力応答1つにかかる費用

まず上限価格を設定します。Argonの導入期間中は100万トークンあたり10ドル、その後は20ドルで出力が課金されるため、1つの全長の応答にかかる費用は次のとおりです。

入力はこれに加えて課金されます。200,000トークンのプロンプトは、導入料金で200,000 x $2/1M = $0.40、通常料金で$0.80を追加するため、1回の最大出力呼び出しは$10.40または$20.80になります。それらを100回実行する夜間ジョブは、導入料金で$1,040の費用がかかります。

思考トークンがこれを分かりにくくします。現在のGeminiモデルでは、思考トークンは出力として課金されます。Googleは、Argonがそのルールに従うのか、思考トークンが100万の上限にカウントされるのかについて述べていません。いずれにせよ、短い目に見える応答でも、高額な出力課金が発生する可能性があります。Gemini 4 Argonの料金ガイドでは、95%割引のキャッシュされた入力を含む、より多くのシナリオを説明しています。

なぜストリーミングが必須なのか

非ストリーミング呼び出しは、応答全体が完了するまで何も返しません。数十万トークンでは、それは長く静かな接続となり、スタック全体のアイドルタイムアウトが最初のバイトが到着する前に接続を閉じてしまう可能性があります。

代わりにストリーミングを使用してください。generateContentでは、メソッドを:streamGenerateContent?alt=sseに置き換えると、Googleはサーバー送信イベント(SSE)を送信し、イベントごとに部分的な候補チャンクを1つ送ります。各イベントが到着したらそれを読み取り、書き出してください。最初にボディ全体を収集しないでください。これは現在Gemini 3.8 Flashで動作しており、GoogleがArgonのモデルIDを公開していないため、モデルは変数に入っています(設定は当社のGemini 3.8 Flash APIガイドにあります)。

import json, os, requests

MODEL = os.environ.get("GEMINI_MODEL", "gemini-3.8-flash")
URL = ("https://generativelanguage.googleapis.com/v1beta/models/"
       f"{MODEL}:streamGenerateContent?alt=sse")
body = {
    "contents": [{"parts": [{"text": "Write a test plan for every endpoint in a payments API."}]}],
    "generationConfig": {"maxOutputTokens": 60000},
}
usage = None
with requests.post(URL, json=body, stream=True, timeout=(10, 120),
                   headers={"x-goog-api-key": os.environ["GEMINI_API_KEY"]}) as r, \
        open("response.txt", "a", encoding="utf-8") as out:
    r.raise_for_status()
    for line in r.iter_lines(decode_unicode=True):
        if not line or not line.startswith("data:"):
            continue
        event = json.loads(line[5:])
        for cand in event.get("candidates", []):
            for part in cand.get("content", {}).get("parts", []):
                out.write(part.get("text", ""))
        out.flush()
        usage = event.get("usageMetadata", usage)
print(usage)

timeout=(10, 120)は、10秒の接続タイムアウトと120秒の読み取りタイムアウトを設定します。requestsでは、読み取りタイムアウトは合計期間ではなく、バイト間の最長の間隔であるため、継続的に送信されるストリームは必要なだけ実行できます。各チャンクは到着するとすぐにディスクに書き込まれます。3.8 Flashでは、すべてのイベントが実行中のusageMetadataを運びます。したがって、最後のイベントがログと課金のための最終的なトークン数を提供します。

各ホップでのタイムアウト

あなたのクライアントは1つのホップです。長いストリームは、リバースプロキシ、APIゲートウェイ、ロードバランサー、そしておそらくサーバーレスランタイムも経由し、これらのいずれかが応答を早期に終了させる可能性があります。

ホップ 確認すべき点 問題が発生した場合の症状
HTTPクライアント 読み取りまたはアイドルタイムアウト、およびリクエスト全体のタイムアウト 長い応答の場合にのみストリーム途中で例外が発生する
リバースプロキシ 読み取りタイムアウトとtext/event-streamの応答バッファリング イベントがバースト的に届く、またはストリームが途切れる
APIゲートウェイ 最大リクエスト期間 常に同じ経過時間でリクエストが失敗する
ロードバランサー アイドルタイムアウト 最初のイベントまでの長い一時停止中に切断される
サーバーレス関数 最大実行時間 モデルがまだ書き込み中に関数が終了する

固定されたカットオフに注意してください。長い応答が常に同じ経過時間で失敗する場合、一部のホップにはストリーミングでは修正できない厳格な時間制限があり、その作業はリクエストパスから外す必要があります。

バックグラウンドで長時間ジョブを実行する

最も長いジョブについては、ライブ接続から作業を切り離してください。Interactions APIは、background=trueを使用して長時間実行タスクのバックグラウンド実行をサポートしています。バックグラウンド実行は保存されたインタラクションに依存します。ドキュメントにはstore=falseがバックグラウンド実行と互換性がないと記載されているため、これらのリクエストではストレージを有効にしておいてください。完了したバックグラウンドインタラクションを取得するには、Googleのドキュメントに従ってください。ポーリングエンドポイントを推測しないでください。Googleは新しいモデルがInteractions APIで起動すると述べているため、Argonの長時間ジョブがそこで実行されることを計画してください。

意図的に出力を制限する

100万の上限は天井であり、目標ではありません。generateContentでは、generationConfig.maxOutputTokensが各応答を制限します。ストリーミングの例では60,000に設定されています。3.8 Flashでは、思考トークンがその上限にカウントされます。2,000に設定されたテスト実行では、1,340の思考トークンと656の可視トークンが返されました。Interactions APIについては、依存する前にGoogleのドキュメントで出力上限フィールドを確認してください。次に、呼び出しごとに許容できるコストから上限を選択してください。

出力上限 最悪の場合の出力コスト、標準 ($20/1M) 導入期間 ($10/1M)
64,000 64,000 x $20/1M = $1.28 $0.64
128,000 $2.56 $1.28
500,000 $10.00 $5.00
1,000,000 $20.00 $10.00

上限に達した応答は途中で停止するため、不完全として扱ってください。最終イベントのfinishReasonを確認してください。MAX_TOKENSは、上限によって切断されたことを意味します。その後、フォローアップのターンで続けるか、そのジョブの上限を引き上げてください。

バッファリングせずに巨大な出力を保存および解析する

100万トークンは、応答あたり数メガバイトのテキストに相当します。いくつかのルールに従うことで、ワーカーがダウンするのを防ぐことができます。

アクセス開始前にApidogでテストする

これらすべてを代役を使ってリハーサルできます。Apidogをダウンロードして、以下の3つのチェックを実行してください。

ストリームを監視する。GEMINI_API_KEYとGEMINI_MODELを環境変数として3.8 Flashに対してストリーミングリクエストを送信する。Apidogはtext/event-stream応答を解析し、各イベントをタイムラインビューで到着と同時に表示するため、チャンクサイズ、ギャップ、および最終的なusageMetadataを確認できます。

はるかに長い偽の応答をストリーミングする。実際の3.8 Flashの出力は最大65,536トークンであるため、同じイベント形式ではるかに多くのデータをストリーミングするローカルモックを実行します。

# long_stream_mock.py: Gemini-shaped SSE for parser and timeout tests (fake data)
import json, time
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer

EVENTS, DELAY, CHUNK = 20000, 0.005, "lorem ipsum " * 40

class Handler(BaseHTTPRequestHandler):
    def do_POST(self):
        self.rfile.read(int(self.headers.get("Content-Length", 0)))
        self.send_response(200)
        self.send_header("Content-Type", "text/event-stream")
        self.end_headers()
        for i in range(EVENTS):
            event = {"candidates": [{"content": {"parts": [{"text": CHUNK}]}}]}
            if i == EVENTS - 1:  # fake counts sized like a near-max reply
                event["usageMetadata"] = {"promptTokenCount": 1200,
                    "candidatesTokenCount": 950000, "thoughtsTokenCount": 40000,
                    "totalTokenCount": 991200}
            self.wfile.write(f"data: {json.dumps(event)}\n\n".encode())
            self.wfile.flush()
            time.sleep(DELAY)

ThreadingHTTPServer(("127.0.0.1", 8787), Handler).serve_forever()

「モック」環境のベースURLをhttp://127.0.0.1:8787に向け、同じストリーミングリクエストをそこから送信します。ストリームは約2分間(テストでは128秒)実行され、960万文字のテキストを転送します。これは、バッファリングパーサー、イベントを保持するプロキシ、または短すぎるタイムアウト設定を露呈させるのに十分です。

トークン数をアサートする。非ストリーミングのgenerateContentリクエストでは、usageMetadata内のcandidatesTokenCountとthoughtsTokenCountが上限以下であること、および計算されたコストがArgon価格で設定した上限を下回ることをアサートします。Argon APIガイドには、すぐに使えるコストスクリプトがあります。

よくある質問

100万はGemini 4 Argonのコンテキストウィンドウですか?いいえ。100万は、64Kから増加した応答ごとの出力上限です。GoogleはArgonの入力ウィンドウを公開していません。

100万トークンのArgon応答の費用はいくらですか?導入料金で$10、通常料金で$20の出力コストに加えて入力コストがかかります。Gemini 4 Argonの料金で詳細なシナリオを確認してください。

今日、100万トークンの応答を生成できますか?Argonアクセスを持つFairwindグループに組織が属していない限り、できません。Gemini 3.8 Flashおよび3.1 Pro Previewは出力を65,536トークンに制限しており、Vals AIはテストしたArgon構成で最大出力を262Kと記載しています。

長いArgon応答をストリーミングする必要がありますか?GoogleはArgonのストリーミングガイドラインを公開していませんが、数分間実行される非ストリーミング呼び出しは、スタック内のあらゆるアイドルタイムアウトにさらされます。ストリーミングするか、Interactions APIでバックグラウンド実行を使用してください。

Argonの出力上限はGPT-6 AstraやClaude Opus 5.5と比べてどうですか?どちらも同期出力を128Kに制限しています。Anthropicはベータヘッダー付きのバッチで300Kを許可しています。Argonの公称100万トークンは、その約8倍です。

次のステップ

Geminiクライアントに今すぐストリーミングと出力上限を追加し、3.8 Flashで、スタック内の何かがそれを遮断しなくなるまで、長いモックストリームに対して実行してください。ArgonのIDが出荷されたら、GEMINI_MODELを変更し、Apidogで同じテストを再実行してください。

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる