Un agente ReAct è un agente AI che utilizza il framework "reasoning and acting" (ReAct) per combinare il ragionamento 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.

Il framework ReAct è stato 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.

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.

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?").

Prompt engineering

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.

Cicli degli agenti ReAct

Il framework ReAct 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.

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.

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 ispira 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.

In sintesi, il framework ReAct rappresenta 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 continuano a fornire energia alle applicazioni AI che possono pianificare, eseguire e adattarsi autonomamente a circostanze impreviste.