Gemini 3.5 Flash の新機能

Gemini 3.5 Flash は一般提供(GA)されており、安定していて、大規模な 本番環境での使用に対応しています。最もインテリジェントな Flash モデルとして、エージェントの実行、コーディング、長期的なタスクにおいて、最先端のパフォーマンスを大規模に実現します。

このガイドでは、Gemini 3.5 Flash の改善点、API の変更点、移行に関するガイダンスの概要について説明します。

新しいモデル

モデル モデル ID 説明
Gemini 3.5 Flash gemini-3.5-flash エージェント タスクとコーディング タスクにおいて、最先端のパフォーマンスを維持できる最もインテリジェントなモデル。

Gemini 3.5 Flash は、100 万トークンのコンテキスト ウィンドウ、最大 65,000 トークンの出力トークン、思考、Gemini 3 Flash と同じツールとプラットフォーム機能をサポートしています。 コンピュータの操作は現時点ではサポートされていません。

完全な仕様については、モデルの概要をご覧ください。 料金については、料金ページをご覧ください。

クイックスタート

このガイドのすべての例では、GenerateContent API を使用しています。Interactions API もサポートされています。同じ構成オプションと推奨事項が適用されます。

Python

from google import genai

client = genai.Client()

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Explain how parallel agentic execution works in three sentences.",
)
print(response.text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-3.5-flash",
    contents: "Explain how parallel agentic execution works in three sentences.",
  });
  console.log(response.text);
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [{
      "parts": [{"text": "Explain how parallel agentic execution works in three sentences."}]
    }]
  }'

最新情報

  • 最先端のパフォーマンスを維持: 最もインテリジェントな Flash モデルで、大規模なエージェント タスクとコーディング タスク向けに最適化されています。
  • エージェントの実行: サブエージェントのデプロイ、問題解決、大規模な迅速なエージェント ループ。
  • コーディング: 反復的なコーディング サイクル、迅速な探索、プロトタイピングにより、代替パスをテストしてソリューションを動的に探索できます。
  • 長期的なタスク: 大規模な複数ステップのワークフローとツールの使用。
  • 思考の保持: モデルは、マルチターンの会話全体で中間推論を自動的に保持します。API の変更は必要ありません。
  • 新しいデフォルトの労力レベル: デフォルトの思考労力が high から medium に変更されました。詳細については、新しいデフォルトの労力レベルをご覧ください。
  • low 思考の改善: low が大幅に改善され、ステップ数が少ないコード とエージェント タスクで、低 レイテンシと低コストで高品質を実現できるようになりました。
  • 一般提供リリース: 大規模な本番環境での使用に対応した安定版モデル。

適切な Flash モデルを選択する

Gemini 3.5 Flash は、最もインテリジェントで高性能な Flash モデルです。ただし、ユースケースによって費用とレイテンシの要件が異なる場合があります。

  • Gemini 3.1 Flash-Lite: 3.5 Flash の高度な推論の深さを必要としない、低コストで 大量のタスクには、Gemini 3.1 Flash-Liteを使用することをおすすめします。 効率性を重視して最適化された、安定した長期的なモデルです。詳細については、 Flash-Lite デベロッパー ガイド をご覧ください。
  • Gemini 3 Flash プレビュー版: 一般提供の安定性と推論の改善のために 3.5 Flash への移行をおすすめしますが、Gemini 3 Flash(プレビュー版)も引き続きご利用いただけます。

動作の変更点

新しいデフォルトの労力レベル: medium

デフォルトの思考労力が、Gemini 3 Flash プレビュー版の high から medium に変更されました。medium は、幅広いタスクで非常に優れた結果が得られ、高速で費用対効果が高くなります。複雑な問題の場合、high を使用すると、モデルがより深く思考するようになります。

労力レベル 使用する場面
minimal レスポンス速度を重視して最適化されています。チャットのようなユースケース、事実に基づく迅速な回答、シンプルなツール呼び出し。
low 低レイテンシと少ないステップ数を必要とするコードとエージェント タスク。ある程度の思考を必要とする分析タスクや書き込みタスクにも適しています。
medium(デフォルト) ほとんどのタスクで最高の品質を実現します。複雑なコードとエージェントのユースケースにおすすめします。
high モデルの思考能力とツール使用能力を最大限に高めます。複雑な推論、難しい数学、最も難しいコードやエージェント タスクに最適です。思考と関数呼び出しを拡張できます。

