Claude Platform Docs
Modelli e prezziClaude Fable 5.1

Migrazione a Claude Fable 5.1 e Claude Mythos 5.1

Migra a Claude Fable 5.1 e Claude Mythos 5.1 da Claude Fable 5, Claude Mythos 5, Claude Opus 5 o Claude Opus 4.8: ID dei modelli, modifiche incompatibili e checklist di migrazione.

Claude Fable 5.1 succede a Claude Fable 5 agli stessi prezzi di input e output, con letture dalla cache a un quarto del costo. È disponibile sulla Claude API, su Amazon Bedrock, Claude Platform on AWS, Google Cloud e Microsoft Foundry. Claude Mythos 5.1 condivide le stesse capacità ed è offerto solo ai clienti approvati in Project Glasswing. Per le differenze comportamentali e i pattern di prompting, consulta Prompting di Claude Fable 5.1.

Le impostazioni di base condivise da claude-fable-5-1 e claude-mythos-5-1:

  • Thinking: L'adaptive thinking (pensiero adattivo) è sempre attivo, invariato rispetto a Claude Fable 5. Il modello decide quando e quanto pensare. Non è richiesta alcuna configurazione thinking. Sia thinking: {type: "disabled"} sia l'"extended thinking" (pensiero esteso) manuale (thinking: {type: "enabled", budget_tokens: N}) restituiscono un errore 400.
  • Prefill: Il prefill del messaggio dell'assistente restituisce un errore 400, invariato rispetto a Claude Fable 5. Usa invece istruzioni nel "system prompt" (prompt di sistema).
  • Tool choice: {type: "auto"} (il valore predefinito) e {type: "none"} sono supportati. Forzare una chiamata a uno strumento con {type: "any"} o {type: "tool", name: "..."} restituisce un errore 400. Consulta Modifiche incompatibili.
  • Thinking preservato tra modelli: Claude Fable 5.1 legge i blocchi di thinking di Claude Opus 5, Claude Fable 5, Claude Mythos 5 e dei modelli Claude precedenti. Nessuno di questi modelli può leggere i blocchi di Claude Fable 5.1. Consulta Modifiche incompatibili.
  • Finestra di contesto e output: Una "context window" (finestra di contesto) da 1M di token per impostazione predefinita, e fino a 128k token di output per richiesta.
  • Prezzi: $10 USD per milione di token di input e $50 USD per milione di token di output, come Claude Fable 5. Le letture dalla cache dei prompt costano $0,25 USD per milione di token, un quarto della tariffa di Claude Fable 5. Consulta Prezzi di Claude.
  • Conservazione dei dati: Entrambi i modelli richiedono una conservazione dei dati di 30 giorni, non sono disponibili con accordi di zero data retention (ZDR) salvo espressa autorizzazione di Anthropic, e sono designati come Covered Models, come Claude Fable 5 e Claude Mythos 5. Sulla Claude API, una richiesta proveniente da un'organizzazione o un workspace senza conservazione di 30 giorni restituisce un errore 400 invalid_request_error. Le organizzazioni con un accordo ZDR devono contattare il proprio team account Anthropic, oppure configurare la conservazione per singolo workspace. Consulta Requisiti di conservazione dei dati specifici per modello per i dettagli per piattaforma.

Dove i due modelli divergono:

  • Disponibilità: Claude Fable 5.1 non richiede approvazione per l'accesso. Claude Mythos 5.1 è disponibile solo per i clienti approvati in Project Glasswing. Contatta il tuo team account Anthropic per l'accesso.
  • Classificatori di sicurezza: Claude Fable 5.1 esegue classificatori di sicurezza che coprono le stesse categorie stop_details di Claude Fable 5. Una richiesta rifiutata restituisce stop_reason: "refusal" con una stop_details.category, e può ripiegare su un altro modello con il parametro fallbacks o con un nuovo tentativo lato client. Consulta Rifiuti e fallback.
  • Priority Tier: Nessuno dei due modelli è supportato su Priority Tier. Claude Fable 5 lo è.

Migrazione a Claude Fable 5.1 da Claude Fable 5

La migrazione è per lo più drop-in. La superficie dell'API, i limiti, i prezzi per token, il tokenizer, l'adaptive thinking sempre attivo, la gestione dei rifiuti e le categorie stop_details corrispondono tutti a Claude Fable 5. Cosa cambia: il tool choice forzato restituisce un errore 400, i blocchi di thinking sono preservati solo per il modello che li ha prodotti o uno più recente e solo nella conversazione che li ha prodotti, le letture dalla cache costano meno, e il comportamento nei loop agentici differisce in tre modi. Le stesse modifiche si applicano a Claude Mythos 5.1, tranne il controllo della conversazione sui blocchi di thinking, che Claude Mythos 5.1 non esegue.

Aggiorna il nome del modello

model = "claude-fable-5"  # Before
model = "claude-fable-5-1"  # After

# Oppure, per il modello Project Glasswing con le stesse capacità:
model = "claude-mythos-5-1"  # After

