Como gerenciar recusas do Fable 5 na API

Fable 5 requests podem ser respondidas pelo Opus 4.8. Aprenda a detectar redirecionamentos via response.model, usar o parâmetro beta fallbacks e testar caminhos de recusa.

Ashley Innocent

Ashley Innocent

2 julho 2026

Como gerenciar recusas do Fable 5 na API

Apidog para empresas

Implantação local

SSO & RBAC

Conforme SOC 2

Explorar Apidog Enterprise

Você chama claude-fable-5, a resposta parece normal, e então você verifica o campo model: claude-opus-4-8. Sua solicitação acionou um classificador de segurança, Fable 5 recusou-se a responder, e um modelo diferente interveio. Isso não é um bug. É assim que o Fable 5 foi projetado para funcionar, e sua integração deve lidar com isso intencionalmente, e não por acidente.

Cobrimos o raciocínio por trás dessa arquitetura em nosso explicador sobre as salvaguardas de segurança do Fable 5. Este artigo é o companheiro prático. Você aprenderá o que aciona um redirecionamento, como detectá-lo no código, como o parâmetro beta fallbacks automatiza a nova tentativa e como testar seu tratamento de recusas antes que um usuário real o encontre.

Por que o Fable 5 redireciona algumas solicitações

Claude Fable 5 vem com classificadores de segurança que filtram as solicitações recebidas. Eles monitoram três domínios: segurança cibernética, biologia e química, e destilação de modelos. Quando um classificador é acionado, o Fable 5 recusa a solicitação. Nas interfaces do usuário do Claude, a solicitação é então tratada pelo Claude Opus 4.8 e o usuário é notificado sobre o ocorrido. Na API, a recuperação é por sua conta, e é aí que entra o parâmetro fallbacks.

Os classificadores não estão congelados. Após a suspensão de junho, a Anthropic retreinou o classificador contra uma técnica de 'jailbreak' relatada; a versão atualizada bloqueia mais de 99% das tentativas. O Fable 5 foi redesdobrado em 1º de julho de 2026 com o novo classificador em vigor. Se você pausou sua integração durante a interrupção, nosso hub Fable 5 está de volta tem a linha do tempo completa e o que mudou.

Mais um ponto de contexto ajuda aqui. Os classificadores ficam na frente do modelo, não dentro dele. Claude Mythos 5 é o mesmo modelo sem classificadores, e o acesso é restrito aos participantes do Projeto Glasswing. Mais de 95% das sessões do Fable não envolvem nenhum fallback, e para essas sessões o desempenho do Fable 5 é efetivamente idêntico ao do Mythos 5. Detalhamos as diferenças em Fable 5 vs Mythos 5.

O que um redirecionamento significa para seu aplicativo

Fable 5 e Opus 4.8 são ambos modelos robustos, mas não são intercambiáveis do ponto de vista da engenharia. Fable 5 opera com uma janela de contexto de 1M tokens e saída máxima de 128K a $10 por milhão de tokens de entrada e $50 por milhão de tokens de saída; o Opus 4.8 tem seu próprio preço e seu próprio perfil de comportamento. A visão geral dos modelos lista as especificações atuais para ambos. Um prompt que você ajustou para o Fable 5 pode produzir comprimentos, formatação ou padrões de chamada de ferramenta diferentes no Opus 4.8.

Se isso importa depende do seu caso de uso:

Detectando um fallback programaticamente

O sinal confiável é o campo model da resposta. Cada resposta da Messages API nomeia o modelo que a produziu, então uma solicitação enviada para claude-fable-5 que retorna claude-opus-4-8 foi redirecionada. Esse é o comportamento padrão da Messages API; você não precisa de nenhum recurso beta para lê-lo.

Outros dois campos pertencem à mesma linha de log. stop_reason informa se a solicitação foi recusada diretamente: uma solicitação recusada sem tratamento de fallback retorna HTTP 200 com stop_reason definido como "refusal" e nenhum conteúdo utilizável, então verifique antes de ler response.content. E usage fornece a contagem de tokens que você precisa para atribuir o custo ao modelo que os cobrou.

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=16000,
    messages=[{"role": "user", "content": prompt}],
)

if response.stop_reason == "refusal":
    # Declined with no fallback configured: no usable content came back
    handle_refusal(response)
elif not response.model.startswith("claude-fable-5"):
    logger.info(
        "fallback served_by=%s in=%d out=%d",
        response.model,
        response.usage.input_tokens,
        response.usage.output_tokens,
    )

Se você está configurando a API do zero, comece com nosso guia sobre como usar a API Claude Fable 5 e adicione esta verificação assim que suas primeiras chamadas funcionarem.

O parâmetro fallbacks

Sem qualquer configuração de fallback, uma solicitação de API recusada simplesmente para. Você recebe a recusa, seu usuário não recebe nada, e a lógica de nova tentativa é sua para escrever. O parâmetro fallbacks move essa nova tentativa para o servidor: quando o Fable 5 recusa, a API executa novamente a mesma solicitação em um modelo que você nomeia, dentro da mesma chamada, e retorna a resposta desse modelo.

O parâmetro está em beta na API Claude e na Claude Platform na AWS, documentado na página de recusas e fallback da Anthropic. Você opta por ele com um cabeçalho beta, e no lançamento o único alvo de fallback suportado é claude-opus-4-8:

