Agenti AI · Scelta del framework

LangGraph, OpenAI Agents SDK e Microsoft Agent Framework: come scegliere sul proprio processo

La domanda utile non è quale framework vinca in generale, ma quale permetta al team di controllare il proprio processo. Questa guida confronta tre opzioni Python documentate e propone una prova ripetibile con criteri fissati prima del risultato.

12 minuti di letturaPer responsabili IT, sviluppo e acquisti di soluzioni AIMatrice documentale e protocollo di valutazioneAggiornato il

Come scegliere un framework per agenti AI?

Definisci prima flusso, stato, azioni autorizzate e criteri di accettazione. Confronta le capacità documentate della versione candidata, poi esegui lo stesso campione e gli stessi guasti controllati. Distingui memoria della conversazione, ripresa dell’esecuzione e conferma dell’effetto nel gestionale. Scegli solo dopo aver verificato anche manutenzione, costi operativi e responsabilità del team.

Parti dal requisito che potrebbe escludere un candidato

Una demo che risponde bene non spiega che cosa succede quando il processo resta sospeso per una notte, cambia il revisore o il gestionale registra una scrittura senza restituire la conferma. Per scegliere un framework descrivi prima quelle situazioni. Poi chiedi quale componente le gestisce, quale codice occorre aggiungere e quale evidenza dimostrerà il risultato.

La guida generale agli agenti AI affronta architettura, strumenti e rilascio. Qui il compito è più circoscritto: costruire una decisione confrontabile fra implementazioni candidate, con riferimenti documentali e prove ancora da eseguire. Il linguaggio considerato è Python. Le omonime librerie JavaScript, .NET o Go richiedono una valutazione separata.

Nota editoriale: articolo della Redazione Niuexa realizzato con assistenza AI. Fonti verificate il 6 novembre 2026. Gli esempi sono sintetici e il protocollo è proposto: non presentiamo risultati di laboratorio o di clienti.

Dividi i requisiti in obbligatori e preferenze. Un controllo di accesso indispensabile non può essere compensato da una demo più rapida. Per ogni requisito scrivi l’effetto atteso, chi lo accetta e quale prova conserverai. “Supporta la memoria” è troppo generico; “dopo il riavvio recupera la pratica sospesa e mostra al revisore gli stessi dati” è verificabile.

Fissa versioni e confini prima di leggere la matrice

La tabella seguente identifica gli snapshot Python controllati nella documentazione e nel repository ufficiale. Non indica pacchetti installati o testati da Niuexa, né garantisce che una guida online descriva soltanto quel tag. Nel proprio pilot occorre fissare anche dipendenze, adattatori e backend di salvataggio effettivamente usati.

CandidatoRiferimento controllatoConfine da mantenere
LangGraph corelanggraph 1.2.20Il core non è il separato LangGraph SDK; backend e servizi di hosting hanno una propria configurazione
OpenAI Agents SDK per Pythonopenai-agents 0.24.0Non equivale a ogni funzione disponibile nei servizi OpenAI o nelle altre implementazioni linguistiche
Microsoft Agent Framework per Pythonagent-framework-core 1.24.0Pacchetti di integrazione, linguaggi e servizi gestiti vanno registrati separatamente

Conserva file delle dipendenze risolte, versione dell’applicazione, schema dei dati, istruzioni e definizioni dei tool. Annota modello e parametri esposti dal provider; se un identificativo è aggiornabile dal fornitore, non descriverlo come immutabile. Questa scheda permette di ricostruire il confronto quando cambia una libreria.

Confronta capacità documentate senza trasformarle in un voto

La matrice riassume meccanismi documentati, non qualità misurate. Una voce presente significa che esiste un punto da implementare e provare. Non stabilisce che le tre soluzioni offrano la stessa semantica o che ogni applicazione costruita con esse soddisfi il requisito.

