Metodologia del benchmark e panoramica dei risultati
Il test ha coinvolto 13 framework open‑source per agenti IA, valutati su cinque compiti tipici di orchestrazione. Ogni compito è stato eseguito 100 volte, per un totale di 6 500 run. I framework sono stati eseguiti con le impostazioni predefinite, utilizzando lo stesso modello (GPT‑5.2) e gli stessi tool Python forniti con descrizioni identiche.
Nel febbraio 2026 avevamo testato quattro dei framework (LangChain, LangGraph, AutoGen, CrewAI) con una versione preliminare di GPT‑5.2. All’epoca CrewAI era più lento (52,7 s in media) rispetto agli altri (27,5‑29,6 s) e consumava il 64 % di token in più rispetto al più efficiente. Con le versioni attuali la media dei tempi è scesa a 8,20‑8,39 s e la differenza di token è ora del 26 %.
Dettagli dei test
- Ogni framework ha eseguito 100 run per ciascuno dei 5 task.
- Le metriche raccolte includono tempo medio per run, costo per 1 000 run e numero medio di chiamate LLM per step.
- Le differenze tra i framework sono state attribuite a tre fattori principali: gestione simultanea dei tool, dimensione delle richieste (token) e overhead interno del framework.
Gestione simultanea dei tool: sequenziale vs parallelo
Alcuni framework (Agno, CAMEL, Google ADK) eseguono i tool in modo sequenziale: il prossimo tool parte solo quando il precedente termina. Gli altri dieci framework avviano tutti i tool simultaneamente per impostazione predefinita.
Questa differenza è critica quando i tool dipendono l’uno dall’altro. L’esecuzione parallela può provocare errori di concorrenza, ad esempio quando un tool scrive in un database mentre un altro tenta di leggere lo stesso record. Nei nostri test i tool erano rapidi (millisecondi), quindi l’esecuzione parallela non ha portato benefici di velocità, ma ha introdotto errori di sincronizzazione.
Se i tool sono lenti (es. chiamate API con latenza di secondi) la modalità parallela può ridurre i tempi. In scenari di dipendenza o con risorse condivise, è consigliabile mantenere l’esecuzione sequenziale o implementare meccanismi di lock.
Strategie consigliate
- Usare la modalità predefinita solo per tool indipendenti e lenti.
- Per tool che condividono dati, optare per esecuzione sequenziale o introdurre un layer di gestione delle transazioni.
- Valutare l’impatto di tool difettosi: il framework dovrebbe supportare retry automatici o fallback logici.
Impatto della dimensione delle richieste e delle definizioni dei tool
Il numero di token inviati al modello varia significativamente tra i framework. Per esempio, Agno invia in media 1 917 token nella prima richiesta, mentre AutoGen ne invia 2 754. La differenza principale deriva dalle definizioni dei tool, che vengono trasmesse ad ogni passo.
Due framework (CrewAI e Google ADK) aggiungono testo introduttivo alle istruzioni: CrewAI utilizza una template con ruolo, background e obiettivo, mentre Google ADK aggiunge una riga “You are an agent”. Queste aggiunte sono minori rispetto al peso delle definizioni dei tool.
AutoGen, pur effettuando quasi lo stesso numero di chiamate LLM per run di Agno (4,45 vs 4,40), invia in media il 37 % di token in più (14 932 vs 10 899). Questo influisce direttamente sui costi.
Come ridurre i token
- Utilizzare descrizioni brevi per le funzioni tool.
- Separare le definizioni dei tool dal prompt principale, se il framework lo consente.
- Nel caso di CrewAI, personalizzare i parametri
systemtemplateeprompttemplateper rimuovere testo non necessario.
Costi e tempi: l’outlier smolagents
Smolagents non è incluso nella grafica principale, ma i suoi risultati sono decisivi: tempo medio 20,55 s e costi $4,52 per 1 000 run, di gran lunga superiori agli altri framework. La sua lentezza è dovuta a due fattori:
- Utilizza una template di prompt di 6 780 caratteri, reinviando l’intera storia ad ogni passo.
- Non ottimizza la gestione dei token, causando un overhead di comunicazione con il modello.
Se si utilizza smolagents, è possibile ridurre la lunghezza della template passando il parametro prompt_template con una versione più concisa.
Gestione degli errori dei tool
Il task 4 ha testato il comportamento del agente di fronte a tool difettosi (errori di connessione, timeout, rate‑limit). Il tool per il calcolo del churn per metodo di pagamento falliva tre volte, riuscendo al quarto tentativo. L’agente poteva:
- Ritentare il tool.
- Filtrare e calcolare separatamente per ogni metodo di pagamento.
Con GPT‑5.2, sei dei tredici framework hanno scelto di abbandonare il tool, optando per la soluzione alternativa. Quando gli errori temporanei sono presentati al modello, il comportamento dipende dal framework: se il framework gestisce i retry internamente, il modello non vede mai l’errore.
Overhead interno del framework
Il codice interno dei framework aggiunge poco al tempo totale: da 0,04 s a 0,14 s per run (meno del 2 % del tempo complessivo). Tuttavia, il tempo di avvio varia:
- Google ADK: circa 1 s.
- CAMEL: circa 0,6 s.
- Altri framework: meno di 0,35 s.
Questi tempi di avvio non sono inclusi nei risultati del benchmark, ma sono rilevanti per ambienti serverless dove ogni invocazione richiede un nuovo avvio.
Confronto con OpenCode, agente di coding open‑source
Abbiamo eseguito gli stessi cinque task 100 volte su OpenCode, un agente di coding open‑source, disabilitando i suoi tool di coding per mantenere le condizioni uguali. I risultati sono:
- Tempo medio 6,42 s, pari ai framework più veloci.
- Costo $1,78 per 1 000 run, nella fascia alta ma competitiva rispetto ai framework ($1,41‑$1,88).
- 100 % di correttezza su 500 run.
Le differenze di prestazioni sono dovute alle stesse decisioni di design che distinguono i framework: gestione dei token, orchestrazione dei tool e strategie di retry.
Supporto al multi‑agente e protocolli di contesto
Tutti i 13 framework supportano l’esecuzione parallela di più agenti, anche se il benchmark ha utilizzato un singolo agente per semplicità. Analizzando il codice sorgente, abbiamo identificato tre approcci principali:
- Uso del Model Context Protocol (MCP) per collegare agenti a tool e fonti dati esterne.
- Implementazione di richieste di approvazione prima dell’esecuzione di tool critici (es. invio email, cancellazione dati).
- Gestione della persistenza della memoria: alcuni framework non includono memoria persistente, lasciando all’applicazione il compito di salvare e ripassare la storia; altri definiscono agenti come grafi di nodi e archi, con stato gestito esplicitamente dal developer.
Un caso notevole è LangGraph, che in task 3 ha effettuato 25 chiamate a tool, di cui 16 duplicate, prima di arrivare alla risposta corretta. Negli altri framework (escluso smolagents) il massimo è stato 21 chiamate.
Conclusioni e raccomandazioni
Il benchmark evidenzia che la scelta del framework influisce significativamente su tempi, costi e affidabilità. Le principali linee guida per gli sviluppatori sono:
- Preferire framework con gestione efficiente dei token (es. Agno, AutoGen) se i costi di LLM sono un fattore critico.
- Valutare la necessità di esecuzione parallela dei tool: se i tool sono lenti e indipendenti, la modalità predefinita offre guadagni di velocità; altrimenti, optare per esecuzione sequenziale.
- Utilizzare descrizioni concise per le funzioni tool e, se possibile, separare le definizioni dal prompt principale.
- Considerare l’overhead di avvio in ambienti serverless; i framework con avvio più rapido (CAMEL, altri sotto 0,35 s) sono più adatti.
- Sfruttare le funzionalità di retry e approvazione integrate per gestire tool difettosi in modo robusto.
- Se si desidera un agente con costi molto contenuti e buona velocità, OpenCode rappresenta una valida alternativa open‑source.
In sintesi, non esiste un “vincitore” unico: la scelta dipende dal contesto applicativo, dalla natura dei tool, dal modello di pricing e dalle esigenze di scalabilità.
