Panoramica del benchmark e metodologie

Nel febbraio 2026 abbiamo lanciato un benchmark su quattro framework – LangChain, LangGraph, AutoGen e CrewAI – utilizzando il modello GPT‑5.2. All’epoca, CrewAI richiedeva circa il doppio del tempo dei tre concorrenti (52,7 s contro 27,5‑29,6 s) e consumava il 64 % di token in più rispetto al più efficiente. Con le versioni attuali, tutti e quattro mostrano tempi medi compresi tra 8,20 s e 8,39 s, con una riduzione dell’uso di token del 26 %.

Il benchmark ha previsto 5 task distinti, ognuno ripetuto 100 volte, per un totale di 6 500 esecuzioni. Per ulteriori dettagli sulla configurazione dei test e sull’analisi dei risultati, consultare la nostra metodologia del benchmark.

Gestione degli strumenti e parallelismo

Alcuni framework (Agno, CAMEL e Google ADK) eseguono gli strumenti in sequenza: il successivo parte solo al completamento del precedente. Gli altri dieci framework, invece, avviano tutti gli strumenti contemporaneamente per impostazione predefinita. Quando gli strumenti dipendono l’uno dall’altro, l’avvio simultaneo può generare conflitti, ad esempio un tool che scrive un record nel database mentre un altro tenta di leggerlo.

Il comportamento sequenziale è stato osservato nelle chiamate sincrone arun() di Agno, astep() di CAMEL e nelle chiamate asincrone di Google ADK. Poiché i nostri strumenti terminano in millisecondi, l’esecuzione parallela non ha prodotto vantaggi di velocità ma ha introdotto gli errori descritti sopra. Se gli strumenti sono lenti (ad esempio API con latenza di diversi secondi) il parallelismo può essere utile; altrimenti, è preferibile mantenere l’impostazione predefinita.

Strategie per strumenti lenti e condivisi

    • Se gli strumenti sono indipendenti e lenti, mantenere il parallelismo di default.
    • Se condividono dati, scegliere tra:
      • Esecuzione sequenziale per garantire la coerenza.
      • Implementare meccanismi di lock o di coda a livello di applicazione.

Influenza dei template e delle definizioni di strumenti

La maggior parte dei framework invia le istruzioni al modello così come sono, includendo le fasi precedenti come messaggi di strumenti standard. Smolagents, invece, inserisce le istruzioni in un proprio template di 6 780 caratteri e restituisce le fasi precedenti come testo grezzo. Questa differenza si manifesta in tre ambiti:

    • Numero di token per richiesta: la prima richiesta varia da 1 917 token in media (Agno) a 2 754 token (AutoGen), principalmente a causa delle definizioni di strumenti.
    • Gestione di task con più step: nella Task 2, l’agente deve calcolare e confrontare due gruppi di clienti (con e senza supporto tecnico). Il processo richiede più step; il template più lungo di smolagents aumenta il costo ad ogni step.
    • Comportamento in caso di errore: nella Task 4, lo strumento di calcolo del tasso di abbandono per modalità di pagamento fallisce per i primi tre tentativi (errore di connessione, timeout, limite di velocità) e riesce al quarto. Il modello visualizza i messaggi di errore “retry”. Alcuni framework (6 su 13) abbandonano lo strumento e scelgono un percorso alternativo, mentre altri ritentano l’operazione.

Le definizioni di strumenti più lunghe aumentano il costo per ogni chiamata LLM. AutoGen, ad esempio, invia il 37 % di token in più rispetto ad Agno (14 932 vs 10 899) pur effettuando quasi lo stesso numero di chiamate (4,40 vs 4,45 per esecuzione).

Ottimizzazione dei template

Ridurre la lunghezza delle descrizioni delle funzioni o fornire al framework una descrizione separata degli strumenti può abbattere significativamente il consumo di token. In CrewAI, i testi aggiunti alle istruzioni possono essere modificati tramite i parametri systemtemplate e prompttemplate.

Costi di avvio e overhead del framework

Il tempo di avvio varia notevolmente: circa 1 s per Google ADK, 0,6 s per CAMEL e meno di 0,35 s per gli altri framework. Questo overhead non è incluso nei risultati del benchmark, ma è rilevante in ambienti serverless dove il framework si avvia per ogni richiesta.

