Il nuovo motore di ragionamento Claude Fable 5 di Anthropic tiene il pensiero profondo sempre attivo per ogni richiesta e consente invece agli sviluppatori di aumentare o ridurre la profondità del ragionamento. In passato, i modelli linguistici di grandi dimensioni (LLM) operavano su parametri di calcolo fissi, generando token a una velocità uniforme indipendentemente dalla complessità della query. I semplici saluti consumavano la stessa energia di elaborazione delle dimostrazioni matematiche avanzate. Con Fable 5, Anthropic introduce un framework di ragionamento ibrido in cui il pensiero è sempre attivo e sei tu a controllare quanto intensamente lavora il modello tramite un’unica impostazione effort. Questo tutorial illustra come funziona l’API, come scegliere un livello di effort e come implementare questa architettura nelle pipeline di produzione.
[!WARNING] Avviso sui limiti dell’API: Il pensiero è sempre attivo su Fable 5, quindi non puoi disattivarlo. Passando
thinking: {type: "enabled"}othinking: {type: "disabled"}, oppure fornendo un valorebudget_tokens, si ottiene un errore HTTP 400: quei parametri sono stati rimossi. Controlla invece la profondità del ragionamento conoutput_config: {effort: "..."}e lascia abbastanza spazio nel tuomax_tokensper la risposta finale ai livelli di effort più elevati.Punti chiave:
- Regola l’effort, non gli interruttori: Imposta
output_config.effortsulow,medium,high,xhighomax: non esiste un interruttore di attivazione/disattivazione.- Il pensiero è automatico: Ometti
thinkingoppure passa{type: "adaptive"}; il pensiero adattivo viene eseguito a ogni richiesta.- Analizza gli stream: Gestisci i blocchi di contenuto
thinkingcon i deltathinking_deltanegli stream del server in tempo reale.- Gestisci la fatturazione: La memorizzazione nella cache dei prompt di sistema riduce i cicli di elaborazione del pensiero ridondanti.
Spiegazione del motore di ragionamento ibrido di Claude
La principale innovazione di Fable 5 è la sua capacità di ragionare su un problema prima di generare la risposta finale. Ciò significa che il modello elabora internamente una bozza logica della soluzione prima di rispondere alle richieste del client. Fondamentalmente, questa fase di pensiero è sempre attiva: non puoi disattivarla e non esiste una «modalità velocità» separata in cui passare.
Quando si invia una domanda complessa, il modello non tenta di prevedere immediatamente la parola successiva. Al contrario, genera token di pensiero interni, simulando un processo di ragionamento passo dopo passo. Questa architettura migliora drasticamente l’accuratezza per la matematica, la programmazione e la valutazione logica.
Per supportare diversi requisiti aziendali, Anthropic consente agli sviluppatori di scalare su richiesta la profondità di quel pensiero tramite un unico controllo effort. Con effort low il modello pensa brevemente e risponde in fretta, mantenendo bassi la latenza e il consumo di token. Con effort high o max ragiona in modo molto più approfondito, impiegando il calcolo aggiuntivo necessario per matematica complessa, logica multi-step e codice articolato. Il compromesso tra velocità e profondità si esprime interamente attraverso questo livello di effort, anziché tramite un interruttore di attivazione/disattivazione.
Configurazione dei parametri dell’API Fable 5
Per implementare queste funzionalità nel software, è necessario utilizzare lo schema aggiornato dell’API Anthropic. Questo schema garantisce che le applicazioni client specifichino il nome del modello corretto e i parametri di esecuzione.
La profondità del ragionamento si imposta tramite un blocco output_config. Al suo interno, il campo effort accetta uno tra "low", "medium", "high", "xhigh" o "max", e questo singolo valore sostituisce la vecchia manopola del budget di token. Nel caso più semplice non passi affatto un blocco thinking: il pensiero adattivo viene eseguito automaticamente. L’integrazione JavaScript seguente dimostra come strutturare questa richiesta:
1import Anthropic from "@anthropic-ai/sdk";
2
3export default {
4 async fetch(request, env) {
5 const anthropic = new Anthropic({ apiKey: env.ANTHROPIC_API_KEY });
6
7 try {
8 const response = await anthropic.messages.create({
9 model: "claude-fable-5",
10 max_tokens: 8192,
11 // Thinking is always on for Fable 5; dial reasoning depth with effort:
12 output_config: { effort: "high" }, // "low" | "medium" | "high" | "xhigh" | "max"
13 messages: [
14 {
15 role: "user",
16 content: "Generate an optimised database migration script for 10 million records."
17 }
18 ]
19 });
20
21 return Response.json(response);
22 } catch (err) {
23 return Response.json({ error: err.message }, { status: 500 });
24 }
25 }
26};
Non tentare di disabilitare il pensiero né di passare un valore budget_tokens: thinking: {type: "disabled"}, thinking: {type: "enabled"} e qualsiasi campo budget_tokens restituiscono tutti un HTTP 400 su Fable 5, perché quei parametri sono stati rimossi su questo modello (e su Opus 4.7 e 4.8). Scegli un livello di effort più basso per la velocità e uno più alto per la profondità, e lascia abbastanza margine in max_tokens per la risposta finale quando aumenti l’effort. Per i dettagli sulle architetture serverless, leggi la nostra guida sulla creazione di un’API serverless con Cloudflare Workers
.
Gestione dei token di ragionamento negli stream
Per applicazioni in tempo reale come le interfacce di chat, lo streaming delle risposte è essenziale. Fable 5 emette sia i passaggi di pensiero che il contenuto finale tramite canali SSE (Server-Sent Events).
Durante uno stream, il pensiero arriva come blocchi di contenuto thinking, veicolati tramite eventi content_block_delta il cui delta.type è "thinking_delta". Leggi il testo da delta.thinking e leggi la risposta finale dai consueti delta text_delta. La catena di pensiero grezza non viene mai restituita: per ricevere un riepilogo leggibile devi attivare esplicitamente thinking: {type: "adaptive", display: "summarized"}; il valore predefinito "omitted" trasmette un testo di pensiero vuoto. Un gestore minimale ha questo aspetto:
1const stream = await anthropic.messages.stream({
2 model: "claude-fable-5",
3 max_tokens: 8192,
4 output_config: { effort: "high" },
5 thinking: { type: "adaptive", display: "summarized" },
6 messages: [{ role: "user", content: prompt }]
7});
8
9for await (const event of stream) {
10 if (event.type === "content_block_delta") {
11 if (event.delta.type === "thinking_delta") {
12 process.stdout.write(event.delta.thinking); // summarised reasoning
13 } else if (event.delta.type === "text_delta") {
14 process.stdout.write(event.delta.text); // final answer
15 }
16 }
17}
Puoi convogliare quei blocchi thinking_delta in un pannello comprimibile «Thinking…», oppure scartarli e visualizzare solo la risposta. Per un riferimento dettagliato sulle integrazioni Anthropic, fai riferimento direttamente alla Documentazione per sviluppatori Anthropic
.
Gestisci con attenzione la contabilità dei token. I token di pensiero contano ai fini della fatturazione dell’API di output. Pertanto, implementa una memorizzazione nella cache dei prompt aggressiva per evitare di rieseguire i cicli di ragionamento su input identici. Quando si pianifica una distribuzione di produzione, il monitoraggio di queste metriche tramite un livello di telemetria edge aiuta a identificare dove l’uso dei token di pensiero supera i parametri tipici.
Flusso di lavoro dell’integrazione dell’API passo dopo passo
Per implementare il motore di ragionamento all’interno delle applicazioni, inizia aggiornando i pacchetti locali per allinearli alle specifiche di Fable 5. Le versioni SDK meno recenti inviano ancora budget_tokens, che ora genera errori di schema HTTP 400 durante la serializzazione dell’API.
Quindi, definisci soglie di latenza chiare. Per semplici flussi conversazionali o saluti, imposta un livello di effort low per contenere la latenza. Riserva l’effort high o max a compiti come la generazione di codice o la matematica.
Inoltre, memorizza le credenziali API in modo sicuro all’interno dei parametri dell’ambiente serverless utilizzando strumenti come Wrangler. Quando gestisci gli eventi di output dello stream, scrivi gestori frontend robusti per filtrare i pacchetti thinking_delta. Ciò è necessario a meno che non si intenda visualizzare direttamente i passaggi di ragionamento del modello. Infine, controlla i tassi di successo della cache dei prompt per verificare che la memorizzazione nella cache riduca al minimo il sovraccarico di consumo di token. Per informazioni sui progetti di API edge, esplora il nostro tutorial Cloudflare Workers AI
.
Effort basso vs. effort alto in sintesi
Scegliere un livello di effort è un compromesso tra latenza, costo e qualità della risposta. La tabella seguente confronta le dimensioni più importanti quando si dimensiona una richiesta. Le cifre relative a latenza e throughput sono illustrative e variano in base alla lunghezza del prompt, al carico e alla regione, ma le relazioni tra di esse restano valide.
| Dimensione | Effort basso | Effort alto |
|---|---|---|
| Tempo al primo token | Meno di un secondo (illustrativo) | Cresce man mano che il modello pensa di più |
| Costo per richiesta | Meno token di pensiero, quindi spesa inferiore | Più token di pensiero, fatturati alla tariffa di output |
| Accuratezza su compiti difficili | Livello di base | Notevolmente superiore in matematica, logica multi-step e codice |
| Prevedibilità dei token | Più precisa e facile da prevedere | Variabile e maggiore sui prompt difficili |
| Carichi di lavoro adatti | Chat, classificazione, formattazione di recupero | Debug, dimostrazioni, pianificazione, generazione complessa |
| Configurazione | output_config.effort = "low" | output_config.effort = "high" o "max" |
Il punto essenziale è che i token di pensiero sono veri e propri token di output. Una richiesta a effort basso pensa brevemente e viene addebitata soprattutto per la risposta che scrive; una richiesta a effort alto o massimo può generare un grande volume di token di pensiero prima ancora che appaia la prima parola della risposta. Il pensiero non è mai disattivato: stai solo scegliendo quanto spenderne.
Quando utilizzare ciascun livello di effort
Un approccio pratico consiste nel mappare ogni tipo di attività su un livello di effort predefinito, quindi ignorarlo solo quando una richiesta specifica necessita chiaramente di più margine. Riserva l’effort alto e massimo ai problemi in cui una risposta errata è costosa da individuare a valle.
| Tipo di attività | Effort consigliato |
|---|---|
| Saluti, FAQ e conversazioni semplici | low |
| Classificazione e instradamento dell’intento | low |
| Riassunto di documenti brevi | low |
| Estrazione di dati strutturati | low o medium |
| Generazione di codice multi-file | high |
| Ragionamento finanziario o matematico | high o xhigh |
| Debug delle cause alla radice | xhigh o max |
Scegli un livello di effort basso quando la risposta è breve e ampiamente deterministica, quando il tempo per il primo token guida l’esperienza dell’utente (chat dal vivo, completamento automatico, assistenti ai moduli) o quando esegui un carico di lavoro ad alto volume e a basso margine in cui ogni token di output extra si moltiplica su milioni di chiamate.
Scegli un livello di effort alto o massimo quando una singola risposta errata comporta un costo reale (uno script di migrazione non funzionante, un preventivo calcolato male, un percorso di codice non sicuro) o quando l’attività comporta diverse fasi dipendenti che il modello deve tenere insieme. Questi sono i carichi di lavoro in cui pochi secondi di latenza extra garantiscono un salto significativo in termini di affidabilità.
Esempio pratico: Compromessi tra latenza e costi
Considera un assistente di supporto che gestisce 50.000 richieste al giorno. Supponiamo che ogni risposta finale sia di circa 250 token, che un livello di effort low aggiunga solo una manciata di token di pensiero e che un livello di effort high consumi circa 1.500 token di pensiero su una tipica query complessa. Ogni prezzo dei token indicato di seguito è illustrativo (trattalo come un esercizio di modellazione piuttosto che come un preventivo) e presuppone una tariffa di output di $15 per milione di token.
L’esecuzione di ogni richiesta a effort basso produce all’incirca 50.000 × 250 = 12,5 milioni di token di output al giorno, ovvero circa $188 al giorno alla tariffa illustrativa. L’esecuzione di ogni richiesta a effort alto fattura invece 50.000 × (1.500 + 250) = 87,5 milioni di token al giorno, circa $1.313 al giorno: sette volte di più, la maggior parte spesi a ragionare su query che non hanno mai avuto bisogno della profondità aggiuntiva.
Ora esegui l’instradamento selettivo. Supponiamo che un classificatore economico a effort basso decida che solo il 15% del traffico è realmente complesso. L’invio di 7.500 richieste a effort alto e 42.500 a effort basso fornisce 13,1M + 10,6M ≈ 23,7 milioni di token al giorno, circa $356 al giorno: un risparmio di circa il 73% rispetto all’esecuzione di tutto a effort alto, pur applicando il ragionamento profondo dove serve davvero.
Il quadro della latenza rispecchia questo andamento. A effort basso, il primo token appare in genere in molto meno di un secondo. A effort alto, il modello genera una bozza di ragionamento molto più ampia prima che inizi la risposta, quindi una bozza interna di 1.500 token a 60 token al secondo illustrativi ritarda la risposta visibile di circa 25 secondi. Lo streaming dei blocchi thinking_delta in un pannello comprimibile «Thinking…» è ciò che rende tollerabile l’attesa per l’utente finale.
Migrazione e costo totale di proprietà
Se stai passando da un modello a calcolo fisso, il cambiamento più grande è che la profondità del ragionamento è ora una manopola che imposti per richiesta anziché una tariffa fissa che paghi su ogni chiamata. La leva più grande sulla tua fattura non è il livello di effort di una singola chiamata, ma il livello di instradamento che decide quali richieste meritano davvero un livello di effort elevato. Una chiamata di classificazione leggera a effort basso — poche centinaia di token — che precede la costosa chiamata a effort alto quasi sempre si ripaga da sola.
Due abitudini mantengono prevedibile il costo totale di proprietà. Innanzitutto, imposta il livello di effort più basso che risolve in modo affidabile ciascuna classe di attività anziché un generoso valore predefinito globale; un livello di effort max applicato ovunque è la fonte più comune di fatture a sorpresa. In secondo luogo, memorizza nella cache prompt di sistema stabili in modo che il contesto ripetuto non venga addebitato nuovamente a ogni ciclo di ragionamento. Insieme, l’instradamento per richiesta e il caching dei prompt spostano la maggior parte della spesa sulla minoranza di richieste che ne traggono effettivamente beneficio.
Punti chiave
- Fable 5 (
claude-fable-5, contesto da 1M di token, output massimo di 128K) tiene il pensiero sempre attivo; ne scali la profondità anziché attivarlo o disattivarlo. - Configura la profondità del ragionamento con
output_config: {effort: "low" | "medium" | "high" | "xhigh" | "max"};budget_tokensethinking.type“enabled”/“disabled” ora restituiscono un HTTP 400. - Trasmetti il pensiero tramite blocchi di contenuto
thinking(deltathinking_delta) per mostrare i passaggi del modello agli utenti finali, attivandothinking: {type: "adaptive", display: "summarized"}per un riepilogo leggibile. - Controlla i costi di fatturazione delle API scegliendo il livello di effort più basso praticabile e memorizzando nella cache i prompt utilizzati di frequente.
- Distribuisci il middleware delle API su reti edge serverless per ridurre la latenza di transito.
Domande frequenti (FAQ)
Cos’è il ragionamento Claude Fable 5?
Il ragionamento Claude Fable 5 è una funzionalità sempre attiva in cui il modello genera token di pensiero interni per risolvere problemi logici complessi prima di emettere la risposta finale. Invece di tentare di indovinare immediatamente la parola successiva, la rete simula un processo di pensiero passo dopo passo per risolvere errori architetturali, matematici e di programmazione, e sei tu a scalare quanto in profondità pensa tramite l’impostazione effort.
Come posso configurare l’effort di ragionamento nell’API?
Configuri la profondità del ragionamento passando output_config: { effort: "low" | "medium" | "high" | "xhigh" | "max" } all’interno del payload della richiesta API. Un livello di effort più basso pensa brevemente e risponde più velocemente con meno token, mentre un livello più alto ragiona in modo più approfondito. Il vecchio parametro budget_tokens è stato rimosso e ora restituisce un errore HTTP 400 su Fable 5.
I token di ragionamento vengono fatturati in modo diverso? No, i token di ragionamento vengono fatturati alla tariffa standard dei token di output del modello. Poiché questi token rappresentano il calcolo dell’output, contano direttamente ai fini della fatturazione dell’API, rendendo la memorizzazione nella cache dei prompt e un livello di effort ragionevole essenziali per controllare le spese del software.
Come posso rendere Fable 5 più veloce nelle risposte?
Non puoi disabilitare il ragionamento: il pensiero è sempre attivo su Fable 5 e passare thinking: {type: "disabled"} restituisce un errore HTTP 400. Per ridurre la latenza, abbassa il livello di effort con output_config: { effort: "low" }, che accorcia la fase di pensiero e minimizza il tempo per il primo token nelle attività conversazionali di base.
Come posso analizzare i token di ragionamento da uno stream SSE in tempo reale?
Durante lo streaming SSE serverless, il pensiero arriva come blocchi di contenuto thinking tramite eventi content_block_delta il cui delta.type è thinking_delta; leggi il testo da delta.thinking, separato dall’output text_delta standard. Attiva thinking: {type: "adaptive", display: "summarized"} per ricevere un riepilogo leggibile, quindi visualizza o scarta quei token in base alle preferenze dell’interfaccia utente frontend.
Commenti