Polydesk-logotype
Polydesk.ai — Header

Tool Use (Utilisation d’Outils par les LLM)

Definition Le tool use (utilisation d’outils) designe la capacite d’un LLM a identifier quand un outil externe est necessaire, a l’invoquer avec les bons parametres et a integrer le resultat dans sa reponse. C’est le terme utilise par Anthropic (Claude) pour decrire ce qu’OpenAI et Google appellent function calling. Le concept est identique : donner aux modeles de langage la capacite d’agir sur le monde, pas seulement de generer du texte.

Tool use vs function calling

Les termes tool use (Anthropic) et function calling (OpenAI, Google) designent le meme mecanisme technique. Le modele recoit des definitions d’outils, decide quand les utiliser, genere des appels structures (JSON) et integre les resultats. Anthropic prefere « tool use » car le concept va au-dela des simples fonctions API : il inclut aussi les outils system comme computer use (controle d’interface graphique), text editor et bash execution.

Pour le developpeur, les differences sont principalement syntaxiques (noms de parametres dans l’API) et non conceptuelles. Le schema JSON de definition des outils est pratiquement identique entre les fournisseurs.

Fonctionnement detaille

Definition des outils

Les outils sont definis dans le parametre « tools » de la requete API. Chaque outil comprend un nom (identifiant unique), une description (le LLM l’utilise pour decider quand appeler l’outil), et un input_schema (schema JSON des parametres). La description est critique : elle oriente le modele dans son choix d’outil et son usage. Une description vague ou ambigue degrade la fiabilite.

Decision d’utilisation

Le modele analyse le message utilisateur et les outils disponibles. S’il determine qu’un outil est necessaire pour repondre (donnee en temps reel, action a effectuer, calcul precis), il genere un bloc « tool_use » avec le nom de l’outil et les parametres JSON. S’il peut repondre directement, il genere du texte sans appel d’outil. Le modele peut aussi combiner texte et appels d’outils dans une meme reponse.

Boucle d’execution

Apres la generation d’un appel d’outil, l’application execute l’outil cote serveur, puis renvoie le resultat au modele dans un message « tool_result ». Le modele recoit ce resultat et produit sa reponse finale (ou un autre appel d’outil si necessaire). Cette boucle peut se repeter plusieurs fois pour les taches complexes, formant la base des agents IA.

Types d’outils

Outils API (fonctions custom)

Le cas le plus courant : le developpeur definit des fonctions qui appellent ses propres API ou services tiers. Recherche dans une base de donnees, appel a une API meteo, envoi d’email via SendGrid, creation de ticket Jira. Le LLM genere les parametres d’appel, l’application execute et renvoie le resultat.

Computer Use

Anthropic a introduit le computer use avec Claude : le modele peut observer des captures d’ecran d’interfaces graphiques, identifier les elements interactifs et generer des actions (clic, frappe, scroll). C’est une extension du tool use aux interactions visuelles. Le modele utilise des outils system (screenshot, mouse_click, keyboard_type) pour naviguer dans des applications comme un humain le ferait.

Execution de code

Les outils d’execution de code (code interpreter chez OpenAI, analyse chez Claude) permettent au modele d’ecrire et d’executer du code Python dans un sandbox. Le modele ecrit du code, le sandbox l’execute et retourne les resultats (output, graphiques, fichiers). C’est essentiel pour les calculs complexes, l’analyse de donnees et la visualisation.

Recherche web

Les outils de recherche web permettent au modele d’obtenir des informations en temps reel. Le modele genere une requete de recherche, l’outil retourne des resultats, et le modele synthetise la reponse. Cela resout le probleme des connaissances obsoletes du modele (knowledge cutoff).

Type d’outilExempleValeur ajouteeComplexite
API customCRM, meteo, DBAcces aux donnees specifiquesMoyenne
Computer useNavigation GUIAutomatisation universelleElevee
Code executionPython sandboxCalculs, analyse, graphiquesFaible
Recherche webGoogle, BingDonnees en temps reelFaible
FichiersLecture/ecritureManipulation de documentsMoyenne

Implementation pratique

Avec l’API Claude

L’API Claude accepte un tableau « tools » dans la requete. Chaque outil est un objet avec name, description et input_schema (JSON Schema). Quand Claude decide d’utiliser un outil, la reponse contient un bloc de type « tool_use » avec l’id, le name et l’input. Le developpeur execute l’outil et renvoie un message avec role « user » contenant un bloc « tool_result » avec l’id correspondant et le contenu du resultat.

Forcer ou guider le choix d’outil

Le parametre tool_choice permet de controle le comportement. « auto » (defaut) laisse le modele decider. « any » force le modele a utiliser au moins un outil. Un outil specifique {« type »: « tool », « name »: « nom »} force l’utilisation de cet outil precis. Ce controle est utile pour les scenarios ou vous savez qu’un outil est necessaire.

Streaming et latence

Le tool use est compatible avec le streaming : les parametres d’appel d’outil sont envoyes progressivement. Pour reduire la latence percue, affichez le texte de reflexion du modele pendant qu’il decide d’utiliser un outil, puis executez l’outil en arriere-plan et affichez le resultat final. Les appels paralleles d’outils reduisent aussi la latence totale.

