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

В моделях серий Gemini 3 и 2.5 используется внутренний «процесс мышления», который значительно улучшает их способность к рассуждению и многоэтапному планированию, что делает их высокоэффективными для решения сложных задач, таких как программирование, высшая математика и анализ данных.

В этом руководстве показано, как работать с аналитическими возможностями Gemini, используя API Gemini.

Создавайте контент, используя мышление.

Инициирование запроса с использованием модели мышления аналогично любому другому запросу на генерацию контента. Ключевое отличие заключается в указании одной из моделей с поддержкой мышления в поле model :

Python

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

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);

ОТДЫХ

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -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

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:")
        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

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?",
    generationConfig: {
        thinkingSummaries: "auto"
    }
});

for (const step of interaction.steps) {
    if (step.type === "thought") {
        console.log("Thought 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);
            }
        }
    }
}

ОТДЫХ

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gemini-3-flash-preview",
    "input": "What is the sum of the first 50 prime numbers?",
    "generationConfig": {
      "thinkingSummaries": "auto"
    }
  }'

Стрим с размышлениями

Используйте потоковую передачу данных для получения поэтапных сводок мыслей в процессе их генерации. Это позволит получать непрерывные, поэтапные сводки по мере их создания:

Python

from google import genai

client = genai.Client()

prompt = """
Alice, Bob, and Carol each live in a different house on the same street: red, green, and blue.
Alice does not live in the red house.
Bob does not live in the green house.
Carol does not live in the red or green house.
Which house does each person live in?
"""

thoughts = ""
answer = ""

stream = client.interactions.create(
    model="gemini-3-flash-preview",
    input=prompt,
    generation_config={
        "thinking_summaries": "auto"
    },
    stream=True
)

thoughts = ""
answer = ""

for event in stream:
    if event.event_type == "step.delta":
        if event.delta.type == "thought":
            if not thoughts:
                print("Thinking...")
            summary_text = getattr(event.delta, 'text', '')
            print(f"[Thought] {summary_text}", end="")
            thoughts += summary_text
        elif event.delta.type == "text" and event.delta.text:
            if not answer:
                print("\nAnswer:")
            print(event.delta.text, end="")
            answer += event.delta.text

JavaScript

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

const client = new GoogleGenAI({});

const prompt = `Alice, Bob, and Carol each live in a different house on the same
street: red, green, and blue. Alice does not live in the red house.
Bob does not live in the green house.
Carol does not live in the red or green house.
Which house does each person live in?`;

let thoughts = "";
let answer = "";

const stream = await client.interactions.create({
    model: "gemini-3-flash-preview",
    input: prompt,
    generationConfig: {
        thinkingSummaries: "auto"
    },
    stream: true
});

for await (const event of stream) {
    if (event.type === "step.delta") {
        if (event.delta.type === "thought") {
            if (!thoughts) console.log("Thinking...");
            process.stdout.write(`[Thought] ${event.delta.text || ""}`);
            thoughts += event.delta.text || "";
        } else if (event.delta.type === "text" && event.delta.text) {
            if (!answer) console.log("\nAnswer:");
            process.stdout.write(event.delta.text);
            answer += event.delta.text;
        }
    }
}

Контроль мышления

Модели Gemini по умолчанию используют динамическое мышление, автоматически регулируя объем вычислительных усилий в зависимости от сложности запроса. Однако вы можете управлять этим поведением с помощью параметров конфигурации.

Уровни мышления (Близнецы 3)

Параметр thinking_level , рекомендуемый для моделей Gemini 3 и более поздних версий, позволяет управлять процессом рассуждения.

Уровень мышления Gemini 3.1 Pro Gemini 3 Pro ( устаревшая версия ) Gemini 3 Flash Описание
minimal Не поддерживается Не поддерживается Поддерживается Для большинства запросов соответствует настройке «без размышлений». В сложных задачах программирования модель может мыслить очень минималистично. Минимизирует задержку для чатов или приложений с высокой пропускной способностью. Обратите внимание, что minimal не гарантирует отключения мышления.
low Поддерживается Поддерживается Поддерживается Минимизирует задержку и затраты. Лучше всего подходит для выполнения инструкций, чатов или высокопроизводительных приложений.
medium Поддерживается Не поддерживается Поддерживается Для решения большинства задач необходимо мыслить сбалансированно.
high Поддерживается (по умолчанию, динамически) Поддерживается (по умолчанию, динамически) Поддерживается (по умолчанию, динамически) Максимизирует глубину рассуждений. Модели может потребоваться значительно больше времени для получения первого (не требующего размышлений) выходного токена, но результат будет более тщательно обоснован.

Python

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

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",
    generationConfig: {
        thinkingLevel: "low"
    }
});
console.log(interaction.steps.at(-1).content[0].text);

ОТДЫХ

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -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"
    }
  }'

