Dopo che Gorilla ha dimostrato che un singolo LLM può imparare a chiamare migliaia di API con precisione, la domanda naturale è: cosa succede quando si assegnano ruoli distinti a più LLM e li si lascia parlare tra loro? AutoGen (Wu et al., 2023) risponde a questa domanda costruendo un framework per la conversazione multi-agente, e leggerlo ora sembra tempestivo — la maggior parte dei sistemi di IA finanziaria in produzione che vedo progettati coinvolgono almeno tre agenti per impostazione predefinita.
Il paper
AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation (Wu, Bansal, Zhang et al., Microsoft Research, 2023) propone un framework in cui "agenti conversabili" — ciascuno basato su una combinazione di un LLM, strumenti e input umano — si inviano messaggi a vicenda fino al completamento di un'attività. Il framework introduce due tipi di agenti integrati: AssistantAgent (guidato da un LLM) e UserProxyAgent (che può eseguire codice e trasmettere input umano), oltre a un GroupChatManager che instrada i turni in insiemi più grandi.
L'idea centrale è quella che gli autori chiamano "programmazione tramite conversazione": invece di scrivere a mano la logica di orchestrazione nel codice, si specifica cosa dovrebbe fare ciascun agente tramite prompt di sistema in linguaggio naturale e si lascia che il passaggio di messaggi gestisca il flusso di controllo. Il paper lo dimostra nella risoluzione di problemi matematici, nel QA con recupero aumentato, nel processo decisionale ALFWorld e in un'applicazione di ricerca operativa chiamata OptiGuide.
Idee chiave
- Miglioramento dell'accuratezza sul benchmark MATH: una configurazione AutoGen a due agenti (un assistente LLM più un proxy per l'esecuzione del codice) raggiunge il 69.48% sul set di test MATH, rispetto al 55.18% di GPT-4 usato da solo — un guadagno di 14 punti dall'aggiunta del feedback dell'esecuzione del codice.
- L'umano nel ciclo è di prima classe:
UserProxyAgentha una modalitàhuman_input_modeconfigurabile —ALWAYS,NEVERoTERMINATE— il che significa che puoi aumentare o diminuire la supervisione senza modificare la logica dell'agente. - Chat di gruppo dinamica:
GroupChatManagerseleziona il successivo parlante in base allo stato della conversazione invece di un ordine round-robin fisso, il che permette ai flussi di lavoro di ramificarsi in risposta ai risultati emergenti. - Guadagno di sicurezza con OptiGuide: collegare un agente SafeGuard a un flusso di lavoro di ottimizzazione della supply chain ha migliorato l'F1 del rilevamento di codice non sicuro di 8 punti percentuali su GPT-4 e di 35 punti su GPT-3.5, riducendo al contempo il codebase dell'utente da 430 righe a 100.
- Recupero interattivo: nei compiti di QA, l'agente assistente poteva richiedere contesto aggiuntivo emettendo un segnale
UPDATE CONTEXT; questo è stato attivato in circa il 19.4% delle domande su Natural Questions, e l'F1 complessivo era del 23.40%. - Componibilità per progettazione: qualsiasi agente AutoGen è di per sé un valido "strumento" che un altro agente può chiamare, quindi le pipeline gerarchiche si compongono senza codice di collante speciale.
Cosa regge — e cosa no
I risultati MATH e ALFWorld sono solidi — confronti controllati e riproducibili rispetto a baseline nominative con benchmark reali. Il valore del 69.48% è significativo perché isola il vantaggio del feedback dell'esecuzione del codice all'interno di un ciclo di conversazione strutturato.
Ciò che è più debole è l'analisi dei costi e della latenza, o meglio la sua assenza. Ogni turno di GroupChat attiva una chiamata LLM completa con la cronologia della conversazione accumulata. Un flusso di lavoro con quattro agenti e dieci turni significa almeno quaranta chiamate LLM, ciascuna con una finestra di contesto crescente. Il paper non riporta mai il costo in token o la latenza per nessuna delle sue applicazioni. In una pipeline contabile live che elabora migliaia di transazioni, questa omissione non è accademica — determina se l'approccio è effettivamente fattibile.
La metafora della programmazione tramite conversazione è anche più fragile di quanto sembri nelle demo. Il GroupChatManager seleziona il prossimo parlante chiedendo all'LLM di scegliere da un elenco di agenti. Quella selezione è di per sé un passaggio probabilistico di generazione del testo, il che significa che il flusso di controllo può andare storto in modi sottili che non sollevano eccezioni. Per un agente di scrittura del libro mastro — dove l'ordine delle operazioni è importante e una chiamata di strumento fuori posto potrebbe corrompere una registrazione contabile — la selezione non deterministica del parlante è una vera responsabilità.
Infine, i compiti di valutazione sono tutti a sessione singola e a breve termine. Non esiste alcun esperimento in cui gli agenti accumulino stato per giorni, gestiscano istruzioni contraddittorie o debbano risolvere conflitti tra una memoria più vecchia dell'agente e una nuova registrazione contabile. Questi sono esattamente gli scenari che si presentano nei flussi di lavoro contabili reali.
Perché questo è importante per l'AI finanziaria
Il caso dell'AI finanziaria per i sistemi multi-agente è semplice: riconciliazione, registrazione e reporting sono naturalmente competenze separate. Una pipeline Beancount potrebbe avere un LedgerReaderAgent che interroga il libro mastro in sola lettura, un ReconcilerAgent che confronta le transazioni con gli estratti conto bancari, un WriterAgent che propone nuove registrazioni e un ReviewerAgent che le controlla rispetto alle regole del piano dei conti prima che qualsiasi scrittura venga impegnata. Il pattern UserProxyAgent di AutoGen è l'astrazione giusta per WriterAgent — può eseguire la scrittura effettiva del libro mastro e restituire il risultato come un messaggio che ReviewerAgent ispeziona.
Il risultato SafeGuard di OptiGuide è il dato più direttamente trasferibile: l'aggiunta di un agente di verifica dedicato per intercettare azioni non sicure ha migliorato sostanzialmente il rilevamento, e il rilevamento è avvenuto all'interno del ciclo di conversazione piuttosto che come un audit post-hoc. Questa è esattamente l'architettura che vorrei per la sicurezza della scrittura su Beancount — un verificatore che blocca il commit, non uno che avvisa dopo il fatto.
Il problema della selezione non deterministica del parlante è risolvibile: puoi sovrascrivere GroupChatManager con una funzione Python deterministica che instrada in base al contenuto del messaggio. Ma devi sapere come farlo, e il paper non lo evidenzia come una preoccupazione.
Cosa leggere dopo
- AgentBench: Evaluating LLMs as Agents (Liu et al., arXiv:2308.03688, ICLR 2024) — valuta gli LLM in otto ambienti agente distinti tra cui navigazione web, programmazione e manipolazione di database; il divario tra modelli commerciali e open source è il risultato chiave e informa direttamente quali modelli base utilizzare per le pipeline di agenti finanziari.
- TradingAgents: Multi-Agents LLM Financial Trading Framework (arXiv:2412.20138) — istanzia direttamente il pattern AutoGen per i mercati finanziari con agenti specializzati come analista, ricercatore, trader e gestore del rischio; i risultati dell'indice di Sharpe e del prelievo massimo forniscono i primi dati di performance reali per i sistemi finanziari multi-agente.
- AGENTLESS: Demystifying LLM-based Software Engineering Agents (Xia et al., arXiv:2407.01514) — sostiene che un approccio semplice e senza agente in due fasi (localizza, poi ripara) supera i complessi framework multi-agente su SWE-bench; un utile contrappeso al presupposto che più agenti siano sempre meglio.