Envoyer les resultats d'outil
Apres que Claude a demande un appel d’outil, il faut executer la fonction et renvoyer les resultats.
Executer la fonction
tool_use_block = response.content[1]
input_params = tool_use_block.input
result = get_current_datetime(**input_params)
Le double asterisque (**) decompresse le dictionnaire en arguments nommes.
Bloc de resultat d’outil
Le resultat est envoye a Claude via un bloc tool_result avec :
- tool_use_id : doit correspondre a l’ID du bloc tool_use original
- content : la sortie de votre fonction, convertie en chaine
- is_error :
truesi une erreur s’est produite
Gestion de plusieurs appels
Claude peut demander plusieurs outils en une seule reponse. Chaque bloc a un ID unique, et vous devez les associer correctement dans vos resultats.
Envoyer la requete de suivi
messages.append({
"role": "user",
"content": [{
"type": "tool_result",
"tool_use_id": response.content[1].id,
"content": result,
"is_error": False
}]
})
Incluez toujours le schema d’outil dans la requete de suivi, meme si Claude n’aura probablement plus besoin d’appeler d’outils. Claude en a besoin pour comprendre les references aux outils dans l’historique de conversation.
Flux complet
- L’utilisateur pose une question necessitant un outil
- Claude repond avec un bloc tool_use
- Vous executez la fonction demandee
- Vous envoyez une requete de suivi avec le resultat
- Claude fournit la reponse finale integrant les donnees de l’outil