Introduction au Tool Use
Sur cette page
À propos de ce cours — Ce cours mène du premier outil à une boucle d’outils fiable, rapide et économique. Les leçons 1 à 6, les bases, sont adaptées du tutoriel Tool use d’Anthropic (dépôt GitHub anthropics/courses, aujourd’hui archivé, publié sous licence CC BY-NC 4.0) et mises à jour pour les modèles actuels. Les leçons 7 à 16 suivent le programme du cours officiel « Tool use with the Messages API » de Claude Academy ; leur contenu, rédigé en français par Corsen, s’appuie sur la documentation officielle de l’API Claude citée à chaque leçon. Les exemples sont en Python.
Objectifs
- Comprendre ce qu’est le Tool Use (utilisation d’outils)
- Identifier les cas d’usage pertinents
- Comprendre le processus global d’utilisation d’outils avec Claude
Qu’est-ce que le Tool Use ?
Le Tool Use, que la littérature technique appelle aussi function calling (appel de fonctions), consiste à étendre les capacités de Claude en lui décrivant des outils externes qu’il peut invoquer. Vous fournissez au modèle une liste d’outils prédéfinis ; il reste libre de les appeler à tout moment, dès qu’une tâche dépasse ce qu’il sait faire seul. Dit autrement, le Tool Use est un moyen d’augmenter les fonctionnalités de Claude sans toucher au modèle lui-même.
L’intérêt se mesure très vite sur des projets réels. Un modèle de langage, aussi bon soit-il, ne connaît pas l’état de votre stock ce matin, ne sait pas ce que contient votre base clients et ne peut pas envoyer un courriel. En lui donnant un outil qui interroge une API de cotation boursière, vous transformez une réponse approximative en une donnée fraîche et vérifiable. En lui donnant un outil qui écrit dans votre CRM, vous passez d’un assistant qui rédige un message à un assistant qui met réellement à jour un enregistrement. Les quatre grands bénéfices sont donc l’extension des capacités de calcul, l’intégration à vos systèmes existants, l’accès à des données en temps réel, et l’automatisation de workflows complets.
Les familles de cas d’usage se ramènent à quatre catégories, que voici avec une illustration pour chacune.
| Cas d’usage | Exemple |
|---|---|
| Récupération d’informations | Interroger une API météo, récupérer des cours de bourse |
| Calculs | Opérations mathématiques complexes, analyses statistiques |
| Manipulation de données | Formatage, extraction, conversion de données |
| Interaction avec des systèmes | Envoyer des emails, créer des tickets, mettre à jour une BDD |
Comment fonctionne le Tool Use ?
Retenez d’abord le point qui surprend le plus les développeurs qui découvrent le sujet : Claude n’exécute aucun code lui-même. Vous lui décrivez les outils disponibles, il choisit lequel utiliser et avec quelles valeurs de paramètres, puis il s’arrête et attend. C’est votre code qui exécute réellement l’outil et qui lui renvoie le résultat. Cette séparation stricte est ce qui rend le mécanisme sûr et auditable : rien ne part vers votre base de données sans passer par une fonction que vous avez écrite.
La documentation range les outils en trois familles, selon l’endroit où leur code s’exécute. Les outils que vous définissez, les plus courants, sont exécutés par votre code. Les outils dont Anthropic publie le schéma, comme l’éditeur de texte, bash ou la mémoire, le sont aussi. Les outils serveur, comme la recherche web, la lecture de pages web ou l’exécution de code, sont exécutés par Anthropic : vous les activez, puis vous lisez le résultat. Ce cours porte surtout sur la première famille ; les leçons 11 à 13 présentent les deux autres.
Le cycle complet se déroule en quatre étapes, précédées d’un travail préparatoire.
Étape 0 : Écrire la fonctionnalité de l’outil
Avant même de parler d’un outil à Claude, il faut que la fonction correspondante existe dans votre code. Prenons un outil de consultation du cours d’une action : la logique métier, l’appel à l’API boursière et le format de retour vous appartiennent entièrement.
def get_stock_price(company_name):
# Appel à une API boursière réelle
# Retourne le prix actuel de l'action
pass
Étape 1 : Fournir les outils et un prompt (requête API)
Vous décrivez ensuite l’outil à Claude avec trois éléments : son nom, sa description et son schéma d’entrée. Cette description est votre seul canal de communication avec le modèle sur le rôle de l’outil. La documentation la présente comme le facteur de loin le plus important de la performance d’un outil, et conseille au moins trois ou quatre phrases : ce que fait l’outil, quand l’utiliser ou non, ce que signifie chaque paramètre, ses limites. Le tout part dans la même requête que le prompt de l’utilisateur.
tools = [{
"name": "get_stock_price",
"description": (
"Récupère le dernier cours connu de l'action d'une entreprise cotée. "
"À utiliser dès que la question porte sur le prix actuel d'une action. "
"Renvoie le symbole boursier, le prix et la devise ; ne donne ni historique ni prévision."
),
"input_schema": {
"type": "object",
"properties": {
"company_name": {
"type": "string",
"description": "Le nom de l'entreprise"
}
},
"required": ["company_name"]
}
}]
Étape 2 : Claude demande à utiliser un outil (réponse API)
Claude analyse la demande et évalue si un outil l’aiderait. Si un utilisateur écrit « combien d’actions General Motors puis-je acheter avec 500 dollars ? », le modèle comprend qu’il lui manque le cours du jour et renvoie une requête d’utilisation d’outil, avec le nom de l’outil et les paramètres qu’il a déduits de la question.
{
"type": "tool_use",
"name": "get_stock_price",
"input": {"company_name": "General Motors"}
}
Étape 3 : Exécuter l’outil et renvoyer le résultat (requête API)
Votre code récupère le nom de l’outil et les paramètres, appelle la fonction, et prépare le retour à destination de Claude. C’est ici que vous gardez la main : vous pouvez valider les paramètres, refuser un appel, journaliser l’opération ou limiter la taille du résultat.
result = get_stock_price("General Motors")
# result = {"ticker": "GM", "price": 43.09, "currency": "USD"}
Étape 4 : Claude formule sa réponse finale (réponse API)
Le résultat repart vers Claude, qui l’intègre à son raisonnement et rédige la réponse destinée à l’utilisateur. Le calcul de conversion, lui, est fait à partir d’une donnée réelle et non d’une estimation.
Avec un prix actuel de 43,09$ par action, vous pouvez acheter environ 11 actions de General Motors avec vos 500$.
Savoir quand un outil est justifié
Avant de passer à l’implémentation, testez votre discernement sur ces quatre projets : lesquels justifient vraiment le recours au Tool Use ?
- (a) Un chatbot support qui récupère des infos de commande depuis une BDD
- (b) Un assistant de rédaction qui corrige la grammaire
- (c) Un conseiller financier qui fait des recommandations personnalisées basées sur des données en temps réel
- (d) Un chatbot voyage qui réserve des vols et hôtels
Voir la réponse
a, c et d sont de bons candidats pour le Tool Use. Le cas (b) ne nécessite pas d’outils externes car Claude peut corriger la grammaire avec ses capacités intégrées.
À vous de jouer
Votre premier contrat d’outil. Choisissez une fonction de votre métier, par exemple consulter un stock ou retrouver un client. Écrivez sa définition complète : un nom explicite, une description de trois ou quatre phrases, et un schéma d’entrée avec une description par paramètre. Notez ensuite deux questions d’utilisateur qui devraient déclencher l’outil, et une qui ne le devrait pas.
Sources officielles : How tool use works (documentation Claude : le contrat, les trois familles d’outils, la boucle) · Define tools (documentation Claude : rédiger les descriptions) · Tool use overview (notebook d’origine)
Points clés à retenir
- Le tool use étend les capacités de Claude sans toucher au modèle : données fraîches, calculs exacts, actions dans vos systèmes
- Claude n’exécute rien lui-même : il demande un outil, votre code l’exécute et lui renvoie le résultat (les outils serveur, eux, sont exécutés par Anthropic)
- La description de l’outil est le premier facteur de sa bonne utilisation : trois ou quatre phrases au moins
- Un outil se justifie quand la tâche dépasse ce que le modèle sait faire seul
Crédits et licence — Adaptation française du notebook « 01_tool_use_overview » du tutoriel Tool use d’Anthropic (dépôt GitHub anthropics/courses), publié sous licence CC BY-NC 4.0 ; adaptation remaniée et mise à jour par Corsen.