Мышление Близнецов
В моделях серий Gemini 3 и 2.5 используется «процесс мышления», который значительно улучшает их способность к рассуждению и многоэтапному планированию, что делает их высокоэффективными для решения сложных задач, таких как программирование, высшая математика и анализ данных.
При использовании модели мышления Gemini проводит внутреннее осмысление перед тем, как дать ответ. API взаимодействий отображает это осмысление в виде шагов thought — специальных шагов, которые отображаются в хронологическом порядке вместе с вызовами функций, пользовательским вводом или результатами модели в массиве steps .
Каждый этап мыслительной деятельности включает в себя два поля:
| Поле | Необходимый | Описание |
|---|---|---|
signature | ✅ Да | Зашифрованное представление внутреннего состояния рассуждений модели. Всегда присутствует, даже когда модель выполняет минимальные рассуждения. |
summary | ❌ Нет | Массив содержимого (текста и/или изображений), суммирующий ход рассуждений. Может быть пустым в зависимости от конфигурации thinking_summaries , от того, выполнила ли модель достаточное количество рассуждений, или от типа содержимого (например, для латентных данных изображений текстовые резюме могут отсутствовать). |
Взаимодействие с мышлением
Инициирование взаимодействия с моделью мышления аналогично любому другому запросу на взаимодействие. Укажите одну из моделей, поддерживающих мышление, в поле model :
Python
# This will only work for SDK newer than 2.0.0
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="Explain the concept of Occam's Razor and provide a simple, everyday example."
)
print(interaction.steps[-1].content[0].text)
JavaScript
// This will only work for SDK newer than 2.0.0
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: "Explain the concept of Occam's Razor and provide a simple, everyday example."
});
console.log(interaction.steps.at(-1).content[0].text);
ОТДЫХ
# Specifies the API revision to avoid breaking changes when they become default
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Api-Revision: 2026-05-20" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3-flash-preview",
"input": "Explain the concept of Occam'\''s Razor and provide a simple example."
}'
Вы можете передавать информацию о процессе мышления в потоковом режиме, получая поэтапные сводки мыслей и сигнатуры во время генерации. Подробное руководство по типам событий, типам изменений и примерам кода см. в руководстве по потоковой передаче информации о процессе мышления .
Краткие обзоры мыслей
Краткие описания хода мыслей позволяют понять внутренний процесс рассуждений модели. По умолчанию возвращается только итоговый результат. Вы можете включить отображение кратких описаний хода мыслей с помощью thinking_summaries :
Python
# This will only work for SDK newer than 2.0.0
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="What is the sum of the first 50 prime numbers?",
generation_config={
"thinking_summaries": "auto"
}
)
for step in interaction.steps:
if step.type == "thought":
print("Thought summary:")
if step.summary:
for content_block in step.summary:
if content_block.type == "text":
print(content_block.text)
print()
elif step.type == "model_output":
for content_block in step.content:
if content_block.type == "text":
print("Answer:")
print(content_block.text)
print()
JavaScript
// This will only work for SDK newer than 2.0.0
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: "What is the sum of the first 50 prime numbers?",
generation_config: {
thinking_summaries: "auto"
}
});
for (const step of interaction.steps) {
if (step.type === "thought") {
console.log("Thought summary:");
if (step.summary) {
for (const contentBlock of step.summary) {
if (contentBlock.type === "text") console.log(contentBlock.text);
}
}
} else if (step.type === "model_output") {
for (const contentBlock of step.content) {
if (contentBlock.type === "text") {
console.log("Answer:");
console.log(contentBlock.text);
}
}
}
}
ОТДЫХ
# Specifies the API revision to avoid breaking changes when they become default
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Api-Revision: 2026-05-20" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3-flash-preview",
"input": "What is the sum of the first 50 prime numbers?",
"generation_config": {
"thinking_summaries": "auto"
}
}'
В таких случаях блок мыслей может содержать только подпись без краткого содержания :
- Простые запросы, по которым модель не смогла достаточно обоснованно составить сводку.
-
thinking_summaries: "none", где отображение кратких обзоров явно отключено. - Некоторые типы текстового контента, например изображения, могут не иметь текстовых аннотаций.
В вашем коде всегда следует обрабатывать блоки мыслей, где summary пустое или отсутствует.
Контролирующее мышление
Модели Gemini по умолчанию используют динамическое мышление, автоматически регулируя объем вычислительных усилий в зависимости от сложности запроса. Вы можете управлять этим поведением с помощью параметра thinking_level .
| Модель | Мышление по умолчанию | Поддерживаемые уровни |
|---|---|---|
| gemini-3.1-pro-preview | Включено (высокий уровень) | низкий, средний, высокий |
| gemini-3-flash-preview | Включено (высокий уровень) | минимальный, низкий, средний, высокий |
| gemini-3-pro-preview | Включено (высокий уровень) | низкий, высокий |
| gemini-2.5-pro | На | низкий, средний, высокий |
| gemini-2.5-flash | На | низкий, средний, высокий |
| gemini-2.5-flash-lite | Выключенный | низкий, средний, высокий |
Python
# This will only work for SDK newer than 2.0.0
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="Provide a list of 3 famous physicists and their key contributions",
generation_config={
"thinking_level": "low"
}
)
print(interaction.steps[-1].content[0].text)
JavaScript
// This will only work for SDK newer than 2.0.0
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: "Provide a list of 3 famous physicists and their key contributions",
generation_config: {
thinking_level: "low"
}
});
console.log(interaction.steps.at(-1).content[0].text);
ОТДЫХ
# Specifies the API revision to avoid breaking changes when they become default
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Api-Revision: 2026-05-20" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3-flash-preview",
"input": "Provide a list of 3 famous physicists and their key contributions",
"generation_config": {
"thinking_level": "low"
}
}'
Мыслительные подписи
«Мысленные сигнатуры» — это зашифрованные представления внутренних рассуждений модели. Они необходимы для поддержания непрерывности рассуждений на протяжении многоходовых взаимодействий.
API для взаимодействия значительно упрощает обработку сигнатур мыслей по сравнению с API generateContent .
Режим сохранения состояния (рекомендуется)
По умолчанию, при использовании API взаимодействий в режиме сохранения состояния (путем установки store: true и передачи previous_interaction_id в последующих ходах), сервер автоматически управляет состоянием диалога, включая все блоки мыслей и подписи. В этом режиме вам не нужно ничего делать с подписями. Они обрабатываются исключительно на стороне сервера.
Безсостоятельный режим
Если вы управляете состоянием диалога самостоятельно (режим без сохранения состояния) и передаете полную историю входных и выходных данных в каждом запросе:
- Вы ОБЯЗАТЕЛЬНО должны отправлять все блоки
thoughtв точно таком же виде, в каком они были получены от модели. - Не следует удалять или изменять блоки мыслей из истории, поскольку они содержат сигнатуры, необходимые для продолжения рассуждений модели.
- При переключении моделей в рамках одной сессии вам все равно следует повторно отправить блоки мыслей предыдущей модели. Совместимость обеспечивается бэкэндом.
Цены
Когда функция мышления включена, ценообразование ответа представляет собой сумму выходных токенов и токенов мышления. Общее количество сгенерированных токенов мышления можно получить из поля total_thought_tokens .
Python
# This will only work for SDK newer than 2.0.0
# ...
print("Thoughts tokens:", interaction.usage.total_thought_tokens)
print("Output tokens:", interaction.usage.total_output_tokens)
JavaScript
// This will only work for SDK newer than 2.0.0
// ...
console.log(`Thoughts tokens: ${interaction.usage.total_thought_tokens}`);
console.log(`Output tokens: ${interaction.usage.total_output_tokens}`);
Модели мышления генерируют полные мысли для повышения качества конечного ответа, а затем выдают сводки , позволяющие понять ход мысли. Цена рассчитывается исходя из количества токенов, необходимых модели для генерации полных мыслей, несмотря на то, что из API выводится только сводка.
Более подробную информацию о токенах вы можете найти в руководстве по подсчету токенов .
Передовые методы
Эффективно используйте модели мышления, следуя этим рекомендациям.
- Анализ логического мышления : Проанализируйте резюме мыслей, чтобы понять причины ошибок и улучшить формулировки заданий.
- Контроль бюджета мышления : Побуждайте модель меньше думать при обработке длинных результатов, чтобы сэкономить токены.
- Простые задачи : Используйте минимальное мышление для поиска или классификации фактов (например, "Где была основана компания DeepMind?").
- Задания средней сложности : Используйте стандартное мышление для сравнения концепций или творческое рассуждение (например, сравнение электромобилей и гибридных автомобилей).
- Сложные задачи : Максимально используйте мыслительные способности при решении сложных задач по программированию, математике или многоэтапному планированию (например, решайте математические задачи AIME).
Что дальше?
- Генерация текста : базовые текстовые ответы
- Вызов функции : Подключение к инструментам
- Руководство по Gemini 3 : особенности конкретной модели