Polydesk-logotype
Polydesk.ai — Header

Function Calling

Definition Le function calling (appel de fonctions) est une capacite des LLM modernes qui leur permet d’identifier quand une fonction externe doit etre appelee, de generer les parametres d’appel au format structure (JSON), et d’integrer le resultat dans leur reponse. C’est le mecanisme fondamental qui transforme un modele de langage en assistant IA capable d’agir sur le monde.

Pourquoi le function calling est essentiel

Un LLM seul ne peut que generer du texte. Il ne peut pas consulter une base de donnees, envoyer un email, obtenir la meteo actuelle ou executer du code. Le function calling comble cette lacune en donnant au modele la capacite d’invoquer des outils externes de maniere controllable et structuree.

Avant le function calling, les developpeurs utilisaient des prompts heuristiques (« si tu as besoin de chercher, ecris SEARCH: … ») et parsaient les reponses avec des regex fragiles. Le function calling formalise cette interaction : le modele produit un appel de fonction structure, le systeme l’execute et retourne le resultat au modele. C’est plus fiable, plus maintenable et plus secure.

Comment ca fonctionne

Les 4 etapes du function calling

Etape 1 : Le developpeur definit les fonctions disponibles dans la requete API. Chaque fonction a un nom, une description et un schema JSON des parametres attendus. Etape 2 : Le LLM recoit le message utilisateur et les definitions de fonctions. S’il determine qu’une fonction est utile, il genere un appel de fonction (nom + parametres JSON) au lieu d’une reponse textuelle. Etape 3 : L’application execute la fonction cote serveur et renvoie le resultat au LLM. Etape 4 : Le LLM integre le resultat dans sa reponse finale a l’utilisateur.

Le modele ne peut pas executer les fonctions lui-meme. Il genere une intention d’appel structuree ; c’est l’application qui execute et retourne le resultat. Cette separation est cruciale pour la securite : le developpeur controle quelles fonctions sont executees et peut ajouter des validations.

Definition des fonctions

Les fonctions sont definies via un schema JSON qui specifie le nom, la description (utilisee par le LLM pour decider quand appeler), les parametres (type, description, valeurs possibles, champs obligatoires). Plus la description est precise, plus le LLM utilisera la fonction de maniere pertinente. C’est une forme de prompt engineering appliquee aux outils.

Appels paralleles

Les LLM modernes supportent les appels de fonctions paralleles : le modele peut generer plusieurs appels de fonctions simultanement dans une seule reponse. Par exemple, pour « Quel temps fait-il a Paris et a Tokyo ? », le modele genere deux appels a la fonction meteo en parallele. L’application execute les deux, renvoie les resultats, et le modele synthetise la reponse.

Implementations par fournisseur

FournisseurNom de la fonctionnaliteFormatAppels paralleles
OpenAIFunction calling / ToolsJSON SchemaOui
AnthropicTool useJSON SchemaOui
GoogleFunction callingProtocol Buffers / JSONOui
MistralFunction callingJSON SchemaOui
Open sourceTool callingVariableSelon le modele

OpenAI

OpenAI a popularise le function calling avec GPT-3.5 et GPT-4 (juin 2023). L’API utilise le parametre « tools » avec un tableau de definitions de fonctions. Le modele repond avec un « tool_calls » contenant le nom de la fonction et les arguments JSON. OpenAI supporte aussi le mode « strict » qui garantit que les arguments respectent exactement le schema JSON (pas de champs supplementaires, types corrects). Les modeles GPT-4o et o3 ont une fiabilite de function calling parmi les meilleures du marche.

Anthropic (Claude)

Anthropic utilise le terme tool use plutot que function calling. L’API Claude definit les outils dans un parametre « tools » avec un schema JSON identique. Claude repond avec des blocs « tool_use » contenant l’identifiant, le nom et les parametres. Claude 3.5 Sonnet et Claude 4 offrent une excellente fiabilite d’appel d’outils avec un suivi precis des schemas.

Modeles open source

Les modeles open source (Llama 3, Mistral, Qwen) supportent le function calling via des formats de chat specifiques. La qualite est generalement inferieure aux modeles proprietaires mais s’ameliore rapidement. Hermes, NousResearch et d’autres proposent des modeles fine-tunes specialement pour le tool calling. Les benchmarks comme BFCL (Berkeley Function Calling Leaderboard) evaluent ces capacites.

Cas d’usage

La recherche d’information en temps reel est le cas d’usage le plus courant : le LLM appelle une API de recherche web, une base de donnees ou un service meteo pour obtenir des donnees actuelles. Le RAG peut etre implemente via function calling : le modele appelle une fonction de recherche semantique dans la base vectorielle.

L’execution d’actions est le second grand cas : envoyer un email, creer un evenement calendrier, passer une commande, modifier un fichier. Le function calling structure ces actions de maniere controllable.

L’extraction structuree de donnees utilise le function calling comme mecanisme de formatage : au lieu de demander au modele de produire du JSON dans sa reponse (fragile), on definit une « fonction » dont les parametres correspondent au schema de donnees souhaite. Le modele « appelle » cette fonction et produit les donnees au format exact.

Les agents IA reposent massivement sur le function calling. Chaque outil de l’agent (recherche, code, fichiers) est defini comme une fonction. La boucle agentique (observe, raisonne, agit) utilise le function calling pour la phase d’action.