Relation avec le MCP

Le MCP (Model Context Protocol) d’Anthropic standardise l’exposition des outils. Au lieu de definir chaque outil manuellement dans votre code, un serveur MCP publie ses outils dans un format standard. Le client MCP decouvre automatiquement les outils disponibles et les transmet au modele via tool use. Le MCP est une couche d’abstraction qui rend les outils portables entre applications et modeles.

Un serveur MCP pour Slack, par exemple, expose des outils comme « send_message », « search_messages », « list_channels ». Votre application se connecte au serveur MCP, recupere les definitions d’outils et les passe a Claude. L’ecosysteme MCP offre des centaines de serveurs pre-construits pour les services populaires.

Bonnes pratiques

Ecrivez des descriptions d’outils orientees « quand utiliser » plutot que « comment ca marche ». Le modele a besoin de savoir quand appeler l’outil, pas son implementation interne. Incluez des exemples de cas d’usage dans la description.

Gardez les schemas d’input simples. Les schemas profondement imbriques ou avec de nombreux champs optionnels reduisent la fiabilite. Preferez des outils atomiques (une action = un outil) plutot que des outils multifonctions.

Gerez les erreurs proprement. Quand un outil echoue, retournez un message d’erreur descriptif dans le tool_result. Le modele peut alors adapter sa strategie (reessayer avec d’autres parametres, utiliser un outil alternatif ou informer l’utilisateur).

Implementez des limites. Limitez le nombre d’appels d’outils par requete pour eviter les boucles infinies. Limitez les permissions des outils au minimum necessaire. Loggez tous les appels d’outils pour le debugging et l’audit.

Analyst Tip Le tool use est ce qui transforme un LLM de « generateur de texte intelligent » en « assistant capable d’agir ». Pour maximiser la fiabilite, suivez la regle des 3 : maximum 3 a 5 outils par contexte, maximum 3 parametres par outil, et maximum 3 phrases par description. La simplicite gagne toujours en tool use. Si votre outil a besoin de 10 parametres, decomposez-le en plusieurs outils plus simples.

Tendances 2026

Le computer use etend le tool use a toute interface graphique, rendant potentiellement tout logiciel existant accessible aux LLM. Le MCP unifie l’ecosysteme d’outils avec un protocole standard. Le tool use multimodal permet aux modeles d’utiliser des outils bases sur des entrees visuelles ou audio. Les outils autonomes (l’agent decide lui-meme quels outils creer) sont une frontiere de recherche active. Et le Verified Tool Use ajoute des garanties de safety en validant formellement les appels d’outils avant execution.

Points cles a retenir Le tool use est le terme Anthropic pour le function calling : la capacite des LLM a utiliser des outils externes. Il couvre les API custom, le computer use, l’execution de code et la recherche web. Le MCP standardise l’exposition des outils. Les bonnes pratiques privilegient la simplicite des definitions et la validation serveur. C’est la brique fondamentale des assistants et agents IA.

FAQ – Tool Use

Quelle est la difference entre tool use et function calling ?

Aucune difference conceptuelle. Tool use est le terme d’Anthropic (Claude), function calling est le terme d’OpenAI et Google. Le mecanisme est identique : le LLM genere un appel structure, l’application execute et retourne le resultat. Anthropic utilise « tool use » car le concept inclut aussi les outils system (computer use) qui vont au-dela des fonctions API.

Claude peut-il utiliser des outils sans API ?

Via l’interface web de Claude, certains outils sont integres : analyse de fichiers, execution de code (artifacts), recherche web. Via l’API, vous definissez vos propres outils. Via le MCP, vous connectez Claude a des serveurs d’outils pre-construits. Chaque interface offre un niveau de customisation different.

Comment gerer les erreurs de tool use ?

Retournez un message d’erreur clair dans le tool_result (pas juste « erreur » mais « L’utilisateur ‘xyz’ n’existe pas dans la base »). Claude peut alors adapter sa reponse : reformuler la requete, utiliser un outil alternatif ou demander des precisions a l’utilisateur. Implementez des retries avec backoff pour les erreurs transitoires (timeout, rate limit).

Combien coute le tool use en tokens ?

Les definitions d’outils consomment des tokens d’entree (environ 100-300 tokens par outil). Chaque appel d’outil ajoute les tokens du resultat retourne. Un systeme avec 5 outils et 3 appels peut ajouter 2 000 a 5 000 tokens a une requete. Optimisez en limitant le nombre d’outils et en compressant les resultats retournes (ne renvoyez que les donnees pertinentes, pas la reponse API complete).

Le tool use fonctionne-t-il avec le streaming ?

Oui. L’API Claude supporte le streaming des appels d’outils. Les evenements input_json_delta envoient les parametres JSON progressivement. Cela permet d’afficher le raisonnement du modele en temps reel pendant qu’il prepare l’appel d’outil, ameliorant la latence percue par l’utilisateur.

Polydesk.ai — Footer