📖

Qu'est-ce que Function Calling ?

Le function calling est une capacité des grands modèles de langage qui leur permet de demander l'exécution de code ou d'outils externes en produisant des arguments structurés plutôt qu'en générant du texte libre. Il fait le pont entre les invites en langage naturel et les logiciels déterministes, afin qu'un LLM puisse agir de façon fiable sur des bases de données, des API ou d'autres servic

Le function calling est une capacité des grands modèles de langage qui leur permet de demander l'exécution de code ou d'outils externes en produisant des arguments structurés plutôt qu'en générant du texte libre. Il fait le pont entre les invites en langage naturel et les logiciels déterministes, afin qu'un LLM puisse agir de façon fiable sur des bases de données, des API ou d'autres services. Le modèle décide quand une fonction est nécessaire et fournit une charge utile lisible par la machine, tandis que l'application appelante est chargée d'exécuter réellement la fonction et de renvoyer le résultat au modèle.

Comment fonctionne le Function Calling

Les développeurs enregistrent un ensemble de définitions de fonctions auprès du modèle, généralement sous forme de schémas JSON qui décrivent le nom, le but et les paramètres de chaque fonction. Lorsqu'un utilisateur envoie une invite telle que « Quel temps fait-il à Tokyo ? », le modèle ne répond pas directement. Il renvoie à la place un objet structuré — par exemple, {"name": "get_weather", "arguments": {"city": "Tokyo"}}. L'application hôte analyse cet objet, exécute la véritable fonction (souvent en appelant une API tierce) et ajoute le résultat à la conversation sous forme de nouveau message. Le LLM transforme ensuite ce résultat en une réponse en langage naturel pour l'utilisateur.

La plupart des fournisseurs exposent le même flux via leurs API de complétion de chat. Le modèle n'exécute jamais de code lui-même ; le function calling est essentiellement une façon disciplinée d'amener un modèle de langage à « parler JSON » afin qu'un logiciel déterministe puisse agir dessus en toute sécurité.

Pourquoi c'est important

Les LLM sont doués pour le langage et le raisonnement, mais mauvais en arithmétique, en données temps réel et en effets de bord. Le function calling transforme un modèle de chat en couche de raisonnement d'un système agentique : le modèle planifie, les outils exécutent. Ce schéma alimente des assistants IA capables de réserver des agendas, d'interroger des CRM, d'exécuter du SQL, d'appeler des microservices internes ou de déclencher des actions robotiques, tout en gardant au développeur un contrôle strict sur le code qui s'exécute réellement. Il réduit aussi considérablement les hallucinations pour les requêtes factuelles, car les réponses s'appuient sur la sortie réelle d'un outil plutôt que sur la mémoire paramétrique du modèle.

Principaux types de schémas de function calling

  • Utilisation d'outil en un seul appel : le modèle appelle une fonction par tour, comme une calculatrice ou une recherche web.
  • Appels parallèles : le modèle demande plusieurs fonctions indépendantes en une seule réponse, utile pour récupérer des données depuis plusieurs sources à la fois.
  • Boucles multi-étapes / agentiques : l'application réinjecte les résultats des outils en boucle jusqu'à ce que le modèle décide qu'aucun appel supplémentaire n'est nécessaire, ce qui permet d'enchaîner des actions.
  • Décodage contraint : techniques qui forcent la sortie du modèle, jeton par jeton, à se conformer à un schéma JSON, améliorant la fiabilité pour les API strictes.

Le function calling est désormais une capacité standard chez les principaux fournisseurs de modèles, et c'est la fondation sur laquelle sont construits la plupart des agents IA, copilotes et pipelines de récupération modernes.

Questions fréquemment posées

Is function calling the same as an AI agent?
No, but it is a building block. Function calling is the mechanism that lets a model request tools; an agent is the surrounding system that plans, loops, and decides which tools to call and when to stop. Most agents rely on function calling under the hood.</</a>
Does the language model actually execute the function?
No. The model only proposes a function name and arguments. Your application receives the structured request, runs the real code in a controlled environment, and sends the output back to the model for the next turn. This separation is what makes function calling safe.
How is function calling different from standard prompt-based tool use?
Earlier approaches asked the model to "write a function call" as plain text, which required fragile regex parsing. Modern function calling is a first-class API feature where the model emits a schema-conformant JSON object, dramatically improving reliability and reducing parsing errors.
What are common pitfalls when using function calling?
Common issues include ambiguous function descriptions that make the model pick the wrong tool, missing or weakly typed parameters in the schema, and failing to validate arguments before execution. Clear, well-scoped function definitions and schema-constrained decoding help avoid most of these problems.