Migrazione da Claude Haiku 4.5 a 5.5: Cinque errori 400 e i cambiamenti silenziosi

AIHubMix9 min di lettura
Migrazione da Claude Haiku 4.5 a 5.5: Cinque errori 400 e i cambiamenti silenziosi

Cambiare claude-haiku-4-5 in claude-haiku-5-5 è la parte più piccola di questa migrazione. Cinque modelli di richiesta che funzionavano su Haiku 4.5 ora restituiscono un errore 400, e diversi altri cambiamenti non falliscono alcuna richiesta ma alterano ciò che ricevi, quanto costa o come si comporta il modello all'interno di un agente.

Anthropic afferma che i prompt esistenti di Haiku 4.5 dovrebbero funzionare bene su Haiku 5.5 senza modifiche. Il codice di richiesta attorno a quei prompt è un'altra storia. Questo post elenca ogni problema come lo incontrerai: cosa vedrai, perché accade e come risolverlo, seguito da un elenco di controllo. Il riferimento autorevole è la guida alla migrazione di Haiku 5.5 di Anthropic.

Triage: abbina il sintomo

Cosa vedi Causa Correzione
400 su una richiesta con un budget di pensiero Pensiero manuale rimosso Pensiero adattivo più sforzo
400 con temperatura, top_p o top_k Parametri di campionamento bloccati Rimuovili
400 quando i messaggi terminano in un turno dell'assistente Prefill rimosso Termina in un turno dell'utente
400 su utilizzo del computer Strumento computer obsoleto rifiutato Passa al set di strumenti per computer
400 dopo aver modificato turni precedenti Pensiero vincolato alla storia Mantieni la storia solo in append
Il parser restituisce testo vuoto o errato Il blocco di pensiero viene prima Seleziona blocchi per tipo
Risposta tagliata o mancante Il pensiero conta verso il limite Aumenta max_tokens o riduci lo sforzo
Conteggi di token e fatture aumentano di circa il 30% Nuovo tokenizer Ricalcola sul nuovo modello
Risposta con motivo di arresto rifiutato Nuove classificazioni di sicurezza Gestiscilo nel tuo client

I primi cinque falliscono rumorosamente. Gli altri falliscono silenziosamente, il che li rende più costosi da trovare.

I cinque fallimenti rumorosi

1. Budget di pensiero manuale

Cosa vedrai: un 400 su qualsiasi richiesta che invia thinking: {"type": "enabled", "budget_tokens": N}.

Perché: Haiku 4.5 supportava solo il pensiero manuale esteso con un budget di token. Haiku 5.5 supporta solo il pensiero adattivo e controlla la profondità con effort.

Correzione: invia {"type": "adaptive"} o lascia fuori thinking, e scegli un livello di sforzo. Dove il vecchio budget era piccolo per risparmiare token, scegli un livello basso.

# Prima: Haiku 4.5
thinking={"type": "enabled", "budget_tokens": 8000}

# Dopo: Haiku 5.5
thinking={"type": "adaptive"},
output_config={"effort": "medium"},

2. Parametri di campionamento

Cosa vedrai: un 400 quando una richiesta imposta temperature, top_p o top_k.

Perché: Haiku 5.5 accetta solo i valori predefiniti: temperature di 1 e top_p di 0.99. Qualsiasi altro valore di uno dei due, qualsiasi top_k, o l'invio di entrambi temperature e top_p restituisce un 400, indipendentemente dal fatto che venga utilizzato il pensiero. Anche un top_p di 1 viene rifiutato.

Correzione: rimuovi tutti e tre. Il caso comune è temperature=0 su un classificatore, usato per ottenere etichette stabili. Sostituiscilo con output strutturato o uno strumento il cui input è un enum, in modo che il set di etichette sia imposto dallo schema piuttosto che dal campionamento. Controlla anche i wrapper SDK e i gateway che aggiungono valori di campionamento predefiniti per tuo conto.

3. Prefill dell'assistente

Cosa vedrai: un 400 quando l'ultima voce in messages è un turno dell'assistente, anche con il pensiero disattivato.

Perché: il prefill non è supportato su Haiku 5.5, in linea con il resto della gamma attuale di Claude.

