Utilisation d’outils et appels de fonctions
Permettez à un modèle d’appeler vos fonctions : la boucle de requêtes, les deux formats et les erreurs qui coûtent des tokens.
L’utilisation d’outils permet au modèle de vous demander d’exécuter une fonction, puis de poursuivre avec le résultat. C’est le mécanisme sur lequel repose chaque agent de programmation.
La boucle
- Vous envoyez
messagesainsi quetoolsqui décrit les outils disponibles. - Le modèle répond avec un
stop_reason: tool_useet untool_usebloc indiquant le nom de l’outil et ses arguments. - Vous l’exécutez — la passerelle n’exécute jamais votre code.
- Vous renvoyez tout l’historique, accompagné d’un
tool_resultbloc. - Le modèle produit sa réponse finale ou demande un autre outil.
Définir des outils (format Messages)
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"tools": [{
"name": "get_weather",
"description": "Current weather for a city. Use when the user asks about weather.",
"input_schema": {
"type": "object",
"properties": {"city": {"type": "string", "description": "City name"}},
"required": ["city"]
}
}],
"messages": [{"role": "user", "content": "Weather in Paris?"}]
}
Renvoyer un résultat
{
"role": "user",
"content": [{
"type": "tool_result",
"tool_use_id": "toolu_01ABC...",
"content": "18C, light rain"
}]
}
tool_result figure dans un message dont le rôle est user, ainsi que tool_use_id doit correspondre exactement à l’identifiant de la requête du modèle. Les identifiants qui ne correspondent pas sont rejetés comme requête invalide.Format OpenAI
Le /v1/chat/completions le point de terminaison utilise le format OpenAI tools / tool_calls à la place, les résultats étant renvoyés sous forme de messages dont le rôle est tool.
Coût de l’utilisation des outils
- Les définitions sont renvoyées à chaque tour. Vingt schémas d’outils détaillés peuvent représenter la majeure partie de vos tokens d’entrée avant même le début de la conversation.
- Les résultats deviennent du contexte. Un outil qui renvoie 200 lignes de JSON les inclut toutes dans la requête suivante, puis dans chaque requête ultérieure.
- Chaque aller-retour est un appel facturé. Une tâche utilisant cinq outils nécessite au moins six requêtes.
- Limitez la longueur des sorties des outils et résumez-les avant de les renvoyer. Tronquer un résultat pour ne garder que ce dont le modèle a réellement besoin est le changement le plus efficace dans la plupart des boucles d’agent.
Les schémas d’outils restent stables d’un tour à l’autre, ce qui en fait un bon la mise en cache des prompts candidat aux côtés du prompt système.