Function calling (FR)
Le Function Calling (Appel de fonction) est un mécanisme des grands modèles de langage (LLM) qui permet au modèle d'interagir avec des outils externes et des API en générant des données structurées (généralement du JSON) pour appeler des fonctions, au lieu de fournir une réponse textuelle directe[1].
En d'autres termes, le modèle détermine, à partir de la requête de l'utilisateur, quelle fonction d'un ensemble prédéfini doit être appelée et avec quels paramètres. Ce mécanisme élargit le champ d'application des LLM en leur permettant de servir d'interface entre le langage naturel et des actions concrètes. Cela ouvre la voie à l'intégration de l'IA avec des systèmes externes : le modèle peut demander des données à jour, effectuer des opérations ou utiliser des services, ce qui est particulièrement précieux pour la création d'assistants intelligents et d'agents autonomes. L'utilisation d'outils externes réduit également le risque d'hallucinations (faits inventés) en s'appuyant sur des sources de données fiables[2].
Historique et approches de mise en œuvre
Premières approches (prompting et Toolformer)
L'idée d'apprendre aux modèles de langage à appeler des outils a pris forme en 2022–2023. Les premières approches reposaient sur des techniques de prompting complexes. Par exemple, en 2022, le framework ReAct a été proposé, où le modèle, au cours d'un dialogue, alternait entre des phases de raisonnement et d'action (appels d'outils), encodées dans un seul et même texte.
Une étape clé a été l'introduction du modèle Toolformer, présenté par les chercheurs de Meta au début de 2023. Toolformer a démontré qu'un LLM pouvait être spécifiquement entraîné pour appeler de manière autonome des outils externes (calculatrice, moteur de recherche, calendrier) à partir d'indices textuels, en insérant des jetons spéciaux d'appel d'API dans le texte généré[3].
Support officiel et développement
La société OpenAI a marqué une étape importante en juin 2023 en intégrant officiellement le support du Function Calling dans ses API pour les modèles GPT-3.5 et GPT-4[4]. Les nouvelles versions des modèles ont été affinées pour reconnaître les situations où la requête d'un utilisateur implique l'appel d'une fonction externe et pour générer un objet JSON précisément structuré avec les arguments nécessaires. OpenAI a qualifié cette fonctionnalité de « nouvelle manière de connecter de manière fiable GPT à des outils et API externes ».
Initiatives open source
Suite aux implémentations commerciales, des modèles open source ont été développés et affinés pour générer des appels de fonction corrects.
- Gorilla : Un projet de l'UC Berkeley, une version affinée de LLaMA, capable de formuler des appels à des milliers d'API différentes. Pour évaluer de tels modèles, le benchmark Berkeley Function-Calling Leaderboard a été créé[5].
- ToolAlpaca, ToolLLaMA, Hermes : Des séries de modèles open source affinés sur des exemples synthétiques d'appels de fonction, souvent générés par des modèles plus puissants.
Mécanisme de fonctionnement
Le processus d'utilisation du Function Calling comprend généralement plusieurs étapes :
- Définition des fonctions. Le développeur définit à l'avance un ensemble de fonctions disponibles pour le modèle (par exemple, des API externes) et décrit leurs signatures et leurs objectifs, généralement au format JSON Schema.
- Analyse de la requête. Au cours du dialogue, le modèle analyse l'intention de l'utilisateur et décide de manière autonome s'il doit appeler l'une des fonctions définies pour répondre.
- Génération de l'appel. Si une action est requise, le LLM génère une sortie structurée spécifique (par exemple, un JSON avec le nom de la fonction et les arguments) au lieu d'un texte ordinaire. Si aucun appel n'est nécessaire, le modèle renvoie une réponse textuelle normale.
- Exécution de la fonction. Le programme externe (l'enveloppe du chatbot ou de l'agent) reçoit le JSON, exécute l'appel réel de la fonction spécifiée avec les paramètres proposés, puis renvoie le résultat au modèle.
- Formulation de la réponse finale. Le modèle utilise les données reçues pour générer une réponse finale à l'utilisateur[4].
Pour gérer ce processus en plusieurs étapes lors de l'entraînement des modèles, des formats de dialogue spécifiques sont utilisés, comme le balisage ChatML d'OpenAI, qui introduit un rôle « fonction » en plus des rôles « utilisateur » et « assistant » pour transmettre les résultats des appels.
Applications et avantages
La capacité d'appeler des fonctions élargit considérablement l'éventail des tâches réalisables par les LLM.
- Intégration avec des API externes. Le modèle peut répondre à des requêtes nécessitant des informations à jour en appelant des services externes (par exemple, pour obtenir la météo, les taux de change, les actualités).
- Automatisation des actions de l'utilisateur. Le LLM peut effectuer des tâches routinières : envoyer des e-mails, créer des événements dans un calendrier, passer des commandes dans des boutiques en ligne.
- Accès aux bases de données et à l'analytique. Les requêtes en langage naturel peuvent être traduites en appels d'API internes ou en requêtes SQL pour extraire et analyser des données.
- Extraction d'informations structurées. Le LLM peut lui-même extraire des faits d'un long texte (par exemple, des noms, des dates, des adresses) et les renvoyer sous forme de tableau JSON structuré, facile à traiter par un programme par la suite.
Problèmes de sécurité
En étendant les capacités des modèles, le Function Calling introduit également de nouveaux risques.
- Résultats non vérifiés. L'interaction du modèle avec des outils externes doit être soigneusement sécurisée. Si le modèle reçoit une valeur malveillante ou erronée d'une API, il peut l'inclure dans sa réponse ou appeler une autre fonction sur cette base, ce qui peut entraîner des conséquences imprévisibles.
- Attaques via les arguments de fonction. Des chercheurs ont découvert des vulnérabilités spécifiques au mode Function Calling. En 2025, une attaque baptisée « The Dark Side of Function Calling » a été démontrée. Son principe consiste à proposer au modèle une « fonction » spéciale dont les arguments dissimulent une instruction interdite (un payload de jailbreak). Le modèle, en suivant le principe de l'appel de fonction, génère des arguments contenant le contenu qui enfreint les règles, contournant ainsi les filtres de modération. Les tests ont montré que cette attaque réussissait dans plus de 90 % des cas sur six modèles modernes, dont GPT-4 et Claude[2].
Pour prévenir de tels incidents, il est recommandé de ne fournir au modèle que des outils de confiance, d'exiger une confirmation de l'utilisateur avant d'exécuter des actions critiques, et d'utiliser des prompts « défensifs » spécifiques ainsi qu'une validation stricte des arguments pour détecter tout contenu dangereux.
Liens externes
- Annonce officielle du Function Calling par OpenAI
- Page du projet Gorilla LLM
- Apideck (2024). An Introduction to Function Calling and Tool Use. Apideck Blog.
- LangChain (2025). Tool Calling (Documentation). LangChain Docs.
- Mistral AI (2025). Function Calling – Documentation. Mistral Docs.
- Hopsworks (2024). What is Function Calling with LLMs?. Hopsworks Dictionary.
- Hopsworks (2024). Unlocking the Power of Function Calling with LLMs. Hopsworks Blog.
- University of California, Berkeley (2025). Berkeley Function Calling Leaderboard V3. Online Resource.
Littérature
- Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. ACL 2025.
- OpenAI (2023). Function Calling and Other API Updates. OpenAI Blog.
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
- Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
- Liu, W. et al. (2024). ToolACE: Winning the Points of LLM Function Calling. arXiv:2409.00920.
- Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
Références
- ↑ «What is Function Calling with LLMs?». Hopsworks. [1]
- ↑ 2.0 2.1 Wu, Z. et al. «The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models». Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing, 2025. [2]
- ↑ Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv:2302.04761, 2023. [3]
- ↑ 4.0 4.1 «Function calling and other API updates». OpenAI, 2023. [4]
- ↑ «Gorilla: Large Language Model Connected to Massive APIs». University of California, Berkeley. [5]