CriterioLangGraphOpenAI Agents SDKMicrosoft Agent Framework
Organizzazione del flussoGrafo con stato condiviso, nodi e archiEsecuzioni di agenti con tool e passaggi fra agentiWorkflow che collegano esecutori e gestiscono messaggi
Stato da distinguereCheckpointer per stato del thread; store per dati tra threadSession per cronologia; RunState per esecuzione sospesa e decisioniCheckpoint per stato del workflow, messaggi e richieste pendenti
Intervento esternoInterrupt e ripresa con un valore fornito dall’esternoTool configurati per approvazione e interruzioni da risolvereRichieste verso l’esterno e gestione delle risposte nel workflow
Verifica da aggiungere nel proprio ambienteBackend persistente, identificazione del thread e comportamento del nodo ripresoConservazione affidabile di sessione e stato; autorizzazione delle decisioniBackend dei checkpoint, confine del salvataggio e compatibilità del workflow

Le fonti di lettura sono overview, persistence e interrupts di LangGraph; approvazioni e sessioni OpenAI; checkpoint e interazioni esterne Microsoft.

LangGraph non richiede LangChain: la sua documentazione lo presenta come livello di orchestrazione per controllare stato e flusso. Questa distinzione aiuta a non acquistare o progettare automaticamente un insieme di componenti solo perché compaiono negli esempi. Per ciascun candidato disegna che cosa resta nell’applicazione, che cosa viene salvato e quali servizi esterni sono necessari.

Prova separatamente conversazione, ripresa ed effetto aziendale

Tre domande sembrano simili ma chiedono prove differenti. Il sistema ricorda che cosa è stato detto? Può continuare il lavoro dal punto previsto dopo un’interruzione? L’azione nel sistema destinatario è avvenuta una sola volta, con i dati autorizzati? Un esito positivo sulla prima domanda non chiude le altre due.

Nel modello documentato da LangGraph, riprendere dopo un interrupt comporta la riesecuzione del nodo dall’inizio. Collocare una scrittura prima della pausa richiede quindi particolare attenzione al suo comportamento durante la ripresa. Il confine fra retry e idempotenza distingue la ripetizione del nodo dalla protezione dell’effetto esterno; la conferma mancante va trattata come esito sconosciuto finché non viene riconciliata.

Nell’Agents SDK, la cronologia della Session e il RunState sospeso hanno ruoli distinti. La guida alle approvazioni documenta la serializzazione e la ripresa, ma precisa anche che il caricamento non autentica lo snapshot o chi lo presenta. La verifica dell’identità, della proprietà del lavoro e dell’integrità dello stato resta un compito dell’applicazione. Conservare dati non significa aver autorizzato chi li usa.

I checkpoint dei workflow Microsoft vengono descritti in relazione ai superstep, con stato degli esecutori, messaggi e richieste. Nel pilot verifica il punto di salvataggio realmente raggiunto prima dell’arresto, non soltanto la presenza di un file. Verifica inoltre come una nuova versione del workflow tratta i lavori precedenti: un riavvio con lo stesso codice e un aggiornamento applicativo sono prove diverse.

Prepara un caso sintetico uguale per tutti i candidati

Considera il seguente scenario interamente inventato: una richiesta DEMO-17 chiede di aggiornare un recapito in un gestionale di prova. Il valore originale è SEDE-A, quello proposto è SEDE-B. Un operatore può leggere la proposta; soltanto il ruolo previsto può approvarla. Il tool di scrittura è un simulatore isolato, senza dati personali né collegamenti alla produzione.

La fixture comprende richiesta originale, dati iniziali, risposta attesa del simulatore, regola di approvazione e modalità di lettura successiva. La stessa fixture viene consegnata a ogni implementazione. Non è un test di comprensione di un indirizzo reale: serve a osservare flusso e controlli. Eventuali prove con modello vanno aggiunte come un livello separato.

