Gemini 3.6 Flash のデベロッパー ガイド

Gemini 3.6 Flash は、Gemini 3 ファミリーの高速で費用対効果の高い強力なモデルです。パフォーマンスや価値を損なうことなく、Pro に近いエージェント機能を提供できるように設計されており、Gemini API を使用するデベロッパーと Gemini Enterprise Agent Platform を使用する企業向けに一般提供(GA)されています。

このドキュメントでは、3.6 Flash の新機能、Gemini モデル ファミリーでの位置付け、3.6 Flash への移行方法について説明し、3.6 Flash の使用に関するクイックスタートを提供します。

Gemini ファミリーでの位置付け

Gemini 3.6 Flash は、Gemini 3 ファミリーの主要なエージェント ワークロードです。高度な推論を行う Pro モデルと、高スループットの Flash-Lite モデルのギャップを埋めます。Gemini 3.5 Flash と比較して、3.6 Flash は、マルチステップ ツール オーケストレーション、フルスタック コード リファクタリング、ビジュアル推論の品質が大幅に向上し、使用するトークンと推論ターンが少なくなっています。 Flash の速度と料金で、Pro レベルの機能を提供します。

モデル仕様と比較

次の表は、3.6 Flash、3.5 Flash、3.1 Pro の仕様の一部を比較したものです。

Gemini 3.6 Flash Gemini 3.5 Flash Gemini 3.1 Pro
モデル ID gemini-3.6-flash gemini-3.5-flash gemini-3.1-pro-preview
リリース ステージ GA GA プレビュー
入力値の型 テキスト、画像、音声、動画 テキスト、画像、音声、動画 テキスト、画像、音声、動画
出力タイプ テキスト テキスト テキスト
コンテキスト ウィンドウ 1,048,576 1,048,576 1,048,576
最大出力トークン長 65,536 65,536 65,536
サポート対象の地域 グローバル、 マルチリージョン グローバル、 マルチリージョン、 南北アメリカ、 ヨーロッパ、 アジア太平洋 グローバル
サポートされる思考レベル MINIMAL、LOW、MEDIUM、HIGH
(デフォルト: MEDIUM)
MINIMAL、LOW、MEDIUM、HIGH
(デフォルト: MEDIUM)
LOW、MEDIUM、HIGH
(デフォルト: HIGH)
重要なポイント 高効率の Agentic Workflows、マルチステップ オーケストレーション、フルスタック コーディング バランスの取れたタスク、ツールの呼び出し、中間推論 高度な推論、複雑なタスク

サポートされている機能、ツール、使用オプションの完全なリストについては、3.6 Flash model ページをご覧ください。

Gemini 3.6 Flash の新機能

3.6 Flash は、マルチステップ オーケストレーション、フルスタック コード リファクタリング、一般的な推論に最適化されており、トークン効率が前モデルよりも大幅に向上しています。

機能とパフォーマンスの更新

3.6 Flash の機能とパフォーマンスの変更点は次のとおりです。

  • トークンとターンの削減: 3.5 Flash よりも使用するトークンが少なく、推論ステップと会話ターンが少ないため、マルチステップ ワークフローを完了できます。
  • コード生成の改善: アプリケーションのビルド、プロトタイピング、 IDE エージェント環境全体で、コンパイル エラーとリビジョン率が低いクリーンなコードを生成します。
  • アクション バイアスの軽減: 読み取り専用の診断タスクを解決する際に、 不要なワークスペースの編集や状態の早期変更を行いません。
  • マルチモーダル推論と空間推論: チャート の解釈、ビジュアル ブループリントの変換、マルチ要素のウェブ レイアウト 生成のパフォーマンスが向上します。
  • パソコンの使用のサポート: エージェント UI 自動化の組み込みツールとしてサポートされています。
  • UI スタイルの設定: 機能コードの作成に優れていますが、人間の 評価者は、フロントエンドのプレゼンテーション とビジュアル レイアウトについては、以前のモデルを好む傾向がありました。これは、明確な設計ガイドラインを提供することで軽減できます。

動作と API パラメータの変更

3.6 Flash の動作と API パラメータの変更点は次のとおりです。

  • ステップの簡潔さ: 3.5 Flash よりも推論ステップが少なくなっています。これにより、コード リファクタリングとツール ワークフローのレイテンシとコストが削減されますが、長い反復チェーンが必要なマルチターン会話のフォローアップで早期終了が発生する可能性があります。
  • 事前プログラムによる検査: 3.5 Flash よりも、状態を変更する前に診断コード スクリプト (execute_code)を実行して問題を検査することを優先します。これにより、複雑なバックエンド リファクタリングの診断精度が向上しますが、以前のバージョンでコードを直接生成していたシンプルなフロントエンド ウェブとスクリプト タスクで、余分な探索検査ステップが実行されることがあります。
  • デフォルトの労力: 3.5 Flash で導入された中程度のデフォルトの労力レベル を引き継ぎます。
  • サンプリングのオーバーライドなし: temperature、top-k、または top-p パラメータのカスタム値はサポートされなくなりました。カスタム値を設定しても、API サーフェスでは無視されます。代わりに、thinking_level または構造化 JSON スキーマを使用して、出力の決定性を制御します。
  • 頻度と存在のペナルティの制限: これらの パラメータのカスタム値はサポートされなくなりました。設定すると、アクティブな API エラーがスローされます。
  • 最後の入力ターンのロールが「Model」の API リクエストはサポートされていません。
  • 会話履歴の空のターンは削除されます。
  • 無効な思考署名でエラーが発生するようになりました。
  • 厳密な関数呼び出し: FunctionResponse は、前の FunctionCall の id、name、実行回数と厳密に一致する必要があります。インライン命令を追加する場合は、関数応答テキストの内部に直接追加し、2 つの改行(\n\n)で区切ります。

