Entwicklerleitfaden für Gemini 3.6 Flash

Gemini 3.6 Flash ist ein schnelles, kostengünstiges und leistungsstarkes Modell der Gemini 3-Familie. Es bietet nahezu die agentischen Funktionen von Gemini Pro, ohne Abstriche bei Leistung oder Wert. Das Modell ist jetzt allgemein verfügbar (GA) für Entwickler, die die Gemini API verwenden, und für Unternehmen, die die Gemini Enterprise Agent Platformnutzen.

In diesem Dokument erfahren Sie, was es Neues bei Gemini 3.6 Flash gibt, wie es in die Gemini-Modellfamilie passt und wie Sie zu Gemini 3.6 Flash migrieren. Außerdem finden Sie eine Kurzanleitung zur Verwendung von Gemini 3.6 Flash.

Wie passt es in die Gemini-Familie?

Gemini 3.6 Flash ist das wichtigste agentische Modell der Gemini 3-Familie. Es schließt die Lücke zwischen den Pro-Modellen mit umfassenden Schlussfolgerungen und den Flash-Lite-Modellen mit hohem Durchsatz. Im Vergleich zu Gemini 3.5 Flash bietet Gemini 3.6 Flash eine deutlich höhere Qualität bei der mehrstufigen Tool-Orchestrierung, dem Full-Stack-Code-Refactoring und der visuellen Schlussfolgerung, während weniger Tokens und Schlussfolgerungsschritte verwendet werden. Es bietet nahezu die Funktionen von Gemini Pro mit der Geschwindigkeit und den Preisen von Gemini Flash.

Modellspezifikationen und Vergleiche

In der folgenden Tabelle werden einige der Spezifikationen von Gemini 3.6 Flash, Gemini 3.5 Flash und Gemini 3.1 Pro verglichen:

Gemini 3.6 Flash Gemini 3.5 Flash Gemini 3.1 Pro
Modell-ID gemini-3.6-flash gemini-3.5-flash gemini-3.1-pro-preview
Startphase AV GA Vorschau
Eingabetypen Text, Bild, Audio, Video Text, Bild, Audio, Video Text, Bild, Audio, Video
Ausgabetyp(en) Text Text Text
Verlaufszeitraum 1.048.576 1.048.576 1.048.576
Maximale Ausgabetokenlänge 65.536 65.536 65.536
Unterstützte Regionen Global, Multiregion Global, mehrere Regionen, Amerika, Europa, Asien-Pazifik Global
Unterstützte Denkaufwände MINIMAL, LOW, MEDIUM, HIGH
(Standard: MEDIUM)
MINIMAL, LOW, MEDIUM, HIGH
(Standard: MEDIUM)
LOW, MEDIUM, HIGH
(Standard: HIGH)
Schwerpunkt Hocheffiziente agentische Workflows, mehrstufige Orchestrierung und Full-Stack-Programmierung Ausgewogene Aufgaben, Toolaufrufe und Zwischenschlüsse Umfassende Schlussfolgerungen, hochkomplexe Aufgaben

Auf der Modellseite zu Gemini 3.6 Flash finden Sie eine vollständige Liste der unterstützten Funktionen, Tools und Nutzungsoptionen.

Neuerungen in Gemini 3.6 Flash

Gemini 3.6 Flash ist für die mehrstufige Orchestrierung, das Full-Stack-Code-Refactoring und allgemeine Schlussfolgerungen optimiert und bietet eine deutlich bessere Token-Effizienz als seine Vorgänger.

Funktionen und Leistungsverbesserungen

Im Folgenden finden Sie eine Liste der Änderungen bei den Funktionen und der Leistung von Gemini 3.6 Flash im Vergleich zu den Vorgängermodellen:

  • Weniger Tokens und Schritte: Es werden weniger Tokens verbraucht und mehrstufige Workflows in weniger Schlussfolgerungsschritten und Unterhaltungsschritten abgeschlossen als bei Gemini 3.5 Flash.
  • Verbesserte Codeerstellung: Es wird saubererer Code mit weniger Kompilierungsfehlern und Überarbeitungen in den Bereichen App-Entwicklung, Prototyping, und IDE-Agenten erstellt.
  • Weniger Aktionsbias: Löst Diagnoseaufgaben mit Lesezugriff, ohne unerwünschte Änderungen am Arbeitsbereich vorzunehmen oder den Status vorzeitig zu ändern.
  • Multimodale und räumliche Schlussfolgerungen: Die Leistung bei der Diagramm interpretation, der visuellen Blueprint-Konvertierung und der Web-Layout-Generierung mit mehreren Elementen wurde verbessert.
  • Unterstützung für die Computernutzung: Wird als integriertes Tool für die agentische UI Automatisierung unterstützt.
  • UI-Stilpräferenz: Es kann besser funktionaler Code erstellt werden. Menschliche Tester bevorzugten jedoch die vorherigen Modelle für die Frontend-Präsentation und das visuelle Layout. Dies kann durch die Bereitstellung expliziter Designrichtlinien gemildert werden.

