Aller au contenu principal

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 : true si 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

  1. L’utilisateur pose une question necessitant un outil
  2. Claude repond avec un bloc tool_use
  3. Vous executez la fonction demandee
  4. Vous envoyez une requete de suivi avec le resultat
  5. Claude fournit la reponse finale integrant les donnees de l’outil