クイックスタート

始める前に、アプリケーションのデフォルト認証情報(ADC)または API キーを使用して Agent Platform に対する認証を行う必要があります。詳細については、Gemini Enterprise Agent Platform を使ってみるをご覧ください。

次のコードブロックで、PROJECT_ID を実際のプロジェクト ID に置き換えます。

インストール

最新の google-genai SDK を使用していることを確認します。

pip install --upgrade google-genai

基本リクエスト

Python

from google import genai

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

response = client.models.generate_content(
  model="gemini-3.6-flash",
  contents="How does AI work?",
)
print(response.text)

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.6-flash:generateContent \
-d '{
  "contents": {
    "role": "USER",
    "parts": { "text": "Why is the sky blue?" },
  },
}'

3.5 Flash または 3.1 Pro から 3.6 Flash に移行する

3.5 Flash または 3.1 Pro から 3.6 Flash に移行する手順は次のとおりです。

  1. モデル ID を更新する: API 呼び出しのモデル文字列を gemini-3.6-flashに変更します。
  2. 新しい Gemini 3 ファミリー API ルールに合わせてコードを調整する: Gemini 3.6 Flash では、Gemini 3 ファミリー全体で確立されたパラメータ ルールと API 規約が厳密に適用されます:
    • Temperature、Top-K、Top-P を削除する: これらのカスタム パラメータをペイロードから削除します。エラーは発生しませんが、モデルは完全に無視します。代わりに、thinking_level パラメータまたは json_schema 構造化出力を使用して、出力の決定性を制御します。
    • 頻度と存在のペナルティを削除する: 頻度または存在のペナルティのカスタム 構成を削除して、API 呼び出しでランタイム エラーが発生しないようにします。
    • チャット インテグレーションでモデルの事前入力が試行されないようにする: メッセージの履歴配列を確認して、API ペイロードが 空のユーザーターンまたはモデルターンで終わらないようにします。履歴配列の最後のオブジェクトが 「model」ロール(GenerateContent API)または 「model_output」タイプ(Interactions API)の場合は、厳密な検証エラーが発生しないように シーケンスを再構成します。
    • thinking_level を使用する: 非推奨の thinking_budget パラメータのインスタンスを削除し、代わりに thinking_level を使用します。
    • 厳密な関数呼び出し規約を適用する: FunctionResponse は、id、name、および 前のFunctionCallの実行回数と厳密に一致する必要があります。インライン命令を追加する場合は、関数応答テキストの内部に直接追加し、2 つの改行(\n\n)で区切ります。
  3. ワークフローの変更を考慮する:
    • アプリケーションがマルチターン会話ループに依存している場合は、ワークフローをテストして、モデルの新しいステップの簡潔さによって早期終了が発生しないようにします。
    • フロントエンドまたは基本的なスクリプト エージェントを構築する場合は、モデルの事前プログラムによる検査に対する新しいバイアスにより、不要な探索 execute_code 呼び出しが発生しないようにモニタリングします。

ツール前のテキスト要件の回避策

プロンプトで、ツール呼び出しの直前に構造化テキスト(XLM、YAML、Json, など)(たとえば、<UPDATE>...</UPDATE>)を出力する必要がある場合、ツール呼び出しがMalformed_Function_Call エラーで失敗することがあります。この問題を解決するには、次のいずれかの回避策を使用します。

  • (推奨)モデルに、ツール前のメモを生のテキストではなく専用の update() 関数呼び出しに配置するように指示します。実装手順の詳細については、次の セクションをご覧ください。
  • モデルに、構造化テキストではなく Markdown ヘッダー(# UPDATE、## PLAN など)としてメモを書き込むように指示します。
  • ツール呼び出しの前にモデルが出力するテキストを必要としません。

推奨される解決方法: 専用の関数呼び出しで作業メモをラップする

元の手順の代わりに、

Before calling a tool, in every response you MUST first output a single
`<UPDATE>` part as specified, don't skip this part or any of required sub-tags
within `<UPDATE>`.

次の更新された手順を使用します。

Before calling any other tool, in every response you MUST first call `update`
with all required parameters (previous_step, plan, next_step, external).

顧客リクエスト内の古い <UPDATE> XML 形式へのすべての参照を更新します。 次に、更新関数の対応する関数宣言を追加します。

{
  "name": "update",
  "description": "Update working notes (previous step analysis, plan, next step, external note).",
  "parameters": {
    "type": "OBJECT",
    "properties": {
      "previous_step": {
        "type": "STRING",
        "description": "Key findings and outcomes since the previous step."
      },
      "plan": {
        "type": "STRING",
        "description": "The current status of the plan."
      },
      "next_step": {
        "type": "STRING",
        "description": "Brief explanation of the immediate next action according to the plan."
      },
      "external": {
        "type": "STRING",
        "description": "A short, plain-language note shown to the User about what you are ABOUT TO DO next."
      }
    },
    "required": [
      "previous_step",
      "plan",
      "next_step",
      "external"
    ]
  }
}

モデルは同じステップで 2 回呼び出しを行います。構造化 XML を置き換える update() 呼び出しと、実行する実際の関数呼び出しです。

参考情報