Correzione: termina messages con un turno dell'utente e sostituisci il prefill con ciò per cui era destinato. Il controllo del formato diventa output strutturato (output_config.format). Un preambolo precompilato diventa un'istruzione di prompt di sistema per rispondere direttamente. Una continuazione di una risposta interrotta si sposta nel messaggio dell'utente: "La tua risposta precedente è terminata con [testo]. Continua da lì."

4. Utilizzo del computer

Cosa vedrai: un 400 sull'API di Claude o Google Cloud quando la richiesta dichiara lo strumento computer_20250124.

Perché: su quelle piattaforme Haiku 5.5 supporta l'uso del computer solo attraverso il nuovo set di strumenti, computer_toolset_20260801.

Correzione: rimuovi l'intestazione beta computer-use-2025-01-24, sostituisci l'entrata dello strumento con {"type": "computer_toolset_20260801"}, e aggiorna il ciclo dell'agente: invia ogni blocco tool_use in base a name e toolset_name piuttosto che su input.action, gestisci ogni blocco di questo tipo in un turno, e ripeti toolset_name sui risultati. Zoom è attivo per impostazione predefinita; se il tuo ambiente non lo implementa, disattivalo nella configurazione dello strumento. Su Amazon Bedrock, controlla le note di compatibilità dello strumento di utilizzo del computer prima di scegliere una versione. La stessa famiglia di set di strumenti porta anche l'uso del browser, che Haiku 4.5 non ha mai avuto.

5. Modifica di turni precedenti

Cosa vedrai: un 400 quando una richiesta restituisce un blocco di pensiero dopo che qualcosa prima di esso è cambiato: il prompt di sistema, l'elenco degli strumenti o un messaggio precedente.

Perché: un blocco di pensiero di Haiku 5.5 rimane valido solo mentre tutto ciò che è stato inviato prima di esso non è cambiato. Il controllo è imposto per impostazione predefinita per gli account creati il 31 agosto 2026 o successivamente, e sugli account più vecchi solo quando una richiesta opta per questa opzione.

Correzione: mantieni le conversazioni solo in append. I colpevoli comuni sono un prompt di sistema con un timestamp, un elenco di strumenti che cresce quando un plugin si connette, troncamento lato client e promemoria iniettati nella storia e rimossi nel turno successivo. Per le istruzioni per turno, Haiku 5.5 supporta i messaggi di sistema all'interno di messages, senza intestazione beta, che aggiungono contesto senza modificare ciò che è venuto prima.

I fallimenti silenziosi

I blocchi di pensiero vengono prima. Il pensiero è attivo per impostazione predefinita, quindi una risposta può iniziare con uno o più blocchi thinking. Il codice che legge response.content[0].text come risposta si interrompe o restituisce testo vuoto. Seleziona i blocchi per type.

Il testo di pensiero è vuoto per impostazione predefinita. Haiku 4.5 restituiva pensieri riassunti. Haiku 5.5 restituisce blocchi thinking con un campo di testo vuoto e solo una firma. Se la tua interfaccia utente mostrava riassunti di ragionamento, imposta thinking: {"type": "adaptive", "display": "summarized"}. In ogni caso, restituisci i blocchi di pensiero invariati con i risultati degli strumenti; un serializzatore che elimina i blocchi vuoti li rimuove.

max_tokens ora deve coprire il pensiero. Un limite dimensionato per una risposta breve può essere esaurito dal pensiero, terminando la risposta con stop_reason: "max_tokens" prima di qualsiasi testo. Aumenta il limite o riduci lo sforzo.

Lo stesso testo è circa il 30% in più di token. Il nuovo tokenizer cambia i campi usage, i risultati di count_tokens, i budget di contesto e qualsiasi max_tokens sintonizzato per Haiku 4.5. Sposta anche la linea di prezzo di 100K token a circa 77K token come Haiku 4.5 li contava. Ricalcola i veri prompt con il modello impostato su claude-haiku-5-5 prima di fidarti di un dashboard dei costi.

Lo sforzo predefinito è medio. Haiku 4.5 non aveva impostazioni di sforzo. Haiku 5.5 predefinisce medium, che potrebbe essere più pensiero di quanto un percorso semplice necessiti. Impostalo esplicitamente.

I blocchi di pensiero rimangono con l'account che li ha creati. Se il tuo servizio riproduce conversazioni memorizzate attraverso un diverso account API, i blocchi di pensiero di Haiku 5.5 vengono silenziosamente eliminati e la richiesta viene eseguita senza quel ragionamento. Riproduci ogni conversazione attraverso l'account che l'ha prodotta.

