Chargement

Envoi des résultats d'outils

Leçon 267 min

Après que Claude a demandé un appel d'outil, vous devez exécuter la fonction et renvoyer les résultats. Cela complète le flux de travail d'utilisation d'outils en fournissant à Claude les informations qu'il a demandées.

Exécution de la fonction d'outil

Lorsque Claude répond avec un bloc d'utilisation d'outil, vous extrayez les paramètres d'entrée et appelez votre fonction. Voici comment accéder aux paramètres de l'outil :

python
# Accéder au bloc d'utilisation d'outils
tool_use_block = response.content[1]

# Obtenir les paramètres d'entrée
input_params = tool_use_block.input

# Appeler votre fonction avec les paramètres
result = get_current_datetime(**input_params)

Le double astérisque (**) décompresse le dictionnaire en arguments par mot-clé attendus par votre fonction.

Bloc de résultat d'outil

Après avoir exécuté l'outil, vous renvoyez les résultats à Claude en utilisant un bloc de résultat d'outil. Ce bloc comporte plusieurs propriétés importantes :

  • tool_use_id - Doit correspondre à l'ID du bloc d'utilisation d'outil original
  • content - La sortie de votre fonction d'outil, convertie en chaîne de caractères
  • is_error - Défini sur true si une erreur s'est produite pendant l'exécution

Gestion de plusieurs appels d'outils

Claude peut demander plusieurs appels d'outils dans une seule réponse. Par exemple, si un utilisateur demande « Combien font 10 + 10 et combien font 30 + 30 ? », Claude pourrait envoyer deux blocs d'utilisation d'outil distincts :

Chaque bloc d'utilisation d'outil reçoit un ID unique, et vous devez faire correspondre ces ID lors de l'envoi des résultats :

Ce système d'ID garantit que Claude peut correctement associer chaque résultat à sa demande correspondante, même si les résultats arrivent dans un ordre différent.

Envoi de la requête de suivi

Votre requête de suivi à Claude doit inclure l'historique complet de la conversation ainsi que le nouveau résultat d'outil :

python
messages.append({
    "role": "user",
    "content": [{
        "type": "tool_result",
        "tool_use_id": response.content[1].id,
        "content": result,
        "is_error": False
    }]
})

Le flux de la conversation se présente comme suit :

N'oubliez pas d'inclure le schéma de l'outil dans votre requête de suivi, même si Claude n'aura probablement pas besoin d'appeler à nouveau des outils. Claude a besoin du schéma pour comprendre les références à l'outil dans l'historique de la conversation.

Flux de travail complet

Voici le processus complet :

  1. L'utilisateur pose une question nécessitant l'utilisation d'outils
  2. Claude répond avec un bloc d'utilisation d'outil
  3. Vous exécutez la fonction d'outil demandée
  4. Vous envoyez une requête de suivi avec le résultat de l'outil
  5. Claude fournit une réponse finale en utilisant la sortie de l'outil

La requête finale inclut votre historique complet de messages, le bloc de résultat d'outil et le schéma de l'outil. Claude répond alors avec un message texte normal qui intègre les informations issues de l'exécution de votre outil.