Chargement

Lorsque vous travaillez avec la fonctionnalité d'outils de Claude, vous rencontrerez un nouveau type de structure de réponse, différent des simples réponses textuelles que vous avez vues auparavant. Au lieu de simplement recevoir un seul bloc de texte, Claude peut désormais renvoyer des messages multi-blocs qui contiennent à la fois du texte et des informations d'utilisation d'outils.

Effectuer des appels API compatibles avec les outils

Pour permettre à Claude d'utiliser des outils, vous devez inclure un paramètre tools dans votre appel API. Voici comment structurer la requête :

python
messages = []
messages.append({
    "role": "user",
    "content": "What is the exact time, formatted as HH:MM:SS?"
})

response = client.messages.create(
    model=model,
    max_tokens=1000,
    messages=messages,
    tools=[get_current_datetime_schema],
)

Le paramètre tools prend une liste de schémas JSON qui décrivent les fonctions disponibles que Claude peut appeler.

Comprendre les messages multi-blocs

Lorsque Claude décide d'utiliser un outil, il renvoie un message assistant avec plusieurs blocs dans la liste de contenu. Il s'agit d'un changement significatif par rapport aux simples réponses textuelles avec lesquelles vous avez travaillé auparavant.

Un message multi-blocs contient généralement :

  • Bloc de texte - Texte lisible par un humain expliquant ce que Claude est en train de faire (comme « Je peux vous aider à connaître l'heure actuelle. Laissez-moi trouver cette information pour vous »)
  • Bloc ToolUse - Instructions pour votre code concernant l'outil à appeler et les paramètres à utiliser

Le bloc ToolUse comprend :

  • Un identifiant pour suivre l'appel d'outil
  • Le nom de la fonction à appeler (comme « get_current_datetime »)
  • Les paramètres d'entrée formatés sous forme de dictionnaire
  • La désignation de type « tool_use »

Gérer l'historique de conversation avec des messages multi-blocs

Rappelez-vous que Claude ne stocke pas l'historique de conversation - vous devez le gérer manuellement. Lorsque vous travaillez avec des réponses d'outils, vous devez préserver l'intégralité de la structure de contenu, y compris tous les blocs.

Voici comment ajouter correctement un message assistant multi-blocs à votre historique de conversation :

messages.append({
    "role": "assistant",
    "content": response.content
})

Cela préserve à la fois le bloc de texte et le bloc d'utilisation d'outil, ce qui est crucial pour maintenir le contexte de la conversation lorsque vous effectuez des appels API ultérieurs.

Le flux complet d'utilisation d'outils

Le processus d'utilisation d'outils suit ce schéma :

  1. Envoyer le message utilisateur avec le schéma d'outil à Claude
  2. Recevoir le message assistant avec le bloc de texte et le bloc d'utilisation d'outil
  3. Extraire les informations de l'outil et exécuter la fonction réelle
  4. Renvoyer le résultat de l'outil à Claude avec l'historique complet de la conversation
  5. Recevoir la réponse finale de Claude

Chaque étape nécessite une gestion minutieuse de la structure du message pour garantir que Claude dispose du contexte complet dont il a besoin pour fournir des réponses précises.

Mise à jour des fonctions d'assistance

Si vous avez utilisé des fonctions d'assistance comme add_user_message() et add_assistant_message(), vous devrez les mettre à jour pour gérer le contenu multi-blocs. Les versions actuelles ne prennent probablement en charge que des blocs de texte uniques, mais elles doivent désormais s'adapter aux structures de contenu plus complexes qui incluent des blocs d'utilisation d'outils.

Cette gestion des messages multi-blocs est essentielle pour créer des applications robustes capables d'intégrer de manière fluide les capacités d'outils de Claude tout en maintenant un flux de conversation approprié.