Tabbit
ResourcesBlogModels
Tabbit LogoTabbit

Tabbit — The AI Browser that Works for You

Topics

  • AI Browser Resources
  • Agentic Browser Resources
  • Browser Downloads and Install Guides
  • Browser Comparisons
  • AI Browser Alternatives
  • Browser Productivity Resources

Popular Guides

  • AI Browser
  • Agentic Browser Download
  • Best AI Browser 2026: Top 9 Tested & Ranked
  • AI Browser Download
  • Free AI Browser
  • Best AI Browser 2026
  • AI Browser Comparison 2026
  • AI Browser for Windows
  • AI Browser for Mac
  • Chrome Alternative 2026

Events

  • Tabbit Skill Competition
  • KPOP SBTI Fandom Personality Test
  • Tabbit Campus Creator Program
  • fifi's Picks: AI Skills for Research Papers
  • User Survey

About

  • Tabbit Blog
  • Press & Media
Prompt guide
OfficialGemini 3.5 Flash

Gemini 3.5 Flash: Thinking Levels and Gemini API Configuration

Original source

Google AI for Developers

AuthorGoogle

Source date2026-07-30

Tabbit curation2026-08-19

Read original

One-sentence takeaway

Gemini 3.5 Flash uses medium thinking by default. The API supports minimal, low, medium, and high to adjust reasoning depth; for multi-turn tool calls, preserve all parts and thought signatures returned by the model exactly as received.

Use cases

  • Suitable tasks: Coding, data analysis, document processing, function calling, and multi-step Agent workflows with the Gemini API.

  • Unsuitable tasks: Applying Gemini 2.5's thinkingBudget parameter directly to Gemini 3.5 Flash, or deleting signature parts from multi-turn function calls.

  • Applicable model version: gemini-3.5-flash.

  • Applicable client, Agent, or API: generate_content/generateContent in the Google Gen AI SDK, as well as REST generateContent.

  • Recommended reasoning levels and parameters: minimal or low for simple classification/fact tasks; medium for ordinary tasks; high for complex coding, mathematics, and planning. Enable thought summaries as needed, and record thought tokens in production at the same time.

Ready-to-use content

The following code is a runnable configuration template based on official API fields and official examples, with the model name explicitly replaced by gemini-3.5-flash; the model-name replacement is an adaptation prepared for this model and is not claimed to be verbatim code from the page.

Python: Set the thinking level

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Analyze this sales data, first give the conclusion, then list the evidence and uncertainties.",
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(thinking_level="high")
    ),
)

print(response.text)

JavaScript: Medium thinking

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

const ai = new GoogleGenAI({});
const response = await ai.models.generateContent({
  model: "gemini-3.5-flash",
  contents: "Turn these meeting notes into JSON with the topic, decisions, owner, and deadline.",
  config: {
    thinkingConfig: { thinkingLevel: ThinkingLevel.MEDIUM },
  },
});

console.log(response.text);

REST: Low-latency level

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [{"parts": [{"text": "Classify the following text as bug, feature, or question; return only the category."}]}],
    "generationConfig": {
      "thinkingConfig": {"thinkingLevel": "low"}
    }
  }'

Read thought summaries as needed

from google import genai
from google.genai import types

client = genai.Client()
response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Compare the two approaches and give a recommendation and key risks.",
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(
            thinking_level="high",
            include_thoughts=True,
        )
    ),
)

for part in response.candidates[0].content.parts:
    if not part.text:
        continue
    print("Thought summary:" if part.thought else "Answer:")
    print(part.text)

Testing/workflow steps

  1. Establish a baseline with the default medium; rerun simple tasks with minimal/low and complex tasks with high.

  2. For each run, record usage_metadata.thoughts_token_count, output tokens, time to first token, total latency, and cost.

  3. To debug quality, temporarily enable include_thoughts=True to inspect summaries; in production, retain only necessary summaries/logs and do not treat internal reasoning as proof of facts.

  4. When using function calling or multi-turn conversations, pass back all response parts returned by the model exactly as received; do not concatenate, delete, or modify signed parts.

  5. Do not use Gemini 2.5's thinkingBudget to control 3.5 Flash; 3.5 Flash uses thinkingLevel, which supports minimal, low, medium, and high.

Original evidence and data

  • The official model page lists gemini-3.5-flash with an input limit of 1,048,576 tokens and an output limit of 65,536 tokens; it supports text, image, video, audio, and PDF input, with text output.

  • The official thinking table marks Gemini 3.5 Flash's default as medium and supports minimal, low, medium, and high; high can dynamically increase reasoning depth.

  • The official documentation states that after thinking is enabled, charges include output tokens and thought tokens; thought tokens can be read from thoughtsTokenCount/the corresponding SDK usage field.

  • Gemini 3 models may return thought signatures for various parts; the official recommendation is to pass all parts through unchanged, and signatures must not be dropped in multi-turn function calls in particular.

Scope and limitations

  • Some code examples on the documentation page use gemini-3.6-flash as the current example; the template above replaces it with this model ID while keeping the same field structure. Actual SDK/API availability must be verified in the target project.

  • minimal does not guarantee that thinking is completely disabled; the official Gemini 3.5 Flash page does not provide a thinkingBudget=0 configuration for strictly no-thinking semantics.

  • Thought summaries are summaries rather than complete internal reasoning, and cannot replace external evidence, testing, or human review.

  • The 1M input window and 65,536 output limit are API model-page specifications and do not mean that every client, plan, or agent framework exposes the same limits.

Source excerpt or observation (brief excerpt for compliance only)

The official table marks Gemini 3.5 Flash's default level as medium and describes high as deeper dynamic reasoning. The documentation also emphasizes that multi-turn requests must pass back signed parts unchanged—a configuration detail that custom Agent frameworks are especially likely to break.

Curated by Tabbit

Prompt material is summarized from public sources and Tabbit editorial notes. Check the original licensing and intended use before copying it.

Gemini 3.5 Flash

Use in Tabbit

Gemini 3.5 Flash

Related reviews

OfficialGoogle Blog2026-07-21

Gemini 3.5 Flash: Google's Official Follow-up Release Comparison of Efficiency and Capabilities

MediaAppwrite Blog / Appwrite Arena2026-05-20

Gemini 3.5 Flash: Appwrite Arena Comparison of Skill Context and Agent Tasks

CommunityReddit / r/GeminiAI

Gemini 3.5 Flash: A Community Field Report on Ten Saved Tasks and Five Repeated Runs