response = client.beta.messages.create(
    model="claude-fable-5",
    max_tokens=16000,
    betas=["server-side-fallback-2026-06-01"],
    fallbacks=[{"model": "claude-opus-4-8"}],
    messages=[{"role": "user", "content": prompt}],
)

print(response.model)  # claude-opus-4-8 if the request was rerouted

A cobrança funciona a seu favor. Uma solicitação recusada antes que qualquer saída fosse gerada não é cobrada; a tentativa de resgate é cobrada pelas taxas normais do modelo de fallback. A detecção permanece a mesma de antes: response.model nomeia o modelo que respondeu.

Alguns limites a saber. O parâmetro é rejeitado na Batches API e não está disponível no Amazon Bedrock, Google Vertex AI ou Microsoft Foundry; nessas plataformas você lida com as novas tentativas do lado do cliente. E se o modelo de fallback também recusar, a resposta final terá stop_reason: "refusal", então mantenha o branch de recusa da seção anterior mesmo com fallbacks habilitados.

Projetando sua política de tratamento

Detecção e nova tentativa são mecânicas. A verdadeira decisão é o que seu produto faz quando um fallback acontece, e existem três políticas sensatas:

Aceite a resposta do Opus. Certo para produtos de chat, assistentes e a maioria dos agentes. Habilite fallbacks, registre o evento e siga em frente. Seu usuário recebe uma resposta em uma única viagem de ida e volta, em vez de um erro.

Tente novamente com uma solicitação alterada. Certo para pipelines onde a consistência do modelo importa mais do que a latência. Não reenvie o mesmo prompt para o Fable 5; o classificador que o recusou uma vez o recusará novamente. Reformule para longe do gatilho, encaminhe todo o trabalho para o Opus 4.8 ou coloque-o na fila para revisão humana.

Apresente ao usuário. Certo quando os clientes pagam especificamente pelo Fable 5, ou quando a conformidade exige divulgação. Mostre qual modelo respondeu e deixe o usuário decidir se quer executar novamente.

Qualquer que seja a política escolhida, monitore sua taxa de fallback. Uma taxa próxima de zero corresponde à linha de base de toda a plataforma. Uma taxa que ultrapassa alguns por cento significa que seus prompts estão próximos de um domínio de acionamento, e vale a pena revisá-los antes que o volume aumente.

Testando caminhos de recusa antes da produção

O tratamento de fallback é o tipo de código que funciona na demonstração e falha seis semanas depois, porque as recusas são raras por design. Você não pode esperar que um usuário real acione o classificador para descobrir se seu registro, novas tentativas e interface do usuário se comportam corretamente. Você precisa provocar o caminho por si mesmo.

Apidog torna isso prático. Defina o endpoint de Mensagens do Claude uma vez, mantenha sua chave de API em uma variável de ambiente e construa um cenário de teste a partir de um pequeno conjunto de prompts de caso de borda: um punhado de prompts relacionados à segurança e à biologia que estão próximos dos alvos do classificador, além de controles benignos que nunca deveriam ser redirecionados. Em seguida, afirme sobre o corpo da resposta. Cada teste verifica o campo model (o controle permaneceu em claude-fable-5? o caso de borda retornou de claude-opus-4-8?) e o stop_reason (algo foi recusado diretamente?).

Execute o cenário em um cronograma ou em CI. Quando a Anthropic retreinar o classificador, como fez antes do redesdobramento de 1º de julho, seu conjunto de testes informa em um dia se seus casos de borda ainda se comportam da maneira que seu código de tratamento espera. Isso é uma configuração de cinco minutos no Apidog versus uma surpresa silenciosa na produção.

FAQ

O parâmetro fallbacks custa extra? Não. Uma solicitação que é recusada antes de produzir uma saída não é cobrada. Se o modelo de fallback responder, você paga as taxas normais por token desse modelo pela tentativa de resgate. Você nunca será cobrado duas vezes pela mesma resposta.

Prompts relacionados à segurança sempre acionarão um fallback? Não. Os classificadores visam solicitações prejudiciais em segurança cibernética, biologia e química, e destilação de modelos, não os próprios tópicos. A maior parte do trabalho de engenharia de segurança passa sem problemas; mais de 95% de todas as sessões não veem fallback. Falsos positivos acontecem perto desses domínios, e é exatamente por isso que você testa o caminho e registra a taxa.

Saí do Fable 5 durante a suspensão de junho. É seguro voltar? Sim. Com o redesdobramento de 1º de julho, o classificador retreinado está ativo e a superfície da API permanece inalterada. Nosso guia sobre como voltar para a API Fable 5 descreve como reativá-la, e o parâmetro fallbacks é o item que a maioria das equipes adiciona ao retornar.

Conclusão

Os redirecionamentos do Fable 5 são uma decisão de design, não um incidente, então trate-os como tal em seu código. Verifique response.model em cada chamada, mantenha um branch de recusa mesmo com fallbacks habilitados, opte pelo parâmetro fallbacks a menos que tenha um motivo para não o fazer, e escolha uma política para o que seu produto faz quando o Opus 4.8 responde. Então, prove que todo o caminho funciona: construa o conjunto de casos de borda no Apidog, afirme sobre model e stop_reason, e execute-o em um cronograma. Baixe o Apidog e você poderá ter o conjunto de recusas rodando antes do seu próximo deploy.

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs