Thinking models are trained to generate an internal "thinking process" before producing a response. As a result, thinking models are capable of stronger reasoning, multi-step planning, mathematical problem-solving, and code generation than models without thinking capabilities.
The thinking process is enabled by default across Gemini models. When you use Agent Studio on Gemini Enterprise Agent Platform, you can view the full thinking process together with the model's generated response.
Supported models
Thinking is supported in the following models:
Click to expand supported models
Control model thinking
You can control the amount of thinking the model performs before returning a response. The method for controlling thinking differs depending on the model version.
Gemini 3 and later models
Gemini 3 models introduce the thinking_level parameter, which
simplifies thinking budget configuration into discrete levels. By default,
Gemini 3 models use dynamic thinking (thinking_level.HIGH) to
reason through prompts. For faster, lower-latency responses when complex
reasoning isn't required, you can constrain the model's thinking_level.
The following table summarizes which thinking_level values are supported by
each model, and the default thinking_level for each model:
| Model | Supported thinking_level values |
Default |
|---|---|---|
| Gemini 3.7 Flash | LOW, MEDIUM, HIGH |
MEDIUM |
| Gemini 3.6 Flash | MINIMAL, LOW, MEDIUM, HIGH |
MEDIUM |
| Gemini 3.5 Flash-Lite | MINIMAL, LOW, MEDIUM, HIGH |
MINIMAL |
| Gemini 3.5 Flash | MINIMAL, LOW, MEDIUM, HIGH |
MEDIUM |
| Gemini 3.1 Pro | LOW, MEDIUM, HIGH |
HIGH |
| Gemini 3.1 Flash-Lite Image (Nano Banana 2 Lite) | MINIMAL, HIGH |
MINIMAL |
| Gemini 3.1 Flash-Lite | MINIMAL, LOW, MEDIUM, HIGH |
MINIMAL |
| Gemini 3.1 Flash Image | MINIMAL, HIGH |
MINIMAL |
| Gemini 3 Pro Image | HIGH |
HIGH |
| Gemini 3 Flash | MINIMAL, LOW, MEDIUM, HIGH |
HIGH |
MINIMAL: Constrains the model to use as few tokens as possible for thinking and is best used for low-complexity tasks that wouldn't benefit from extensive reasoning. This is the default level for Gemini 3.1 Flash-Lite.MINIMALis as close as possible to a zero budget for thinking but still requires thought signatures. If thought signatures aren't provided in your request, the model returns a400error. For more information, see Thought signatures.from google import genai from google.genai import types client = genai.Client() response = client.models.generate_content( model="gemini-3-flash-preview", contents="How does AI work?", config=types.GenerateContentConfig( thinking_config=types.ThinkingConfig( thinking_level=types.ThinkingLevel.MINIMAL ) ), ) print(response.text)LOW: Constrains the model to use fewer tokens for thinking and is suitable for simpler tasks where extensive reasoning is not required.LOWis ideal for high-throughput tasks where speed is essential:from google import genai from google.genai import types client = genai.Client() response = client.models.generate_content( model="gemini-3.5-flash", contents="How does AI work?", config=types.GenerateContentConfig( thinking_config=types.ThinkingConfig( thinking_level=types.ThinkingLevel.LOW ) ), ) print(response.text)MEDIUM: Offers a balanced approach suitable for tasks of moderate complexity that benefit from reasoning but don't require deep, multi-step planning. It provides more reasoning capability thanLOWwhile maintaining lower latency thanHIGH:from google import genai from google.genai import types client = genai.Client() response = client.models.generate_content( model="gemini-3-flash-preview", contents="How does AI work?", config=types.GenerateContentConfig( thinking_config=types.ThinkingConfig( thinking_level=types.ThinkingLevel.MEDIUM ) ), ) print(response.text)HIGH: Allows the model to use more tokens for thinking and is suitable for complex prompts requiring deep reasoning, such as multi-step planning, verified code generation, or advanced function calling scenarios. This is the default level for Gemini 3 Pro models and Gemini 3 Flash. Use this configuration when replacing tasks you might have previously relied on specialized reasoning models for:from google import genai from google.genai import types client = genai.Client() response = client.models.generate_content( model="gemini-3.5-flash", contents="Find the race condition in this multi-threaded C++ snippet: [code here]", config=types.GenerateContentConfig( thinking_config=types.ThinkingConfig( thinking_level=types.ThinkingLevel.HIGH ) ), ) print(response.text)
Thinking cannot be turned off for Gemini 3 Pro and Gemini 3.1 Pro.
If you specify both thinking_level and thinking_budget in the same request
for a Gemini 3 model, the model returns an error.
Gemini 2.5 and earlier models
For models earlier than Gemini 3, you can control thinking using the
thinking_budget parameter, which sets an upper limit on the number of tokens
the model can use for its thought process. By default, if thinking_budget is
not set, the model automatically controls how much it thinks up to a maximum of
8,192 tokens. To use dynamic budget through the API, set thinking_budget to
-1.
You can manually set thinking_budget to impose a soft upper limit on the
number of tokens in situations where you might need more or less tokens than the
default thinking budget. You can set a lower token limit for less complex tasks,
or a higher limit for more complex ones. Note that this is a soft limit and therefore
there can be variability in total thought tokens. If latency is more important,
use a lower budget or set the budget to 0 to prevent thought content from being
returned with the response.
The following table shows the minimum and maximum amounts you can set the
thinking_budget to for each supported model, and the default thinking budget
for each model:
| Model | Minimum token amount | Maximum token amount | Default |
|---|---|---|---|
| Gemini 2.5 Flash | 1 | 24,576 | Auto (up to 8,192 tokens) |
| Gemini 2.5 Pro | 128 | 32,768 | Auto (up to 8,192 tokens) |
| Gemini 2.5 Flash-Lite | 512 | 24,576 | Auto (up to 8,192 tokens) |
If you set thinking_budget to 0 when using Gemini 2.5 Flash and
Gemini 2.5 Flash-Lite, no thought content is returned with the
response. However, reasoning-style text might still be present in the model's
output. Thinking can't be turned off for Gemini 2.5 Pro.
If you use the thinking_level parameter with a model earlier than Gemini 3, the
model returns an error.
Console
- Open Agent Studio > Create prompt.
- In the Model panel, click Switch model and select one of the supported models from the menu.
- Select Manual from the Thinking budget drop-down selector and then use the slider to adjust the thinking budget limit.
Python
Install
pip install --upgrade google-genai
To learn more, see the SDK reference documentation.
Set environment variables to use the Google Gen AI SDK with Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Node.js
Install
npm install @google/genai
To learn more, see the SDK reference documentation.
Set environment variables to use the Google Gen AI SDK with Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Go
Learn how to install or update the Go.
To learn more, see the SDK reference documentation.
Set environment variables to use the Google Gen AI SDK with Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Java
Learn how to install or update the Java.
To learn more, see the SDK reference documentation.
Set environment variables to use the Google Gen AI SDK with Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
View thought summaries
Thought summaries provide visibility into the intermediate reasoning steps the model performed while generating a response. You can view thought summaries in Gemini 2.5 and newer models.
In Agent Studio, thought summaries are enabled by default and viewable by expanding the Thoughts panel.
When using the API, you can enable thought summaries by setting
include_thoughts=True in your ThinkingConfig:
Console
Thought summaries are enabled by default in Agent Studio. You can see the model's summarized thought process by expanding the Thoughts panel.
Python
Install
pip install --upgrade google-genai
To learn more, see the SDK reference documentation.
Set environment variables to use the Google Gen AI SDK with Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Node.js
Install
npm install @google/genai
To learn more, see the SDK reference documentation.
Set environment variables to use the Google Gen AI SDK with Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Go
Learn how to install or update the Go.
To learn more, see the SDK reference documentation.
Set environment variables to use the Google Gen AI SDK with Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Java
Learn how to install or update the Java.
To learn more, see the SDK reference documentation.
Set environment variables to use the Google Gen AI SDK with Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
A response may contain a thought signature without thought summary text in the following scenarios:
- Low-complexity requests: The model required minimal reasoning steps to formulate the response.
- Disabled summaries: Thought summaries were not requested or were explicitly turned off.
- Non-text reasoning modalities: Certain modalities (such as image processing) might not emit text summaries.
Your application should always gracefully handle responses where thought summary content is absent or empty while preserving the associated thought signatures.
Thought signatures
Thought signatures are encrypted representations of the model's internal thought process that preserve the Gemini reasoning state during multi-turn conversations, especially when using function calling.
To ensure the model maintains full context across multiple turns of a conversation, you must return the thought signatures from previous responses in your subsequent requests, regardless of the thinking level used. If you are using the official Google Google Gen AI SDK (Python, Node.js, Go, or Java) and using the standard chat history features or appending the full model response to the history, thought signatures are handled automatically.
For detailed rules, examples, and multi-turn workflow patterns, see Thought signatures.
Prompting techniques
Effective prompt design helps you steer model reasoning, reserve token budget, and achieve optimal output quality with thinking models.
For comprehensive strategies, multishot patterns, verification prompts, and debugging tips, see the Thinking prompting guide.
Pricing
You are charged for the tokens that are generated during a model's thinking process. For some models, such as Gemini 3 Pro and Gemini 2.5 Pro, thinking is enabled by default and you are billed for these tokens.
For more information, see Agent Platform pricing. To learn how to manage costs, see Control model thinking.
What's next
Thought signatures
Learn how to preserve the Gemini reasoning state during multi-turn and multi-step conversations using thought signatures.
Thinking prompting guide
Explore prompt engineering techniques and best practices tailored for Gemini thinking models.