Chargement

Envoi des résultats d'outils

Leçon 267 min

Nous voici à la dernière étape du workflow d'utilisation d'outils. Après avoir exécuté nos outils et obtenu les résultats, nous devons renvoyer le tout à Claude afin qu'il puisse fournir une réponse complète à l'utilisateur.

Le processus est simple : prendre toutes les parties de résultats d'outils que nous avons générées, les regrouper dans un message utilisateur, et renvoyer l'historique complet de la conversation à Claude ainsi que les schémas d'outils d'origine.

Ajout du message de l'assistant

Tout d'abord, nous devons nous assurer que notre historique de conversation est complet. Après la réponse initiale de Claude contenant la demande d'utilisation d'outils, nous devons ajouter cette réponse à notre historique de messages à l'aide de add_assistant_message().

Cela garantit que nous disposons du flux de conversation complet : question de l'utilisateur → demande d'outil de l'assistant → résultats d'outils → réponse finale de l'assistant.

Exécution des outils et création des résultats d'outils

La fonction run_tools() traite toutes les demandes d'utilisation d'outils issues de la réponse de Claude et crée des parties de résultats d'outils correctement formatées. Chaque résultat d'outil comprend :

  • L'ID d'utilisation de l'outil (correspondant à la demande d'origine)
  • La sortie réelle de l'exécution de l'outil
  • Un statut indiquant le succès ou l'échec

La fonction gère à la fois les exécutions d'outils réussies et les erreurs de manière élégante, en enveloppant le tout dans la structure JSON correcte attendue par Claude.

Ajout des résultats d'outils à la conversation

Une fois que nous avons nos résultats d'outils, nous les ajoutons à la conversation à l'aide de add_user_message() :

python
add_user_message(messages, run_tools(parts))

Cela crée un message utilisateur contenant toutes les parties de résultats d'outils. La conversation dispose désormais de l'échange complet nécessaire pour que Claude puisse fournir une réponse finale.

Appel final à Claude

La dernière étape consiste à renvoyer le tout à Claude. Cela nécessite deux éléments importants :

  • L'historique complet des messages (utilisateur → assistant → utilisateur)
  • Les schémas d'outils d'origine
python
text, parts = chat(messages, tools=[get_current_datetime_schema])

L'inclusion des schémas d'outils est cruciale. Sans eux, Claude serait confus quant aux références d'outils dans l'historique de la conversation et ne comprendrait pas ce que fait réellement get_current_datetime.

Succès

Lorsque tout fonctionne correctement, Claude reçoit les résultats d'outils et peut fournir une réponse complète et informée. Dans notre exemple, Claude a récupéré avec succès l'heure actuelle et l'a formatée dans une réponse naturelle : « La date et l'heure actuelles sont le 2025-04-03, 12:54:00. »

Cela démontre que notre intégration d'outils fonctionne correctement. Bien que Claude connaisse la date actuelle, il n'a pas accès à des informations en temps réel comme l'heure exacte actuelle - ce qui est précisément ce que notre outil a fourni.

Le cycle complet d'utilisation d'outils fonctionne désormais : Claude demande un outil, nous l'exécutons, renvoyons les résultats, et Claude intègre cette information dans sa réponse finale à l'utilisateur.