#outils-appel — IA agentique
Appel d'outil (function calling / MCP) : le JSON qui fait agir le LLM.
Ce que tu vas manipuler
- Bienvenue dans #outils-appel. À gauche, la bulle indigo, c'est le LLM. À droite, quatre outils : 📄 fichier, 🧮 calcul, 🌐 web, 💾 base. Au centre, un bloc JSON. Quand tu dis à Claude Code « lis
config.json», le modèle ne lit rien lui-même : il écrit un JSON{ "name": "fichier.lire", "arguments": { "chemin": "config.json" } }qu'un runtime valide contre un schéma, exécute, puis renvoie une observation. C'est le function calling. On va le faire tourner à la main. - Charge un scénario prêt à l'emploi. Tape
/scenario lire-fichier. Le JSON central se remplit avec l'exemple canonique, l'outil fichier passe en surbrillance. - Avant d'appeler, regarde ce que l'outil attend. Tape
/schema fichier. Tu vois les propriétés, leurs types et lesquelles sont obligatoires. - Passe à l'action :
/appeler fichier. Le JSON central est validé (bandeau VALIDÉ ✓), une flèche verte part du LLM vers l'outil 📄 qui s'allume, une flèche or ramène l'observation (le contenu du fichier). - Casse volontairement les arguments pour voir la validation refuser :
/args {"chemin": 42}. Le JSON central se met à jour avec cette nouvelle valeur, mais aucune exécution : il faut valider. - Deuxième garde-fou : le mode strict, qui refuse les propriétés inconnues. Active-le :
/strict on. Puis retape/args {"chemin": "a.txt", "extra": true}et/valider: le bandeau devient rouge, la propriété extra est refusée alors qu'elle serait tolérée hors strict. - Enfin, regarde à quoi ressemble le même appel côté MCP (Model Context Protocol, standardisé par Anthropic en 2024). Tape
/mcp: tu vas voir la requête JSON-RPCtools/callet sa réponseresult, celles-là mêmes que Claude Desktop et Cursor échangent avec leurs serveurs MCP. - À toi. Essaie
/scenario calculerpuis/appeler calculpour un autre outil,/exemplepour voir trois payloads (dont un cassé),/scenario chercher-webpour un outil avec un champ optionnelk,/reinitpour repartir. La suite : #slash-commands (Premium) montre comment on emballe ces appels en raccourcis/plan,/review… ; #boucle-agentique montre comment plusieurs appels s'enchaînent en Pensée → Action → Observation.
Commandes du canal
/scenario <lire-fichier|calculer|chercher-web|requete-base>— Charge un scénario prêt (outil + JSON exemple + observation)./appeler <fichier|calcul|web|base>— Émet le JSON attendu, valide puis exécute (observation scriptée)./schema <fichier|calcul|web|base>— Affiche le schéma JSON attendu par un outil (sans exécuter)./args <json>— Remplace les arguments du prochain appel (JSON brut)./valider— Valide le JSON courant contre le schéma (sans exécuter)./strict <on|off>— Active/désactive le refus des propriétés inconnues./mcp— Montre la version MCP (tools/call) du dernier appel./exemple— Donne 3 exemples de payloads pour l'outil courant (dont un cassé)./reinit— Remet le canal à zéro : plus d'outil, ni de JSON, ni d'historique.
Glossaire
- function calling
- Motif où le LLM émet un JSON structuré contenant un nom d'outil et ses arguments. Un runtime valide ce JSON contre un schéma, exécute la fonction correspondante et renvoie une observation au modèle. Standardisé côté OpenAI (tools), Anthropic (tool use) et par le protocole MCP.
- JSON schema
- Contrat qui décrit la forme des arguments attendus par un outil : nom des propriétés, types (
string,number,array…), propriétés obligatoires. Le runtime rejette tout payload non conforme avant même de toucher à l'outil. - validation stricte
- Option qui refuse toute propriété non déclarée dans le schéma. Sans elle, le LLM peut inventer des champs (
encodage,timeout…) que l'outil ignorera silencieusement. Claude Code et Cursor exigent le mode strict par défaut. - MCP
- Protocole ouvert (Anthropic, 2024) qui standardise comment un client (Claude Desktop, Cursor…) parle à un serveur d'outils (fichiers, git, Notion…). C'est du function calling emballé dans JSON-RPC 2.0.
- tools/call
- La méthode JSON-RPC qu'un client MCP invoque pour exécuter un outil :
{"method": "tools/call", "params": {"name": "…", "arguments": {…}}}. Le serveur répond dansresult.content. Tape/mcppour voir un exemple complet. - observation typée
- Retour d'un outil (chaîne, JSON, erreur) que le LLM relit à l'itération suivante. Le côté « typé » vient du fait que le contenu est structuré (JSON), pas juste du texte libre — le modèle peut le ré-analyser.
- propriété obligatoire
- Propriété que le schéma marque comme indispensable : son absence déclenche un rejet immédiat, avant validation des autres champs. Dans
fichier.lire,cheminest obligatoire ; dansweb.rechercher, seulrequetel'est (kreste optionnel). - payload
- Le corps JSON transmis à l'outil. Sur MCP, il vit dans
params.argumentsde la requêtetools/call. C'est exactement ce que la carte 3D centrale affiche. - retry
- Quand la validation refuse un payload, le LLM reçoit l'erreur en observation et re-génère un JSON corrigé. Un bon runtime plafonne le nombre de retries (2–5) et fait passer l'erreur en langage naturel pour aider le modèle.
- slash command
- Raccourci utilisateur (
/plan,/review…) qui déclenche un mini-workflow d'agent — souvent une séquence d'appels d'outils. Détaillé dans #slash-commands (Premium).
Autres canaux du thème IA agentique
- #boucle-agentique — Boucle ReAct d'un agent : Pensée → Action → Observation en direct.
- #outils-appel — Appel d'outil (function calling / MCP) : le JSON qui fait agir le LLM.
- #slash-commands — Slash commands à la Claude Code / Cursor : templates, arguments, enchaînement.
- #contexte-memoire — Fenêtre de contexte et mémoire d'agent : compter, tronquer, résumer, indexer.
- #planification-reflexion — Planification, réflexion et self-correction : de 60 % à 90 % de succès.
- #multi-agents — Multi-agents : planner, workers, verifier. Un DAG qui bat l'agent monolithique.