Prova propostaEvento introdottoEvidenza richiesta prima di assegnare l’esito
P01 · AttesaLa proposta è pronta, nessuno ha decisoNessuna scrittura; proposta e stato pendente recuperabili
P02 · RiavvioIl processo viene fermato mentre attendeLa stessa pratica riappare con dati e decisione ancora coerenti
P03 · RifiutoIl revisore autorizzato respinge la propostaNessuna modifica al simulatore e rifiuto collegato alla pratica
P04 · Proposta cambiataDopo la decisione SEDE-B viene sostituita con SEDE-CLa decisione precedente non autorizza silenziosamente il nuovo contenuto
P05 · Conferma persaIl simulatore applica la modifica ma la risposta mancaStato incerto e lettura di riconciliazione; nessuna duplicazione non controllata
P06 · Accesso diversoUn altro utente tenta di recuperare o decidere sul lavoroAccesso rifiutato secondo la regola prevista e prova dell’esito
P07 · AggiornamentoCambiano codice o schema mentre esiste lavoro pendenteRipresa compatibile dimostrata oppure percorso esplicito di migrazione o sospensione

Questi sono casi di accettazione proposti, non sette prove superate. Le proprietà dipendono dall’implementazione completa. Se un simulatore non può riprodurre il comportamento del gestionale reale, descrivi il limite e prepara una successiva verifica autorizzata nell’ambiente adeguato. Non sostituire l’incertezza con una spunta verde.

Compila un registro comparabile e conserva anche i casi aperti

La seguente intestazione separa versione, caso e risultato. Le due righe dimostrative non contengono misure: indicano esplicitamente una prova non eseguita. Copia il registro, sostituisci i segnaposto e conserva a parte le evidenze autorizzate. È una proposta operativa, non un formato imposto dai framework.

candidato;versione_e_lock;app_version;caso;fixture_version;modello_e_parametri;backend_stato;tentativo;esito;effetto_osservato;evidenza;limite
CANDIDATO-DEMO;DA-FISSARE;APP-DEMO;P02;FIXTURE-DEMO-1;DA-FISSARE;DA-FISSARE;NON-ESEGUITO;NON-ESEGUITO;NON-OSSERVATO;NESSUNA;scenario sintetico
CANDIDATO-DEMO;DA-FISSARE;APP-DEMO;P05;FIXTURE-DEMO-1;DA-FISSARE;DA-FISSARE;NON-ESEGUITO;NON-ESEGUITO;NON-OSSERVATO;NESSUNA;scenario sintetico

Definisci prima cosa significa “superato”, “fallito”, “non eseguito” e “inconcludente”. Un arresto prima del punto da osservare può rendere la prova inconcludente, non dimostrare che il controllo funziona. Registra quanti tentativi erano previsti, quanti sono stati eseguiti e quali sono rimasti aperti. Evita una percentuale che nasconde i casi non ottenuti.

Per isolare l’orchestrazione puoi iniziare con risposte del modello e tool simulati. Successivamente introduci il modello reale, lo stesso campione autorizzato, gli stessi strumenti e i parametri confrontabili. Se cambiano più componenti, il confronto riguarda le soluzioni complete. Mantieni le tracce sufficienti a ricostruire la decisione senza riversare credenziali o interi documenti nei log.

Misura il lavoro necessario per mantenere il controllo

L’esito tecnico va affiancato all’onere di gestione. Registra tempo di implementazione e diagnosi, componenti aggiunti, conoscenze richieste, consumi, storage e attività manuali. Fissa prima l’inizio e la fine delle misure. Non confrontare un prototipo costruito dal team esperto con una prima prova di chi sta imparando senza dichiarare la differenza.

Per le tracce decidi destinazione, accessi e dati ammessi prima di usare informazioni aziendali. La documentazione del tracing OpenAI al tag considerato segnala che input e output possono contenere dati sensibili e descrive le opzioni di raccolta ed esportazione. Per ogni candidato verifica la configurazione effettiva: avere un pannello di osservabilità non dimostra né completezza delle prove né correttezza delle autorizzazioni.

