Co nowego w Gemini 3.5 Flash

Model Gemini 3.5 Flash jest ogólnie dostępny (GA), stabilny i gotowy do użycia w środowisku produkcyjnym na dużą skalę. Jako nasz najbardziej inteligentny model Flash zapewnia stałą, najwyższą wydajność w zakresie wykonywania zadań agentowych, kodowania i długoterminowych zadań na dużą skalę.

Ten przewodnik zawiera omówienie ulepszeń, zmian w interfejsie API i wskazówki dotyczące migracji do Gemini 3.5 Flash.

Nowy model

Model Identyfikator modelu Opis
Gemini 3.5 Flash gemini-3.5-flash Nasz najbardziej inteligentny model, który zapewnia stałą, najwyższą wydajność w zakresie zadań agentowych i kodowania.

Model Gemini 3.5 Flash obsługuje okno kontekstu o wielkości 1 mln tokenów, maksymalnie 65 tys. tokenów wyjściowych, myślenie oraz ten sam zestaw narzędzi i funkcji platformy co Gemini 3 Flash. Korzystanie z komputera nie jest obecnie obsługiwane.

Pełne specyfikacje znajdziesz w omówieniu modeli. Cennik znajdziesz na tej stronie.

Krótkie wprowadzenie

Wszystkie przykłady w tym przewodniku korzystają z interfejsu Interactions API. Obsługiwany jest też interfejs GenerateContent API. Obowiązują te same opcje konfiguracji i zalecenia.

Python

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3.5-flash",
    input="Explain how parallel agentic execution works in three sentences."
)
print(interaction.output_text)

JavaScript

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

const client = new GoogleGenAI({});

async function main() {
  const interaction = await client.interactions.create({
    model: "gemini-3.5-flash",
    input: "Explain how parallel agentic execution works in three sentences.",
  });
  console.log(interaction.output_text);
}

main();

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -H "Api-Revision: 2026-05-20" \
  -d '{
    "model": "gemini-3.5-flash",
    "input": "Explain how parallel agentic execution works in three sentences."
  }'

Nowości

  • Stała, najwyższa wydajność: nasz najbardziej inteligentny model Flash, zoptymalizowany pod kątem zadań agentowych i kodowania na dużą skalę.
  • Wykonywanie zadań agentowych: wdrażanie sub-agentów, rozwiązywanie problemów i szybkie pętle agentowe na dużą skalę.
  • Kodowanie: iteracyjne cykle kodowania, szybkie eksplorowanie i prototypowanie w celu testowania alternatywnych ścieżek i dynamicznego eksplorowania rozwiązań.
  • Długi horyzont: wieloetapowe przepływy pracy i korzystanie z narzędzi na dużą skalę.
  • Zachowywanie myśli: model automatycznie zachowuje pośrednie rozumowanie w rozmowach wieloetapowych. Nie trzeba wprowadzać żadnych zmian w interfejsie API.
  • Nowy domyślny poziom wysiłku: domyślny poziom wysiłku myślenia został zmieniony z high na medium. Więcej informacji znajdziesz w sekcji Nowy domyślny poziom wysiłku.
  • Ulepszone myślenie na poziomie low: poziom low został znacznie ulepszony w przypadku zadań związanych z kodem i agentami, które wymagają mniejszej liczby kroków. Zapewnia wysoką jakość przy niższych opóźnieniach i kosztach.
  • Wersja GA: stabilny model do użycia w środowisku produkcyjnym na dużą skalę.

Zmiany w działaniu

Nowy domyślny poziom wysiłku: medium

Domyślny poziom wysiłku myślenia to teraz medium, a nie high jak w wersji testowej Gemini 3 Flash. Poziom medium zapewnia bardzo dobre wyniki w przypadku wielu zadań, a jednocześnie jest szybszy i bardziej opłacalny. W przypadku złożonych problemów poziom high zachęca model do głębszego myślenia.

Poziom wysiłku Kiedy używać
minimal Zoptymalizowany pod kątem szybkości odpowiedzi. Przypadki użycia podobne do czatu, szybkie odpowiedzi na pytania, prostsze wywołania narzędzi.
low Zadania związane z kodem i agentami, które wymagają mniejszych opóźnień i mniejszej liczby kroków. Sprawdza się też w przypadku zadań związanych z analizą i pisaniem, które wymagają pewnego myślenia.
medium (domyślny) Najlepsza jakość w przypadku większości zadań. Zalecany w przypadku złożonych zadań związanych z kodem i agentami.
high Maksymalizuje zdolność modelu do myślenia i korzystania z narzędzi. Najlepszy w przypadku złożonego rozumowania, trudnych obliczeń matematycznych oraz najtrudniejszych zadań związanych z kodem lub agentami. Umożliwia dłuższe myślenie i wywoływanie funkcji.

