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 ultérieurement.
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 lui 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 à laquelle ce résultat correspond.
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 documents (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éfinir 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 cette information pour continuer à générer une réponse au prompt initial de l'utilisateur.
Gérer les résultats des outils serveur
Claude exécute l'outil en interne et intègre les résultats directement dans sa réponse sans nécessiter d'interaction supplémentaire de l'utilisateur.
Gérer les erreurs avec is_error
Plusieurs types d'erreurs peuvent survenir lors de l'utilisation d'outils avec Claude :