Tool use
Définition
Capacité d'un LLM à appeler des fonctions ou outils définis par le développeur : lire une base, déclencher une action, faire une recherche web. Base du fonctionnement des agents.
Comment ça marche
Le tool use permet de donner au LLM une liste de fonctions disponibles (chercher un client, créer une facture, envoyer un e-mail) avec leur description et leurs paramètres. Au lieu de répondre en texte libre, le modèle décide d'appeler une de ces fonctions et renvoie le nom de la fonction et les arguments au format JSON structuré. Côté code, on récupère cet appel, on exécute la fonction réelle, et on renvoie le résultat au modèle qui poursuit la conversation. Ce mécanisme transforme le LLM d'un générateur de texte en un orchestrateur d'actions sur vos systèmes.
À quoi ça sert
Le tool use est ce qui fait sortir le LLM de la pure conversation pour interagir avec le monde réel. Cas concrets : un agent commercial qui interroge le CRM, crée un devis, envoie un e-mail ; un assistant qui cherche dans la base produits puis ajoute des articles au panier ; un chatbot support qui lit les tickets, qualifie l'urgence, et déclenche une escalade. Pour chaque fonction, vous décrivez le métier (ce qu'elle fait, ses paramètres, ses sorties), et le modèle décide quand et comment l'utiliser selon la conversation. C'est ce qui transforme un LLM en moteur d'agent.
Comment décrire un tool
La qualité d'un système basé sur tool use dépend à 80% des descriptions de fonctions. Pour chaque tool : un nom explicite (createInvoice, pas createI), une description qui explique précisément quand l'utiliser (et pas seulement ce qu'il fait), un schéma JSON des paramètres avec types, exemples et contraintes. On rédige ces descriptions comme une documentation interne destinée à un développeur junior : si vous devez deviner ce que fait la fonction, le modèle aussi. Les fonctions ambiguës provoquent des choix incohérents : le modèle appelle searchOrders quand searchCustomers serait correct.
Quand l'utiliser
Le tool use s'impose dès qu'on veut intégrer un LLM dans un produit qui agit sur des données. Sans tool use, le modèle ne peut que générer du texte que vous parsez : fragile et imprévisible. Avec tool use, vous récupérez un JSON typé qui correspond exactement à une action que votre code sait exécuter. Pour des cas de pure rédaction (génération marketing, résumé, traduction), le tool use n'apporte rien. Mais dès qu'une réponse doit déclencher une action, modifier une base, appeler une API, c'est l'outil à utiliser.
L'orchestration et les boucles
Sur un seul tour, le modèle appelle un ou plusieurs tools en parallèle, vous exécutez, et le modèle compose la réponse finale. Sur plusieurs tours (mode agent), on boucle : le modèle voit le résultat des tools précédents, décide d'appeler de nouveaux tools, et ainsi de suite jusqu'à atteindre l'objectif. On limite explicitement le nombre maximal d'itérations pour éviter les boucles infinies. Anthropic propose un mode multi-step natif via leur SDK, OpenAI propose les Assistants API et les Responses API pour ce type d'orchestration. Pour les cas simples, on l'implémente soi-même en quelques dizaines de lignes.
Les pièges à éviter
Quatre erreurs courantes. Exposer trop de tools : au-delà de 15-20 fonctions, le modèle commence à se tromper de choix. On regroupe par domaine et on filtre selon le contexte. Faire confiance aveuglément aux arguments du modèle : il peut inventer des IDs qui n'existent pas, on valide systématiquement côté serveur. Oublier la gestion d'erreur : si la fonction échoue, on renvoie l'erreur au modèle qui peut adapter sa stratégie, plutôt que de planter. Et négliger la sécurité : un tool deleteCustomer ne doit jamais être exposé sans authentification stricte et confirmation explicite de l'utilisateur.