Como migrar do Claude Fable 5 para o Claude Fable 5.1 sem quebrar sua aplicação

Migrar para o Claude Fable 5.1 é, na maior parte, trocar a string claude-fable-5 por claude-fable-5-1: superfície da API, limites, preço por token, tokenizer e tratamento de recusas seguem iguais aos do Fable 5. O risco mora em três pontos que quebram código: uso forçado de ferramenta agora retorna erro, modelos anteriores não conseguem ler os blocos de thinking do 5.1 e editar turnos anteriores invalida esses blocos. Some a isso o agent loop com uma chamada de ferramenta por turno e o effort que muda no meio da conversa. Valide em ambiente de teste, rode seus evals e só então vá para produção
Trocar o modelo de uma aplicação que já está rodando parece um find and replace inocente, e é aí que mora o perigo
A Anthropic anunciou o Claude Fable 5.1 (e o Claude Mythos 5.1) no dia 1 de setembro de 2026
O Fable 5, que saiu em junho de 2026, continua ativo na API, não foi depreciado e não tem data de aposentadoria anunciada
Ou seja: migrar para o Claude Fable 5.1 é uma escolha tua, não uma corrida contra o relógio 🙂
Este post é um checklist de integração pra quem já tem código em produção: onde o nome do modelo aparece, o que quebra de verdade, como testar antes e quais sinais indicam que o comportamento mudou
Fable 5 e Fable 5.1: o que continua igual e o que muda
Antes de sair mexendo, vale ver o mapa lado a lado
A boa notícia é que a maior parte da migração é drop-in: superfície da API, limites, preço por token, tokenizer, thinking adaptativo sempre ligado, tratamento de recusas e as categorias de stop_details são iguais aos do Fable 5
| Item | Claude Fable 5 | Claude Fable 5.1 |
|---|---|---|
| ID do modelo na API | claude-fable-5 |
claude-fable-5-1 |
| Preço de entrada | US$ 10 por milhão de tokens | US$ 10 por milhão de tokens |
| Preço de saída | US$ 50 por milhão de tokens | US$ 50 por milhão de tokens |
| Cache read | US$ 1,00 por milhão de tokens | US$ 0,25 por milhão de tokens (queda de 75%) |
| Cache write | não informado | US$ 12,50 por milhão (US$ 20,00 na versão de 1 hora) |
| Janela de contexto | não informado | 1 milhão de tokens, padrão e máximo, com preço por token padrão em toda a janela |
| Saída máxima | não informado | 128 mil tokens |
tool_choice forçado |
suportado | retorna 400 invalid_request_error |
| Blocos de thinking | sem vínculo de modelo e conversa | vinculados ao modelo que os produziu (ou mais novo) e à conversa que os produziu |
| Effort no meio da conversa | não informado | pode mudar sem invalidar o cache de prompt, padrão high |
| Agent loop | agrupava várias chamadas de ferramenta | uma chamada de ferramenta por turno |
A queda no cache read é o que mais mexe na conta no fim do mês: a estimativa é de cerca de 25% de redução em workloads típicos e de até aproximadamente 45% em workloads altamente agênticos
Se a tua aplicação já parou no meio do expediente alguma vez, vale entender como os créditos da Claude API se comportam antes de aumentar o volume de chamadas confiando na economia
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 118 aulas
- 4 projetos
- 9h 33min
Os três pontos que quebram código:
De tudo que muda, só três coisas quebram código de verdade na migração
Guarda esses três, porque o resto do post volta neles o tempo todo:
- Uso forçado de ferramenta:
tool_choiceforçado agora retorna erro - Thinking blocks: modelos anteriores não conseguem ler os blocos de thinking do 5.1
- Edição de turnos: editar turnos anteriores invalida os blocos de thinking
O resto é troca de string e recalibragem, beleza?
Sua integração precisa de ajuste? Três cenários
Antes do passo a passo, se identifica num destes três
Isso te diz de cara quanto trabalho tem pela frente
Cenário 1: quem não gerencia o histórico na mão
Se quem cuida do histórico da conversa é o Claude Code, o claude.ai, os Claude Managed Agents ou o Claude Agent SDK, o prefixo da conversa já é mantido intacto
Traduzindo: aquele item chatíssimo dos blocos de thinking não exige trabalho manual do teu lado
Sobra pra ti a troca do ID e a validação de comportamento
Cenário 2: quem monta o array de mensagens na unha
Aqui tu tem trabalho de verdade
É o cenário em que o teu código precisa garantir histórico append-only, porque cada bloco de thinking do 5.1 é válido só contra o system prompt, o array de tools e o histórico de mensagens exatos que vieram antes dele
Mexeu em qualquer um dos três, a requisição seguinte dá erro (ou o bloco é descartado, se tu escolher esse comportamento)
Cenário 3: quem consome via nuvem de terceiro
O Fable 5.1 está disponível na Claude API, no Amazon Bedrock, no Google Cloud e no Microsoft Foundry
Cada plataforma tem o seu formato de identificador, então a troca não é sempre a mesma string colada em todo lugar
Se tu consome o modelo por uma dessas plataformas, confirma o formato correto do ID ali antes de subir qualquer coisa
O que ter em mãos antes de trocar o ID do modelo
Nada de sair editando arquivo às cegas, se liga na lista de preparação:
- Mapa de onde a string aparece: código, variáveis de ambiente, arquivos de config, prompts salvos e os clientes de cada nuvem.
claude-fable-5tem o hábito de estar em mais lugar do que a memória lembra - Um conjunto de evals rodável: sem isso tu não tem como afirmar que nada mudou de comportamento, só "achar"
- Ambiente de teste separado de produção: os três pontos que quebram código (uso forçado de ferramenta, thinking blocks e edição de turnos) quebram silenciosamente em alguns casos, e tu não quer descobrir isso com usuário na frente
O guia de migração oficial lista cinco checagens de follow-up: remover chamadas com tool_choice forçado, verificar que o código mantém o histórico append-only, re-calibrar o effort agora que ele muda no meio da conversa, observar o novo padrão de uma chamada de ferramenta por turno nos agent loops e rodar de novo o conjunto de evals
É exatamente esse o roteiro que o passo a passo abaixo segue
Passo a passo da migração do Fable 5 para o Fable 5.1
- Trocar o ID
claude-fable-5porclaude-fable-5-1
Dá pra fazer na mão ou usar a skill claude-api, que já vem embutida no Claude Code
/claude-api migrate this project to claude-fable-5-1
Ela confirma o escopo antes de editar, aplica a troca do ID e as mudanças de parâmetro, detecta os clientes de nuvem que ela cobre (Bedrock, Vertex, Claude Platform on AWS e Foundry) ajustando o formato do identificador, e no fim te devolve um checklist do que verificar na mão
O erro comum deste passo: aceitar a troca automática sem revisar o diff. A própria orientação da skill é revisar o diff e rodar os evals depois, porque troca automática de parâmetro ainda exige validação comportamental
- Remover o uso forçado de ferramenta
Esse é o primeiro dos três pontos que quebram código
tool_choice com {"type": "any"} ou {"type": "tool", "name": "..."} retorna 400 invalid_request_error, com a mensagem de que os tipos "tool" e "any" não são suportados para esse modelo
// antes
"tool_choice": {"type": "any"}
// depois
"tool_choice": {"type": "auto"}
Só trocar o tipo não basta: o substituto oficial é tool_choice: {"type": "auto"} com instrução explícita (no turno do usuário ou em system message no meio da conversa) e ferramentas com strict: true, ou então partir pra structured outputs
O erro comum deste passo: mudar pra auto e não dar a instrução explícita, aí o modelo simplesmente não chama a ferramenta que o teu fluxo esperava
- Validar o histórico append-only com a checagem de três passos
Aqui entram o segundo e o terceiro pontos que quebram código: modelos anteriores não leem os blocos de thinking do 5.1, e a edição de turnos anteriores invalida esses blocos
A Anthropic recomenda um caminho bem direto pra descobrir se o teu código está estragando o prefixo
Primeiro, rodar uma sessão normal com o header beta e prefix_mismatch_behavior: "drop_block":
anthropic-beta: thinking-binding-controls-2026-08-01
Segundo, logar input_transformations em toda resposta e corrigir cada entrada com prefix_binding_mismatch
Terceiro, escolher entre "error" ou "drop_block" pro que vai pra produção
O erro comum deste passo: rodar sem o header beta. Sem ele o descarte de bloco é silencioso, e tu vai ficar caçando fantasma
- Re-calibrar o effort
No Fable 5.1 dá pra alterar o nível de effort no meio da conversa sem invalidar o cache de prompt: sobe num passo difícil, baixa nos rotineiros
O padrão é high
O erro comum deste passo: deixar tudo no padrão e estranhar a conta ou a latência depois. Se o teu uso passa pelo Claude Code, dá pra olhar quanto token a sessão gastou e calibrar com dado na mão em vez de feeling
- Rodar o conjunto de evals no ambiente de teste
Só depois disso é que a coisa vai pra produção, beleza?
O erro comum deste passo: rodar os evals direto contra produção porque "é só uma string diferente". As três mudanças que quebram código não aparecem no diff, elas aparecem no comportamento
Sinais de que algo mudou de comportamento (e o que fazer)
Migração de modelo raramente falha com fogos de artifício
Ela falha com um sintoma esquisito que ninguém liga ao deploy da semana passada
Sintoma A: erro 400 citando os tipos "tool" e "any"
Causa: sobrou tool_choice forçado em algum lugar do código
Solução: trocar por tool_choice: {"type": "auto"} com instrução explícita e ferramentas com strict: true, ou migrar aquele fluxo pra structured outputs
Prevenção: buscar por tool_choice no projeto inteiro antes do deploy, não só nos arquivos que tu lembra
Sintoma B: a requisição falha ou o bloco de thinking simplesmente some
Causa: o vínculo do bloco com o prefixo exato. Editou system prompt, array de tools ou histórico de mensagens, o bloco perde a validade
Solução: ligar o header beta pra enxergar o que está acontecendo. Com ele, o descarte é reportado num array de topo input_transformations com reason: "prefix_binding_mismatch". Sem ele, o descarte é silencioso
Detalhe que tira um peso das costas: bloco de thinking descartado não conta pra input_tokens e não é faturado
Prevenção: o que mantém os blocos válidos numa sessão longa, segundo a documentação de preserved thinking, é histórico append-only, remover uma sequência inicial de blocos do mais antigo para o mais novo, compactação ou edição de contexto server-side, mover marcadores cache_control e mudar o effort entre requisições
Sintoma C: o agente fica em silêncio por minutos
Causa: por padrão o Fable 5.1 escreve menos updates visíveis ao usuário do que o Fable 5 durante turnos longos de chamada de ferramenta. O efeito é mais pronunciado em effort alto e cadeias longas de ferramentas
Não é travamento, é o modelo falando menos
Solução: o Fable 5.1 escreve updates curtos de progresso entre as chamadas, cada um como um bloco de thinking próprio. Com o header beta thinking-display-updates-2026-08-18 e a opção display: "updates", eles chegam como texto enquanto o raciocínio segue oculto
Prevenção: se a tua UI tem indicador de atividade, testa esse modo antes de o suporte receber ticket de "travou"
Sintoma D: agent loop mais lento ou com fluxo diferente
Causa: o comportamento do agent loop mudou em relação ao Fable 5, e a diferença mais visível é uma chamada de ferramenta por turno onde o Fable 5 agrupava várias
Solução: revisar as suposições do teu loop, principalmente contagem de turnos, timeouts e qualquer lógica que esperava várias tool calls chegando juntas
Prevenção: medir o loop antes e depois no ambiente de teste, com o mesmo cenário dos dois lados
Migração feita: o que checar depois
No fim das contas, a maior parte disso é troca de string
O risco de verdade mora nos três pontos de sempre: uso forçado de ferramenta que agora retorna erro, modelos anteriores que não conseguem ler os blocos de thinking do 5.1 e a edição de turnos anteriores que invalida esses blocos
Automação ajuda muito, mas não dispensa revisar o diff e rodar o conjunto de evals de novo
E se algo ficar estranho, lembra que o Fable 5 continua disponível como plano B enquanto os testes rodam, já que ele não foi depreciado nem tem data de aposentadoria anunciada
Vale saber também que o texto gerado pelo Claude Fable 5.1 e pelo Claude Mythos 5.1 carrega a marca d’água estatística de texto da Anthropic em toda plataforma onde o modelo está disponível
Próximo passo concreto: roda o teu conjunto de evals com o header beta ligado, olha o input_transformations de cada resposta e só então manda pra produção
Até o próximo post! 😀
Perguntas frequentes
Preciso migrar para o Claude Fable 5.1 com urgência antes que o Fable 5 pare de funcionar?
Não. O Fable 5 continua ativo na API, não foi depreciado e não tem data de aposentadoria anunciada. Migrar para o Claude Fable 5.1 é uma escolha tua, não uma corrida contra o relógio.
Quais são os três pontos que quebram código na migração para o Claude Fable 5.1?
São três: uso forçado de ferramenta, que agora retorna erro; thinking blocks, porque modelos anteriores não conseguem ler os blocos de thinking do 5.1; e edição de turnos, já que editar turnos anteriores invalida esses blocos. O resto da migração é drop-in, com superfície da API, limites, preço por token, tokenizer e categorias de stop_details iguais aos do Fable 5.
Como resolver o erro 400 quando uso tool_choice forçado no Claude Fable 5.1?
O tool_choice com {"type": "any"} ou {"type": "tool", "name": "…"} não é mais suportado e retorna invalid_request_error. O substituto é usar tool_choice: {"type": "auto"} com instrução explícita no turno do usuário (ou em system message no meio da conversa) e ferramentas com strict: true, ou então partir pra structured outputs.
Por que os blocos de thinking do Claude Fable 5 somem depois que eu troco o ID do modelo?
No Fable 5.1 os blocos de thinking passam a ser vinculados ao modelo que os produziu (ou a um mais novo) e à conversa que os produziu. Se o system prompt, o array de tools ou o histórico de mensagens que veio antes mudar, o bloco dá erro na requisição seguinte ou é descartado, dependendo do comportamento escolhido.
Tem como saber quando o Claude Fable 5.1 descarta um bloco de thinking sem eu perceber?
Tem sim: com o header beta thinking-binding-controls-2026-08-01 o descarte aparece num array de topo chamado input_transformations, com reason: "prefix_binding_mismatch". Sem esse header, o descarte acontece calado, e é por isso que o guia recomenda logar essa informação em toda resposta durante a validação.
Migrar para o Claude Fable 5.1 deixa minha aplicação mais cara?
Os preços de entrada (US$ 10 por milhão de tokens) e saída (US$ 50 por milhão) são os mesmos do Fable 5. O que muda é o cache read, que caiu 75%, de US$ 1,00 para US$ 0,25 por milhão de tokens, com estimativa de economia de cerca de 25% em workloads típicos e de até aproximadamente 45% em workloads altamente agênticos.
É normal o Claude Fable 5.1 ficar em silêncio durante chamadas de ferramenta longas?
É esperado, sim: por padrão o Fable 5.1 escreve menos updates visíveis ao usuário do que o Fable 5, efeito mais forte em effort alto e em cadeias longas de ferramentas. Como aparece no Sintoma C do post, dá pra ver esse progresso como texto ativando o header beta thinking-display-updates-2026-08-18 com a opção display: "updates", que mostra os updates enquanto o raciocínio em si segue oculto.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
Claude Fable 5 tem 1 milhão de tokens de contexto: o que cabe nessa janela?
Claude Fable 5 1 milhão de tokens: veja o que cabe na janela de contexto, os limites de saída e como acompanhar o uso no Claude Code com /context.
Vale a pena manter Fable 5.1 e GPT-6 Astra ao mesmo tempo ou escolher um só?
Fable 5.1 ou GPT-6 Astra: no preço empatam, mas cache, batch, modo Fast e sobretaxa mudam a conta real. Veja se vale manter os dois ou escolher só um.
Dá para voltar ao Claude Fable 5 se o 5.1 não se sair bem no seu fluxo?
Dá para voltar ao Claude Fable 5 se o 5.1 não funcionar no seu fluxo? Veja como reverter com segurança, riscos do tool_choice e prazo de aposentadoria.
