Modelli di ragionamento a confronto
Un modello di ragionamento spende calcolo extra pensando prima di rispondere — generando una catena privata di passaggi intermedi, poi la risposta finale. È la singola leva più grande sull'accuratezza dei problemi difficili in ogni AI moderna. Il problema: ogni provider espone la stessa idea con una manopola diversa, e spendere troppo spreca denaro e latenza senza alcun guadagno. Questa lezione mette le manopole a confronto fianco a fianco così che l'abilità si trasferisca tra Claude, GPT, Gemini, DeepSeek e Qwen.
- Spiegare cosa ti compra il calcolo a inference-time (il pensiero) e cosa no
- Mappare il controllo di ragionamento di ogni provider: Claude effort, OpenAI reasoning.effort, Gemini thinkingBudget/thinkingLevel, DeepSeek reasoner, Qwen enable_thinking
- Scegliere una profondità di pensiero in base al compito invece di impostare tutto al massimo
- Rileggere correttamente la traccia di ragionamento su ogni API senza reinserirla come input
- Evitare le trappole comuni: pensare troppo, i modelli che non si possono disabilitare, e trattare l'effort come rimedio di qualità
L'unica idea: il pensiero è una manopola, non un interruttore
Ogni modello di ragionamento si trova sullo stesso compromesso:
- Meno pensiero → più veloce, più economico. Adatto per estrazione, formattazione, Q&A semplici.
- Più pensiero → migliore sui problemi genuinamente difficili (matematica multi-step, debugging complicato, dimostrazioni accurate), a costo di maggiore latenza e spesa.
La trappola che frega la gente: il pensiero extra non fa nulla per un compito che era già facile — paghi solo latenza e costo. L'abilità sta nello spendere profondità dove cambia la risposta. Questa verità è identica su ogni modello sotto; cambia solo il nome della manopola.
Questo è il fratello cross-AI della lezione specifica per Claude Pensiero esteso ed effort — leggila per i dettagli della Messages API di Claude.
Passo 1 — Classifica il compito prima di toccare una manopola
- Estrazione, riformattazione, classificazione, breve lookup fattuale → pensiero minimo o nullo. Il pensiero non aiuta e aggiunge latenza.
- Coding normale, stesura, analisi di più paragrafi → medio / dinamico. Il default bilanciato su ogni provider.
- Matematica da competizione, debug di race-condition sottili, dimostrazioni lunghe, planning agentico difficile → alto / budget grande. È qui che il pensiero ripaga il suo costo.
- Parti dal default medio/dinamico del provider e alza l'effort solo dove la qualità lo richiede visibilmente.
- Un effort più alto non è un rimedio per un prompt vago — una specifica più chiara batte di solito più pensiero.
Passo 2 — La manopola, provider per provider
Stessa manopola, cinque diverse superfici di controllo. Questa è la tabella da tenere aperta quando porti un carico di lavoro tra modelli.
| Provider / modello | Controllo | Valori | Disabilitare il pensiero? |
|---|---|---|---|
| Claude (pensiero esteso) | livello effort (i modelli più recenti adattano la profondità; i più vecchi espongono budget_tokens) | Low / Medium / High | Sì, sulla maggior parte — usa un livello basso o ometti il pensiero |
| OpenAI GPT‑5.5 / serie o | reasoning.effort | minimal, low, medium (default), high, xhigh (GPT‑5.5 / Codex‑Max) | minimal emette pochi/nessun token di ragionamento |
| Google Gemini 2.5 | thinkingBudget | conteggio token; 0 disabilita; -1 = dinamico (limite ~8.192); 2.5 Pro richiede 128–32768 o -1 | 0 sulla maggior parte dei modelli 2.5 |
| Google Gemini 3 | thinkingLevel (non combinare con thinkingBudget) | livelli a scaglioni | No — Gemini 3.1 Pro non può disabilitare |
DeepSeek R1 (deepseek-reasoner) | reasoner dedicato — pensa sempre | n/d (pesi aperti, gira in locale) | No — è un modello che ragiona e basta |
| Qwen3 | enable_thinking (ibrido) + soft switch /think · /no_think | on / off, commutabile per turno | Sì — enable_thinking=False o /no_think |
- Alcuni modelli RIMUOVONO l'interruttore: Gemini 3.1 Pro e DeepSeek R1 pensano sempre. Pianifica latenza/costo di conseguenza — non li puoi portare a zero.
- Su Gemini 3, impostare sia thinkingLevel che thinkingBudget nella stessa richiesta è un errore. Scegline uno.
- La modalità dinamica di Gemini (-1) limita il pensiero a ~8.192 token — va bene per la maggior parte del lavoro, ma è un tetto duro sui problemi più difficili in assoluto.
Le due famiglie
Leggendo la tabella dall'alto in basso, i modelli si dividono in due tipi — sapere quale hai in mano ti dice cosa aspettarti:
- Ibridi / commutabili (Claude, OpenAI, Gemini 2.5, Qwen3): un solo modello, alzi o abbassi il pensiero — o lo spegni — per richiesta. Meglio per traffico misto in cui alcune chiamate sono banali e altre difficili.
- Reasoner dedicati (DeepSeek R1; Gemini 3.1 Pro in pratica): il modello ragiona sempre. Non instradare qui formattazione ed estrazione — pagheresti la tassa sul pensiero a ogni chiamata. Tieni un modello economico senza pensiero nella rotazione per il traffico facile.
Passo 3 — Rileggi correttamente la traccia di ragionamento
Ogni provider restituisce il pensiero separatamente dalla risposta — e la regola universale è non reincollare il ragionamento come input al turno successivo. Reinserisci solo la risposta finale (più, su Claude, i blocchi di pensiero firmati che l'API ti consegna per i loop di tool).
- La risposta arriva come un blocco di pensiero seguito dal blocco di testo. Itera su message.content e ramifica su block.type.
- Il ragionamento vive negli elementi reasoning / summary; ti vengono fatturati token di ragionamento che non vedi per intero. Persisti lo stato della response invece di rimandare il ragionamento grezzo.
- Imposta includeThoughts per ottenere riassunti del pensiero; i token di pensiero sono fatturati e riportati nei metadati di usage.
- La traccia torna come campo reasoning_content (build più vecchie) o reasoning, separato da content. Con i pesi grezzi è il testo tra i tag <think> e </think>.
Stesso compito, tre manopole — pseudo-config da adattare
# Claude — balanced
thinking = {"type": "enabled", "budget_tokens": 8000} # keep < max_tokens
# OpenAI — balanced
reasoning = {"effort": "medium"}
# Gemini 2.5 — let the model decide
thinking_config = {"thinking_budget": -1} # dynamic; 0 to disable
# Qwen3 (local) — turn thinking OFF for a trivial call
chat_template_kwargs = {"enable_thinking": False}Passo 4 — Quando NON spendere pensiero
L'errore costoso è impostare tutto al massimo. Salta o minimizza il pensiero quando:
- Il compito è meccanico (estrai, riformatta, classifica, traduci una stringa nota).
- Sei sotto un budget di latenza stretto (UI di chat, autocomplete) — usa
minimal/0//no_think. - Il prompt è sotto-specificato — più pensiero su un compito vago produce un vagabondare sicuro di sé, non una risposta migliore. Sistema prima la specifica.
- Stai facendo batch ad alto volume dove pochi punti di accuratezza non valgono la moltiplicazione del conto token su milioni di chiamate.
- Regola pratica: il pensiero ripaga quando il problema ha una risposta corretta verificabile che richiede diversi passaggi dipendenti. Ripaga poco sulla generazione a tema aperto dove non c'è un unico percorso giusto.
Quiz
Check yourself
0/4Flashcards
Fonti e approfondimenti
- OpenAI — Guida ai modelli di ragionamento e Best practice del ragionamento
- Google AI for Developers — Pensiero di Gemini
- Anthropic — Pensiero esteso
- Qwen3 — Think Deeper, Act Faster
- vLLM — Output di ragionamento (DeepSeek R1, Qwen3)
- Correlati su AILmanac: Pensiero esteso ed effort · Scegliere un modello · Portare i prompt tra i modelli