Modifiche incompatibili

  1. Il tool choice forzato non è supportato: Claude Fable 5 accetta tool_choice auto, none, any e tool. Su claude-fable-5-1, {type: "any"} e {type: "tool", name: "..."} restituiscono un errore 400 invalid_request_error:

    tool_choice: type "tool" and "any" are not supported for this model.

    Il controllo si applica alla Messages API, alla Message Batches API e all'endpoint di conteggio dei token.

    Prima (Claude Fable 5):

    client = anthropic.Anthropic()
    
    record_summary_tool = {
        "name": "record_summary",
        "description": "Record the structured summary of the document.",
        "input_schema": {
            "type": "object",
            "properties": {"summary": {"type": "string"}},
            "required": ["summary"],
        },
    }
    
    response = client.messages.create(
        model="claude-fable-5",
        max_tokens=16000,
        tools=[record_summary_tool],
        tool_choice={"type": "tool", "name": "record_summary"},
        messages=[{"role": "user", "content": "Summarize: The meeting moved to Thursday."}],
    )
    print(response.content)

    Dopo (Claude Fable 5.1): lascia tool_choice su auto, nomina lo strumento nell'istruzione e imposta strict: true in modo che la chiamata corrisponda al tuo schema. (In un'organizzazione CMEK, dove gli output strutturati, incluso strict: true, non sono disponibili sui modelli Claude Fable, affidati alla sola istruzione.) Per esempio:

    client = anthropic.Anthropic()
    
    record_summary_tool = {
        "name": "record_summary",
        "description": "Record the structured summary of the document.",
        "strict": True,
        "input_schema": {
            "type": "object",
            "properties": {"summary": {"type": "string"}},
            "required": ["summary"],
            "additionalProperties": False,
        },
    }
    
    response = client.messages.create(
        model="claude-fable-5-1",
        max_tokens=16000,
        tools=[record_summary_tool],
        tool_choice={"type": "auto"},
        messages=[
            {
                "role": "user",
                "content": "Summarize: The meeting moved to Thursday. Call the record_summary tool with your result.",
            }
        ],
    )
    print(response.content)

    Consulta Uso rigoroso degli strumenti e Forzare l'uso degli strumenti. Se forzavi uno strumento solo per ottenere JSON conforme allo schema, usa invece gli output JSON (output_config.format).

    Se la tua applicazione, anziché l'utente, richiede una chiamata a uno strumento specifico nel turno corrente di una conversazione multi-turno, aggiungi un messaggio di sistema a metà conversazione dopo l'ultimo turno user. Nomina lo strumento, indica che la chiamata è obbligatoria per questo turno e di' a Claude di aprire la sua risposta con essa. Poiché il messaggio viene aggiunto in coda anziché scritto nel prompt system di primo livello, i turni precedenti restano identici byte per byte e mantengono i loro hit nella "prompt cache" (cache dei prompt):

    client = anthropic.Anthropic()
    
    search_help_center_tool = {
        "name": "search_help_center",
        "description": "Search the help center for policy and troubleshooting articles.",
        "strict": True,
        "input_schema": {
            "type": "object",
            "properties": {"query": {"type": "string"}},
            "required": ["query"],
            "additionalProperties": False,
        },
    }
    
    response = client.messages.create(
        model="claude-fable-5-1",
        max_tokens=16000,
        system="You are a customer support assistant for an online electronics store.",
        tools=[search_help_center_tool],
        messages=[
            {
                "role": "user",
                "content": "My headphones from order A1234 arrived yesterday.",
            },
            {
                "role": "assistant",
                "content": "Thanks for confirming. How can I help with order A1234?",
            },
            {"role": "user", "content": "I opened the box. Can I still return them?"},
            # L'applicazione richiede una ricerca nel centro assistenza prima di qualsiasi
            # risposta sulle policy. Aggiungere il requisito come messaggio di sistema lascia
            # invariati i turni precedenti.
            {
                "role": "system",
                "content": "Tool-use requirement for the current turn: the application requires a call to the search_help_center tool in your response to the user's latest message. Begin your response with the search_help_center tool call. Do not reply with text only.",
            },
        ],
    )
    print(response.content)

    Mantieni il messaggio role: "system" nella cronologia nelle richieste successive, come per qualsiasi altro turno. I messaggi di sistema a metà conversazione non richiedono alcun header beta. tool_choice: {"type": "none"} funziona ancora per un turno che non deve chiamare strumenti.

  2. I blocchi di thinking sono preservati solo per il modello che li ha prodotti, o uno più recente: Ogni blocco thinking registra quale modello lo ha prodotto. Claude Fable 5.1 legge i propri blocchi e quelli di Claude Mythos 5.1, Claude Opus 5, Claude Fable 5, Claude Mythos 5 e dei modelli Claude precedenti. Una conversazione che passa a claude-fable-5-1 da uno qualsiasi di questi mantiene il suo ragionamento precedente. La condizione è unidirezionale: a parte Claude Mythos 5.1, nessuno di questi modelli può leggere i blocchi di Claude Fable 5.1.

    Una conversazione eseguita su Claude Fable 5.1 può finire su un modello più vecchio tramite un cambio di router, un nuovo tentativo lato client o un fallback per rifiuto del classificatore, incluso un fallback lato server. L'API rimuove i blocchi che quel modello non può leggere prima che li veda, la richiesta ha successo e non ti vengono addebitati i token di input scartati. Il modello di destinazione ripianifica senza quel ragionamento, il che può aumentare costo e latenza nel primo turno dopo il cambio. Per vedere cosa è stato scartato, invia l'header beta thinking-binding-controls-2026-08-01: le risposte conterranno allora un array input_transformations che nomina ogni blocco scartato con reason: "model_binding_mismatch". Consulta Thinking preservato.

  3. Modificare i turni precedenti invalida i blocchi di thinking: Ogni blocco thinking di Claude Fable 5.1 è valido solo rispetto al prompt system, ai tools e alla cronologia della conversazione che lo hanno preceduto. Se Claude Code, claude.ai, Claude Managed Agents o il Claude Agent SDK gestiscono la cronologia della tua conversazione, mantengono già intatto quel prefisso. Se il tuo codice costruisce da sé l'array messages, questo punto ti riguarda, e Thinking preservato è la guida di integrazione completa. Dove il controllo è applicato, una richiesta che rimanda indietro il blocco dopo che uno qualsiasi di questi è cambiato viene rifiutata con un errore 400:

    messages.5.content.0: Invalid `signature` in `thinking` block. The block is bound to a different conversation. Remove the block, or set `thinking.block_binding.prefix_mismatch_behavior` to "drop_block". That setting requires the `thinking-binding-controls-2026-08-01` value in the `anthropic-beta` header.

    L'API applica il controllo per i nuovi account creati a partire dal 31 agosto 2026. Per gli account creati prima, l'API registra la discrepanza ma non interviene a meno che la richiesta non imposti thinking.block_binding.prefix_mismatch_behavior, che attiva l'applicazione del controllo. Anthropic prevede di applicare il controllo a ogni account sui modelli futuri, quindi rendi la tua applicazione compatibile ora: gli stessi pattern mantengono calda la cache dei prompt, e puoi testare il controllo da qualsiasi account inviando prefix_mismatch_behavior. Se distribuisci uno strumento o un framework che le persone eseguono con la propria "API key" (chiave API), testa in questo modo prima del lancio: la tua chiave è probabilmente su un account più vecchio, e i tuoi utenti su account nuovi incontrano il controllo prima di te. Per vedere se il tuo account è soggetto al controllo per impostazione predefinita, invia una richiesta che modifica la cronologia senza l'header beta: un 400 che nomina l'header significa che lo è.

    L'errore è permanente per quel corpo di richiesta: un loop di tentativi automatici non lo risolverà. Per continuare senza il ragionamento invalidato invece di fallire, rimuovi i blocchi thinking dalla cronologia e riprova una volta, oppure invia l'header beta thinking-binding-controls-2026-08-01 e imposta prefix_mismatch_behavior su "drop_block" (il valore predefinito è "error"). Con "drop_block", l'API scarta il blocco non corrispondente e ogni blocco di thinking successivo nella conversazione, e riporta ciascuno con reason: "prefix_binding_mismatch" nell'array input_transformations della risposta:

    client = anthropic.Anthropic()
    
    response = client.beta.messages.create(
        model="claude-fable-5-1",
        max_tokens=16000,
        thinking={
            "type": "adaptive",
            "block_binding": {"prefix_mismatch_behavior": "drop_block"},
        },
        messages=[
            {
                "role": "user",
                "content": "What is the greatest common divisor of 1071 and 462?",
            }
        ],
        betas=["thinking-binding-controls-2026-08-01"],
    )
    
    for block in response.content:
        if block.type == "text":
            print(block.text)
    
    print(f"Input transformations: {len(response.input_transformations or [])}")

    L'endpoint di conteggio dei token esegue lo stesso controllo. Consulta Controlli per i blocchi non preservati (beta) per la forma della risposta e il posizionamento nello streaming.

    Pattern che invalidano i blocchi di thinking successivi, e cosa fare invece:

    • Modificare, riordinare o rimuovere turni precedenti. Questo include eliminare vecchi risultati di strumenti, tagliare turni dal mezzo della trascrizione, e la compattazione lato client che mantiene i turni recenti e i loro blocchi di thinking alla lettera dietro un riassunto (inclusa la compattazione in background che inserisce il suo riassunto qualche turno dopo). Usa invece la compattazione lato server o il context editing (la cancellazione dei risultati degli strumenti per i vecchi risultati di strumenti), oppure una delle forme di compattazione lato client in Riduci il contesto sul server.
    • Iniettare contenuto che non persisti, per esempio un promemoria per turno aggiunto dopo i blocchi tool_result e rimosso alla richiesta successiva. Invia invece il promemoria come messaggio di sistema limitato al turno e lascialo nella cronologia.
    • Ricostruire il prompt system di primo livello o l'array tools tra richieste nella stessa conversazione, per esempio per aggiornare la data corrente o per aggiungere o rimuovere uno strumento. Aggiungi invece un messaggio di sistema a metà conversazione che contenga la nuova istruzione ("The current date is 2026-09-14.") o blocchi tool_addition e tool_removal.
    • Un URL di immagine o documento che serve byte diversi in una richiesta successiva. Il controllo copre i byte, non la stringa dell'URL, quindi un URL firmato a rotazione per lo stesso file va bene. Per contenuti a cui fai riferimento su più turni, caricali una volta con la Files API e invia il file_id, oppure invia base64.

    Ogni sostituzione mantiene inoltre i turni precedenti identici byte per byte e preserva gli hit nella cache dei prompt che la modifica della cronologia, del prompt system o dell'array tools farebbe perdere.

    Pattern che continuano a funzionare:

    • Cronologie append-only: aggiungere turni e rimandare i turni precedenti esattamente come inviati e ricevuti, inclusi i messaggi role: "system" aggiunti.
    • Rimuovere i blocchi di thinking dai turni precedenti dell'assistente, a partire dai più vecchi.
    • Cambiare effort, max_tokens o qualsiasi altro parametro della richiesta al di fuori di system, tools e messages, e aggiungere o spostare marcatori cache_control.
    • Compattazione lato server e context editing, inclusa la cancellazione dei blocchi di thinking. Non contano come modifiche, perché il controllo confronta la conversazione così come l'hai inviata.

    Per verificare un'integrazione esistente:

    1. Cattura i corpi esatti delle richieste che invia nel corso di alcuni turni normali, inclusa una compattazione o un cambio di strumenti se il tuo prodotto li prevede. Per ogni coppia di richieste consecutive, confronta il prompt system, l'array tools e il prefisso condiviso di messages. Devono essere identici byte per byte fino ai turni appena aggiunti.
    2. Esegui una normale sessione multi-turno su claude-fable-5-1 con l'header beta thinking-binding-controls-2026-08-01 e prefix_mismatch_behavior: "drop_block", e registra input_transformations su ogni risposta. Un array vuoto a ogni turno significa che la cronologia è intatta. Una voce con reason: "prefix_binding_mismatch" significa che qualcosa prima del blocco in path è cambiato rispetto alla richiesta precedente. Una voce con reason: "model_binding_mismatch" significa che la conversazione ha cambiato modello, il che non è un bug nel tuo codice. Questo funziona da qualsiasi account, perché impostare il campo attiva l'applicazione del controllo per la richiesta. In CI, imposta invece "error" in modo che una modifica faccia fallire l'esecuzione.
    3. Scegli un'impostazione di produzione. Lascia il valore predefinito "error" se una discrepanza del prefisso può significare solo un bug nel tuo codice, oppure imposta "drop_block" per scartare i blocchi interessati invece di fallire, e in entrambi i casi monitora i 400 o le voci di input_transformations.

    Scartare i blocchi di thinking una volta, per esempio a un confine di compattazione, ha poco effetto. Un'integrazione che invalida il thinking precedente a ogni richiesta riavvia la cache dei prompt ogni volta, il che può aumentare il costo per attività (consulta Mantieni la cronologia della conversazione append-only).