Änderungen bei Verhaltensweisen und API-Parametern

Im Folgenden finden Sie eine Liste der Änderungen bei Verhaltensweisen und API-Parametern von Gemini 3.6 Flash im Vergleich zu den Vorgängermodellen:

  • Kürzere Schritte: Es werden weniger Schlussfolgerungsschritte als bei Gemini 3.5 Flash verwendet. Dadurch werden Latenz und Kosten für Code-Refactoring und Tool-Workflows reduziert. Bei längeren Unterhaltungen mit mehreren Schritten kann es jedoch zu vorzeitigen Ausstiegen kommen, wenn längere Iterationsketten erforderlich sind.
  • Vorab-Programmanalyse: Es werden häufiger Diagnose-Codeskripts (execute_code) ausgeführt, um Probleme zu untersuchen, bevor der Status geändert wird, als bei Gemini 3.5 Flash. Dadurch wird die Diagnosegenauigkeit bei komplexen Backend-Refaktorierungen verbessert. Gelegentlich kann es jedoch zu zusätzlichen explorativen Inspektionsschritten bei einfachen Frontend-Web- und Skripting-Aufgaben kommen, bei denen die vorherige Version direkt Code generiert hätte.
  • Standardaufwand: Die in Gemini 3.5 Flash eingeführte Standardstufe „Mittel“ wird beibehalten.
  • Keine Überschreibungen der Stichprobenerhebung: Benutzerdefinierte Werte für temperature, top-k, oder top-p Parameter werden nicht mehr unterstützt. Das Festlegen benutzerdefinierter Werte wird in der API-Oberfläche ignoriert. Verwenden Sie stattdessen thinking_level oder strukturierte JSON-Schemas, um den Determinismus der Ausgabe zu steuern.
  • Einschränkungen für Häufigkeits- und Präsenzstrafen: Benutzerdefinierte Werte für diese Parameter werden nicht mehr unterstützt. Wenn Sie sie festlegen, wird jetzt ein aktiver API-Fehler ausgelöst.
  • API-Anfragen, bei denen der letzte Eingabeschritt die Rolle „Modell“ hat, werden nicht unterstützt.
  • Leere Schritte im Unterhaltungsverlauf werden entfernt.
  • Ungültige Gedanken-Signaturen führen jetzt zu Fehlern.
  • Strikter Funktionsaufruf: FunctionResponse muss genau mit der id, dem name und der Anzahl der Ausführungen des vorherigen FunctionCall übereinstimmen. Fügen Sie Inline-Anweisungen direkt in den Text der Funktionsantwort ein, getrennt durch zwei Zeilenumbrüche (\n\n).

Kurzanleitung

Bevor Sie beginnen, müssen Sie sich mit den Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) oder einem API-Schlüssel bei der Agent Platform authentifizieren. Weitere Informationen finden Sie unter Erste Schritte mit der Gemini Enterprise Agent Platform.

Ersetzen Sie in den folgenden Codeblöcken PROJECT_ID durch Ihre Projekt-ID.

Installation

Achten Sie darauf, dass Sie das neueste google-genai SDK verwenden:

pip install --upgrade google-genai

Einfache Anfrage

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?" },
  },
}'

Von Gemini 3.5 Flash oder Gemini 3.1 Pro zu Gemini 3.6 Flash migrieren

