Claude Platform Docs
  • Mensagens
  • Agentes Gerenciados
  • Administração

Search...
⌘K
Primeiros passos
Introdução ao ClaudeInício rápido
Desenvolvendo com o Claude
Visão geral dos recursosUsando a API de MensagensMotivos de parada e fallbackRecusas e fallbackCrédito de fallback
Capacidades do modelo
Pensamento estendidoPensamento adaptativoEsforçoOrçamentos de tarefas (beta)Modo rápido (prévia de pesquisa)Saídas estruturadasCitaçõesStreaming de MensagensProcessamento em loteResultados de pesquisaStreaming de recusasSuporte multilíngueEmbeddings
Ferramentas
Visão geralComo funciona o uso de ferramentasTutorial: Crie um agente que usa ferramentasDefinir ferramentasLidar com chamadas de ferramentasUso de ferramentas em paraleloTool Runner (SDK)Uso de ferramentas estritoFerramentas de servidorFerramenta de pesquisa na webFerramenta de busca na webFerramenta de execução de códigoFerramenta de consultoriaFerramenta de busca de ferramentasFerramenta de memóriaFerramenta BashFerramenta de editor de textoFerramenta de uso de computadorSolução de problemas
Infraestrutura de ferramentas
Referência de ferramentasGerenciar contexto de ferramentasCombinações de ferramentasUso de ferramentas com cache de promptChamada programática de ferramentasStreaming granular de ferramentas
Gerenciamento de contexto
Janelas de contextoCompactaçãoEdição de contextoCache de promptMensagens de sistema no meio da conversaCriar um modo de orquestraçãoDiagnóstico de cache (beta)Contagem de tokens
Trabalhando com arquivos
API de ArquivosSuporte a PDF
Habilidades
Visão geralInício rápidoPráticas recomendadasHabilidades para empresasHabilidades na API
MCP
Servidores MCP remotosConector MCP
Claude em plataformas de nuvem
Amazon BedrockAmazon Bedrock (legado)Claude Platform na AWSGoogle CloudMicrosoft Foundry

Log in
Streaming de recusas
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Mensagens/Capacidades do modelo

Recusas em streaming

Detecte e trate motivos de parada por recusa em respostas de streaming e tente novamente solicitações recusadas em um modelo de fallback.

A partir dos modelos Claude 4, as respostas de streaming da API do Claude retornam stop_reason: "refusal" quando classificadores de streaming intervêm para tratar possíveis violações de política. Esse recurso de segurança ajuda a manter a conformidade do conteúdo durante o streaming em tempo real.



Esta página aborda como as recusas aparecem em respostas de streaming. Para todos os valores de stop_reason e como tratá-los, consulte Motivos de parada e fallback. Para tentar novamente solicitações recusadas em outro modelo Claude, consulte Recusas e fallback.

Formato de resposta da API

Quando os classificadores de streaming detectam conteúdo que viola as políticas da Anthropic, a API retorna esta resposta:

{
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello.."
    }
  ],
  "stop_reason": "refusal"
}


Nenhuma mensagem de recusa adicional é incluída. Você deve tratar a resposta e fornecer mensagens apropriadas voltadas ao usuário.

Redefinir o contexto após uma recusa

Quando você recebe stop_reason: refusal, deve redefinir o contexto da conversa antes de continuar. Você pode remover ou reformular o turno que acionou a recusa, ou limpar completamente o histórico da conversa. Tentar continuar sem redefinir resultará em recusas contínuas.



As métricas de uso ainda são fornecidas na resposta, mesmo quando a resposta é recusada.

Quando uma recusa chega antes de o Claude gerar qualquer saída, você não é cobrado pela solicitação na API do Claude, e as contagens de uso nessa resposta são apenas informativas. Quando o Claude gera saída antes da recusa, você é cobrado por essa solicitação.



Redefinir o contexto não é a única forma de recuperação. Você também pode tentar novamente a solicitação recusada em um modelo Claude diferente, e a página Recusas e fallback mostra como configurar isso com fallback do lado do servidor, o middleware do SDK ou uma nova tentativa manual.

Guia de implementação

Veja como detectar e tratar recusas de streaming em sua aplicação:

