Aller au contenu principal

Chargement du lab visuel…

#outils-appelIA agentique

Appel d'outil (function calling / MCP) : le JSON qui fait agir le LLM.

Ce que tu vas manipuler

  1. 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.
  2. 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.
  3. Avant d'appeler, regarde ce que l'outil attend. Tape /schema fichier. Tu vois les propriétés, leurs types et lesquelles sont obligatoires.
  4. 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).
  5. 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.
  6. 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.
  7. 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-RPC tools/call et sa réponse result, celles-là mêmes que Claude Desktop et Cursor échangent avec leurs serveurs MCP.
  8. À toi. Essaie /scenario calculer puis /appeler calcul pour un autre outil, /exemple pour voir trois payloads (dont un cassé), /scenario chercher-web pour un outil avec un champ optionnel k, /reinit pour 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).
  • /validerValide le JSON courant contre le schéma (sans exécuter).
  • /strict <on|off>Active/désactive le refus des propriétés inconnues.
  • /mcpMontre la version MCP (tools/call) du dernier appel.
  • /exempleDonne 3 exemples de payloads pour l'outil courant (dont un cassé).
  • /reinitRemet 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 dans result.content. Tape /mcp pour 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, chemin est obligatoire ; dans web.rechercher, seul requete l'est (k reste optionnel).
payload
Le corps JSON transmis à l'outil. Sur MCP, il vit dans params.arguments de la requête tools/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-agentiqueBoucle ReAct d'un agent : Pensée → Action → Observation en direct.
  • #outils-appelAppel d'outil (function calling / MCP) : le JSON qui fait agir le LLM.
  • #slash-commandsSlash commands à la Claude Code / Cursor : templates, arguments, enchaînement.
  • #contexte-memoireFenêtre de contexte et mémoire d'agent : compter, tronquer, résumer, indexer.
  • #planification-reflexionPlanification, réflexion et self-correction : de 60 % à 90 % de succès.
  • #multi-agentsMulti-agents : planner, workers, verifier. Un DAG qui bat l'agent monolithique.