Function calling con modelli open (Hermes, Functionary)
La maggior parte dei modelli open di base non gestisce bene le tool call: Hermes e Functionary sono ottimizzati per questo scopo.
Function calling con modelli open (Hermes, Functionary) è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.
I modelli base non eseguono il tool calling in modo affidabile
I modelli base di Llama, Mistral o Qwen possono essere istruiti a "restituire JSON come {...}", ma spesso producono output non valido, omettono argomenti o inventano strumenti.
Il fine-tuning specifico per il function calling risolve il problema.
Famiglia Hermes
I modelli Hermes di NousResearch sono fine-tuning di fascia alta per il function calling:
- Hermes 3 Llama 3.1 8B / 70B
- Elevata precisione nelle chiamate agli strumenti
- Licenza permissiva in stile Apache
Functionary
I modelli Functionary di MeetKai sono addestrati esplicitamente per il function calling compatibile con OpenAI:
- Functionary v3 (basato su Llama 3.1)
- Supporta chiamate parallele agli strumenti
- Disponibile su HuggingFace e Together AI
Uso nativo degli strumenti con Llama 3.1+
Le varianti instruct recenti di Llama 3.1, Llama 3.3 e Llama 4 integrano funzionalità di tool calling. Per molte attività sono sufficienti; per i casi complessi, usi Hermes / Functionary.
Uso degli strumenti con Qwen 2.5
Qwen 2.5 offre un tool calling nativo efficace, competitivo con i modelli chiusi. Spesso è la scelta predefinita per gli agenti multilingue in self-hosting.
Chiamare modelli open compatibili con il tool calling
Qualsiasi server compatibile con OpenAI (Ollama, vLLM, Together AI) accetta lo stesso parametro tools:
from openai import OpenAI
client = OpenAI(base_url='http://localhost:11434/v1', api_key='ollama')
tools = [{'type': 'function', 'function': {
'name': 'get_weather',
'description': 'Current weather',
'parameters': {'type': 'object', 'properties': {'city': {'type': 'string'}}, 'required': ['city']}
}}]
response = client.chat.completions.create(
model='hermes3:8b',
messages=[{'role': 'user', 'content': 'Weather in Paris?'}],
tools=tools
)Convalidi attentamente gli output
Le chiamate agli strumenti dei modelli open falliscono più spesso di quelle dei modelli chiusi. Esegua sempre queste operazioni:
- Analizzi il JSON in try/except
- Convalidi con Pydantic
- Aggiunga un ciclo di correzione
Forzare le chiamate agli strumenti con Outlines
Per ottenere output strutturati garantiti con i modelli open, usi Outlines per la decodifica vincolata da una grammatica:
import outlines
model = outlines.models.transformers('meta-llama/Llama-3.1-8B-Instruct')
generator = outlines.generate.json(model, ToolCall)
result = generator(prompt)Uso degli strumenti con Hugging Face TGI
TGI supporta l'uso degli strumenti in stile OpenAI per molti modelli open ed è una sostituzione immediata.
Valutare con benchmark la qualità del tool calling
Il tool calling viene valutato con:
- Berkeley Function Calling Leaderboard (BFCL) — classifica di riferimento
- ToolBench — copertura più ampia
- API-Bank — scenari con più strumenti
Stack predefinito ragionevole
La combinazione scelta dalla maggior parte dei team:
- Llama 3.1 8B Instruct per le attività generiche degli agenti
- Qwen 2.5 Coder per gli agenti che lavorano sul codice
- Hermes 3 per gli agenti che usano molti strumenti
- Outlines o Instructor per garantire output strutturati
Eseguire tramite un provider in hosting
Per evitare del tutto l'infrastruttura: Together AI, Fireworks e Anyscale forniscono in hosting Hermes, Functionary, Llama e Qwen tramite API compatibili con OpenAI. Sono più economici di OpenAI a parità di qualità.
Esempio di confronto dei costi
Costo approssimativo per milione di token (metà del 2025):
- GPT-4o: $2.50 in ingresso, $10 in uscita
- Llama 3.1 70B (Together AI): $0.88 in ingresso, $0.88 in uscita
- Llama 8B in self-hosting: $0 (la propria elettricità)
Perché usare il fine-tuning per il function calling?
Perché usare Hermes o Functionary invece del modello base Llama per il tool calling?
Riepilogo
Le versioni recenti di Llama / Qwen offrono un uso nativo degli strumenti discreto. Per una maggiore affidabilità, usi Hermes o Functionary. Li combini con Outlines/Instructor per ottenere una struttura garantita.
Domande Frequenti
La lezione «Function calling con modelli open (Hermes, Functionary)» è gratuita?
Sì — il testo completo di «Function calling con modelli open (Hermes, Functionary)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.
Cosa imparerò in «Function calling con modelli open (Hermes, Functionary)»?
La maggior parte dei modelli open di base non gestisce bene le tool call: Hermes e Functionary sono ottimizzati per questo scopo. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Agents?
Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Function calling con modelli open (Hermes, Functionary)»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Agents?
Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Panoramica su Llama, Mistral e Qwen
- Eseguire modelli locali con Ollama e llama.cpp
- Function calling con modelli open (Hermes, Functionary)
- Compromessi: latenza, costi e capacità