Aby zastąpić wartość domyślną, ustaw thinking_level w konfiguracji:

Python

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3.5-flash",
    input="Prove that the square root of 2 is irrational.",
    generation_config={"thinking_level": "high"},
)
print(interaction.output_text)

JavaScript

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

const client = new GoogleGenAI({});

async function main() {
  const interaction = await client.interactions.create({
    model: "gemini-3.5-flash",
    input: "Prove that the square root of 2 is irrational.",
    generationConfig: { thinkingLevel: "high" },
  });
  console.log(interaction.output_text);
}

main();

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -H "Api-Revision: 2026-05-20" \
  -d '{
    "model": "gemini-3.5-flash",
    "input": "Prove that the square root of 2 is irrational.",
    "generation_config": {"thinking_level": "high"}
  }'

Zachowywanie myśli

Model automatycznie zachowuje pośrednie rozumowanie w rozmowach wieloetapowych. Jeśli w historii rozmów znajduje się kontekst rozumowania, jest on przenoszony dalej, co poprawia skuteczność w przypadku złożonych zadań wieloetapowych, takich jak iteracyjne debugowanie i refaktoryzacja kodu. Nie trzeba wprowadzać żadnych zmian w interfejsie API:

  • Interfejs Interactions API: myśli są już zachowywane automatycznie. Brak zmian w działaniu.
  • Interfejs GenerateContent API: począwszy od Gemini 3.5 Flash, model używa kontekstu rozumowania ze wszystkich poprzednich etapów, gdy w historii rozmów znajdują się sygnatury myśli. Aby to włączyć, przekaż pełną, niezmodyfikowaną historię rozmów (w tym sygnatury myśli) w parametrze contents. Pakiety SDK robią to automatycznie.

Aktualizacje parametrów i sprawdzone metody w Gemini 3.x

Poniższe informacje dotyczą wszystkich modeli Gemini 3.x, w tym Gemini 3.5 Flash.

  • temperature, top_p, top_k: zdecydowanie zalecamy, aby nie zmieniać wartości domyślnych. Możliwości wnioskowania Gemini 3 są zoptymalizowane pod kątem ustawień domyślnych.
  • Zamiast thinking_budget używaj thinking_level.
  • Dopasowywanie odpowiedzi wywoływania funkcji: id, name i liczba odpowiedzi muszą być zgodne z poprzednimi wywołaniami.
  • Odpowiedzi funkcji multimodalnych: treści multimodalne umieszczaj w odpowiedzi funkcji, a nie poza nią.
  • Instrukcje wbudowane w odpowiedzi funkcji: dołączaj je do tekstu odpowiedzi funkcji, a nie jako osobne części.
  • Ograniczanie zbędnych wywołań narzędzi: używaj niższych poziomów myślenia lub eksperymentuj z instrukcjami systemowymi, aby ograniczyć wywoływanie narzędzi w przepływach pracy agentów.

W sekcjach poniżej znajdziesz informacje o tym, jak zaktualizować kod.

Parametry próbkowania (nie są już zalecane)

Parametry temperature, top_p i top_k nie są już zalecane w przypadku wszystkich modeli Gemini 3.x. Możliwości rozumowania Gemini 3 są zoptymalizowane pod kątem ustawień domyślnych. Usuń te parametry ze wszystkich żądań.

# ⚠️ Remove these parameters (not recommended)
generation_config = {
    "temperature": 0.7,
    "top_p": 0.9,
    "top_k": 40,
}

Aby zapewnić determinizm, zalecamy zdefiniowanie instrukcji systemowej z wyraźnymi regułami dotyczącymi konkretnego przypadku użycia.

thinking_budget (nie jest już zalecany)

Parametr thinking_budget w postaci surowej liczby nie jest już zalecany w przypadku wszystkich modeli Gemini 3.x. Zamiast niego używaj wyliczenia ciągu znaków thinking_level.

# ⚠️ Before (not recommended)
generation_config = {
    "thinking": {"thinking_budget": 7500},
}

# ✅ After
generation_config = {
    "thinking": {"thinking_level": "medium"},
}

Dostępne wartości: minimal, low, medium (domyślna) i high.

Wywoływanie funkcji: ścisłe dopasowywanie odpowiedzi

