Gestion des raisons d'arrêt
Lorsque vous effectuez une requête à l’API Messages, la réponse de Claude inclut un champ stop_reason
qui indique pourquoi le modèle a cessé de générer sa réponse. Comprendre ces valeurs est crucial pour créer des applications robustes qui gèrent différents types de réponses de manière appropriée.
Pour plus de détails sur stop_reason
dans la réponse de l’API, consultez la référence de l’API Messages.
Qu’est-ce que stop_reason ?
Le champ stop_reason
fait partie de chaque réponse réussie de l’API Messages. Contrairement aux erreurs, qui indiquent des échecs dans le traitement de votre requête, stop_reason
vous indique pourquoi Claude a terminé avec succès la génération de sa réponse.
Valeurs de stop_reason
end_turn
La raison d’arrêt la plus courante. Indique que Claude a terminé sa réponse naturellement.
max_tokens
Claude s’est arrêté car il a atteint la limite max_tokens
spécifiée dans votre requête.
stop_sequence
Claude a rencontré l’une de vos séquences d’arrêt personnalisées.
tool_use
Claude appelle un outil et s’attend à ce que vous l’exécutiez.
pause_turn
Utilisé avec des outils serveur comme la recherche web lorsque Claude doit mettre en pause une opération de longue durée.
Bonnes pratiques pour gérer les raisons d’arrêt
1. Toujours vérifier stop_reason
Prenez l’habitude de vérifier le stop_reason
dans votre logique de traitement des réponses :
2. Gérer max_tokens avec élégance
Lorsqu’une réponse est tronquée en raison des limites de tokens :
3. Implémenter une logique de nouvelle tentative pour pause_turn
Pour les outils serveur qui peuvent être mis en pause :
Raisons d’arrêt vs. erreurs
Il est important de distinguer entre les valeurs stop_reason
et les erreurs réelles :
Raisons d’arrêt (réponses réussies)
- Font partie du corps de la réponse
- Indiquent pourquoi la génération s’est arrêtée normalement
- La réponse contient un contenu valide
Erreurs (requêtes échouées)
- Codes de statut HTTP 4xx ou 5xx
- Indiquent des échecs de traitement de la requête
- La réponse contient des détails d’erreur
Considérations pour le streaming
Lors de l’utilisation du streaming, stop_reason
est :
null
dans l’événement initialmessage_start
- Fourni dans l’événement
message_delta
- Non-null dans tous les autres événements
Modèles courants
Gestion des flux de travail d’utilisation d’outils
Assurer des réponses complètes
En gérant correctement les valeurs stop_reason
, vous pouvez créer des applications plus robustes qui gèrent élégamment différents scénarios de réponse et offrent de meilleures expériences utilisateur.