デフォルトをオーバーライドするには、構成で thinking_level を設定します。

Python

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Prove that the square root of 2 is irrational.",
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(thinking_level="high")
    ),
)

print(response.text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-3.5-flash",
    contents: "Prove that the square root of 2 is irrational.",
    config: {
      thinkingConfig: {
        thinkingLevel: "HIGH",
      },
    },
  });
  console.log(response.text);
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [{
      "parts": [{"text": "Prove that the square root of 2 is irrational."}]
    }],
    "generationConfig": {
      "thinkingConfig": {
        "thinkingLevel": "HIGH"
      }
    }
  }'

次の表に、モデルごとにサポートされている思考レベルを示します。

思考レベル Gemini 3.5 Flash Gemini 3.1 Pro Gemini 3.1 Flash-Lite Gemini 3 Flash 説明
minimal サポート対象 サポート対象外 サポート対象(デフォルト) サポート対象 ほとんどのクエリで「思考なし」の設定と一致します。なお、minimal は思考がオフになっていることを保証するものではありません。複雑なタスクでは、モデルが非常に最小限の推論を行うことがあります。
low サポート対象 サポート対象 サポート対象 サポート対象 レイテンシと費用を最小限に抑えます。
medium サポート対象(デフォルト) サポート対象 サポート対象 サポート対象 ほとんどのタスクでバランスの取れた思考。
high サポート対象(動的) サポート対象(デフォルト、動的) サポート対象(動的) サポート対象(デフォルト、動的) 推論の深さを最大化します。

思考の保持

モデルは、マルチターンの会話全体で中間推論を自動的に保持します。会話履歴に推論コンテキストが存在する場合、推論コンテキストは引き継がれるため、反復デバッグやコード リファクタリングなどの複雑な複数ステップのタスクのパフォーマンスが向上します。API の変更は必要ありません。

  • Interactions API: 思考は自動的に保持されます。動作に変更はありません。
  • GenerateContent API: Gemini 3.5 Flash 以降では、会話履歴に思考シグネチャが存在する場合、モデルは以前のすべてのターンの 推論コンテキストを使用します。これを有効にするには、変更されていない完全な会話履歴(思考シグネチャを含む)を contents に渡します。SDK が自動的に処理します。

Gemini 3.x のパラメータの更新とベスト プラクティス

以下は、Gemini 3.5 Flash を含む すべての Gemini 3.x モデル に適用されます。

  • temperaturetop_ptop_k: デフォルト値を変更しないことを強くおすすめします。Gemini 3 の推論機能は、デフォルト設定に最適化されています。
  • thinking_budget ではなく thinking_level を使用します。
  • 関数呼び出しレスポンスのマッチング: idname、レスポンス数 は、前の呼び出しと一致する必要があります。
  • マルチモーダル関数レスポンス: マルチモーダル コンテンツを 関数レスポンスの外部ではなく内部に含めます。
  • 関数レスポンスのインライン指示: 個別の部分としてではなく、関数 レスポンス テキストに追加します。
  • 不要なツール呼び出しを減らす: 思考レベルを下げるか、 システム指示を試して、エージェント ワークフローでのツール呼び出しを減らします。

コードを更新する方法については、以下のセクションをご覧ください。

サンプリング パラメータ(非推奨)

temperaturetop_ptop_k は、すべての Gemini 3.x モデルで非推奨になりました。Gemini 3 の推論機能は、デフォルト設定に最適化されています。すべてのリクエストからこれらのパラメータを削除してください。

# ⚠️ Remove these parameters (not recommended)
config = types.GenerateContentConfig(
    temperature=0.7,
    top_p=0.9,
    top_k=40
)

決定論を確保するため、特定のユースケースに明示的なルールを含むシステム指示を定義することをおすすめします。

thinking_budget(非推奨)

生の数値 thinking_budget パラメータは、すべての Gemini 3.x モデルで非推奨になりました。代わりに thinking_level 文字列列挙型を使用してください。