Cambiamenti di comportamento

  1. Meno chiamate parallele a strumenti nei loop agentici lunghi: Nei loop di lunga durata in cui le successive letture indipendenti sono solo implicite nell'attività (agenti di coding personalizzati, harness bash-and-editor, computer use), Claude Fable 5.1 può emettere una sola chiamata a strumento per turno. Ogni turno in più costa token, un round trip e tempo reale. Aggiungi un'istruzione di batching di una frase dopo ogni messaggio utente come messaggio di sistema limitato al turno (clear_at: "next_user_message", beta), oppure, senza la beta, in un blocco di testo dopo i blocchi tool_result, e lascia le copie precedenti nella cronologia nelle richieste successive. Consulta Raggruppa le chiamate a strumenti indipendenti nei loop agentici.

  2. Meno messaggi di avanzamento tra le chiamate a strumenti: Claude Fable 5.1 scrive meno aggiornamenti di stato durante lunghe sequenze di strumenti rispetto a Claude Fable 5, e i suoi riassunti di coding agentico sono più brevi. Se la tua interfaccia visualizza questi aggiornamenti, imposta thinking.display su "updates" (beta, Claude API) o "summarized" e richiedili esplicitamente nel prompt. Consulta Aggiornamenti di avanzamento tra le chiamate a strumenti e Chiedi aggiornamenti di avanzamento rivolti all'utente.

  3. Meno chiamate di ricerca e recupero a effort basso: A effort low Claude Fable 5.1 risponde dalla memoria più spesso di Claude Fable 5 invece di chiamare uno strumento di ricerca o recupero. Se il tuo prodotto si basa sul recupero a effort basso, aumenta l'effort per quelle richieste o indica al modello quando cercare. Consulta Attivazione della ricerca a effort basso.

