Gemini 3.7 Flashから3.8 FlashへのAPI移行ガイド

Gemini 3.7 Flash から 3.8 Flash への移行:変更前後のJSONを含む9つのAPI変更点、軽微な思考レベルの誤り、call_idのルール、トークンバジェット、およびロールバック。

Ashley Goolam

Ashley Goolam

3 9月 2026

Gemini 3.7 Flashから3.8 FlashへのAPI移行ガイド

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

Googleは、Gemini 3.7 Flashの3週間後の2026年9月2日に、Gemini 3.8 Flashを、同じ導入価格でほぼ同じ速度でリリースしました。モデルIDはgemini-3.8-flashで、プレビューサフィックスはなく、モデルカードには「Gemini 3.7 Flashをベースにしている」と記載されています。そのため、ほとんどのチームは1行の置き換えを期待しています。単純なチャットプロンプトであれば、その通りです。思考パラメーターの設定、サンプリングの調整、ツールループの実行を行うものに関しては、確認すべき9つの項目があり、そのうち2つは3.7 Flashでは発生しなかったエラーを返します。

このガイドは、GoogleのGemini 3.8 Flashの新機能ページとGemini 3開発者ガイドから作成されたそのチェックリストです。各項目には、API形状(Googleが現在主要パスとして扱っているInteractions APIと、ほとんどの3.7 Flashコードで依然として使用されているレガシーなgenerateContentエンドポイント)の両方について、変更前後のフラグメントが記載されています。すべてのフラグメントはApidogに貼り付けて、本番環境に適用する前にライブエンドポイントに対して送信できます。まずモデルの概要を知りたい場合は、Gemini 3.8 Flashとは何かから始めてください。

リストの前に一つ補足説明があります。Googleによると、3.8 Flashは設計上「より一層機能する」とのことです。複雑なタスクでは、より小さな推論ステップを踏み、自身の作業を検証し、ツールを繰り返し呼び出します。これがほとんどの性能向上の源であり、移行の際に設定の差分だけでなく、トークン予算の見直しが必要となる理由でもあります。

ボタン

何が変わるのか、何が変わらないのか

項目 3.7 Flash 3.8 Flash
モデルID gemini-3.7-flash gemini-3.8-flash
コンテキスト / 出力 1,048,576 / 65,536 同じ
価格(2026年12月31日までの導入価格) 100万トークンあたり $0.75 / $3.75 同じ。その後、2027年1月1日からは両方とも$1.50 / $7.50
思考レベル low, medium, high 同じ。minimalは検証エラーを返す。デフォルトはmedium
タスクあたりのトークン数 ベースライン 平均で出力トークンが30%増加(Artificial Analysis調べ)
関数結果 call_id + name 両方必須、強制
サポート状況 「完全にサポートを継続」、廃止予定日なし 現在

価格行のソース:GoogleのGemini API料金ページ。ここでは、3.6、3.7、3.8 Flashの行は同じです。

ステップ0:そもそも移行するかどうかを決定する

移行を強制するものではありません。Googleのローンチ投稿では、「Gemini 3.7 Flashは引き続き完全にサポートされる」と述べられており、廃止予定日は公表されていません。トークンあたりの価格は変わらないため、唯一のコスト差は利用量です。Artificial Analysisは、彼らの指標において、3.8 Flashが「高レベルの思考(high thinking)」でタスクあたり約48,000の出力トークンを使用すると測定しました。これは3.7 Flashよりも30%多く、同一の料金率でタスクあたりのコストを$0.40から$0.58に上昇させました。彼らの指標スコアは56から59に上昇し、τ³-Bankingでのツール利用精度は12ポイント上昇して45%になりました。

したがって、トレードオフは、タスクあたりのトークン数が増える代わりに、タスクあたりの機能が向上するということです。ワークロードが短く、レイテンシに敏感な場合、または3.7 Flashで既に評価をパスしている場合は、そのまま据え置くことができます。3.8 Flashと3.7 Flashの比較の完全版には、ワークロード別の決定マトリックスが掲載されています。移行する場合は、読み続けてください。

ステップ1:両方のAPI形状でモデルIDを交換する

Interactions API(GoogleのGemini 3.x向け主要API):

{"model": "gemini-3.7-flash", "input": "..."}
{"model": "gemini-3.8-flash", "input": "..."}

レガシーなgenerateContent(引き続きサポートされており、廃止予定なし):

POST /v1beta/models/gemini-3.7-flash:generateContent
POST /v1beta/models/gemini-3.8-flash:generateContent

Python SDK、両方のパス:

client.interactions.create(model="gemini-3.8-flash", input=..., generation_config={"thinking_level": "medium"})
client.models.generate_content(model="gemini-3.8-flash", contents=..., config=types.GenerateContentConfig(thinking_config=types.ThinkingConfig(thinking_level="low")))

Interactions APIを使ったことがない場合は、3.8 Flash APIガイドが両方の形状を網羅しています。古い3.7 Flash APIウォークスルーgenerateContentのみを扱っていたため、このガイドでは両方を示しています。

9項目の移行チェックリスト

