למה Claude לפעמים עוצר ו'חושב'?
רוב המודלים מייצרים תשובה token-by-token, ישירות, ללא עצירה. Claude יכול לעשות משהו אחר: לפני שהוא מתחיל לכתוב את התשובה, הוא מקצה זמן לחשיבה פנימית, בלוקי thinking שלא מגיעים למשתמש, אבל מובילים לתשובה הרבה יותר מדויקת.
זה נקרא Extended Thinking, ומאז 2025 הגרסה המומלצת היא Adaptive Thinking: Claude עצמו מחליט כמה לחשוב לפי מורכבות הבקשה, במקום שאתה תגדיר budget קבוע. על שאלת בירה, דלג על חשיבה. על ארכיטקטורת microservices, חשוב לעומק.
ב-Claude Opus 4.7 (המודל החזק ביותר נכון לאפריל 2026), Adaptive Thinking הוא הדרך היחידה לגשת לחשיבה מורחבת. הגישה הישנה עם budget_tokens מחזירה שגיאת 400.
Adaptive Thinking, ה-API
הגדרה בסיסית, פשוטה מאוד:
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=16000,
thinking={"type": "adaptive"}, # Claude מחליט כמה לחשוב
messages=[{
"role": "user",
"content": "תכנן ארכיטקטורת microservices לסטארטאפ בתל אביב עם 50K משתמשים"
}]
)
for block in response.content:
if block.type == "thinking":
print(f"[חשיבה]: {block.thinking[:300]}...")
elif block.type == "text":
print(f"[תשובה]: {block.text}")
כדי לשלוט בעומק החשיבה, משתמשים בפרמטר effort:
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=8000,
thinking={"type": "adaptive"},
output_config={"effort": "high"}, # low / medium / high / xhigh / max
messages=[{"role": "user", "content": "..."}]
)
טבלת ה-effort levels
| רמה | התנהגות | מתי להשתמש |
|---|---|---|
low |
ממזער חשיבה; דולג לשאלות פשוטות | chatbot, FAQ, שאלות עובדתיות |
medium |
חשיבה מתונה; מדלג על פשוטות | ניתוח בינוני, קוד לא-trivial |
high (ברירת מחדל) |
תמיד חושב; עומק גבוה | ארכיטקטורה, debugging, ניתוח רב-משתני |
xhigh |
חשיבה עמוקה מורחבת (Opus 4.7 בלבד) | בעיות אופטימיזציה, מחקר, תכנון ארוך-טווח |
max |
ללא מגבלת חשיבה | batch processing, לא אינטראקטיבי |
מה ה-API מחזיר, ו-display: omitted
ב-Claude Opus 4.7, ברירת המחדל של display היא "omitted", כלומר: Claude חושב מאחורי הקלעים, אבל לא מחזיר את טקסט החשיבה. המחשבה מוצפנת ב-signature לצרכי multi-turn.
אם רוצים לראות את תוכן החשיבה (לדיבוג, ללמידה), צריך לבקש במפורש:
thinking={
"type": "adaptive",
"display": "summarized" # מחזיר סיכום החשיבה
}
חשוב: גם עם display:"omitted", אתה משלם על כל טוקני החשיבה. omit מפחית latency, לא עלות.
דוגמה ישראלית, אגף המחקר של סטארטאפ ת"א
צוות מחקר בחברת SaaS ב-Rothschild Boulevard בונה כלי לניתוח תחרות. הם שולחים ל-Claude פרופיל חברה מתחרה (150 עמודים) ושואלים: "האם כדאי לנו להיכנס לשוק ה-SMB בגרמניה?"
ללא Adaptive Thinking, Claude עונה בצורה שטחית. עם effort:"xhigh", Claude מנתח market sizing, regulation, TAM, לקחים מחברות דומות, ומגיע למסקנה מנומקת. זמן המחשבה: ~8 שניות. שווה את זה על שאלה שמשפיעה על תקציב שנתי.
Multi-turn ו-Tool Use, כלל אחד שאסור לשכוח
כשמשלבים Adaptive Thinking עם tools (כגון database query, web search), חייבים להעביר חזרה את בלוקי ה-thinking בכל turn. זה לא אופציונלי:
# שלב 1, שליחה ראשונה
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=8000,
thinking={"type": "adaptive", "display": "summarized"},
tools=[search_tool],
messages=[{"role": "user", "content": "מה המחיר הממוצע של דירה בתל אביב ב-2025?"}]
)
# שלב 2, שמור את כל response.content (כולל thinking block!)
messages.append({"role": "assistant", "content": response.content})
# שלב 3, הוסף tool result והמשך
messages.append({"role": "user", "content": [{
"type": "tool_result",
"tool_use_id": tool_id,
"content": "ממוצע: 3.2M שקל, 4 חדרים"
}]})
Adaptive Thinking מאפשר Interleaved Thinking אוטומטי, Claude חושב בין tool call לtool call, מה שהופך אותו לסוכן הרבה יותר חכם.
שני טעויות נפוצות
טעות 1, להפעיל Adaptive Thinking על כל בקשה: שאלות פשוטות לא משתפרות מחשיבה. "מה הבירה של צרפת?" עם effort:high בוזבז עלות וlatency. השתמש ב-effort:low לchatbots ו-FAQ.
טעות 2, לבנות קוד עם budget_tokens על Opus 4.7: זה שינוי שבור קריטי. הפרמטר הישן מחזיר 400 Bad Request. קוד שעובד על Sonnet 4.6 לא עובד on Opus 4.7, חייבים migration לAdaptive.