Per le differenze nella densità della prosa, nella formattazione della chat, nelle citazioni nei riassunti e nelle modifiche ai file, che non influiscono sull'integrazione API, consulta Cambiato rispetto a Claude Fable 5.

Queste modifiche non sono obbligatorie, ma ciascuna riduce costo o latenza o elimina una modalità di errore:

  1. Cambia l'effort a metà conversazione (beta): Su Claude Fable 5, output_config.effort è a livello di richiesta, e cambiarlo tra richieste fa perdere i prefissi in cache dei turni precedenti. Su claude-fable-5-1, un messaggio role: "system" che contiene solo output_config aumenta l'effort per un passaggio difficile o lo riduce per quelli di routine senza invalidare la cache dei prompt:

    client = anthropic.Anthropic()
    
    response = client.beta.messages.create(
        model="claude-fable-5-1",
        max_tokens=4096,
        output_config={"effort": "high"},
        messages=[
            {
                "role": "user",
                "content": "Plan a migration from SQLite to PostgreSQL in three short steps.",
            },
            {
                "role": "assistant",
                "content": "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.",
            },
            # Messaggio di sistema solo effort: il nuovo livello ha effetto dal prossimo turno utente.
            {"role": "system", "content": [], "output_config": {"effort": "low"}},
            {"role": "user", "content": "Summarize the plan in one sentence."},
        ],
        betas=["mid-conversation-output-config-2026-07-01"],
    )
    
    for block in response.content:
        if block.type == "text":
            print(block.text)

    Il valore si applica al turno utente seguente e a ogni turno successivo finché un altro messaggio role: "system" non lo cambia. Sono accettati solo i livelli nominati (low, medium, high, xhigh, max), ed è richiesto l'header beta mid-conversation-output-config-2026-07-01. Consulta Effort per messaggio.

  2. Cambia istruzioni e strumenti con messaggi di sistema a metà conversazione: Per cambiare istruzioni o strumenti nel corso di una sessione, aggiungi un messaggio role: "system", con blocchi tool_addition e tool_removal per le modifiche agli strumenti (header beta mid-conversation-tool-changes-2026-07-01, con l'insieme completo degli strumenti dichiarato in tools all'inizio della sessione). Questo preserva gli hit nella cache dei prompt sui turni precedenti e mantiene la cronologia della conversazione append-only. Lo stesso messaggio sostituisce il tool_choice forzato quando uno strumento specifico deve essere eseguito nel turno corrente (consulta Modifiche incompatibili). Per un promemoria che si applica a un solo turno, invialo come messaggio role: "system" separato di solo testo con clear_at: "next_user_message" (messaggi di sistema limitati al turno, header beta mid-conversation-system-clear-at-2026-08-21) e lascialo nella cronologia: smette di essere renderizzato dopo il messaggio utente successivo e non costa token una volta cancellato. Un messaggio che contiene blocchi tool_addition o tool_removal non può essere limitato al turno.

  3. Usa fallbacks: "default" per i rifiuti: Continua a gestire stop_reason: "refusal" e a leggere stop_details.category prima del contenuto della risposta. Per rieseguire automaticamente le richieste rifiutate su un altro modello, imposta fallbacks: "default" (beta, header server-side-fallback-2026-07-01). "default" ritenta una richiesta rifiutata sul modello che Anthropic consiglia per quella categoria. I target di fallback consentiti per Claude Fable 5.1 sono Claude Opus 4.8 (claude-opus-4-8) e Claude Opus 5 (claude-opus-5). Una lista fallbacks esplicita può nominare l'uno o l'altro. Il modello di fallback non riceve i blocchi di thinking di Claude Fable 5.1. Se costruisci tu stesso il nuovo tentativo, il credito di fallback si applica alle stesse condizioni di Claude Fable 5. Consulta Rifiuti e fallback.

  4. Inizia a effort high ed esegui uno sweep: Il valore predefinito del parametro effort è high, e tutti e cinque i livelli sono supportati. Mantieni le indicazioni di Claude Fable 5: high per la maggior parte del lavoro, e medium come controllo dei costi che vale la pena testare. I miglioramenti di Claude Fable 5.1 rispetto a Claude Fable 5 sono maggiori a xhigh e max, ma questi livelli aggiungono anche tempo di thinking e tempo alla prima risposta, quindi passa a essi per le attività più sensibili alle capacità e dove le tue valutazioni mostrano il miglioramento. Esegui un nuovo sweep sulle tue valutazioni invece di riportare un'impostazione calibrata per Claude Fable 5. Consulta Livelli di effort consigliati per Claude Fable 5.1.

  5. Riduci il contesto sul server, oppure compatta in una forma che non porti thinking obsoleto: Se il tuo codice tronca o riassume i turni più vecchi sul client, la soluzione più semplice è spostare quel lavoro sulla compattazione lato server o sul context editing. Nessuno dei due conta come modifica, perché il controllo della cronologia confronta la conversazione così come l'hai inviata, quindi nulla di ciò che rimuovono invalida i blocchi di thinking successivi, e il parametro instructions della compattazione accetta il tuo prompt di riassunto personalizzato. Se mantieni la compattazione sul client, scegli una di tre forme:

    • Compattazione semplice (consigliata): sostituisci l'intera cronologia con un unico messaggio di riassunto più il nuovo turno utente e non riprodurre nient'altro. Nessun blocco di thinking viene riportato, quindi nulla fallisce. I modelli Claude sono addestrati su attività a lungo orizzonte con questo schema, che ha prestazioni paragonabili a schemi più elaborati per la maggior parte dei carichi di lavoro.
    • Compattazione keep-tail: se mantieni i turni più recenti alla lettera dietro un riassunto, rimuovi i blocchi thinking e redacted_thinking da quei turni (testo e chiamate a strumenti possono restare), oppure imposta prefix_mismatch_behavior: "drop_block". Il loro thinking è stato prodotto rispetto alla cronologia completa e altrimenti fallisce dietro il riassunto.
    • Compattazione in background: se costruisci il riassunto fuori dal percorso critico e lo inserisci più tardi, ogni turno prodotto nel frattempo porta thinking che precede la sostituzione. Invia "drop_block" su ogni richiesta che porta ancora blocchi di thinking prodotti prima della sostituzione (oppure rimuovi tu stesso quei blocchi; input_transformations sulla prima risposta dopo la sostituzione elenca esattamente quali), oppure compatta in modo sincrono.

    Non tagliare singoli turni dal mezzo della trascrizione: questo invalida ogni blocco di thinking successivo e nessuna forma lato client lo evita. Usa un messaggio di sistema a metà conversazione per il cambio di istruzione che stavi facendo, oppure il context editing lato server per la rimozione selettiva. Consulta Rimandare indietro i blocchi di compattazione.

