---
title: Function Calling
created: 2026-06-06
updated: 2026-06-06
type: concept
tags: [IA, agent, protocol]
confidence: high
contested: false
sources: [synthesized]
---
# 🛠️ Function Calling

## Définition Courte
Mécanisme permettant à un LLM de **produire un appel structuré** vers une fonction externe (outil) plutôt que du texte libre, déclenchant ainsi une action dans le monde réel.

## Explication Détaillée
Au lieu de demander au LLM "quel temps fait-il ?", on lui fournit une description d'outil (`get_weather(city: str)`) et le LLM répond :
```json
{"name": "get_weather", "arguments": {"city": "Lyon"}}
```
Le système exécute alors la fonction et réinjecte le résultat dans la conversation.

C'est la **brique atomique** de l'agentique : sans function calling, un LLM ne peut qu'émettre du texte.

**Pipeline** :
1. Définir les outils (nom, description, schéma JSON des arguments).
2. Envoyer la requête avec ces outils.
3. Le LLM choisit s'il appelle un outil et avec quels arguments.
4. Exécuter l'outil côté code.
5. Renvoyer le résultat au LLM.
6. Le LLM produit la réponse finale (ou appelle un autre outil).

## Cas d'Usage
- Agents autonomes (cf. [[hermes-agent]]).
- Accès à des API (base de données, calendrier, mail).
- Calcul précis (le LLM délègue à Python).
- Recherche web (cf. [[react-framework]]).

## Outils Liés
- **OpenAI Function Calling**, **Anthropic Tool Use**.
- **[[mcp-protocol]]** (standardisation multi-host).
- **LangChain Tools**, **LlamaIndex Tools**.

## Pages Liées
- [[react-framework]]
- [[hermes-agent]]
- [[mcp-protocol]]
- [[chain-of-thought]]
- [[prompt-engineering-agents]]

## Questions Ouvertes
- Le function calling va-t-il totalement fusionner avec MCP ?
- Comment fiabiliser le 100% de réussite sur des outils critiques (Stripe) ?
