Cos'è un agente ReAct?

Autori

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Cos'è un agente ReAct?

Un agente ReAct è un agente AI che utilizza il framework "reasoning and acting" (ReAct) per combinare il ragionamento chain of thought (CoT) con l'uso di strumenti esterni. Il framework ReAct migliora la capacità di un modello linguistico di grandi dimensioni (LLM) di gestire attività complesse e processo-decisionale in workflow agentici.

Introdotto per la prima volta da Yao e altri nel paper del 2023, "ReACT: Synergizing Reasoning and Acting in Language Models", ReAct può essere compreso più in generale come un paradigma di machine learning (ML) che integra le capacità di ragionamento e azione degli LLMs.

Più specificamente, il ReAct è un framework concettuale per la creazione di agenti AI che possono interagire con l'ambiente in modo strutturato ma adattabile, utilizzando un LLM come "cervello" dell'agente per coordinare qualsiasi aspetto, dai semplici workflow di retrieval-augmented generation (RAG) ai complessi workflow multiagente.

A differenza dei tradizionali sistemi di intelligenza artificiale (AI), gli agenti ReAct non separano il processo-decisionale dall'esecuzione delle attività. Pertanto, lo sviluppo del paradigma ReACT è stato un passo importante nell'evoluzione dell'AI generativa (gen AI) oltre i semplici chatbot conversazionali e verso la risoluzione di problemi complessi.

Gli agenti ReAct e gli approcci derivati continuano a fornire energia alle applicazioni AI che possono pianificare, eseguire e adattarsi autonomamente a circostanze impreviste.

Le ultime tendenze in materia di AI, proposte da esperti

Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Come funzionano gli agenti ReAct?

Il framework ReAct si ispira al modo in cui gli esseri umani usano in modo intuitivo il linguaggio naturale, spesso attraverso il proprio dialogo interiore, per pianificare ed eseguire passo dopo passo compiti complessi.

Invece di implementare workflow basati su regole o predefiniti, gli agenti ReAct si affidano alle capacità di ragionamento del loro LLM per adattare dinamicamente il proprio approccio in base a nuove informazioni o ai risultati delle fasi precedenti.

Immagina di fare le valigie per un breve viaggio. Potresti iniziare identificando gli aspetti principali da considerare ("Che tempo farà mentre sono lì?"), per poi consultare attivamente fonti esterne ("Controllo le previsioni meteo locali").

Utilizzando queste nuove informazioni ("Farà freddo"), passi alla considerazione successiva ("Quali vestiti caldi ho?") e all'azione conseguente azione ("Controllo il mio armadio"). Dopo aver intrapreso questa azione, potresti incontrare un ostacolo inaspettato ("Tutti i miei vestiti caldi sono in garage") e modificare di conseguenza il prossimo passo ("Quali vestiti posso sovrapporre?").

In modo analogo, il framework ReAct utilizza il prompt engineering per strutturare l'attività di un agente AI in uno schema formale di pensieri, azioni e osservazioni alternati:

  • I passaggi di ragionamento CoT verbalizzati (pensieri) aiutano il modello a suddividere il compito più grande in sottocompiti più gestibili.

  • Le azioni predefinite consentono al modello di utilizzare strumenti, effettuare chiamate alle application programming interface (API) e raccogliere ulteriori informazioni da fonti esterne (ad esempio motori di ricerca) o da basi di conoscenza (ad esempio un archivio documenti interno).

  • Dopo aver intrapreso un'azione, il modello rivaluta quindi i suoi progressi e utilizza quell'osservazione per fornire una risposta definitiva o informare il pensiero successivo. L'osservazione potrebbe idealmente prendere in considerazione anche le informazioni precedenti, provenienti da una finestra contestuale standard del modello o da un componente di memoria esterna.

Poiché le prestazioni di un agente ReAct dipendono in larga misura dalla capacità del suo LLM centrale di pensare "verbalmente" per svolgere compiti complessi, gli agenti ReAct traggono un grande beneficio da modelli altamente capaci con ragionamento avanzato e capacità di seguire le istruzioni.

Per ridurre al minimo i costi e la latenza, un framework ReAct multiagente potrebbe fare affidamento principalmente su un modello più grande e performante che funge da agente centrale, il cui processo di ragionamento o le cui azioni potrebbero includere la delega di sotto-compiti ad altri agenti creati utilizzando modelli più piccoli ed efficienti.

Cicli degli agenti ReAct

Questo framework crea intrinsecamente un ciclo di feedback in cui il modello risolve il problema ripetendo in modo iterativo questo processo intrecciato di pensiero-azione-osservazione.

Ogni volta che questo ciclo viene completato, ovvero ogni volta che l'agente ha intrapreso un'azione e fatto un'osservazione in base ai risultati di tale azione, l'agente deve poi decidere se ripetere o terminare il ciclo.

Diagramma di un percorso di react