Checklist di migrazione

  • Aggiorna il nome del modello da claude-fable-5 a claude-fable-5-1 (o da claude-mythos-5 a claude-mythos-5-1).
  • Sostituisci il tool_choice forzato ({type: "any"} o {type: "tool", ...}). Restituisce un errore 400. Usa {type: "auto"} più un'istruzione esplicita e strumenti con strict: true, oppure output JSON. Inserisci l'istruzione nel turno user, oppure in un messaggio role: "system" a metà conversazione quando la tua applicazione richiede la chiamata.
  • Continua a restituire i blocchi thinking invariati a ogni turno, inclusi quelli vuoti. Claude Fable 5.1 legge i blocchi di Claude Opus 5, Claude Fable 5, Claude Mythos 5 e dei modelli precedenti. Spostare una conversazione da Claude Fable 5.1 a un modello precedente ne scarta i blocchi (Claude Mythos 5.1 li legge).
  • Se il tuo codice costruisce da sé l'array messages, verifica se modifica i turni precedenti: esegui una sessione con l'header beta thinking-binding-controls-2026-08-01 e prefix_mismatch_behavior: "drop_block", registra input_transformations e correggi ogni prefix_binding_mismatch. Le voci model_binding_mismatch dopo un cambio di modello sono previste.
  • Mantieni la cronologia della conversazione in sola aggiunta (append-only): congela system e tools all'inizio della sessione e sposta le modifiche a metà sessione in messaggi role: "system" e blocchi tool_addition / tool_removal, invia i promemoria per turno come messaggi di sistema con ambito di turno che non rimuovi mai, riduci il contesto lato server oppure rimuovi i blocchi di pensiero da qualsiasi turno che trasporti attraverso un riepilogo lato client, e fai riferimento ai file tra turni tramite file_id.
  • Scegli un prefix_mismatch_behavior di produzione ("error" per impostazione predefinita, oppure "drop_block") e monitoralo. Se mantieni uno strumento che altri eseguono con la propria chiave API, esegui i test con il campo impostato: i nuovi account sono soggetti all'applicazione per impostazione predefinita anche se il tuo non lo è.
  • Rivedi i loop degli agenti per il comportamento di una sola chiamata di strumento per turno e aggiungi l'istruzione di raggruppamento (batching).
  • Se la tua interfaccia visualizza testo di avanzamento tra le chiamate di strumenti, imposta thinking.display su "updates" (beta) o "summarized" e richiedi gli aggiornamenti nel prompt.
  • Se modifichi l'effort tra le richieste, sposta la modifica in un messaggio role: "system" di effort per messaggio (beta) per mantenere i riscontri nella cache.
  • Gestisci stop_reason: "refusal" e leggi stop_details.category. Valuta fallbacks: "default" (beta).
  • Rivaluta effort con una nuova esplorazione, partendo da high, e ricalcola la baseline di costo e latenza sui tuoi carichi di lavoro. I conteggi dei token sono pressoché invariati. Le letture dalla cache dei prompt costano un quarto della tariffa di Claude Fable 5.

