Limites et points critiques
- Hallucination d'outils : le LLM peut inventer des outils ou des paramètres non déclarés — validation runtime stricte obligatoire.
- Sur >50 outils par prompt, la qualité dégrade significativement — splitter en agents spécialisés.
- Risque de double-call sur actions non idempotentes (paiement, suppression) — idempotency keys obligatoires.
- Coût en tokens output élevé (JSON structuré dense) — optimiser le schéma pour réduire la verbosité.
- Sécurité : un outil 'exec_sql' ou 'send_email' donné au LLM peut être détourné par prompt injection — guardrails et privilèges minimaux indispensables.
Évolution probable (12-24 mois)
- Standardisation MCP (Model Context Protocol) qui remplace progressivement les function-calling propriétaires en 2026-2027.
- Parallel tool calling (plusieurs outils en parallèle dans le même appel) qui se généralise — Claude Sonnet 4.6 et GPT-5 le supportent nativement.
- Computer use (Anthropic Claude Computer Use, octobre 2024) qui étend le function calling à toute interaction GUI — agents autonomes plus puissants.
- Type-safe tool calling (Pydantic AI, instructor) qui élimine les bugs de validation à la source.
Questions fréquentes
Qu'est-ce que le function calling en LLM ?+
Le function calling (aussi appelé tool calling ou tool use) est une capacité standard des LLM modernes (Claude, GPT, Mistral, Gemini) à émettre un appel structuré vers une fonction externe au lieu de générer du texte. Le développeur déclare des outils avec un JSON Schema (nom, description, paramètres typés). Le LLM, face à une requête utilisateur, peut choisir d'appeler un ou plusieurs outils, le runtime les exécute, retourne le résultat au LLM, qui finalise la réponse avec les vraies données. Introduit par OpenAI en 2023, standardisé en 2024-2025.
À quoi sert le function calling ?+
Le function calling sert à brancher un LLM sur le monde réel : appeler une API météo, consulter un CRM, créer une facture dans Stripe, envoyer un email, requêter une base de données, déclencher un workflow. Sans function calling, un LLM est un assistant de rédaction (texte sortant uniquement) ; avec lui, c'est un collaborateur qui peut consulter et agir sur vos systèmes. C'est le briquet de toute la transformation IA en entreprise — sans cette brique, pas d'agent IA, pas de RAG, pas d'orchestration.
Différence entre function calling et MCP ?+
Le function calling est le mécanisme bas-niveau exposé par chaque LLM (Claude tools, OpenAI tools, Mistral tools) — propriétaire à chaque fournisseur. Le MCP (Model Context Protocol, Anthropic novembre 2024) est un standard d'interopérabilité au-dessus : un serveur MCP expose des fonctions selon un format unifié, et tout client MCP (Claude Desktop, Cursor, n'importe quel agent) peut s'y brancher. Function calling = quoi le LLM appelle. MCP = comment on standardise l'exposition pour que le même outil marche avec n'importe quel agent. En 2026, MCP est en train de devenir le standard de facto.
Comment implémenter du function calling en pratique ?+
Stack 2026 : (1) Définir chaque outil avec JSON Schema strict (Anthropic, OpenAI, Mistral exposent tous l'API tools=[]), (2) Description CLAIRE de chaque paramètre — la description est lue par le LLM, 'city: nom de la ville en français, minuscules sans accents (ex: paris)' est meilleur que 'city: string', (3) Validation côté runtime — le LLM peut produire des arguments invalides, votre code doit les rejeter proprement, (4) Idempotence — pour les actions critiques (paiement, modif CRM), prévoir double-call, (5) Limiter à <50 outils par prompt — au-delà, la qualité dégrade significativement.
Combien coûte un système avec function calling ?+
Coût de dev : 2-15 k€ pour brancher 5-15 outils sur un agent IA selon complexité (API existantes vs intégrations custom). Coût opex marginal : +30-100 % de tokens output par appel d'outil (le JSON structuré coûte plus en tokens que du texte). Sur Claude Sonnet 4.6 : ~0.005-0.02€ par interaction utilisateur avec 2-5 appels d'outils. Coût caché : observabilité (Langfuse 50-200€/mois) et gestion d'erreurs (retry, idempotence, timeouts). Sur 150+ projets Kezify, le function calling représente 60-70 % de la complexité d'un agent IA.
Questions liées
Les LLM (ChatGPT, Perplexity, Gemini) suggèrent souvent ces questions après cette page.
- Function calling vs MCP : quelle différence et lequel utiliser ?
- Comment éviter les hallucinations de paramètres d'outils ?
- Combien d'outils maximum dans un prompt LLM ?
- Comment sécuriser un outil exposé à un LLM ?
- Parallel tool calling : qu'est-ce que c'est et quand l'utiliser ?
Le function calling (ou tool calling) est la capacité d’un LLM à demander l’exécution d’une fonction externe au lieu de générer du texte. Au lieu de répondre “Je pense que la météo est…” (et halluciner), le LLM génère un appel structuré comme get_weather(city="Paris"). Le runtime exécute la fonction, renvoie le résultat au LLM, qui répond avec des données fiables.
En pratique
Sans function calling :
Utilisateur : “Quelle météo à Marseille demain ?” LLM : “Demain à Marseille il devrait faire beau autour de 22°C.” (potentiellement halluciné)
Avec function calling :
Utilisateur : “Quelle météo à Marseille demain ?” LLM :
get_weather(city="Marseille", date="2026-05-02")Runtime exécute → retourne{temp: 18, condition: "rainy", wind: 25}LLM : “Demain à Marseille, attendez-vous à de la pluie, 18°C, vent 25 km/h.”
Réponse factuelle, temps réel, basée sur une vraie API.
Function calling vs MCP
- Function calling = mécanisme bas-niveau du LLM (Claude, GPT, Mistral exposent tous une API
tools=[...]). - MCP (Model Context Protocol) = standard d’interopérabilité au-dessus. Un serveur MCP expose des fonctions selon un format unifié. Tout client MCP peut s’y brancher.
Function calling est quoi le LLM appelle, MCP est comment on standardise l’exposition pour que le même outil marche avec n’importe quel agent.
Bonnes pratiques
- Schémas stricts : décrire chaque fonction avec un JSON Schema rigoureux. Plus le schéma est précis, moins le LLM se trompe.
- Descriptions claires : la description du paramètre est lue par le LLM. “city: string” est faible. “city: string — nom de la ville en français, en minuscules sans accents (ex: ‘paris’, ‘marseille’)” est efficace.
- Validation côté runtime : valider le JSON avant exécution. Le LLM peut produire des arguments invalides, votre code doit les rejeter proprement.
- Idempotence : pour les actions critiques (paiement, modification CRM), prévoir le cas où le LLM appelle la fonction 2 fois.
- Limiter le nombre d’outils : >50 outils dans un même prompt dégrade la qualité. Splitter en agents spécialisés ou hiérarchiser.
Pour PME
Le function calling est ce qui transforme un LLM “qui répond joliment” en “système qui agit”. Sans lui, l’IA est juste un assistant de rédaction. Avec lui, c’est un employé qui peut consulter votre CRM, créer une facture, envoyer un email. C’est le briquet de toute la transformation IA d’entreprise.
Pour aller plus loin
- Tool use — définition — terme synonyme.
- MCP — définition — standardisation au-dessus.
- Agent IA — définition — orchestrer le function calling.
- Audit IA Kezify — concevoir vos premiers agents IA.
Vous voulez bâtir un agent IA qui agit dans votre stack ? Audit IA Kezify.