これらを順番に進めてください。1から4の項目は、すぐに現れる設定変更です。5と6の項目は、ツールループとマルチターン状態に影響します。7から9の項目は、テストでしか気づかない計画とメディアの変更点です。

1. thinking_level: "minimal""low"にマッピングする

これが最初に問題となる点です。3.8 Flashはlowmediumhighを受け入れます。minimalを送信すると、検証エラーが返されます。何も送信しない場合のデフォルトはmediumです。Gemini 3 Proはデフォルトでhighであるため、Proの設定をそのままコピーして一致すると仮定しないでください。

変更前(3.7 Flash、Interactions):

{"generation_config": {"thinking_level": "minimal"}}

変更後(3.8 Flash):

{"generation_config": {"thinking_level": "low"}}

レガシー形状、変更後:

{"generationConfig": {"thinkingConfig": {"thinkingLevel": "low"}}}

Googleの思考に関するドキュメントでは、lowはレイテンシ設定、mediumは複雑なコードやエージェント的な作業のデフォルトと説明されています。ルートごとにどのレベルを使用するかは別の記事ですが、移行の目的では、lowminimalの直接的な代替となります。

2. temperaturetop_ptop_kを削除する

GoogleのすべてのGemini 3モデルに対するガイダンスは、temperatureをデフォルトの1.0に保つことです。それを下げると「ループやパフォーマンスの低下を引き起こす可能性があります」。多くの3.7 Flashの設定には、以前の世代から残っているtemperature: 0.2が含まれています。サンプリングキーを設定するのではなく、削除してください。

変更前:

{"generationConfig": {"temperature": 0.2, "topP": 0.9, "topK": 40}}

変更後:

{"generationConfig": {"thinkingConfig": {"thinkingLevel": "medium"}}}

再現性のあるJSONを得るために低いtemperatureを使用していた場合は、代わりに構造化出力を使用してください。これらは3.8 Flashでサポートされており、サンプリングに手を加えることなくスキーマに沿った応答を提供します。

3. thinking_budgetthinking_levelに置き換える

thinking_budgetは整数のトークン上限でした。thinking_levelは文字列の列挙型です。それらの間に算術的なマッピングはないため、意図に基づいてレベルを選択してください。レイテンシが重要なルートにはlow、デフォルトのルートにはmedium、最も難しい多段階ルートにはhighを設定します。

変更前:

{"generationConfig": {"thinkingConfig": {"thinkingBudget": 4096}}}

変更後:

{"generationConfig": {"thinkingConfig": {"thinkingLevel": "low"}}}

思考トークンは引き続き出力トークンとして課金され、usageMetadata.thoughtsTokenCountで報告されるため、コスト管理はハードキャップからレベル選択とテストでのアサーション(下記の回帰テストのセクションを参照)へと移行します。

4. candidate_countを削除する

Gemini 3以降は、複数の候補をサポートしていません。そのキーを削除し、candidates[1]以降をインデックスしていたコードもすべて削除してください。

変更前:

{"generationConfig": {"candidateCount": 2}}

変更後:

{"generationConfig": {}}

複数の候補をサンプリングして最適なものを選んでいた場合、3.8 Flashではより高い思考レベルを設定することで、1つの応答内で検証が行われます。

5. すべての関数結果にcall_idnameを付与する

これが2つ目の大きな変更点です。3.8 Flashでは、返送するすべての関数結果に呼び出しのidと関数nameの両方が含まれている必要があります。GoogleのGemini 3ガイドには「すべてのFunctionResponseオブジェクトにcall_idnameを含めるようにする」と記載されています。名前だけをエコーしていたコードは、ツール結果のターンで失敗します。

Interactions API、変更後:

{
  "previous_interaction_id": "<id from the function_call step>",
  "input": [{
    "type": "function_result",
    "name": "get_weather",
    "call_id": "<id from the function_call step>",
    "result": [{"type": "text", "text": "{\"temp_c\": 24}"}]
  }]
}

モデルのfunction_callステップはidnameargumentsを提供します。最初の2つはそのまま返します。レガシーな形状では、functionResponse部分が、モデルのfunctionCall部分のidと一致するidという名前のフィールドに、nameresponseとともに同じ値を持ちます。Googleの関数呼び出しリファレンスには正規の例があり、3.8 Flash関数呼び出しガイドでは、3.8 Flashが3.7 Flashよりもタスクあたりのツール呼び出し回数が多い理由を含め、完全な2ターンループを詳しく説明しています。

6. 思考シグネチャを、受け取ったそのままの形で返す

Gemini 3モデルは、応答部分に思考シグネチャを付与します。次のターンを自分で構築する際は、テキストだけでなく、すべてのパートタイプについて、シグネチャを含め、すべてのパートをそのまま返してください。それらを削除したり、再シリアル化したりすると、次のステップでのモデルの連続性が低下します。

Interactions APIでは、サーバーに状態を保持させることでこの作業が不要になります。previous_interaction_idを渡すと、Googleが履歴を保持します。ステートレスな呼び出しでstore: falseを設定した場合、再び履歴を自分で管理する必要があり、思考ブロックとシグネチャを自分で返送する必要があります。レガシーなgenerateContentでは、常に履歴を自分で管理するため、最後の応答からトリミングされたコピーからcontentsを再構築するすべてのコードを監査してください。

