Lidando com motivos de parada
Quando você faz uma solicitação para a API de Mensagens, a resposta do Claude inclui um campo stop_reason
que indica por que o modelo parou de gerar sua resposta. Entender esses valores é crucial para construir aplicações robustas que lidem adequadamente com diferentes tipos de resposta.
Para detalhes sobre stop_reason
na resposta da API, consulte a referência da API de Mensagens.
O que é stop_reason?
O campo stop_reason
é parte de cada resposta bem-sucedida da API de Mensagens. Diferentemente dos erros, que indicam falhas no processamento da sua solicitação, stop_reason
informa por que o Claude completou com sucesso a geração de sua resposta.
Valores de stop reason
end_turn
O motivo de parada mais comum. Indica que o Claude terminou sua resposta naturalmente.
max_tokens
O Claude parou porque atingiu o limite de max_tokens
especificado na sua solicitação.
stop_sequence
O Claude encontrou uma das suas sequências de parada personalizadas.
tool_use
O Claude está chamando uma ferramenta e espera que você a execute.
pause_turn
Usado com ferramentas de servidor como pesquisa na web quando o Claude precisa pausar uma operação de longa duração.
Melhores práticas para lidar com motivos de parada
1. Sempre verifique stop_reason
Crie o hábito de verificar o stop_reason
na sua lógica de tratamento de resposta:
2. Trate max_tokens com elegância
Quando uma resposta é truncada devido aos limites de token:
3. Implemente lógica de repetição para pause_turn
Para ferramentas de servidor que podem pausar:
Motivos de parada vs. erros
É importante distinguir entre valores de stop_reason
e erros reais:
Motivos de parada (respostas bem-sucedidas)
- Parte do corpo da resposta
- Indicam por que a geração parou normalmente
- A resposta contém conteúdo válido
Erros (solicitações com falha)
- Códigos de status HTTP 4xx ou 5xx
- Indicam falhas no processamento da solicitação
- A resposta contém detalhes do erro
Considerações sobre streaming
Ao usar streaming, stop_reason
é:
null
no evento inicialmessage_start
- Fornecido no evento
message_delta
- Não-nulo em todos os outros eventos
Padrões comuns
Lidando com fluxos de trabalho de ferramentas
Garantindo respostas completas
Ao lidar adequadamente com os valores de stop_reason
, você pode construir aplicações mais robustas que tratam graciosamente diferentes cenários de resposta e fornecem melhores experiências ao usuário.