# ⚠️ Before (not recommended)
config = types.GenerateContentConfig(
    thinking_config=types.ThinkingConfig(thinking_budget=7500)
)

# ✅ After
config = types.GenerateContentConfig(
    thinking_config=types.ThinkingConfig(thinking_level="medium")
)

使用可能な値: minimallowmedium(デフォルト)、high

関数呼び出し: 厳密なレスポンス マッチング

Interactions API では、一致しない関数レスポンスに対してすでにエラーが発生しています。GenerateContent API ではまだエラーは発生しませんが、レスポンスが一致しない場合、ほとんどの場合、モデルは finish_reason: STOP の空のレスポンスを返します。常に次の規則に従ってください。

要件 詳細
id を含める すべての FunctionResponse に、対応する FunctionCallid を含める必要があります。
name を一致させる レスポンスの name は、呼び出しの name と一致する必要があります。
一致数 受信した FunctionCall ごとに 1 つの FunctionResponse を返します。

Python

# ✅ Include matching id and name in the function response
final_response = client.models.generate_content(
    model="gemini-3.5-flash",
    config=config,
    contents=[
        *previous_contents,
        response.candidates[0].content,
        types.Content(role="user", parts=[
            types.Part.from_function_response(
                name=tool_call.name,
                response={"result": result},
                id=tool_call.id,
            )
        ]),
    ],
)

JavaScript

// ✅ Include matching id and name in the function response
const functionResponsePart = {
  functionResponse: {
    name: toolCall.name,
    response: { result: result },
    id: toolCall.id,
  },
};

const finalResponse = await ai.models.generateContent({
  model: "gemini-3.5-flash",
  contents: [
    ...previousContents,
    { role: "model", parts: [{ functionCall: toolCall }] },
    { role: "user", parts: [functionResponsePart] },
  ],
  config: config,
});

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [
      {"role": "user", "parts": [{"text": "..."}]},
      {"role": "model", "parts": [{"functionCall": {"name": "my_function", "args": {...}}}]},
      {"role": "user", "parts": [{"functionResponse": {"name": "my_function", "id": "call_id", "response": {"result": "..."}}}]}
    ]
  }'

マルチモーダル関数レスポンス

クライアントが関数レスポンスの外部に画像を提供することがよくあります。これにより、予期しないモデルの動作(思考の漏洩など)が発生し、出力の品質が低下する可能性があります。代わりに、 マルチモーダル関数レスポンス API ドキュメント の推奨事項に従って、 モデルに送信する関数レスポンス部分にマルチモーダル コンテンツを含めます。モデルは、次のターンでこのマルチモーダル コンテンツを処理して、より多くの情報に基づいたレスポンスを生成できます。

Python

# ✅ Include multimodal content in the function response
final_response = client.models.generate_content(
    model="gemini-3.5-flash",
    config=config,
    contents=[
        *previous_contents,
        response.candidates[0].content,
        types.Content(role="user", parts=[
            types.Part.from_function_response(
                name=tool_call.name,
                response={
                    "result": "instrument.jpg",
                    "image": base64_image_data,
                },
                id=tool_call.id,
            )
        ]),
    ],
)

JavaScript

// ✅ Include multimodal content in the function response
const finalResponse = await ai.models.generateContent({
  model: "gemini-3.5-flash",
  contents: [
    ...previousContents,
    { role: "model", parts: [{ functionCall: toolCall }] },
    {
      role: "user",
      parts: [{
        functionResponse: {
          name: toolCall.name,
          id: toolCall.id,
          response: {
            result: "instrument.jpg",
            image: base64ImageData,
          },
        },
      }],
    },
  ],
  config: config,
});

関数レスポンスのインライン指示

クライアントが、関数レスポンスとともに、後続の Parts として追加の指示を提供することがよくあります。これにより、予期しないモデルの動作(思考の漏洩など)が発生し、出力の品質が低下する可能性があります。代わりに、追加の指示を関数レスポンス テキストの末尾に 2 つの改行で区切って追加します。個別の部分として追加しないでください。

Python

# ✅ Append inline instructions to the end of the function response separated by two newlines
result_text = f"{json.dumps(result)}\n\n<your inline instructions>"

