Migrare a Claude Haiku: cosa si rompe nel codice e quanto costa davvero il passaggio
Claude Haiku è il modello più piccolo e veloce della famiglia di Anthropic, pensato per lavori ad alto volume come classificare, estrarre dati e instradare richieste. Claude Haiku 5.5 è uscito il 7 ottobre 2026 e chi lo usa nel proprio codice scopre presto che migrare non significa cambiare una stringa: diversi cambi sono breaking, cioè la richiesta vecchia restituisce un errore 400, e il conteggio dei token si sposta di circa il 30%.
La documentazione ufficiale di Anthropic elenca tutto in una guida di migrazione. Qui il lavoro è metterlo nell'ordine in cui conviene controllarlo, con il conto di quanto costa il passaggio.
Cosa si rompe nel codice quando si migra a Claude Haiku 5.5?
Quando si migra da Claude Haiku 4.5, cinque modifiche fanno fallire la richiesta o cambiano il risultato senza avvisare. La tabella le mette in fila, con l'azione richiesta indicata dalla guida di migrazione di Anthropic.
| Cosa cambia | Effetto | Cosa fare |
|---|---|---|
thinking con budget_tokens | Errore 400 | Passare a {"type": "adaptive"} |
temperature, top_p, top_k | Errore 400 se diversi dal default | Toglierli dalla richiesta |
| Prefill, cioè ultimo turno assistant | Errore 400 | Chiudere messages con un turno utente |
Computer use con computer_20250124 | Errore 400 su API e Google Cloud | Usare computer_toolset_20260801 |
| Primo blocco della risposta | Può essere un blocco thinking | Leggere i blocchi per type, non per posizione |
L'ultima riga è la più pericolosa perché non dà errori. Il codice che legge content[0] come risposta continua a girare e produce un testo vuoto o una stringa sbagliata, e il difetto si vede solo guardando i dati in uscita.
Come si migra una richiesta da Claude Haiku 4.5, passo per passo?
Una richiesta si migra in quattro mosse: nuovo ID, pensiero adattivo, via i parametri di campionamento, lettura dei blocchi per tipo. L'ID per l'API di Claude è claude-haiku-5-5, fisso e senza suffisso di data.
La richiesta con il pensiero a budget fisso, che sul vecchio modello funzionava, è questa:
{
"model": "claude-haiku-4-5",
"max_tokens": 16000,
"thinking": { "type": "enabled", "budget_tokens": 8000 },
"messages": [{ "role": "user", "content": "..." }]
}
Dopo la migrazione diventa questa, con output_config.effort a regolare quanto il modello ragiona:
{
"model": "claude-haiku-5-5",
"max_tokens": 16000,
"thinking": { "type": "adaptive" },
"output_config": { "effort": "medium" },
"messages": [{ "role": "user", "content": "..." }]
}
I token di ragionamento contano dentro max_tokens: un limite piccolo può fermare la risposta dopo il blocco thinking.
Cosa si mette al posto del prefill?
Al posto del prefill si usano gli output strutturati, oppure un tool con un campo enum. Il prefill era il trucco per costringere il modello a cominciare con una parola, per esempio l'etichetta di una classificazione. Claude Haiku 5.5 lo rifiuta con un errore 400 anche a pensiero spento. Per i preamboli basta una riga nel prompt di sistema che chiede la risposta diretta.
Quanto costa davvero migrare a Claude Haiku 5.5?
Migrare a Claude Haiku 5.5 costa meno del listino solo se si ricontano i token con il nuovo modello. Il listino dice 0,10 dollari per milione di token in ingresso e 0,50 in uscita per prompt fino a 100.000 token. Oltre quella soglia i prezzi salgono a 0,50 e 2,50. Le letture dalla cache costano 0,01 dollari per milione e l'API a lotti dà il 50% di sconto.
Il punto che il listino nasconde sta nella documentazione: Claude Haiku 5.5 usa il tokenizzatore introdotto con Claude Opus 4.7, e lo stesso testo conta circa il 30% di token in più rispetto a Claude Haiku 4.5.
Un calcolo mio, su numeri ipotetici: diecimila messaggi di assistenza da 500 token in ingresso e 50 in uscita sul vecchio conteggio diventano circa 650 e 65. Fanno 6,5 milioni di token in ingresso, 0,65 dollari, e 650.000 in uscita, 0,33 dollari: circa un dollaro in tutto, la metà con l'API a lotti. Il meccanismo, spiegato per Sonnet, è in quando conviene aggiornare il modello di un agente.
Quando un agente AI deve usare Claude Haiku e quando no?
Un agente AI usa Claude Haiku per i passaggi ripetitivi e veloci, mentre il ragionamento lungo resta a un modello più grande. Anthropic descrive Claude Haiku 5.5 come il più veloce della linea. La tabella della pagina di panoramica mette a confronto i quattro modelli.
| Modello | Prezzo per milione di token (ingresso / uscita) | Latenza | Sforzo di default |
|---|---|---|---|
| Claude Fable 5.1 | 10 / 50 dollari | Più lenta | high |
| Claude Opus 5.5 | 4 / 20 dollari | Media | medium |
| Claude Sonnet 5.5 | 2 / 10 dollari | Veloce | high |
| Claude Haiku 5.5 | da 0,10 / 0,50 dollari | La più veloce | medium |
Anthropic cita i subagent fra i compiti pensati per Claude Haiku 5.5, e come si scelgono quelli che servono davvero è nel pezzo sui subagent di Claude Code. Il criterio vale anche per chi costruisce un agente di intelligenza artificiale in azienda o uno smistamento delle richieste dei clienti, dove la maggior parte delle chiamate è un'etichetta e non un ragionamento.
Prima di spostare il traffico: la Priority Tier non è supportata, e il modello può rifiutare una richiesta con stop_reason: "refusal".
Cosa ho controllato nel mio repository prima di scriverne
Nel repository di questo sito nessun codice chiama l'API di Anthropic. Le routine che scrivono gli articoli di attualità girano come sessioni di Claude Code sul modello claude-sonnet-5-5, come dicono i file automazione-blog/news/README.md e automazione-blog/industrializzazione/README.md, quindi i parametri di questa migrazione non mi toccano direttamente. L'unico riferimento a un modello Claude nel codice è la stringa claude-sonnet-4-5 in scripts/geo/quando-cerca.mjs, che nomina il modello da interrogare tramite il servizio DataForSEO: non è una chiamata mia.
Per chi ha davvero un'applicazione, la parte concreta sono due comandi. Il primo cerca nel codice ciò che la nuova versione rifiuta:
grep -rnE "temperature|top_p|top_k|budget_tokens|claude-haiku-4-5" src/
Il secondo lo propone la stessa guida di Anthropic: in Claude Code si lancia /claude-api migrate this project to claude-haiku-5-5. La skill sostituisce l'ID, toglie i parametri vietati, riscrive i prefill e produce una checklist di cose da verificare a mano, chiedendo prima conferma dell'ambito.
Se l'applicazione è un agente da costruire e non da migrare, si può partire dalla pagina sugli agenti AI su misura. Cosa sia la famiglia di modelli e dove si compra l'accesso è spiegato in cos'è Claude AI.
Domande frequenti
Claude Haiku 5.5 accetta ancora temperature e top_p?
Solo i valori di default. La documentazione di Anthropic dice che se la richiesta include temperature deve valere 1, se include top_p deve valere 0,99, e qualsiasi altro valore restituisce un errore 400. Anche top_k, con qualunque valore, e la combinazione di temperature e top_p nella stessa richiesta restituiscono errore. Il comportamento del modello si guida con il prompt.
Come si fa a far rispondere un agente AI con una sola etichetta senza il prefill?
Con gli output strutturati, oppure con un tool che ha un campo enum. La guida di migrazione di Anthropic indica proprio i tool con campi enum per la classificazione, e gli output strutturati per il formato. Il risultato è più affidabile del prefill, perché il formato è imposto dallo schema e non suggerito dall'inizio della risposta.
Si può usare Claude Haiku 5.5 con la Priority Tier?
No. La guida di migrazione di Anthropic precisa che la Priority Tier non è supportata su Claude Haiku 5.5. Chi ha un impegno di capacità prenotata su Claude Haiku 4.5 deve pianificare la capacità a parte prima di spostare il traffico.
Che differenza c'è fra l'ID del modello su Amazon Bedrock e quello sull'API di Anthropic?
Su Amazon Bedrock l'ID è anthropic.claude-haiku-5-5, mentre sull'API di Claude, su Google Cloud e su Microsoft Foundry è claude-haiku-5-5. Non c'è suffisso di data né alias separato: l'ID è fisso. Chi usava claude-haiku-4-5@20251001 su Google Cloud deve quindi togliere anche il suffisso.