Мышление Близнецов

В моделях серий 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).

Что дальше?