Bonnes pratiques

Ecrivez des descriptions de fonctions claires et precises. Le LLM utilise ces descriptions pour decider quand appeler quelle fonction. Une description vague produit des appels inappropries. Incluez des exemples dans les descriptions pour les cas ambigus.

Utilisez des noms de parametres explicites (get_weather avec « city » et « unit ») plutot que generiques (« param1 », « param2 »). Le modele interprete les noms pour determiner quoi passer.

Validez toujours les parametres generes par le LLM cote serveur avant d’executer la fonction. Le modele peut halluciner des valeurs invalides, passer des types incorrects ou omettre des champs obligatoires. La validation est une couche de safety indispensable.

Limitez le nombre de fonctions exposees. Au-dela de 20 fonctions, la precision du modele dans le choix de la bonne fonction diminue. Regroupez les fonctions par contexte et n’exposez que celles pertinentes pour la tache en cours.

Analyst Tip Le function calling est la brique fondamentale pour passer d’un chatbot a un assistant IA fonctionnel. Commencez par 3 a 5 fonctions simples (recherche, calcul, acces DB). Testez la fiabilite du LLM sur ces fonctions avant d’en ajouter. Utilisez le mode « strict » d’OpenAI ou la validation JSON Schema cote serveur pour garantir l’integrite des appels. Et n’oubliez pas : le function calling est une interface, pas une execution. Votre code garde le controle.

Function calling vs tool use

Les termes « function calling » (OpenAI, Google) et « tool use » (Anthropic) designent le meme concept. La difference est terminologique, pas technique. Anthropic prefere « tool use » car il couvre aussi les outils system (computer use, text editor) qui vont au-dela des fonctions classiques. En pratique, les APIs et les schemas sont tres similaires entre les fournisseurs.

Relation avec le MCP

Le MCP (Model Context Protocol) d’Anthropic standardise la maniere dont les outils sont exposes aux LLM. Au lieu de definir les fonctions manuellement dans chaque requete API, le MCP permet a des serveurs d’outils de publier leurs fonctions dans un format standardise. Le LLM se connecte au serveur MCP, decouvre les outils disponibles et les utilise via function calling. Le MCP est une couche d’abstraction au-dessus du function calling.

Tendances 2026

Le structured output (sortie structuree garantie) converge avec le function calling. OpenAI, Anthropic et Google offrent des modes qui garantissent le respect exact du schema JSON. Le function calling multimodal permet aux modeles d’utiliser des outils base sur des entrees visuelles (analyser une image puis appeler une API). Le computer use etend le function calling a des actions sur des interfaces graphiques. Et le MCP devient le standard de decouverte et d’invocation d’outils.

Points cles a retenir Le function calling permet aux LLM d’appeler des fonctions externes de maniere structuree. C’est le mecanisme fondamental qui transforme les chatbots en assistants capables d’agir. Tous les grands fournisseurs (OpenAI, Anthropic, Google) l’implementent. Les bonnes pratiques incluent des descriptions precises, la validation serveur et la limitation du nombre de fonctions.

FAQ – Function Calling

Le LLM execute-t-il les fonctions lui-meme ?

Non. Le LLM genere une intention d’appel structuree (nom de la fonction + parametres JSON). C’est votre application qui execute la fonction cote serveur et retourne le resultat au LLM. Le modele ne fait que decider quand et comment appeler, pas executer. Cette separation est essentielle pour la securite et le controle.

Quelle est la difference entre function calling et plugins ?

Les plugins (comme ceux de ChatGPT) sont des applications pre-configurees qui exposent des fonctions au LLM. Le function calling est le mecanisme technique sous-jacent. Les plugins sont une couche d’abstraction utilisateur, le function calling est la couche developpeur. Avec l’API, vous definissez vos propres « plugins » via function calling.

Combien de fonctions un LLM peut-il gerer ?

Les meilleurs modeles (GPT-4o, Claude 3.5 Sonnet) gerent efficacement 10 a 20 fonctions. Au-dela, la precision de selection diminue. Pour les systemes avec des centaines d’outils, utilisez une etape de pre-selection (RAG sur les descriptions de fonctions) pour ne presenter au modele que les 5 a 10 fonctions pertinentes pour la requete en cours.

Le function calling est-il fiable ?

Avec les meilleurs modeles et des descriptions bien ecrites, la fiabilite est elevee (90-98% d’appels corrects). Les erreurs courantes : mauvais choix de fonction (quand les descriptions se chevauchent), parametres invalides (types incorrects, valeurs hallucinantees) et oubli d’appel (le modele repond directement au lieu d’utiliser l’outil). La validation serveur et le mode strict reduisent ces erreurs.

Peut-on utiliser le function calling avec des modeles open source ?

Oui. Llama 3, Mistral, Qwen et d’autres modeles open source supportent le tool calling. La qualite est generalement inferieure aux modeles proprietaires mais suffisante pour de nombreux cas d’usage. Les modeles fine-tunes pour le tool calling (Hermes, NousResearch) offrent de meilleures performances. Le BFCL (Berkeley Function Calling Leaderboard) classe les modeles par fiabilite.

Polydesk.ai — Footer