Interfejs Interactions API już zgłasza błędy w przypadku niezgodnych odpowiedzi funkcji. Interfejs GenerateContent API jeszcze nie zgłasza błędów, ale w większości przypadków niezgodne odpowiedzi powodują, że model zwraca puste odpowiedzi z parametrem finish_reason: STOP. Zawsze przestrzegaj tych konwencji:

Wymaganie Szczegóły
Dodaj id Każda FunctionResponse musi zawierać id z odpowiedniego FunctionCall
Dopasuj name Wartość name w odpowiedzi musi być zgodna z wartością name w wywołaniu
Dopasuj liczby Dla każdego otrzymanego FunctionCall zwróć dokładnie 1 FunctionResponse

Python

# ✅ Include matching call_id and name in the function_result
final_interaction = client.interactions.create(
    model="gemini-3.5-flash",
    previous_interaction_id=interaction.id,
    tools=[my_tool],
    input=[{
        "type": "function_result",
        "name": fc_step.name,
        "call_id": fc_step.id,
        "result": [{"type": "text", "text": json.dumps(result)}],
    }],
)

JavaScript

// ✅ Include matching call_id and name in the function_result
const finalInteraction = await client.interactions.create({
  model: "gemini-3.5-flash",
  previousInteractionId: interaction.id,
  tools: [myTool],
  input: [{
    type: "function_result",
    name: fcStep.name,
    call_id: fcStep.id,
    result: [{ type: "text", text: JSON.stringify(result) }],
  }],
});

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -H "Api-Revision: 2026-05-20" \
  -d '{
    "model": "gemini-3.5-flash",
    "previous_interaction_id": "<INTERACTION_ID>",
    "tools": [...],
    "input": [{
      "type": "function_result",
      "name": "my_function",
      "call_id": "<CALL_ID>",
      "result": [{"type": "text", "text": "..."}]
    }]
  }'

Odpowiedzi funkcji multimodalnych

Często widzimy, że klienci podają obrazy poza odpowiedzią funkcji. Może to prowadzić do nieoczekiwanego zachowania modelu (np. wycieku myśli) i obniżenia jakości wyników. Zamiast tego postępuj zgodnie z zaleceniami w dokumentacji interfejsu Multimodal Function Responses API i umieszczaj treści multimodalne w częściach odpowiedzi funkcji, które wysyłasz do modelu. Model może przetworzyć te treści multimodalne w następnym kroku, aby wygenerować bardziej świadomą odpowiedź.

Python

# ✅ Include multimodal content in the function response
final_interaction = client.interactions.create(
    model="gemini-3.5-flash",
    previous_interaction_id=interaction.id,
    input=[
        {
            "type": "function_result",
            "name": tool_call.name,
            "call_id": tool_call.id,
            "result": [
                {"type": "text", "text": "instrument.jpg"},
                {
                    "type": "image",
                    "mime_type": "image/jpeg",
                    "data": base64_image_data,
                },
            ],
        }
    ],
)

JavaScript

// ✅ Include multimodal content in the function response
const finalInteraction = await client.interactions.create({
  model: "gemini-3.5-flash",
  previousInteractionId: interaction.id,
  input: [{
    type: "function_result",
    name: toolCall.name,
    call_id: toolCall.id,
    result: [
      { type: "text", text: "instrument.jpg" },
      {
        type: "image",
        mime_type: "image/jpeg",
        data: base64ImageData,
      },
    ],
  }],
});

Instrukcje wbudowane w odpowiedzi funkcji

Często widzimy, że klienci podają dodatkowe instrukcje wraz z odpowiedziami funkcji jako kolejne Parts. Może to prowadzić do nieoczekiwanego zachowania modelu (np. wycieku myśli) i obniżenia jakości wyników. Zamiast tego dołączaj dodatkowe instrukcje na końcu tekstu odpowiedzi funkcji, oddzielając je 2 znakami nowego wiersza.

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_interaction = client.interactions.create(
    model="gemini-3.5-flash",
    previous_interaction_id=interaction.id,
    tools=[my_tool],
    input=[{
        "type": "function_result",
        "name": fc_step.name,
        "call_id": fc_step.id,
        "result": [{"type": "text", "text": result_text}],
    }],
)

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 finalInteraction = await client.interactions.create({
  model: "gemini-3.5-flash",
  previousInteractionId: interaction.id,
  tools: [myTool],
  input: [{
    type: "function_result",
    name: fcStep.name,
    call_id: fcStep.id,
    result: [{ type: "text", text: resultText }],
  }],
});

Ograniczanie zbędnych wywołań narzędzi