So migrieren Sie von Gemini 3.5 Flash oder Gemini 3.1 Pro zu Gemini 3.6 Flash:

  1. Modell-ID aktualisieren: Ändern Sie die Modellstring in Ihren API-Aufrufen in gemini-3.6-flash.
  2. Code an die neuen API-Regeln der Gemini 3-Familie anpassen: Gemini 3.6 Flash erzwingt die Parameterregeln und API Konventionen, die für die Gemini 3-Familie festgelegt wurden:
    • Temperatur, Top‑K und Top‑P entfernen: Entfernen Sie diese benutzerdefinierten Parameter aus Ihrer Nutzlast. Es wird zwar kein Fehler ausgelöst, aber das Modell ignoriert sie vollständig. Verwenden Sie stattdessen den Parameter thinking_level oder strukturierte Ausgaben vom Typ json_schema, um den Determinismus der Ausgabe zu steuern.
    • Häufigkeits- und Präsenzstrafen entfernen: Entfernen Sie alle benutzerdefinierten Konfigurationen für Häufigkeits- oder Präsenzstrafen, um zu verhindern, dass bei Ihren API Aufrufen Laufzeitfehler ausgelöst werden.
    • Achten Sie darauf, dass Ihre Chatintegration keine Modellvorabfüllung versucht: Prüfen Sie Ihre Nachrichtenverlaufs-Arrays, um sicherzustellen, dass Ihre API-Nutzlast nicht mit einem leeren Nutzerschritt oder Modellschritt endet. Wenn das letzte Objekt in Ihrem Verlaufs-Array die Rolle "model" (GenerateContent API) oder den Typ "model_output" (Interactions API) hat, strukturieren Sie die Sequenz neu, um zu verhindern, dass ein Fehler bei der strikten Validierung ausgelöst wird.
    • Verwenden Sie thinking_level: Entfernen Sie Instanzen des verworfenen thinking_budget Parameters und verwenden Sie stattdessen thinking_level.
    • Strikte Konventionen für Funktionsaufrufe erzwingen: Die FunctionResponse muss genau mit der id, name und der Anzahl der Ausführungen des vorhergehenden FunctionCall übereinstimmen. Wenn Sie Inline-Anweisungen anhängen müssen, fügen Sie sie direkt in den Text der Funktionsantwort ein, getrennt durch zwei Zeilenumbrüche (\n\n).
  3. Workflow-Änderungen berücksichtigen:
    • Wenn Ihre Anwendung auf Unterhaltungsschleifen mit mehreren Schritten basiert, testen Sie Ihre Workflows, um sicherzustellen, dass die neue Kürze der Schritte des Modells nicht zu vorzeitigen Ausstiegen führt.
    • Wenn Sie Frontend- oder einfache Skripting-Agenten erstellen, achten Sie auf unnötige explorative execute_code-Aufrufe, die durch die neue Vorliebe des Modells für die Vorab-Programmanalyse verursacht werden.

Behelfslösungen für Textanforderungen vor dem Tool

Wenn Ihr Prompt erfordert, dass das Modell unmittelbar vor einem Toolaufruf strukturierten Text (XLM, YAML, JSON, usw.) ausgibt (z. B. <UPDATE>...</UPDATE>), kann der Toolaufruf gelegentlich mit einem Malformed_Function_Call Fehler fehlschlagen. Sie können das Problem mit einer der folgenden Behelfslösungen beheben:

  • (Empfohlen) Weisen Sie das Modell an, seine Notizen vor dem Tool in einen dedizierten update()-Funktionsaufruf anstelle von Rohtext zu setzen. Eine detaillierte Anleitung zur Implementierung finden Sie im nächsten Abschnitt.
  • Weisen Sie das Modell an, Notizen als Markdown-Überschriften (z. B. # UPDATE, ## PLAN) anstelle von strukturiertem Text zu schreiben.
  • Fordern Sie nicht, dass das Modell vor Toolaufrufen Text ausgibt.

Empfohlene Lösung: Arbeitsnotizen in einen dedizierten Funktionsaufruf einfügen

Anstelle der ursprünglichen Anweisung:

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>`.

Verwenden Sie diese aktualisierte Anweisung:

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

Aktualisieren Sie alle Verweise auf das alte <UPDATE>-XML-Format in der Kundenanfrage. Fügen Sie dann die entsprechende Funktionsdeklaration für die Update-Funktion hinzu:

{
  "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"
    ]
  }
}

Das Modell führt im selben Schritt zwei Aufrufe aus: den update()-Aufruf, der das strukturierte XML ersetzt, und den eigentlichen Funktionsaufruf.

Zusätzliche Ressourcen