final_response = client.models.generate_content(
    model="gemini-3.5-flash",
    config=config,
    contents=[
        *previous_contents,
        response.candidates[0].content,
        types.Content(role="user", parts=[
            types.Part.from_function_response(
                name=tool_call.name,
                response={"result": result_text},
                id=tool_call.id,
            )
        ]),
    ],
)

JavaScript

// ✅ Append inline instructions to the end of the function response separated by two newlines
const resultText = `${JSON.stringify(result)}\n\n<your inline instructions>`;

const finalResponse = await ai.models.generateContent({
  model: "gemini-3.5-flash",
  contents: [
    ...previousContents,
    { role: "model", parts: [{ functionCall: toolCall }] },
    {
      role: "user",
      parts: [{
        functionResponse: {
          name: toolCall.name,
          id: toolCall.id,
          response: { result: resultText },
        },
      }],
    },
  ],
  config: config,
});

不要なツール呼び出しを減らす

ツール呼び出しが過剰に使用されている場合は、次の 2 つの方法で最小限に抑えることができます。

  1. まず、思考レベルを下げますmediumlowminimal)。思考レベルが高いほど、モデルは探索と検証に多くのツールを使用するため、レベルを下げることでツール呼び出しを減らすことができます。

  2. システム指示を追加する: 思考レベルを調整しても過剰な使用が続く場合は、ツールの使用を制限するプロンプトを検討してください。次に例を示します。

    You have a limited action budget of <n> tool calls. Use them efficiently.
    

移行チェックリスト

Gemini 3 Flash プレビュー版から移行する

  • モデル名を更新する: gemini-3-flash-previewgemini-3.5-flash
  • 料金を確認する。Gemini 3.5 Flash は、Gemini 3 Flash プレビュー版よりも高価です。ユースケースで費用が重視される場合は、代わりに Gemini 3.1 Flash-Lite への移行を検討してください。詳細については、料金ページをご覧ください。
  • 構成から temperaturetop_ptop_k を削除します(非推奨)。
  • thinking_budgetthinking_level に置き換えます。
  • すべての FunctionResponse 部分に id と一致する name を追加します。
  • プロンプトをテストします。デフォルトの労力が highmedium に変更されました。品質、速度、費用を確認してください。
  • 思考の保持がデフォルトでオンになりました。推論コンテキストはターン間で引き継がれるため、パフォーマンスは向上しますが、トークンの使用量が増加する可能性があります。
  • 不要なツール呼び出しを減らす: まず、思考レベル(mediumlowminimal)を下げます。過剰な使用が続く場合は、ツールの使用を制限するシステム指示を追加します。
  • コンピュータの操作は、現時点では Gemini 3.5 Flash でサポートされていません。コンピュータの操作ワークロードの場合は、Gemini 3 Flash プレビュー版を引き続き使用してください。

Gemini 2.5 から移行する

上記のすべてに加えて、次の操作を行います。

  • プロンプトを簡素化します。思考連鎖プロンプト エンジニアリングを使用して 推論を強制していた場合は、代わりにシンプルなプロンプト で thinking_level: "medium" または "high" を試してください。
  • PDF とメディアのワークロードをテストします。高密度ドキュメントの解析で特定の動作に依存していた場合は、新しい media_resolution_high 設定をテストして、精度が維持されることを確認してください。Gemini 3 のデフォルトに移行すると、PDF のトークン使用量が増加する可能性がありますが、動画のトークン使用量は減少する可能性があります。リクエストがコンテキスト ウィンドウを超える場合は、media_resolution を明示的に減らしてください。詳細については、 メディアの解像度に関するドキュメントをご覧ください。
  • ツールの組み合わせを活用します。 Google 検索、URL コンテキスト、コード実行、カスタム関数は、同じリクエストで使用できます。
  • マルチモーダル関数レスポンスを使用する場合は、マルチモーダル コンテンツを関数レスポンス部分の横ではなく内部に移動します。
  • 関数レスポンスでインライン指示を使用する場合は、個別の部分としてではなく、2 つの改行で区切って関数レスポンス テキストに追加します。
  • Gemini 3.x では画像セグメンテーションはサポートされていません。セグメンテーション ワークロードの場合は、思考をオフにした Gemini 2.5 Flash または Gemini Robotics-ER 1.6 を引き続き使用してください。