Migrazione a Claude Fable 5.1 da Claude Opus 5

Claude Fable 5.1 usa gli stessi pattern della Messages API e di uso degli strumenti di Claude Opus 5. Mantiene per impostazione predefinita la finestra di contesto da 1M di token, i 128k token massimi di output, il minimo di 512 token per la cache dei prompt e il supporto ai messaggi di sistema a metà conversazione. Anche la restrizione sul prefill, la restrizione sui parametri di campionamento e il valore predefinito "omitted" per thinking.display vengono mantenuti. Applica tutto quanto indicato in Migrazione a Claude Fable 5.1 da Claude Fable 5, più quanto segue.

Aggiorna il nome del modello

model = "claude-opus-5"  # Before
model = "claude-fable-5-1"  # After

# Oppure, per il modello Project Glasswing con le stesse capacità:
model = "claude-mythos-5-1"  # After

Cosa è cambiato

  1. Il pensiero non può più essere disabilitato: Claude Opus 5 accetta thinking: {type: "disabled"} a un livello di effort pari a high o inferiore. Su claude-fable-5-1 e claude-mythos-5-1, il pensiero adattivo è sempre attivo e thinking: {type: "disabled"} restituisce un errore 400 a qualsiasi livello di effort. Rimuovi il campo, controlla la spesa di token con livelli di effort inferiori e rivedi max_tokens per i carichi di lavoro che venivano eseguiti con il pensiero disabilitato.

  2. La scelta forzata dello strumento non è supportata: Claude Opus 5 accetta tool_choice any e tool. claude-fable-5-1 restituisce un errore 400. Consulta Modifiche di rilievo.

  3. Pensiero preservato tra modelli: Claude Fable 5.1 legge i blocchi di pensiero di Claude Opus 5: le conversazioni che passano da claude-opus-5 a claude-fable-5-1 mantengono il loro ragionamento. Claude Opus 5 non può leggere i blocchi di Claude Fable 5.1. I blocchi di Claude Fable 5.1 inoltre cessano di essere validi quando i turni precedenti cambiano: se il tuo codice modifica i messaggi precedenti, ricostruisce system o tools, oppure compatta sul client tra le richieste, Claude Opus 5 non obiettava, ma claude-fable-5-1 rifiuta o scarta ogni blocco di pensiero successivo. Esegui la verifica in tre passaggi di quella sezione prima di spostare il traffico. Consulta Modifiche di rilievo.

  4. Il testo tra le chiamate di strumenti viene restituito in blocchi di pensiero: Su Claude Opus 5, il testo che il modello scrive tra le chiamate di strumenti viene restituito come blocchi text. Su claude-fable-5-1, come su Claude Fable 5, quella narrazione viene restituita come blocchi thinking di aggiornamento di avanzamento, uno prima di ogni chiamata di strumento. Con il valore predefinito "omitted" di thinking.display, non contengono testo leggibile. Se la tua interfaccia visualizza quella narrazione, imposta display: "updates" (beta, Claude API) per ricevere gli aggiornamenti di avanzamento come testo mentre il ragionamento resta nascosto, oppure "summarized" per ricevere entrambi. Quindi visualizza i blocchi thinking non vuoti tra i blocchi tool_use. Consulta Aggiornamenti di avanzamento tra le chiamate di strumenti.

  5. Classificatori di sicurezza e instradamento di fallback: Claude Fable 5.1 esegue classificatori di sicurezza che coprono le stesse categorie stop_details di Claude Fable 5, un insieme più ampio rispetto ai classificatori di Claude Opus 5 limitati alla sola cybersicurezza. Aspettati valori di stop_details.category oltre a "cyber", come "bio" e "reasoning_extraction"; consulta la tabella delle categorie di rifiuto per l'insieme completo. Per la configurazione di fallbacks e le destinazioni consentite, consulta Usa fallbacks: "default" per i rifiuti.

  6. Prezzi: $10 USD per milione di token di input e $50 USD per milione di token di output, rispetto a $5 USD e $25 USD per Claude Opus 5. Le letture dalla cache dei prompt costano $0,25 USD per milione di token, la metà della tariffa di Claude Opus 5. Consulta Prezzi di Claude.

  7. Conservazione dei dati: Claude Fable 5.1 e Claude Mythos 5.1 richiedono una conservazione dei dati di 30 giorni, non sono disponibili con accordi di zero data retention (ZDR) salvo espressa autorizzazione di Anthropic, e sono designati come Covered Models. Claude Opus 5 è disponibile con ZDR. Consulta Requisiti di conservazione dei dati specifici per modello.