Quando e come terminare il ciclo di ragionamento è un aspetto importante da considerare nella progettazione di un agente ReAct. Stabilire un numero massimo di iterazioni del ciclo è un modo semplice per limitare la latenza, i costi e l'uso dei token, evitando così la possibilità di un ciclo infinito.

Al contrario, è possibile impostare il ciclo in modo che termini quando viene soddisfatta una determinata condizione, ad esempio quando il modello ha identificato una potenziale risposta finale che supera una certa soglia di confidenza.

Per implementare questo tipo di ciclo di ragionamento e azione, gli agenti ReAct utilizzano tipicamente una variante del ReAct prompting, sia all'interno del prompt di sistema fornito al modello linguistico (LLM), sia nel contesto stesso della query dell'utente.

ReAct prompting

Il ReAct prompting è una tecnica di prompting specifica progettata per guidare un LLM a seguire il paradigma ReAct di cicli di pensiero, azione e osservazione. Anche se l'uso esplicito dei metodi di prompting convenzionali di ReAct non è strettamente necessario per costruire un agente ReAct, la maggior parte degli agenti basati su ReAct li implementa o si ispirano direttamente ad essi.

Descritta per la prima volta nel paper originale di ReAct, la funzione principale del ReAct prompting è istruire un modello linguistico (LLM) a seguire il ciclo ReAct e a stabilire quali strumenti possono essere utilizzati, cioè quali azioni possono essere intraprese, nel gestire le richieste degli utenti.

Sia tramite istruzioni esplicite che tramite l'inclusione di esempi few-shot, il ReAct prompting dovrebbe:

  • Stimolare il modello a utilizzare il ragionamento a catena di pensiero: invita il modello a ragionare passo dopo passo, alternando i pensieri alle azioni.

  • Definire le azioni: stabilire le azioni specifiche disponibili per il modello. Un'azione potrebbe comportare la generazione di un tipo specifico di pensiero successivo o di prompt secondario, ma di solito comporta l'utilizzo di strumenti esterni o la creazione di API.

  • Istruire il modello a fare osservazioni: invita il modello a riesaminare il suo contesto dopo ogni azione e di usare quel contesto aggiornato per compiere il passo successivo nel ragionamento.

  • Creare un ciclo: indica al modello di ripetere i passaggi precedenti, se necessario. Puoi fornire condizioni specifiche per terminare il ciclo, come un numero massimo di ripetizioni, oppure istruire l'agente a terminare il processo di ragionamento ogni volta che ritiene di aver raggiunto l'output finale corretto.

  • Fornire una risposta finale: ogni volta che tali condizioni finali sono soddisfatte, fornisci all'utente l'output in risposta alla sua domanda iniziale. Come avviene in molti casi di utilizzo degli LLM, in quanto modelli di ragionamento che impiegano il processo di ragionamento a catena di pensiero prima di determinare un output finale, gli agenti ReAct vengono spesso istruiti a condurre il loro processo di ragionamento all'interno di un "blocco per appunti".

Una dimostrazione classica del ReAct prompting è il prompt di sistema per ilZERO_SHOT_REACT-DESCRIPTION modulo precostituito dell'agente ReACT in LangGraph di Langchain. Si chiama"zero-shot" perché, con questo prompt di sistema predefinito, l'LLM utilizzato con il modulo non ha bisogno di ulteriori esempi per comportarsi come un agente ReAct.

Answer the following questions as best you can. You have access to the following tools: 

Wikipedia: A wrapper around Wikipedia. Useful for when you need to answer general questions about people, places, companies, facts, historical events, or other subjects. Input should be a search query.
duckduckgo_search: A wrapper around DuckDuckGo Search. Useful for when you need to answer questions about current events. Input should be a search query.
Calculator: Useful for when you need to answer questions about math.

Use the following format:

Question: the input question you must answer
Thought: you should always think about what to do
Action: the action to take, should be one of [Wikipedia, duckduckgo_search, Calculator]
Action Input: the input to the action
Observation: the result of the action
... (this Thought/Action/Action Input/Observation can repeat N times)
Thought: I now know the final answer
Final Answer: the final answer to the original input question

Begin!

Question: {input}
Thought:{agent_scratchpad}
Agenti AI

5 tipi di agenti AI: funzioni autonome e applicazioni nel mondo reale

Scopri come l'AI basata sugli obiettivi e sulle utilità si adatta ai workflow e agli ambienti complessi.

I vantaggi degli agenti ReAct

L'introduzione del framework ReACT è stato un passo importante nel progresso dei workflow agentici basati su LLM. Dall'ancoraggio degli LLM in tempo reale, con informazioni esterne dal mondo reale tramite (RAG) al contributo a successive innovazioni, come Reflexion, che ha portato ai modelli di ragionamento moderni, ReAct ha contribuito a catalizzare l'uso degli LLM per attività che vanno ben oltre la generazione di testo.