В Gemini 3 Pro отключить функцию "думать" невозможно. Gemini 3 Flash также не поддерживает полное отключение этой функции, но minimal настройки означают, что модель, скорее всего, не будет "думать" (хотя потенциально это все еще возможно).

Мыслительные подписи

API Gemini не имеет состояния, поэтому модель обрабатывает каждый запрос к API независимо и не имеет доступа к контексту мыслей из предыдущих ходов в многоходовых взаимодействиях.

Для обеспечения сохранения контекста мыслей в ходе многоэтапного взаимодействия Gemini возвращает сигнатуры мыслей, которые представляют собой зашифрованное отображение внутреннего мыслительного процесса модели.

  • Модели Gemini 2.5 возвращают сигнатуры мыслей, когда функция мышления включена и запрос включает вызов функции , в частности, объявление функций .
  • Модели Gemini 3 могут возвращать сигнатуры мыслей для всех типов компонентов . Мы рекомендуем всегда возвращать все полученные сигнатуры, но это необходимо для сигнатур вызовов функций. Подробнее см. на странице « Сигнатуры мыслей» .
  • Подписи возвращаются из модели в составе других частей ответа, например, при вызове функции или в текстовых фрагментах. В последующих шагах возвращайте модель со всеми частями ответа .
  • Не следует объединять части текста с подписями.
  • Не следует объединять часть текста с подписью с другой частью текста без подписи.

Цены

Когда функция мышления включена, ценообразование ответа представляет собой сумму выходных токенов и токенов мышления. Общее количество сгенерированных токенов мышления можно получить из поля total_thought_tokens .

Python

# ...
print("Thoughts tokens:", interaction.usage.total_thought_tokens)
print("Output tokens:", interaction.usage.total_output_tokens)

JavaScript

// ...
console.log(`Thoughts tokens: ${interaction.usage.totalThoughtTokens}`);
console.log(`Output tokens: ${interaction.usage.totalOutputTokens}`);

Модели мышления генерируют полные мысли для повышения качества конечного ответа, а затем выдают сводки , позволяющие понять ход мысли. Цена рассчитывается исходя из количества токенов, необходимых модели для генерации полных мыслей, несмотря на то, что из API выводится только сводка.

Более подробную информацию о токенах вы можете найти в руководстве по подсчету токенов .

Передовые методы

В этом разделе представлены рекомендации по эффективному использованию моделей мышления.

Отладка и управление

  • Анализ логики : Если модели мышления не дают ожидаемого результата, полезно внимательно проанализировать краткие изложения мыслей, представленные в Gemini. Вы можете увидеть, как модель разбила задачу на части и пришла к выводу, и использовать эту информацию для корректировки в сторону получения правильных результатов.

  • Укажите ориентиры в рассуждениях : если вы рассчитываете на особенно длинный результат, возможно, вам стоит указать ориентиры в вашем запросе, чтобы ограничить объем мыслительных процессов, используемых моделью. Это позволит вам зарезервировать больше места в выходных данных для вашего ответа.

Сложность задачи

  • Простые задачи (размышления могут быть отключены): Для простых запросов, не требующих сложных рассуждений, размышления не требуются. Примеры:
    • «Где была основана компания DeepMind?»
    • "В этом письме содержится просьба о встрече или просто предоставляется информация?"
  • Задачи средней сложности (стандартный уровень/некоторое обдумывание): Многие распространенные запросы выигрывают от поэтапной обработки или более глубокого понимания. Примеры:
    • Проведите аналогию между фотосинтезом и взрослением.
    • Сравните и сопоставьте электромобили и гибридные автомобили.
  • Сложные задачи (максимальные мыслительные способности): Для действительно сложных задач мы рекомендуем установить высокий уровень мыслительного потенциала. Такие задачи требуют от модели полного задействования всех ее аналитических и планировочных способностей. Примеры:
    • Решите задачу 1 из AIME 2025: Найдите сумму всех целых оснований b > 9...
    • Напишите код на Python для веб-приложения, которое визуализирует данные фондового рынка в реальном времени, включая аутентификацию пользователей. Сделайте его максимально эффективным.

Поддерживаемые модели

Модель Мышление по умолчанию Поддерживаемые уровни
gemini-3.1-pro-preview Включено (высокий уровень) низкий, средний, высокий
gemini-3-flash-preview Включено (высокий уровень) минимальный, низкий, средний, высокий
gemini-3-pro-preview Включено (высокий уровень) низкий, высокий
gemini-2.5-pro На Бюджет: 128-32768
gemini-2.5-flash На Бюджет: 0-24576
gemini-2.5-flash-lite Выключенный Бюджет: 0-24576

Мышление-модели работают со всеми инструментами и возможностями Gemini. Это позволяет моделям взаимодействовать с внешними системами, выполнять код или получать доступ к информации в реальном времени, интегрируя результаты в свои рассуждения.

Что дальше?