client = anthropic.Anthropic()
messages = []


def reset_conversation():
    """Reset conversation context after refusal"""
    global messages
    messages = []
    print("Conversation reset due to refusal")


try:
    with client.messages.stream(
        max_tokens=1024,
        messages=messages + [{"role": "user", "content": "Hello"}],
        model="claude-opus-4-8",
    ) as stream:
        for event in stream:
            # Verificar recusa no delta da mensagem
            if event.type == "message_delta":
                if event.delta.stop_reason == "refusal":
                    reset_conversation()
                    break
except Exception as e:
    print(f"Error: {e}")

Tipos de recusa atuais

A API atualmente trata recusas de três maneiras diferentes:

Tipo de recusaFormato de respostaQuando ocorre
Recusas do classificador de streamingstop_reason: refusalDurante o streaming, quando o conteúdo viola políticas
Validação de entrada da API e de direitos autoraisCódigos de erro 400Quando a entrada falha nas verificações de validação
Recusas geradas pelo modeloRespostas de texto padrãoQuando o próprio modelo decide recusar


Versões futuras da API expandirão o padrão stop_reason: refusal para unificar o tratamento de recusas em todos os tipos.

Práticas recomendadas

  • Monitore recusas: Inclua verificações de stop_reason: refusal no seu tratamento de erros
  • Redefina automaticamente: Implemente a redefinição automática de contexto quando recusas forem detectadas
  • Faça fallback para outro modelo: Configure fallback do lado do servidor ou o middleware do SDK para que solicitações recusadas sejam tentadas novamente em outro modelo Claude em vez de exibir uma recusa ao usuário
  • Resgate o crédito de fallback em novas tentativas manuais: Se você mesmo implementar a nova tentativa, passe o token de crédito de fallback da recusa para que a nova tentativa não pague o custo de cache de prompt duas vezes
  • Forneça mensagens personalizadas: Crie mensagens amigáveis ao usuário para uma melhor UX quando ocorrerem recusas
  • Acompanhe padrões de recusa: Monitore a frequência de recusas para identificar possíveis problemas com seus prompts

Notas de migração

Se você implementou o tratamento de recusas quando esse recurso foi lançado pela primeira vez, ou está adicionando-o a uma integração existente, verifique o seguinte:

  • Recusas são respostas, não erros. Uma recusa chega como uma resposta HTTP 200 bem-sucedida com stop_reason: "refusal", portanto, um monitoramento baseado apenas em taxas de erro não a detectará. Acompanhe as recusas como um sinal próprio.
  • Modelos mais recentes retornam mais detalhes. No Claude Fable 5, uma recusa também inclui um objeto stop_details que identifica a categoria de política por trás da recusa. Consulte Recusas e fallback para ver o formato completo da resposta.
  • Tente novamente em um modelo diferente. Reenviar uma solicitação recusada para o mesmo modelo geralmente resulta em outra recusa. Em vez de apenas redefinir o contexto, tente novamente em um modelo de fallback com fallback do lado do servidor, o middleware do SDK ou uma nova tentativa manual, e resgate o crédito de fallback quando você mesmo implementar a nova tentativa.
  • Verifique os resultados de lote em busca de recusas. Uma solicitação recusada em um Message Batch é retornada como um resultado bem-sucedido com stop_reason: "refusal", não como um resultado com erro.
  • Centralize o tratamento em stop_reason. A API continua a consolidar o tratamento de recusas em torno de stop_reason: "refusal", portanto, ramifique com base no motivo de parada em vez de em comportamento específico do modelo.

Próximos passos

Recusas e fallback

Tente novamente solicitações recusadas em outro modelo Claude, do lado do servidor ou no seu cliente.


Motivos de parada e fallback

Todos os valores de stop_reason e como tratá-los.


Mensagens em streaming

Faça streaming de respostas e leia stop_reason dos eventos message_delta conforme eles chegam.


Suporte multilíngue

Atenda usuários em vários idiomas com os recursos multilíngues do Claude.

Was this page helpful?

  • Formato de resposta da API
  • Redefinir o contexto após uma recusa
  • Guia de implementação
  • Tipos de recusa atuais
  • Práticas recomendadas
  • Notas de migração
  • Próximos passos