Aller au contenu principal

Utilisation des outils / appel de fonctions

Intermédiaire

L'utilisation des outils permet à Claude d'appeler des fonctions que vous définissez — une recherche, une calculatrice, votre base de données, n'importe quelle API — et d'en utiliser les résultats. C'est le fondement de chaque agent.

What you'll learn
  • Comment fonctionne la boucle agentique en quatre étapes, des définitions d'outils à la réponse finale
  • Comment définir un outil en Python avec un nom, une description et une entrée en JSON-Schema
  • Pourquoi les descriptions d'outils agissent comme des prompts qui façonnent quand et comment Claude les appelle
  • Comment valider les entrées, renvoyer les erreurs sous forme de résultats et utiliser les outils côté serveur en toute sécurité

La boucle

L'utilisation des outils est une conversation, pas un appel unique. Vous tendez à Claude un menu d'outils ; Claude en choisit un et s'arrête ; vous l'exécutez et rendez compte ; Claude intègre le résultat dans sa réponse — en répétant au besoin.

Guided walkthrough1 of 4
  1. Vous incluez une liste de définitions d'outils — chacune avec un nom, une description et une entrée en JSON-Schema.

Définir un outil (Python)

Une définition d'outil n'est qu'un nom, une description en langage clair et un JSON-Schema pour l'entrée. Passez-la dans tools, puis vérifiez stop_reason pour savoir quand Claude veut agir.

Outil get_weather + premier appel

tools = [{
  "name": "get_weather",
  "description": "Get current weather for a city.",
  "input_schema": {
      "type": "object",
      "properties": {"city": {"type": "string"}},
      "required": ["city"],
  },
}]

msg = client.messages.create(
  model="claude-sonnet-5", max_tokens=1024,
  tools=tools,
  messages=[{"role": "user", "content": "What's the weather in Rome?"}],
)
# If msg.stop_reason == "tool_use": run the tool, then send a tool_result back.

Astuces

De petits choix dans la façon dont vous définissez et traitez les outils font une grande différence de fiabilité.

  • Les descriptions sont des prompts. Une description d'outil claire et une documentation des paramètres améliorent énormément quand/comment Claude l'appelle.
  • Validez les entrées que vous recevez avant d'exécuter — ne leur faites jamais aveuglément confiance.
  • Renvoyez les erreurs sous forme de résultats. Si un outil échoue, envoyez un tool_result décrivant l'erreur pour que Claude puisse récupérer.
  • Outils côté serveur. Anthropic propose aussi des outils intégrés (par ex. recherche web, exécution de code, utilisation de l'ordinateur) — consultez la documentation pour le menu actuel.

:::warning Outils = actions = risque Un outil qui prend des actions réelles hérite d'un modèle de sécurité. Appliquez le moindre privilège et gardez un humain dans la boucle pour les appels risqués — voir Sécuriser les agents & les outils. :::

Vocabulaire de l'utilisation des outils
Appuyez sur Entrée ou Espace pour retourner la carte. Utilisez les flèches gauche et droite pour naviguer entre les cartes.Terme affiché.
1 / 4

Vérifiez vos acquis

0/3
  1. Après que Claude renvoie un bloc tool_use, qui exécute l'outil ?
  2. Un outil que vous avez défini échoue à l'exécution. Quelle est la démarche recommandée ?
  3. Pourquoi une description d'outil claire compte-t-elle autant ?
Key takeaways
  • L'utilisation des outils est une boucle : envoyez les définitions d'outils, Claude renvoie un bloc tool_use et s'arrête, vous exécutez et renvoyez un tool_result, Claude continue jusqu'à répondre.
  • Une définition d'outil est un nom, une description et une entrée en JSON-Schema — passez-la dans tools et vérifiez stop_reason == tool_use.
  • Les descriptions sont des prompts ; validez les entrées avant d'exécuter ; renvoyez les échecs sous forme d'erreurs tool_result pour que Claude puisse récupérer.
  • Anthropic propose aussi des outils côté serveur, et tout outil qui prend des actions réelles exige le moindre privilège plus un humain dans la boucle.

Suite