Gemini 3 ファミリーの機能

Gemini 3.5 Flash は、コンピュータの操作を除くすべての Gemini 3 ファミリーの機能を継承しています。 Gemini 3 で導入され、引き継がれた機能は次のとおりです。

  • 思考: API 呼び出し全体で保持される暗号化された 推論コンテキスト。Interactions API では自動的に行われ、GenerateContent では暗黙的に行われます。
  • ツールを使用した構造化出力: JSON モードと 組み込みツール(検索、URL コンテキスト、コード実行、関数呼び出し)を組み合わせます。
  • マルチモーダル関数レスポンス: 関数呼び出しの結果で 画像、音声、その他のメディアを返します。
  • 画像を使用したコード実行: 画像を 処理して生成するコードを実行します。
  • **ツールの組み合わせ**: 同じリクエストで組み込みツールと カスタム関数呼び出しを使用します。
  • メディアの解像度: 画像、動画、PDF 入力のトークン割り当てを細かく制御します。 Gemini 3 モデルは、混合忠実度プロンプトのコンテンツ アイテムごとの解像度設定(low, medium, high, ultra_high)をサポートしています。
  • 思考シグネチャ: モデルの内部推論を暗号化したもの。マルチターンの関数呼び出しに必要です。公式 SDK によって自動的に管理されます。

プロンプトのベスト プラクティス

Gemini 3.x モデルは推論モデルであるため、プロンプトの作成方法が変わります。

  • 正確な指示: 簡潔にしてください。Gemini 3.x は、明確で直接的な指示に最適に応答します。古いモデル向けに設計された冗長または複雑なプロンプト エンジニアリング手法では、モデルが過剰に分析する可能性があります。
  • 出力の冗長性: デフォルトでは、Gemini 3.x は冗長性が低く、直接的で効率的な回答を好みます。ユースケースで会話調のトーンが必要な場合は、プロンプトでモデルを明示的に誘導します(例: 「親しみやすく、おしゃべりなアシスタントとして説明してください」)。
  • コンテキスト管理: 大規模なデータセット(書籍全体、コードベース、長い動画など)を扱う場合は、データ コンテキストの後に、プロンプトの末尾に具体的な指示や質問を配置します。「上記の情報を基に...」などのフレーズで質問を開始して、モデルの推論を固定します。

プロンプト設計戦略の詳細については、 プロンプト エンジニアリング ガイドをご覧ください。

制限事項

  • Gemini 3.x では画像セグメンテーションはサポートされていません。セグメンテーション ワークロードの場合は、思考をオフにした Gemini 2.5 Flash または Gemini Robotics-ER 1.6 を引き続き使用してください。

よくある質問

  1. Gemini 3.5 Flash のナレッジ カットオフはいつですか?Gemini 3.5 Flash のナレッジ カットオフは 2025 年 1 月です。最新情報については、 Search Grounding ツールを使用してください。

  2. コンテキスト ウィンドウの上限はどのくらいですか?Gemini 3.5 Flash は、100 万トークンの入力コンテキスト ウィンドウと最大 65,000 トークンの出力トークンをサポートしています。

  3. 古い thinking_budget コードは引き続き機能しますか?はい。下位互換性のために thinking_budget は引き続きサポートされていますが、より予測可能なパフォーマンスを実現するために thinking_level に移行することをおすすめします。同じリクエストで両方を使用しないでください。

  4. Gemini 3.5 Flash は Batch API をサポートしていますか?はい。詳細については、 Batch API ガイドをご覧ください。

  5. コンテキスト キャッシュ保存はサポートされていますか?はい。 コンテキスト キャッシュ保存はサポートされています。

  6. どのツールがサポートされていますか?Gemini 3.5 Flash は、 Google 検索Google マップによるグラウンディングファイル検索コード実行URL コンテキスト、および 標準の関数呼び出しツールの組み合わせを含む)をサポートしています。コンピュータの操作サポートされていません (Gemini 3.5 Flash)。

次のステップ