7. ルートあたりのトークン予算を増やす

この項目はエラーを発生させないため、見過ごされがちです。Artificial Analysisの出力トークン30%増加という数値は、彼らの指標における「高レベルの思考(high thinking)」での平均です。Google自身の表現では、このモデルは「設計上、より長い時間実行される複雑なタスクでより多くのトークンを使用できる」とし、その使用量は「特に高い労力を要するレベルで増加する」と述べています。

また、65,536の出力トークン上限も見直してください。思考を含めて4万トークンを返していた3.7 Flashのプロンプトは、上限に近づく可能性があります。料金を試算する場合は、3.8 Flashの料金内訳で3つのレベルすべてにおけるタスクあたりの数値が計算されています。

8. PDFとビデオでmedia_resolution_highをテストする

3.8 Flashは、テキスト、画像、ビデオ、オーディオ、PDF入力を受け入れます。メディア解像度設定は、各メディア入力が消費するトークン数を変更し、コストはメディアタイプによって異なるため、PDFページでは安価な設定が、長いビデオでは高価になる可能性があります。測定せずに、3.7 Flashからグローバルな高解像度設定をそのまま引き継がないでください。各解像度で代表的なPDFと代表的なビデオを1つずつ送信し、usageMetadata.promptTokenCountを比較してください。

9. 画像セグメンテーションの呼び出しをすべて削除する

Gemini 3モデルでは画像セグメンテーションはサポートされていません。3.7 Flash時代のパイプラインが古いGeminiモデル経由でセグメンテーションをルーティングしていた場合、そのパスはこの移行とは別です。プロンプトが3.8 Flashにセグメンテーションマスクを要求した場合、使用可能な出力を返すのではなく、失敗すると予想してください。画像生成、音声生成、およびLive APIも、モデルページによると3.8 Flashではサポートされていません。

Apidogで回帰計画を構築する

2つの破壊的変更とトークン使用量の変化を伴う移行には、一度きりのcurlではなく、再現性のある比較が必要です。以下は、Apidogで使用する設定です。ApidogはAPIクライアントでありテストランナーであるため、リクエストを送信し、応答をチェックし、実行をスケジュールします。モデル自体は実行しません。

ロールバック:3.7 Flashを設定フラグの背後に保持する

3.7 Flashは引き続き完全にサポートされ、3.8 Flashと同じ価格であるため、ロールバックは安価です。モデルIDをコードではなく設定に保持します。

{"gemini_model": "gemini-3.8-flash", "gemini_fallback_model": "gemini-3.7-flash"}

次の3つのルールにより、フラグは安全になります:

よくある質問

Gemini 3.8 Flashは3.7 Flashよりも高価ですか? トークンあたりではそうではありません。どちらも2026年12月31日までは入力$0.75 / 出力$3.75(100万トークンあたり)で、2027年1月1日からは両方とも$1.50 / $7.50に上昇します。タスクあたりでは、3.8 Flashは設計上より多くのトークンを使用します。Artificial Analysisは、彼らの指標における「高レベルの思考(high thinking)」で約30%多くの出力トークンを測定しました。

thinking_level: "minimal"をそのままにしておくとどうなりますか? 3.8 Flashでは、リクエストが検証エラーで失敗します。lowに置き換えてください。思考レベルガイドで、残りの各レベルの機能と違いの測定方法を説明しています。

3.8 Flashを使用するためにInteractions APIに移行する必要がありますか? いいえ。generateContentはレガシーと説明されていますが、廃止予定日はなく、引き続き完全にサポートされており、3.8 Flashでも動作します。Interactions APIはprevious_interaction_idを介してサーバーサイドの会話状態を追加し、これにより項目6の思考シグネチャの管理作業が不要になります。

3.7 Flashは廃止されますか? Googleは「完全にサポートを継続する」と述べており、廃止予定日は公表していません。それが設定フラグによるロールバックを可能にしている理由です。

3.7 Flash用に調整した同じtemperatureを維持できますか? GoogleのすべてのGemini 3モデルに対するアドバイスは、temperatureを1.0にすることです。3.7 Flashで既にそれをオーバーライドしていた場合、この移行はそれを削除して評価をチェックするタイミングです。構造化出力は、決定論的な形状を得るためのサポートされている方法です。

段階的に展開する

移行自体は小さなものです。IDの変更が1つ、設定の削除または名前変更が4つ、ツールループフィールドが2つ、そしてシグネチャの監査です。時間がかかるのは、ルートごとのトークン予算が維持されることを証明する部分であり、これはテストの問題です。ゴールデンプロンプトを保存し、スキーマとトークン上限をアサートし、数値が安定するまで3.7 Flashと3.8 Flashを並行して実行し、その後、ルートごとにフラグを切り替えます。ルートが回帰した場合、フラグはコード変更なしで3.7 Flashに戻し、改善されたルートは維持できます。

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

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