Quel est le mécanisme utilisé pour déterminer si Claude souhaite utiliser un outil ?	Vérifier le champ `stop_reason` dans la réponse de Claude.
Quelle valeur spécifique de `stop_reason` indique que Claude a décidé d'utiliser un outil ?	La chaîne de caractères `tool_use`.
Quel est l'objectif principal de la fonction `run conversation` ?	Continuer à appeler Claude jusqu'à ce qu'il n'ait plus besoin d'utiliser d'outils, signalant une réponse finale.
Quel est le rôle de la fonction `run tools` ?	Exécuter tous les outils demandés par Claude dans un message donné et renvoyer les résultats.
Pourquoi la fonction `run tools` doit-elle être conçue pour gérer l'itération ?	Parce que Claude peut inclure plusieurs blocs d'utilisation d'outils dans une seule réponse.
Quelle est la différence entre un `tool use block` et un `tool result block` ?	Le `tool use block` est la requête de Claude pour utiliser un outil ; le `tool result block` est la réponse contenant le résultat de l'exécution de cet outil.
Quelles sont les propriétés critiques d'un `tool result block` ?	`tool_use_id` (doit correspondre à l'ID de la requête), `content`
Quel rôle joue la fonction auxiliaire `run tool` dans le processus d'exécution des outils ?	Elle prend un nom d'outil et une entrée, puis utilise des vérifications (if statements) pour exécuter la fonction correspondante.
Comment le code principal intègre-t-il la fonction `run tool` ?	Il remplace les appels directs aux outils par un appel à `run tool(tool_request.name, tool_request.input)`.
Que retourne la fonction `run tools` ?	Elle retourne une liste de blocs de résultats d'outils (tool result blocks).
Quel est le processus itératif dans la fonction `run conversation` ?	Le processus se répète en appelant Claude à nouveau avec les résultats des outils jusqu'à ce que Claude n'exige plus d'utilisation d'outils.
Quel défi technique est souligné par l'exemple de test ?	La nécessité de gérer correctement plusieurs blocs d'utilisation d'outils (tool use blocks) au sein d'un seul message de Claude.
Comment le code doit-il traiter les résultats des outils ?	Il doit extraire tous les blocs d'utilisation d'outils, exécuter un outil pour chacun, formuler une réponse de résultat, et renvoyer tous ces résultats à Claude.
Quel est l'objectif final de cette phase du projet ?	Assurer le support de plusieurs outils, notamment `add duration` et `set reminder`.
