Le flux API : (1) tu envoies ton prompt plus les définitions de fonctions (des schémas JSON décrivant le nom, la description et les paramètres de chaque fonction), (2) le modèle décide s'il faut appeler une fonction et laquelle, (3) il produit un appel de fonction structuré avec des arguments spécifiques, (4) ton code exécute la fonction et retourne le résultat, (5) le modèle intègre le résultat dans sa réponse. Certains modèles peuvent appeler plusieurs fonctions en séquence ou en parallèle.
L'appel de fonctions est la primitive au niveau du modèle : le modèle produit des appels d'outils structurés. MCP (Model Context Protocol) est un protocole de plus haut niveau qui standardise comment les outils sont découverts, décrits et connectés. Pense à l'appel de fonctions comme le jeu d'instructions et au MCP comme le système d'exploitation — MCP utilise l'appel de fonctions en dessous mais ajoute la découverte d'outils, l'authentification et la standardisation entre fournisseurs.
L'appel de fonctions est plus fiable que de demander à un modèle de produire des appels de fonctions sous forme de texte (ce qui nécessite du parsing et est sujet aux erreurs). Les fournisseurs implémentent l'appel de fonctions en contraignant la sortie du modèle à des appels de fonctions valides correspondant à ton schéma — similaire aux sorties structurées. Mais le modèle peut toujours choisir les mauvaises fonctions, halluciner des valeurs de paramètres, ou appeler des fonctions quand il ne devrait pas. Les applications robustes incluent de la validation, de la gestion d'erreurs et une confirmation humaine pour les opérations à haut risque.