Caricare il framework una sola volta al lancio dell’applicazione e mantenerlo in esecuzione elimina quasi completamente questo costo.

Supporto a più agenti e protocolli di contesto

Pur avendo testato un solo agente, tutti e 13 i framework supportano l’esecuzione simultanea di più agenti. Abbiamo valutato la capacità di orchestrazione con un flusso a cinque agenti. Le soluzioni si dividono in tre gruppi principali basati sul modo in cui gestiscono il Model Context Protocol (MCP), che standardizza l’interfaccia verso strumenti e fonti dati esterne. Tutti i framework possono utilizzare strumenti basati su server MCP.

Il MCP è incluso nel pacchetto di ciascun framework, facilitando l’integrazione senza dover implementare client personalizzati.

Gestione delle approvazioni umane

Alcune azioni (es. invio di email, cancellazione di record) richiedono l’approvazione di un operatore. I framework offrono tre modalità:

    • Richiesta di approvazione prima dell’esecuzione dello strumento.
    • Messa in pausa del flusso in attesa della risposta dell’utente.
    • Registrazione dell’evento per revisione successiva.

Persistenza della memoria e stato tra le esecuzioni

Ogni framework conserva la cronologia all’interno di una singola task. La differenza principale riguarda la persistenza della memoria tra task e conversazioni:

    • Assenza di memoria persistente integrata: l’applicazione deve salvare la cronologia e passarla all’agente alla prossima esecuzione.
    • Memoria gestita dal framework: alcuni offrono una memoria a lungo termine integrata, semplificando la gestione dello stato.

LangGraph, ad esempio, definisce un agente come un grafo di nodi e archi, lasciando al sviluppatore la gestione esplicita dello stato tra le fasi. È disponibile per Python e JavaScript e consente il tracciamento delle esecuzioni sulla piattaforma LangSmith di LangChain.

Analisi delle esecuzioni più lunghe

La più lunga esecuzione di LangGraph nella Task 3 ha effettuato 25 chiamate a strumenti, di cui 16 ripetute, prima di raggiungere la risposta corretta. Salvo smolagents, nessun altro framework ha superato le 21 chiamate per una singola esecuzione.

Il framework generalista di LangChain, introdotto nella versione 1.0, utilizza create_agent e il runtime LangGraph. I middleware disponibili consentono di modificare il ciclo dell’agente, includendo funzioni predefinite per:

    • Sintesi di cronologie lunghe.
    • Mascheramento di dati personali.
    • Retry automatici in caso di errore.
    • Fallback a modelli alternativi.

Poiché create_agent gira su LangGraph, invia al modello le stesse istruzioni e definizioni di strumenti, garantendo coerenza nei risultati.

Conclusioni e raccomandazioni

Il benchmark evidenzia che, sebbene tutti i 13 framework siano funzionali, le differenze in tempi di esecuzione, consumo di token e gestione degli errori possono influenzare significativamente i costi operativi. Smolagents, con i suoi tempi medi di 20,55 s e un costo di 4,52 $ per 1 000 esecuzioni, è stato escluso dal grafico principale a causa dell’impatto distorsivo sui risultati.

Per la maggior parte delle applicazioni, i framework più equilibrati – LangChain, LangGraph, AutoGen e CrewAI – offrono una combinazione ottimale di velocità (≈ 8 s per esecuzione), consumo moderato di token (‑‑) e capacità di gestire errori in modo robusto. Tuttavia, la scelta finale dovrebbe tenere conto di:

    • La natura dei propri strumenti (lenti vs rapidi).
    • La necessità di approvazioni umane.
    • Il modello LLM di riferimento (es. GPT‑5.2).
    • Le esigenze di persistenza della memoria tra task.

Adottare parametri di configurazione più leggeri (template più brevi, descrizioni concise) può ridurre i costi di token senza compromettere la funzionalità. Inoltre, caricare il framework una sola volta e mantenerlo in esecuzione è consigliato per ambienti serverless, al fine di minimizzare il tempo di avvio.

In sintesi, la valutazione dettagliata di questi 13 framework fornisce una guida pratica per sviluppatori e aziende che desiderano implementare soluzioni di IA agentica open source, bilanciando performance, costi e flessibilità.