Checklist di migrazione

  • Se la tua organizzazione ha un accordo di zero data retention (ZDR), verifica prima l'idoneità: questi modelli non sono disponibili con ZDR salvo espressa autorizzazione di Anthropic. Consulta Requisiti di conservazione dei dati specifici per modello.
  • Aggiorna il nome del modello da claude-opus-5 a claude-fable-5-1 (o claude-mythos-5-1).
  • Rimuovi qualsiasi configurazione thinking: {type: "disabled"}: restituisce un errore 400 su claude-fable-5-1. Controlla la spesa di token con livelli di effort inferiori e rivedi max_tokens.
  • Sostituisci il tool_choice forzato (any o tool) con auto più un'istruzione esplicita (turno user o messaggio di sistema a metà conversazione) e strumenti con strict: true, oppure con output JSON.
  • Se la tua interfaccia visualizza testo tra le chiamate di strumenti, imposta display: "updates" (beta) o "summarized" e visualizza i blocchi thinking non vuoti.
  • Applica le voci relative a pensiero preservato, modifica della cronologia, comportamento, effort e fallback della checklist di Claude Fable 5.
  • Ricalcola la baseline dei costi sui tuoi carichi di lavoro. I conteggi dei token sono pressoché invariati. Il prezzo per token è diverso.

Migrazione a Claude Fable 5.1 da Claude Opus 4.8 o precedenti