L'utilità degli agenti ReAct deriva in gran parte da alcune qualità intrinseche del framework ReAct:

  • Versatilità: gli agenti ReAct possono essere configurati per funzionare con un'ampia varietà di strumenti e API esterni. Sebbene la messa a punto dei prompt ReAct pertinenti (utilizzando strumenti appropriati) possa migliorare le prestazioni, non è richiesta alcuna configurazione preventiva del modello per eseguire il tool calling.

  • Adattabilità: questa versatilità, insieme alla natura dinamica e situazionale del modo in cui determinano lo strumento o l'API appropriati da chiamare, significa che gli agenti ReACT possono utilizzare il loro processo di ragionamento per adattarsi alle nuove sfide. Soprattutto quando operano all'interno di una lunga finestra di contesto o con memoria esterna, possono imparare dagli errori e dai successi passati per affrontare ostacoli e situazioni impreviste. Questo rende gli agenti ReAct flessibili e resilienti.

  • Spiegabilità: il processo di ragionamento verbalizzato di un agente ReAct è semplice da seguire, il che facilita il debug e lo rende relativamente facile da creare e ottimizzare.

  • Precisione: come afferma l'articolo originale di ReAct, il ragionamento a catena di pensiero (CoT) da solo ha molti benefici per gli LLM, ma comporta anche un aumento del rischio di allucinazione. La combinazione di CoT di ReACT con una connessione esterna alle fonti di informazione riduce significativamente le allucinazioni, rendendo gli agenti ReACT più precisi e affidabili.

Agenti ReAct e chiamate di funzione

Un altro paradigma importante per l'agentic AI è il tool calling, originariamente introdotto da OpenAI a giugno 2023 per integrare le capacità agentiche dei suoi modelli GPT.

Il paradigma del tool calling comporta la messa a punto dei modelli per riconoscere quando una particolare situazione deve comportare il cool calling e generare un oggetto JSON strutturato contenente gli argomenti necessari per chiamare tali funzioni.

Molte famiglie di LLM proprietari e open source, tra cui IBM Granite, la serie Llama di Meta, Claude di Anthropic e Google Gemini, ora supportano la chiamata delle funzioni.

Il fatto che ReAct o la chiamata delle funzioni siano "migliori" dipenderà generalmente dalla natura del tuo caso d'uso specifico. In scenari che coinvolgono compiti relativamente semplici (o almeno prevedibili), la chiamata delle funzioni può essere eseguita più velocemente, consentire un risparmio di token ed essere più semplice da implementare rispetto a un agente ReAct.

In tali circostanze, il numero di token che verrebbe speso nel ciclo iterativo di ragionamento CoT di un agente ReAct potrebbe essere considerato inefficiente.

Il compromesso intrinseco è una relativa mancanza di capacità di personalizzare come e quando il modello sceglie quale strumento utilizzare. Allo stesso modo, quando un agente gestisce attività che richiedono ragionamenti complessi o scenari dinamici o imprevedibili, la rigidità della chiamata delle funzioni potrebbe limitarne l'adattabilità. In tali situazioni, è spesso utile poter visualizzare il ragionamento passo passo che ha portato a una specifica chiamata di strumento.

Guida introduttiva agli agenti ReAct

Gli agenti ReACT possono essere progettati e implementati in diversi modi, siano essi codificati da zero in Python o sviluppati con l'aiuto di framework open source come BeeAI. La popolarità e la resistenza del paradigma ReAct hanno prodotto un'ampia letteratura e tutorial per gli agenti di ReAct su GitHub e altre comunità di sviluppatori.

In alternativa allo sviluppo di agenti ReAct personalizzati, molti framework di agentic AI, tra cui BeeAI, LlamaIndex e LangGraph di LangChain, offrono moduli di agenti ReAct preconfigurati per casi d'uso specifici.

Soluzioni correlate
Sviluppo di agenti AI IBM 

Consenti agli sviluppatori di creare, distribuire e monitorare agenti AI con lo studio IBM watsonx.ai.

Esplora watsonx.ai
Agenti e assistenti AI di IBM

Migliora la produttività con uno dei set di funzionalità più completi del settore che aiuta le aziende a creare, personalizzare e gestire agenti e assistenti AI. 

Scopri gli agenti AI
IBM Granite

Ottieni un risparmio sui costi di oltre il 90% con i modelli più piccoli e aperti di Granite, progettati per l'efficienza degli sviluppatori. Questi modelli pensati per le imprese offrono prestazioni eccellenti rispetto ai benchmark di sicurezza e in un'ampia gamma di attività aziendali, dalla cybersecurity alla RAG.

Esplora Granite
Prossimi passi

Automatizza i tuoi workflow complessi e migliora la produttività con uno dei set di funzionalità più completi del settore che aiuta le aziende a creare, personalizzare e gestire agenti e assistenti AI. 

Esplora lo sviluppo di agenti watsonx.ai Scopri watsonx Orchestrate