Il Priority Tier non si trasferisce. Haiku 5.5 non supporta il Priority Tier, quindi pianifica la capacità separatamente se fai affidamento su di esso per Haiku 4.5.

Le liste dei gateway possono differire. La pagina di Haiku 5.5 su AIHubMix attualmente elenca una lunghezza di contesto di 200K, mentre Anthropic specifica 1M. Conferma il limite sul percorso che utilizzi prima di migrare carichi di lavoro con prompt lunghi.

Cambiamenti di comportamento che contano per gli agenti con permessi reali

I rifiuti sono nuovi e nulla li cattura per te. Haiku 5.5 esegue classificatori di sicurezza in quattro categorie: cyber, bio, sviluppo LLM di frontiera e danni generali. Un rifiuto torna come un normale HTTP 200 con stop_reason: "refusal" e una categoria in stop_details. A differenza di Sonnet 5.5 e Opus 5.5, Haiku 5.5 non ha un fallback lato server: un elenco di modelli di fallback restituisce un 400, e la modalità di fallback predefinita lascia la richiesta rifiutata. Controlla stop_reason prima di leggere content, e decidi nel tuo codice se riformulare, escalare a un modello più grande o fermarti. Secondo il post di lancio, le misure di sicurezza informatica consentono una gamma più ampia di lavoro difensivo rispetto a quelle di Sonnet 5.5 ma bloccano i test di penetrazione.

Il testo dell'utente all'interno dei risultati degli strumenti può essere ignorato. Haiku 5.5 è addestrato per resistere all'iniezione di prompt attraverso i risultati degli strumenti. Se il tuo sistema fornisce un messaggio digitato dall'utente durante il compito all'interno di un blocco tool_result, il modello può trattarlo come non attendibile e ignorarlo. Metti l'input dell'utente a metà turno in un blocco di testo dopo l'ultimo risultato dello strumento, e mantieni le notifiche del sistema in un messaggio di sistema separato.

A basso sforzo, gli agenti possono fermarsi presto o saltare controlli. Con un lungo prompt di sistema per agenti di codifica a low, Haiku 5.5 a volte restituisce il compito prima che sia completato, e a low e medium a volte riporta una modifica del codice come completata senza eseguire un test. La guida al prompting di Haiku 5.5 di Anthropic ha istruzioni brevi per entrambi. Per un agente che può scrivere file o eseguire comandi, un "fatto" non verificato è il più pericoloso dei due.

Forzare uno strumento salta il pensiero. La scelta forzata di tool_choice è ancora accettata, ma il modello chiama quindi lo strumento senza pensare prima. Per strumenti con effetti collaterali, auto più un'istruzione chiara consente al modello di ragionare prima di agire.

Gli strumenti di ricerca hanno bisogno della data odierna. Quando Haiku 5.5 ha uno strumento di ricerca, fornisci la data corrente nel prompt di sistema o nella descrizione dello strumento. Nei test di Anthropic, questo ha radicato le risposte nei risultati recenti.

Una richiesta migrata attraverso AIHubMix

Un classificatore Haiku 4.5 che utilizzava temperature=0, un budget di pensiero e un prefill { per JSON, riscritto per Haiku 5.5 sull'endpoint nativo di AIHubMix Claude:

import os
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["AIHUBMIX_API_KEY"],
    base_url="https://aihubmix.com",
)

r = client.messages.create(
    model="claude-haiku-5-5",
    max_tokens=2000,                     # spazio per il pensiero più il JSON
    output_config={
        "effort": "low",                 # sostituisce il vecchio budget di pensiero
        "format": {                      # sostituisce il prefill e temperature=0
            "type": "json_schema",
            "schema": {
                "type": "object",
                "properties": {
                    "label": {"type": "string", "enum": ["billing", "bug", "other"]}
                },
                "required": ["label"],
                "additionalProperties": False,
            },
        },
    },
    messages=[{"role": "user", "content": "Ticket: 'Sono stato addebitato due volte per ottobre.'"}],
)

if r.stop_reason == "refusal":
    raise RuntimeError(f"rifiutato: {r.stop_details}")
text = next(b.text for b in r.content if b.type == "text")
print(text)

