Utilisation des outils / appel de fonctions
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.
La boucle
- Vous incluez une liste de définitions d'outils (nom, description, entrée au format JSON Schema).
- Si Claude décide d'en utiliser un, il renvoie un bloc
tool_use(avec les arguments) et s'arrête. - Vous exécutez l'outil et renvoyez la sortie sous forme de
tool_result. - Claude poursuit, en appelant éventuellement d'autres outils, jusqu'à ce qu'il réponde.
Définir un outil (Python)
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-4-6", 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.
Conseils
- Les descriptions sont des prompts. Une
descriptiond'outil claire et une documentation des paramètres améliorent énormément le moment et la manière dont Claude l'appelle. - Validez les entrées que vous recevez avant l'exécution — ne leur faites jamais aveuglément confiance.
- Renvoyez les erreurs comme résultats. Si un outil échoue, envoyez un
tool_resultdécrivant l'erreur afin que Claude puisse s'en remettre. - 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 entreprend de vraies actions 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 et les outils. :::