‫Gemini חושב

למודלים מסדרות Gemini 3 ו-2.5 יש תהליך חשיבה פנימי שמשפר באופן משמעותי את יכולות החשיבה הרציונלית והתכנון שלהם, ולכן הם יעילים מאוד במשימות מורכבות כמו כתיבת קוד, מתמטיקה מתקדמת וניתוח נתונים.

במדריך הזה מוסבר איך להשתמש ביכולות החשיבה של Gemini באמצעות Gemini API.

יצירת תוכן עם חשיבה

הגשת בקשה באמצעות מודל חשיבה דומה להגשת בקשה ליצירת תוכן. ההבדל העיקרי הוא שצריך לציין אחד מהמודלים עם תמיכה בחשיבה בשדה 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."
  }'

סיכומי מחשבות

סיכומי מחשבות מספקים תובנות לגבי תהליך הנימוק הפנימי של המודל. כברירת מחדל, מוחזר רק הפלט הסופי. אפשר להפעיל סיכומי מחשבות באמצעות 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"
    }
  }'

סטרימינג עם חשיבה

להשתמש בסטרימינג כדי לקבל סיכומים מצטברים של המחשבות במהלך היצירה. הפלט שמתקבל הוא סיכומים מצטברים ומתעדכנים בזמן שהם נוצרים:

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 חושבים באופן דינמי כברירת מחדל, ומתאימים אוטומטית את כמות המאמץ הנדרש להסקה על סמך מורכבות הבקשה. עם זאת, אתם יכולים לשלוט בהתנהגות הזו באמצעות פרמטרים של הגדרות.

רמות ההעמקה (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);

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

אי אפשר להשבית את ההעמקה ב-Gemini 3 Pro. גם Gemini 3 Flash לא תומך בהשבתה מלאה של התכונה 'חשיבה', אבל ההגדרה minimal אומרת שהמודל כנראה לא יחשוב (אבל עדיין יש לו פוטנציאל לעשות זאת).

חתימות של מחשבות

ממשק Gemini API הוא חסר מצב (stateless), ולכן המודל מתייחס לכל בקשת 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. תוכלו לראות איך הוא פירק את המשימה והגיע למסקנה, ולהשתמש במידע הזה כדי לתקן את התוצאות.

  • מתן הנחיות לגבי חשיבה רציונלית: אם אתם רוצים לקבל פלט ארוך במיוחד, כדאי לתת הנחיות בהנחיה כדי להגביל את כמות החשיבה שהמודל משתמש בה. כך תוכלו להקצות יותר טוקנים לתשובה שלכם.

מורכבות המשימה

  • משימות פשוטות (העמקה יכולה להיות מושבתת): לבקשות פשוטות שלא דורשות חשיבה רציונלית מורכבת, לא נדרשת העמקה. דוגמאות:
    • "?Where was DeepMind founded"
    • "האם האימייל הזה הוא הזמנה לפגישה או שהוא רק מספק מידע?"
  • משימות בינוניות (ברירת מחדל/חשיבה מסוימת): הרבה בקשות נפוצות נהנות ממידה מסוימת של עיבוד שלב אחר שלב או מהבנה מעמיקה יותר. דוגמאות:
    • השוואה בין פוטוסינתזה לבין גדילה.
    • השוו והבדילו בין מכוניות חשמליות למכוניות היברידיות.
  • משימות קשות (יכולת חשיבה מקסימלית): כדי להתמודד עם אתגרים מורכבים באמת, מומלץ להגדיר תקציב חשיבה גבוה. כדי לבצע את סוגי המשימות האלה, המודל צריך להשתמש בכל יכולות החשיבה הרציונלית והתכנון שלו. דוגמאות:
    • פתרון בעיה 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

מודלים מסוג Thinking פועלים עם כל הכלים והיכולות של Gemini. היכולת הזו מאפשרת למודלים לבצע אינטראקציה עם מערכות חיצוניות, להריץ קוד או לגשת למידע בזמן אמת, ולשלב את התוצאות בתהליך החשיבה הרציונלית שלהם.

המאמרים הבאים