Leader di pensiero
Ci hanno promesso agenti, ma tutto quello che abbiamo ottenuto sono catene statiche
Nella primavera del 2023, il mondo si è entusiasmato per l’emergere di agenti AI basati su LLM. Potenti demo come AutoGPT e BabyAGI hanno dimostrato il potenziale dei LLM in esecuzione in un ciclo, scegliendo la prossima azione, osservando i risultati e scegliendo la prossima azione, un passo alla volta (noto anche come framework ReACT). Questo nuovo metodo era previsto per alimentare agenti che eseguono autonomamente e genericamente compiti multi-step. Date loro un obiettivo e un set di strumenti e si occuperanno del resto. Entro la fine del 2024, il panorama sarà pieno di agenti AI e framework per la costruzione di agenti. Ma come si misurano rispetto alla promessa?
È sicuro dire che gli agenti alimentati dal naive framework ReACT soffrono di gravi limitazioni. Date loro un compito che richiede più di alcuni passi, utilizzando più di alcuni strumenti e falliranno miseramente. Oltre ai loro ovvi problemi di latenza, perderanno la traccia, non seguiranno le istruzioni, si fermeranno troppo presto o troppo tardi e produrranno risultati molto diversi ad ogni tentativo. E non è una meraviglia. Il framework ReACT prende i limiti dei LLM imprevedibili e li compone per il numero di passi. Tuttavia, i costruttori di agenti che cercano di risolvere casi d’uso reali, specialmente nell’impresa, non possono fare con quel livello di prestazioni. Hanno bisogno di risultati affidabili, prevedibili ed esplicabili per flussi di lavoro multi-step complessi. E hanno bisogno di sistemi AI che mitigano, piuttosto che esacerbare, la natura imprevedibile dei LLM.
Quindi, come vengono costruiti gli agenti nell’impresa oggi? Per casi d’uso che richiedono più di alcuni strumenti e alcuni passi (ad esempio, RAG conversazionale), oggi i costruttori di agenti hanno in gran parte abbandonato la promessa dinamica e autonoma di ReACT per metodi che si basano fortemente sulla catena statica – la creazione di catene predefinite progettate per risolvere un caso d’uso specifico. Questo approccio assomiglia all’ingegneria del software tradizionale e si discosta dalla promessa agente di ReACT. Raggiunge livelli più alti di controllo e affidabilità, ma manca di autonomia e flessibilità. Le soluzioni sono quindi intensive di sviluppo, strette nell’applicazione e troppo rigide per affrontare alti livelli di variazione nello spazio di input e nell’ambiente.
Per essere sicuri, le pratiche di catena statica possono variare in quanto “statiche” sono. Alcune catene utilizzano LLM solo per eseguire passi atomici (ad esempio, per estrarre informazioni, riassumere il testo o stendere un messaggio) mentre altre utilizzano anche LLM per prendere alcune decisioni dinamicamente in fase di esecuzione (ad esempio, un LLM che instrada tra flussi alternativi nella catena o un LLM che convalida il risultato di un passo per determinare se deve essere eseguito nuovamente). In ogni caso, fintanto che i LLM sono responsabili di qualsiasi decisione dinamica nella soluzione – siamo inevitabilmente intrappolati in un compromesso tra affidabilità e autonomia. La soluzione più statica è più affidabile e prevedibile, ma anche meno autonoma e quindi più stretta nell’applicazione e più intensiva di sviluppo. La soluzione più dinamica e autonoma è più generica e semplice da costruire, ma anche meno affidabile e prevedibile.
Questo compromesso può essere rappresentato nel seguente grafico:

Ciò solleva la domanda, perché non abbiamo ancora visto un framework agente che possa essere collocato nel quadrante superiore destro? Siamo condannati a scambiare per sempre l’affidabilità per l’autonomia? Non possiamo ottenere un framework che fornisce l’interfaccia semplice di un agente ReACT (prendere un obiettivo e un set di strumenti e figurarlo) senza sacrificare l’affidabilità?
La risposta è – possiamo e lo faremo! Ma per questo, dobbiamo realizzare che abbiamo fatto tutto male. Tutti i framework di costruzione di agenti attuali condividono un difetto comune: si basano sui LLM come componente dinamico e autonomo. Tuttavia, l’elemento cruciale che ci manca – ciò che dobbiamo creare per gli agenti che siano autonomi e affidabili – è la tecnologia di pianificazione. E i LLM non sono grandi pianificatori.
Ma prima, cosa significa “pianificazione”? Per “pianificazione” intendiamo la capacità di modellare esplicitamente corsi di azione alternativi che portano a un risultato desiderato e di esplorare ed exploiter efficientemente questi alternativi sotto vincoli di budget. La pianificazione dovrebbe essere effettuata a livello macro e micro. Un piano macro divide un compito in passi dipendenti e indipendenti che devono essere eseguiti per raggiungere il risultato desiderato. Ciò che spesso viene trascurato è la necessità di pianificazione micro-orientata per garantire risultati desiderati a livello di passo. Ci sono molte strategie disponibili per aumentare l’affidabilità e raggiungere garanzie a livello di singolo passo utilizzando più calcoli in fase di inferenza. Ad esempio, potreste parafrasare query di ricerca semantica multiple volte, potreste recuperare più contesto per una query data, potreste utilizzare un modello più grande e potreste ottenere più inferenze da un LLM – il tutto risultando in risultati più soddisfacenti per le esigenze da cui scegliere il migliore. Un buon micro-pianificatore può utilizzare efficientemente i calcoli in fase di inferenza per raggiungere i migliori risultati sotto un budget di calcolo e latenza dato. Per scalare l’investimento di risorse come necessario per il particolare compito in questione. In questo modo, i sistemi AI pianificatori possono mitigare la natura probabilistica dei LLM per raggiungere risultati garantiti a livello di passo. Senza tali garanzie, siamo di ritorno al problema di errore composto che minaccia anche il miglior piano a livello macro.
Ma perché i LLM non possono servire come pianificatori? Dopotutto, sono in grado di tradurre istruzioni di alto livello in catene di pensiero o piani ragionevoli definiti in linguaggio naturale o codice. Il motivo è che la pianificazione richiede più di questo. La pianificazione richiede la capacità di modellare corsi di azione alternativi che possono ragionevolmente portare al risultato desiderato E di ragionare sull’utilità attesa e sui costi attesi (in calcolo e/o latenza) di ciascuna alternativa. Mentre i LLM possono potenzialmente generare rappresentazioni dei corsi di azione disponibili, non possono prevedere l’utilità attesa e i costi. Ad esempio, quali sono l’utilità attesa e i costi dell’utilizzo del modello X rispetto al modello Y per generare una risposta per un particolare contesto? Qual è l’utilità attesa di cercare una particolare informazione nel corpus di documenti indicizzati rispetto a una chiamata API al CRM? Il vostro LLM non ha idea. E per buona ragione – le tracce storiche di questi tratti probabilistici sono raramente trovate nel mondo e non sono incluse nei dati di training dei LLM. Sono anche tendenti a essere specifiche per lo strumento e l’ambiente di dati in cui il sistema AI opererà, a differenza della conoscenza generale che i LLM possono acquisire. E anche se i LLM potessero prevedere l’utilità attesa e i costi, ragionare su di essi per scegliere il corso di azione più efficace è una deduzione logica e decisionale che non può essere assunta come affidabilmente eseguita dalle previsioni del prossimo token dei LLM.
Quindi, quali sono gli ingredienti mancanti per la tecnologia di pianificazione AI? Abbiamo bisogno di modelli di pianificatore che possano imparare dall’esperienza e dalla simulazione per modellare esplicitamente corsi di azione alternativi e corrispondenti probabilità di utilità e costo per un particolare compito in un particolare strumento e ambiente di dati. Abbiamo bisogno di un linguaggio di definizione di piano (PDL) che possa essere utilizzato per rappresentare e ragionare su corsi di azione e probabilità. Abbiamo bisogno di un motore di esecuzione che possa eseguire deterministicamente e efficientemente un piano dato definito in PDL.
Alcune persone sono già al lavoro per mantenere questa promessa. Fino ad allora, continuate a costruire catene statiche. Solo per favore, non chiamateli “agenti”.