Il modello di costo per il pilot aiuta a collegare consumi e lavoro agli esiti accettati. Per la scelta del framework aggiungi il costo di gestire casi sospesi, aggiornamenti e incidenti. Un minor numero di righe di codice non misura automaticamente queste attività, così come il prezzo del solo pacchetto non rappresenta il costo della soluzione.

Chiudi la scelta con una decisione e un motivo per riaprirla

Prepara una scheda finale con requisiti obbligatori, stato delle prove, limiti, costi osservati e responsabili. Scarta o correggi i candidati che non soddisfano un requisito necessario; confronta le preferenze soltanto tra le opzioni rimaste. Se un fatto è documentato ma non provato nel proprio ambiente, mantieni entrambe le informazioni.

È legittimo scegliere una soluzione più semplice quando il flusso non richiede l’orchestrazione aggiuntiva. È altrettanto legittimo accettare più componenti se una prova dimostra che rendono gestibile un requisito reale. Scrivi il motivo concreto: la decisione deve essere comprensibile anche a chi manterrà il sistema fra sei mesi.

Conserva infine la condizione che riapre la valutazione: nuovo requisito, modifica del gestionale, aggiornamento incompatibile, costo oltre la soglia concordata o incidente non coperto. Per collegare i sistemi usa la guida a MCP, API e webhook; per il processo completo, il runbook email/PDF verso il gestionale. Il framework è una parte della soluzione: la decisione resta verificabile quando ogni confine ha un responsabile e una prova pertinente.

Fonti, versioni e trasparenza editoriale

Fonti primarie consultate il 6 novembre 2026. I tag Python riportati identificano gli snapshot controllati; le guide online possono evolvere indipendentemente. Matrice dei requisiti, fixture e criteri di prova sono proposte della Redazione Niuexa: nessun benchmark dei tre framework è stato eseguito per questo articolo.

Non estendere le conclusioni ad altri linguaggi, versioni, servizi gestiti o configurazioni senza verifica. La disponibilità di una funzione non dimostra il comportamento della propria integrazione.

Domande sulla scelta di un framework agentico

Questa guida stabilisce quale framework sia il migliore?

No. Confronta capacità documentate di tre opzioni Python e propone un metodo di prova. Non sono stati eseguiti benchmark: il candidato adatto dipende da processo, integrazioni, competenze, criteri obbligatori e risultati della valutazione nel proprio ambiente.

Una sessione persistente basta per riprendere un lavoro interrotto?

Non necessariamente. La cronologia della conversazione, lo stato di esecuzione e la registrazione dell’effetto nel sistema destinatario sono informazioni diverse. Verifica quali vengono salvate, dove, con quali permessi e come il flusso riparte dopo il riavvio del processo.

Un checkpoint impedisce di creare due volte lo stesso ordine?

Da solo non dimostra questa proprietà. Serve verificare il comportamento dell’integrazione quando la scrittura riesce ma la conferma non arriva. Usa i meccanismi di idempotenza supportati dal destinatario o una riconciliazione adeguata; se l’esito resta incerto non registrarlo come fallimento certo.

Posso confrontare framework che usano modelli diversi?

Sì, se dichiari di confrontare soluzioni complete. Se vuoi isolare l’orchestrazione, mantieni uguali modello, parametri, dati e strumenti dove possibile. Quando un’integrazione lo impedisce, registra la differenza e limita la conclusione: non attribuire al framework tutto il risultato.

Devo migrare subito dal framework che già uso?

No. Inserisci l’implementazione attuale fra i candidati e misura quali requisiti non soddisfa. Valuta costo di migrazione, casi sospesi, aggiornamenti e competenze disponibili. Una funzione documentata in un altro progetto è un motivo per provare, non una prova che la migrazione convenga.

Approfondimenti correlati

Quale requisito deve dimostrare il tuo agente?

Porta un processo, i sistemi coinvolti e un’eccezione concreta. Nella prima chiamata gratuita di 30 minuti possiamo mettere a fuoco la prova da progettare; eventuali attività successive si concordano nel preventivo.

Parliamo della valutazioneConsulenza AI per le aziende