Manejo de razones de parada
Aprende cómo manejar las diferentes razones de parada en las respuestas de la API de Messages de Claude.
Cuando realizas una solicitud a la API de Messages, la respuesta de Claude incluye un campo stop_reason
que indica por qué el modelo dejó de generar su respuesta. Entender estos valores es crucial para construir aplicaciones robustas que manejen diferentes tipos de respuesta de manera apropiada.
Para detalles sobre stop_reason
en la respuesta de la API, consulta la referencia de la API de Messages.
¿Qué es stop_reason?
El campo stop_reason
es parte de cada respuesta exitosa de la API de Messages. A diferencia de los errores, que indican fallas en el procesamiento de tu solicitud, stop_reason
te dice por qué Claude completó exitosamente la generación de su respuesta.
Valores de razón de parada
end_turn
La razón de parada más común. Indica que Claude terminó su respuesta de manera natural.
max_tokens
Claude se detuvo porque alcanzó el límite de max_tokens
especificado en tu solicitud.
stop_sequence
Claude encontró una de tus secuencias de parada personalizadas.
tool_use
Claude está llamando a una herramienta y espera que la ejecutes.
pause_turn
Usado con herramientas de servidor como búsqueda web cuando Claude necesita pausar una operación de larga duración.
refusal
Claude se negó a generar una respuesta debido a preocupaciones de seguridad.
Mejores prácticas para manejar razones de parada
1. Siempre verifica stop_reason
Haz un hábito de verificar el stop_reason
en tu lógica de manejo de respuestas:
2. Maneja max_tokens con gracia
Cuando una respuesta es truncada debido a límites de tokens:
3. Implementa lógica de reintento para pause_turn
Para herramientas de servidor que pueden pausar:
Razones de parada vs. errores
Es importante distinguir entre valores de stop_reason
y errores reales:
Razones de parada (respuestas exitosas)
- Parte del cuerpo de respuesta
- Indican por qué la generación se detuvo normalmente
- La respuesta contiene contenido válido
Errores (solicitudes fallidas)
- Códigos de estado HTTP 4xx o 5xx
- Indican fallas en el procesamiento de solicitudes
- La respuesta contiene detalles del error
Consideraciones de streaming
Cuando usas streaming, stop_reason
es:
null
en el evento inicialmessage_start
- Proporcionado en el evento
message_delta
- No proporcionado en ningún otro evento
Patrones comunes
Manejo de flujos de trabajo de uso de herramientas
Asegurar respuestas completas
Al manejar apropiadamente los valores de stop_reason
, puedes construir aplicaciones más robustas que manejen con gracia diferentes escenarios de respuesta y proporcionen mejores experiencias de usuario.