Applica prima Migrazione a Claude Mythos 5 e Claude Fable 5 da Claude Opus 4.8 per le modifiche a livello di API rispetto a Claude Opus 4.8. Copre il pensiero adattivo, l'output del pensiero, i rifiuti, l'effort, il minimo per la cache, i prezzi e la conservazione dei dati. Quindi applica il delta rimanente in Migrazione a Claude Fable 5.1 da Claude Fable 5. Su Claude Opus 4.7 o precedenti, inizia dalla sezione corrispondente di Migrazione a Claude Opus 5.

Aggiorna il nome del modello

model = "claude-opus-4-8"  # Before
model = "claude-fable-5-1"  # After

# Oppure, per il modello Project Glasswing con le stesse capacità:
model = "claude-mythos-5-1"  # After

Checklist di migrazione

  • Se la tua organizzazione ha un accordo di zero data retention (ZDR), verifica prima l'idoneità: questi modelli non sono disponibili con ZDR salvo espressa autorizzazione di Anthropic. Claude Opus 4.8 è disponibile con ZDR.
  • Aggiorna il nome del modello da claude-opus-4-8 a claude-fable-5-1 (o claude-mythos-5-1).
  • Rimuovi qualsiasi configurazione thinking: {type: "disabled"} e rivedi max_tokens. Le richieste senza un campo thinking vengono eseguite con il pensiero adattivo.
  • Sostituisci il tool_choice forzato (any o tool) con auto più un'istruzione esplicita (turno user o messaggio di sistema a metà conversazione) e strumenti con strict: true, oppure con output JSON.
  • Restituisci i blocchi thinking invariati e tratta il loro testo come destinato alla sola visualizzazione. Claude Fable 5.1 legge i blocchi di pensiero di Claude Opus 4.8: una conversazione che passa a claude-fable-5-1 mantiene il suo ragionamento precedente. Claude Opus 4.8 non può leggere i blocchi di Claude Fable 5.1.
  • Se il tuo codice costruisce da sé l'array messages, verifica se modifica i turni precedenti. Le integrazioni scritte per Claude Opus 4.8 e precedenti spesso troncano i turni vecchi, rimuovono o ricostruiscono i messaggi precedenti, oppure aggiornano il prompt system a ogni richiesta, e Claude Opus 4.8 non ha mai obiettato. Su claude-fable-5-1 ciascuna di queste operazioni invalida i blocchi di pensiero successivi.
  • Gestisci stop_reason: "refusal", leggi stop_details.category e valuta fallbacks: "default" (beta).
  • Applica le voci relative a pensiero preservato, modifica della cronologia, comportamento, effort per messaggio e aggiornamenti di avanzamento della checklist di Claude Fable 5.
  • Rivaluta effort (parti da high), rivedi i prompt vicini al minimo di 512 token per la cache e ricalcola la baseline di costo e latenza. Il prezzo per token è diverso.

Migrazione a Claude Mythos 5.1 da Claude Mythos 5

Claude Mythos 5.1 è la controparte ad accesso controllato di Claude Fable 5.1. Verifica l'accesso della tua organizzazione con il tuo team account Anthropic prima di cambiare gli ID dei modelli.

Il delta a livello di API corrisponde a Migrazione a Claude Fable 5.1 da Claude Fable 5: la scelta forzata dello strumento restituisce un errore 400 e i blocchi di pensiero vengono preservati solo per il modello che li ha prodotti o per uno più recente (Claude Mythos 5.1 legge i blocchi di Claude Mythos 5, non viceversa). A differenza di Claude Fable 5.1, Claude Mythos 5.1 non esegue la verifica della conversazione, quindi modificare i turni precedenti non invalida i blocchi di pensiero, anche se riavvia comunque la cache dei prompt.

Aggiorna il nome del modello

model = "claude-mythos-5"  # Before
model = "claude-mythos-5-1"  # After

Checklist di migrazione

  • Aggiorna il nome del modello da claude-mythos-5 a claude-mythos-5-1.
  • Sostituisci il tool_choice forzato (any o tool) con auto più un'istruzione esplicita (turno user o messaggio di sistema a metà conversazione) e strumenti con strict: true, oppure con output JSON.
  • Gestisci stop_reason: "refusal" e leggi stop_details.category prima del contenuto della risposta. Consulta Rifiuti e fallback.
  • Continua a restituire i blocchi thinking invariati a ogni turno, inclusi quelli vuoti.
  • Se il tuo codice costruisce da sé l'array messages, mantieni la cronologia della conversazione in sola aggiunta per mantenere calda la cache dei prompt. Claude Mythos 5.1 non esegue la verifica della conversazione, quindi le modifiche non invalidano i suoi blocchi di pensiero.
  • Applica le modifiche di comportamento e quelle consigliate della sezione Claude Fable 5, eccetto le voci relative alla modifica della cronologia, che non si applicano a Claude Mythos 5.1.
  • Rivaluta effort con una nuova esplorazione e ricalcola la baseline di costo e latenza. Le letture dalla cache dei prompt costano un quarto della tariffa di Claude Mythos 5.

Was this page helpful?