Gemini đang suy nghĩ

Các mô hình dòng Gemini 3 và 2.5 sử dụng một "quy trình tư duy" nội bộ giúp cải thiện đáng kể khả năng suy luận và lập kế hoạch nhiều bước, khiến chúng trở nên hiệu quả cao đối với các nhiệm vụ phức tạp như lập trình, toán học nâng cao và phân tích dữ liệu.

Hướng dẫn này cho bạn biết cách khai thác khả năng tư duy của Gemini bằng Gemini API.

Tạo nội dung bằng tư duy

Việc bắt đầu một yêu cầu bằng mô hình tư duy cũng tương tự như mọi yêu cầu tạo nội dung khác. Điểm khác biệt chính nằm ở việc chỉ định một trong các mô hình có hỗ trợ tư duy trong trường 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);

REST

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."
  }'

Tóm tắt suy nghĩ

Bản tóm tắt suy nghĩ cung cấp thông tin chi tiết về quy trình suy luận nội bộ của mô hình. Theo mặc định, chỉ kết quả đầu ra cuối cùng được trả về. Bạn có thể bật tính năng tóm tắt ý tưởng bằng 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);
            }
        }
    }
}

REST

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"
    }
  }'

Truyền phát có suy nghĩ

Sử dụng tính năng truyền trực tuyến để nhận bản tóm tắt ý tưởng gia tăng trong quá trình tạo. Thao tác này sẽ trả về bản tóm tắt gia tăng theo từng phần khi bản tóm tắt được tạo:

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

Tư duy kiểm soát

Theo mặc định, các mô hình Gemini tham gia vào quá trình tư duy linh hoạt bằng cách tự động điều chỉnh mức độ nỗ lực suy luận dựa trên độ phức tạp của yêu cầu. Tuy nhiên, bạn có thể kiểm soát hành vi này bằng cách sử dụng các tham số cấu hình.

Cấp độ tư duy (Gemini 3)

Tham số thinking_level (nên dùng cho các mô hình Gemini 3 trở lên) cho phép bạn kiểm soát hành vi suy luận.

Cấp độ tư duy Gemini 3.1 Pro Gemini 3 Pro (Không dùng nữa) Gemini 3 Flash Mô tả
minimal Không được hỗ trợ Không được hỗ trợ Được hỗ trợ Phù hợp với chế độ cài đặt "không cần suy nghĩ" cho hầu hết các truy vấn. Mô hình có thể suy nghĩ rất ít cho các nhiệm vụ viết mã phức tạp. Giảm thiểu độ trễ cho các ứng dụng trò chuyện hoặc ứng dụng có thông lượng cao. Xin lưu ý rằng minimal không đảm bảo rằng tính năng suy nghĩ đã tắt.
low Được hỗ trợ Được hỗ trợ Được hỗ trợ Giảm thiểu độ trễ và chi phí. Phù hợp nhất với các ứng dụng tuân theo hướng dẫn, trò chuyện hoặc có thông lượng cao.
medium Được hỗ trợ Không được hỗ trợ Được hỗ trợ Tư duy cân bằng cho hầu hết các nhiệm vụ.
high Được hỗ trợ (Mặc định, Động) Được hỗ trợ (Mặc định, Động) Được hỗ trợ (Mặc định, Động) Tối đa hoá độ sâu suy luận. Mô hình có thể mất nhiều thời gian hơn đáng kể để đạt được mã thông báo đầu ra đầu tiên (không phải mã thông báo tư duy), nhưng đầu ra sẽ được suy luận cẩn thận hơn.

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

REST

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"
    }
  }'

Bạn không thể tắt chế độ tư duy cho Gemini 3 Pro. Gemini 3 Flash cũng không hỗ trợ tính năng tắt hoàn toàn quy trình suy nghĩ, nhưng chế độ cài đặt minimal có nghĩa là mô hình này có thể sẽ không suy nghĩ (mặc dù vẫn có khả năng).

Chữ ký của suy nghĩ

Gemini API không lưu giữ trạng thái, vì vậy mô hình này xử lý từng yêu cầu API một cách độc lập và không có quyền truy cập vào ngữ cảnh suy nghĩ từ các lượt tương tác trước đó trong các lượt tương tác nhiều lượt.