Vale la pena confermare se un gateway inoltra i campi output_config e le nuove intestazioni beta invariati nel tuo primo test. Quando il percorso migrato supera le tue valutazioni, l'elenco dei modelli di AIHubMix rende facile puntare lo stesso codice a Sonnet 5.5 per qualsiasi tipo di attività che continua a fallire su Haiku.

Elenco di controllo per la migrazione

  1. Cambia l'ID del modello in claude-haiku-5-5, senza suffisso di data.
  2. Sostituisci ogni budget di pensiero con pensiero adattivo e un livello di sforzo esplicito.
  3. Rimuovi temperatura, top_p e top_k, inclusi i valori predefiniti aggiunti dai wrapper.
  4. Sostituisci i prefill dell'assistente con output strutturato, istruzioni di sistema o continuazioni di turno dell'utente.
  5. Sposta l'uso del computer al set di strumenti per computer e aggiorna il ciclo dell'agente.
  6. Rendi la cronologia delle conversazioni solo in append se i blocchi di pensiero vengono riprodotti.
  7. Leggi il contenuto della risposta per tipo di blocco e mantieni i blocchi di pensiero vuoti quando riproduci.
  8. Aumenta max_tokens su percorsi di risposta breve, o riduci lo sforzo.
  9. Gestisci il motivo di arresto del rifiuto prima di leggere il contenuto; non configurare fallback lato server.
  10. Ricalcola i token del prompt sul nuovo modello e ripristina i dashboard dei costi.
  11. Controlla quali prompt superano ora i 100K token e riducili o dividili.
  12. Imposta la visualizzazione su riassunto se gli utenti hanno visto riassunti di ragionamento.
  13. Fornisci input dell'utente a metà turno al di fuori dei risultati degli strumenti.
  14. Fornisci agli agenti abilitati alla ricerca la data odierna.
  15. Controlla nuovamente i limiti di frequenza, le esigenze del Priority Tier e il limite di contesto del tuo gateway prima di spostare il volume.

FAQ

I miei prompt di Haiku 4.5 funzioneranno su Haiku 5.5?
Anthropic afferma che i prompt esistenti dovrebbero funzionare bene senza modifiche. I parametri di richiesta attorno a essi sono ciò che causa problemi: budget di pensiero, impostazioni di campionamento, prefill e il vecchio strumento di utilizzo del computer restituiscono tutti errori.

Perché il mio classificatore fallisce ora che ho rimosso la temperatura 0?
Non dovrebbe fallire, ma le etichette possono variare di più. Usa output strutturato o uno strumento con un campo enum in modo che le etichette consentite siano imposte dallo schema. Questo è più affidabile di quanto non fosse mai la temperatura 0.

Posso ancora disattivare il pensiero?
Sì, a basso, medio e alto sforzo. A xhigh e max, disattivare il pensiero restituisce un errore. Anthropic raccomanda invece un livello di sforzo più basso, perché il modello può saltare il pensiero su richieste semplici da solo.

Cosa dovrebbe fare il mio codice quando Haiku 5.5 rifiuta?
Controlla il motivo di arresto prima di leggere il contenuto. Haiku 5.5 non ha un fallback lato server, quindi il tuo codice decide se riformulare, inviare la richiesta a un modello più grande o restituire un errore all'utente.

Perché il mio utilizzo di token è aumentato dopo la migrazione?
Due motivi. Il nuovo tokenizer conta circa il 30% in più di token per lo stesso testo, e il pensiero è attivo per impostazione predefinita, aggiungendo token di output. Riduci lo sforzo e ricalcola i tuoi prompt sul nuovo modello.

Devo cambiare qualcosa per la memorizzazione dei prompt?
Di solito no, e diventa più facile: il prompt memorizzabile minimo scende da 4.096 a 512 token, e i blocchi di pensiero dei turni precedenti rimangono nel prefisso memorizzato per impostazione predefinita. Evita di modificare i turni precedenti, poiché ora invalida i blocchi di pensiero così come la cache.

Può una conversazione passare da Haiku 5.5 a un modello più grande?
Sì. Sonnet 5.5 e Opus 5.5 leggono i blocchi di pensiero di Haiku 5.5, quindi una conversazione escalata a uno dei due mantiene il suo ragionamento precedente. Per altri modelli target, controlla prima la documentazione sui pensieri preservati.

Continua a leggere: la serie Claude Haiku 5.5

Fonti