Analysez les blocs tool_use, formatez les réponses tool_result et gérez les erreurs avec is_error.
Cette page couvre le cycle de vie des appels d'outils : la lecture des blocs tool_use dans la réponse de Claude, le formatage des blocs tool_result dans votre réponse, et le signalement des erreurs. Pour l'abstraction du SDK qui gère cela automatiquement, consultez Tool Runner.
La réponse aura un stop_reason de tool_use et un ou plusieurs blocs de contenu tool_use qui incluent :
id : un identifiant unique pour ce bloc d'utilisation d'outils particulier. Il sera utilisé pour faire correspondre les résultats d'outils plus tard.
name : le nom de l'outil utilisé.
input : un objet contenant l'entrée transmise à l'outil, conforme au input_schema de l'outil.
Lorsque vous recevez une réponse d'utilisation d'outils pour un outil client, vous devez :
Extraire le name, l'id et l'input du bloc tool_use.
Exécuter l'outil réel dans votre base de code correspondant à ce nom d'outil, en transmettant l'input de l'outil.
Poursuivre la conversation en envoyant un nouveau message avec le roleuser, et un bloc content contenant le type tool_result et les informations suivantes :
tool_use_id : l'id de la requête d'utilisation d'outils dont ceci est le résultat.
content (facultatif) : le résultat de l'outil, sous forme de chaîne de caractères (par exemple, "content": "15 degrees"), de liste de blocs de contenu imbriqués (par exemple, "content": [{"type": "text", "text": "15 degrees"}]), ou de liste de blocs de document (par exemple, "content": [{"type": "document", "source": {"type": "text", "media_type": "text/plain", "data": "15 degrees"}}]). Ces blocs de contenu peuvent utiliser les types text, image, document ou search_result.
is_error (facultatif) : défini sur true si l'exécution de l'outil a entraîné une erreur.
Après avoir reçu le résultat de l'outil, Claude utilisera ces informations pour continuer à générer une réponse au prompt utilisateur d'origine.
Gestion des résultats des outils serveur
Claude exécute l'outil en interne et incorpore les résultats directement dans sa réponse sans nécessiter d'interaction utilisateur supplémentaire.
Gestion des erreurs avec is_error
Il existe quelques types d'erreurs différents qui peuvent survenir lors de l'utilisation d'outils avec Claude :