Để duy trì bối cảnh tư duy trong các lượt tương tác nhiều lượt, Gemini trả về chữ ký tư duy. Đây là các biểu thị được mã hoá của quy trình tư duy nội bộ của mô hình.

  • Các mô hình Gemini 2.5 trả về chữ ký suy nghĩ khi bạn bật tính năng suy nghĩ và yêu cầu bao gồm lệnh gọi hàm, cụ thể là khai báo hàm.
  • Các mô hình Gemini 3 có thể trả về chữ ký suy nghĩ cho tất cả các loại phần. Bạn nên luôn truyền tất cả chữ ký trở lại như đã nhận, nhưng đây là yêu cầu bắt buộc đối với chữ ký gọi hàm. Hãy đọc trang Chữ ký tư duy để tìm hiểu thêm.
  • Chữ ký được trả về từ mô hình trong các phần khác của phản hồi, ví dụ: gọi hàm hoặc các phần văn bản. Trả về toàn bộ câu trả lời cùng với tất cả các phần cho mô hình trong các lượt tiếp theo.
  • Đừng nối các phần có chữ ký với nhau.
  • Không được hợp nhất một phần có chữ ký với một phần không có chữ ký.

Giá

Khi tính năng suy nghĩ được bật, giá phản hồi là tổng số mã thông báo đầu ra và mã thông báo suy nghĩ. Bạn có thể lấy tổng số mã thông báo tư duy đã tạo từ trường 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}`);

Các mô hình tư duy tạo ra những suy nghĩ hoàn chỉnh để cải thiện chất lượng của câu trả lời cuối cùng, sau đó đưa ra bản tóm tắt để cung cấp thông tin chi tiết về quy trình tư duy. Giá được tính dựa trên tổng số mã thông báo cần thiết để mô hình tạo ra suy nghĩ, mặc dù API chỉ xuất ra bản tóm tắt.

Bạn có thể tìm hiểu thêm về mã thông báo trong hướng dẫn Đếm mã thông báo.

Các phương pháp hay nhất

Phần này bao gồm hướng dẫn sử dụng hiệu quả các mô hình tư duy.

Gỡ lỗi và điều hướng

  • Xem xét suy luận: Khi không nhận được câu trả lời như mong đợi từ các mô hình tư duy, bạn có thể phân tích kỹ lưỡng bản tóm tắt suy nghĩ của Gemini. Bạn có thể xem cách AI phân tích việc cần làm và đưa ra kết luận, đồng thời sử dụng thông tin đó để điều chỉnh cho phù hợp với kết quả mong muốn.

  • Đưa ra hướng dẫn về suy luận: Nếu muốn nhận được một kết quả đặc biệt dài, bạn có thể đưa ra hướng dẫn trong câu lệnh để hạn chế lượng suy nghĩ mà mô hình sử dụng. Điều này cho phép bạn dành nhiều token đầu ra hơn cho câu trả lời của mình.

Độ phức tạp của nhiệm vụ

  • Nhiệm vụ đơn giản (Có thể TẮT tính năng Tư duy): Đối với những yêu cầu đơn giản không đòi hỏi khả năng suy luận phức tạp, bạn không cần phải suy nghĩ. Ví dụ:
    • "DeepMind được thành lập ở đâu?"
    • "Email này có yêu cầu tổ chức cuộc họp hay chỉ cung cấp thông tin?"
  • Tác vụ trung bình (Mặc định/Cần suy nghĩ): Nhiều yêu cầu phổ biến sẽ được hưởng lợi từ mức độ xử lý từng bước hoặc hiểu biết sâu sắc hơn. Ví dụ:
    • So sánh quang hợp và quá trình trưởng thành.
    • So sánh và đối chiếu xe điện và xe lai điện.
  • Công việc khó (Khả năng tư duy tối đa): Đối với những thử thách thực sự phức tạp, bạn nên đặt ngân sách tư duy cao. Những loại nhiệm vụ này đòi hỏi mô hình phải sử dụng toàn bộ khả năng suy luận và lập kế hoạch của mình. Ví dụ:
    • Giải bài toán 1 trong AIME 2025: Tìm tổng của tất cả các cơ số nguyên b > 9...
    • Viết mã Python cho một ứng dụng web trực quan hoá dữ liệu thị trường chứng khoán theo thời gian thực, bao gồm cả xác thực người dùng. Hãy làm cho nó hiệu quả nhất có thể.

Mô hình được hỗ trợ

Mô hình Tư duy mặc định Các cấp độ được hỗ trợ
gemini-3.1-pro-preview Bật (cao) thấp, trung bình, cao
gemini-3-flash-preview Bật (cao) tối thiểu, thấp, trung bình, cao
gemini-3-pro-preview Bật (cao) thấp, cao
gemini-2.5-pro Bật Ngân sách: 128 – 32768
gemini-2.5-flash Bật Ngân sách: 0 – 24576
gemini-2.5-flash-lite Tắt Ngân sách: 0 – 24576

Các mô hình tư duy hoạt động với tất cả các công cụ và tính năng của Gemini. Điều này cho phép các mô hình tương tác với các hệ thống bên ngoài, thực thi mã hoặc truy cập thông tin theo thời gian thực, kết hợp kết quả vào quá trình suy luận của chúng.

Bước tiếp theo