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
highnamedium. Więcej informacji znajdziesz w sekcji Nowy domyślny poziom wysiłku. - Ulepszone myślenie na poziomie
low: poziomlowzostał 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_budgetużywajthinking_level. - Dopasowywanie odpowiedzi wywoływania funkcji:
id,namei 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:
Zacznij od zmniejszenia poziomu myślenia (
medium,lowlubminimal): 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.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-preview→gemini-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_pitop_k(nie są już zalecane). - Zastąp
thinking_budgetparametremthinking_level. - Dodaj
idi pasującą wartośćnamedo wszystkich częściFunctionResponse. - Przetestuj prompty. Domyślny poziom wysiłku został zmieniony z
highnamedium. 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,lowlubminimal). 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:
- Myślenie: zaszyfrowany kontekst rozumowania zachowywany w wywołaniach interfejsu API. Automatyczne w interfejsie Interactions API; domyślne w GenerateContent.
- Ustrukturyzowane dane wyjściowe z narzędziami: połącz tryb JSON z wbudowanymi narzędziami (wyszukiwanie, kontekst adresu URL, wykonywanie kodu, wywoływanie funkcji).
- Odpowiedzi funkcji multimodalnych: zwracaj obrazy, dźwięk i inne multimedia w wynikach wywołań funkcji.
- Wykonywanie kodu z obrazami: wykonuj kod, który przetwarza i generuje obrazy.
- Połączone użycie narzędzi: używaj wbudowanych narzędzi i niestandardowego wywoływania funkcji w tym samym żądaniu.
Dalsze kroki
- Więcej informacji o rodzinie Gemini 3 znajdziesz w przewodniku dla deweloperów Gemini 3.
- Więcej informacji o strategiach projektowania promptów znajdziesz w przewodniku po inżynierii promptów.
- Pierwsze kroki z Gemini 3 Cookbook
- Dowiedz się więcej o optymalizacji i wnioskowaniu w interfejsie Gemini API.