Il function calling è la capacità di un LLM di restituire output strutturato che il tuo software può interpretare come "chiama questa funzione con questi argomenti". È il meccanismo base degli agenti IA.
Esempio:
Tu chiedi al modello: "Che tempo fa a Roma?"
Il modello, invece di inventarsi una risposta, restituisce JSON:
{
"function": "get_weather",
"arguments": {"city": "Roma"}
}
Il tuo codice intercetta questo JSON, chiama davvero l'API meteo per Roma, e restituisce il risultato al modello. Il modello ora ha dati reali e può rispondere correttamente.
Cosa permette:
- Calcoli: il modello chiama una calcolatrice invece di sbagliare matematica.
- Database: il modello chiama query su DB invece di inventare dati.
- API esterne: meteo, news, prenotazioni, qualunque servizio.
- Tool interni: file system, terminale, browser.
- Multi-step workflows: il modello può chiamare più funzioni in sequenza.
Supporto modelli:
- OpenAI: function calling nativo da GPT-3.5 turbo.
- Anthropic Claude: tool use.
- Google Gemini: function calling.
- Modelli open: variabile, i top moderni lo supportano.
Versione strutturata: structured output (JSON mode), dove forzi il modello a rispondere secondo uno schema JSON preciso. Garantisce che il tuo software riceva sempre formato consistente.
Per chi sviluppa: il function calling è la chiave per usare LLM in produzione su task pratici. Senza, l'LLM è solo "chat", con, è un orchestratore di sistemi.