Jeśli zauważysz nadmierne użycie wywołań narzędzi, możesz je zminimalizować na 2 sposoby:

  1. Zacznij od zmniejszenia poziomu myślenia (medium, low lub minimal): wyższe poziomy myślenia zachęcają model do używania większej liczby narzędzi do eksplorowania i weryfikowania, więc obniżenie poziomu może zmniejszyć liczbę wywołań narzędzi.

  2. Dodaj instrukcję systemową: jeśli po dostosowaniu poziomu myślenia nadmierne użycie narzędzi nadal występuje, rozważ użycie prompta, który ogranicza korzystanie z narzędzi. Na przykład:

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

Lista kontrolna migracji

Zdecydowanie zalecamy aktualizację do pakietu SDK google-genai w wersji 2.0.0 lub nowszej. Ta wersja wprowadza zmiany powodujące niezgodność w interfejsie Interactions API. Szczegółowe informacje znajdziesz w przewodniku po migracji dotyczącym zmian powodujących niezgodność.

Migracja z wersji testowej Gemini 3 Flash

  • Zaktualizuj nazwę modelu: gemini-3-flash-previewgemini-3.5-flash
  • Sprawdź ceny. Model Gemini 3.5 Flash jest droższy niż wersja testowa Gemini 3 Flash. Szczegółowe informacje znajdziesz na stronie cennika.
  • Usuń z konfiguracji parametry temperature, top_p i top_k (nie są już zalecane).
  • Zastąp thinking_budget parametrem thinking_level.
  • Dodaj id i pasującą wartość name do wszystkich części FunctionResponse.
  • Przetestuj prompty. Domyślny poziom wysiłku został zmieniony z high na medium. Sprawdź jakość, szybkość i koszt.
  • Zachowywanie myśli jest teraz domyślnie włączone. Kontekst rozumowania jest przenoszony między etapami, co poprawia skuteczność, ale może zwiększyć zużycie tokenów.
  • Ogranicz zbędne wywołania narzędzi: zacznij od zmniejszenia poziomu myślenia (medium, low lub minimal). Jeśli nadmierne użycie narzędzi nadal występuje, dodaj instrukcję systemową, która ogranicza korzystanie z narzędzi.
  • Korzystanie z komputera nie jest obecnie obsługiwane w Gemini 3.5 Flash. W przypadku zbiorów zadań związanych z korzystaniem z komputera nadal używaj wersji testowej Gemini 3 Flash.

Migracja z Gemini 2.5

Wszystkie powyższe oraz dodatkowo:

  • Uprość prompty. Jeśli używasz inżynierii promptów typu „łańcuch myśli”, aby wymusić rozumowanie, spróbuj użyć prostszych promptów z parametrem thinking_level: "medium" lub "high" zamiast.
  • Przetestuj zbiory zadań związane z plikami PDF i multimediami. Jeśli polegasz na konkretnym działaniu w przypadku analizowania gęstych dokumentów, przetestuj ustawienie media_resolution_high, aby zapewnić dalszą dokładność. Migracja do ustawień domyślnych Gemini 3 może też zwiększyć zużycie tokenów w przypadku plików PDF, ale zmniejszyć je w przypadku filmów. Jeśli żądania przekraczają okno kontekstu, wyraźnie zmniejsz wartość media_resolution. Szczegółowe informacje znajdziesz w dokumentacji dotyczącej rozdzielczości multimediów.
  • Wykorzystaj połączone użycie narzędzi. W tym samym żądaniu można używać wyszukiwarki Google, kontekstu adresu URL, wykonywania kodu i funkcji niestandardowych.
  • Jeśli używasz odpowiedzi funkcji multimodalnych, przenieś treści multimodalne do części odpowiedzi funkcji, a nie obok nich.
  • Jeśli używasz instrukcji wbudowanych w odpowiedzi funkcji, dołączaj je do tekstu odpowiedzi funkcji, oddzielając je 2 znakami nowego wiersza, a nie jako osobne części.
  • Segmentacja obrazów nie jest obsługiwana w Gemini 3.x. W przypadku zbiorów zadań związanych z segmentacją nadal używaj Gemini 2.5 Flash z wyłączonym myśleniem lub Gemini Robotics-ER 1.6.

Funkcje rodziny Gemini 3

Model Gemini 3.5 Flash dziedziczy wszystkie możliwości rodziny Gemini 3 z wyjątkiem korzystania z komputera. Funkcje wprowadzone w Gemini 3, które są przenoszone dalej:

Dalsze kroki