OpenAgents Una piattaforma aperta per agenti linguistici in libertà

OpenAgents Una piattaforma aperta per agenti linguistici liberi

Gli sviluppi recenti hanno dimostrato che gli agenti di linguaggio, in particolare quelli basati su grandi modelli di linguaggio (LLM), hanno il potenziale per svolgere una vasta gamma di compiti complessi in diverse situazioni utilizzando il linguaggio naturale. Tuttavia, attualmente la maggior parte dei framework degli agenti di linguaggio si concentra principalmente sulla facilitazione della costruzione di agenti di linguaggio di prova. Spesso questa attenzione è rivolta con poca o nessuna attenzione ai design a livello di app, trascurando spesso l’accessibilità di questi agenti agli utenti non esperti.

Per superare le attuali limitazioni degli agenti di linguaggio, gli sviluppatori hanno creato il framework OpenAgents, una piattaforma aperta per l’ospitalità e il dispiegamento di agenti di linguaggio in varie situazioni quotidiane. Il framework OpenAgents si basa su tre agenti:

  • Agente dati: Aiuta con l’analisi dei dati utilizzando strumenti di analisi dati e linguaggi di query come SQL o linguaggi di programmazione come Python.
  • Agenti plug-in: Aiutano fornendo accesso a oltre 200 strumenti API utili per compiti quotidiani.
  • Agenti web: Aiutano nella navigazione su Internet mantenendo l’anonimato.

Il framework OpenAgents utilizza un’interfaccia utente web ottimizzata per le situazioni comuni e risponde prontamente nel tentativo di consentire agli utenti generali di interagire con le funzionalità degli agenti, offrendo allo stesso tempo a ricercatori e sviluppatori un’esperienza di dispiegamento senza interruzioni sui loro ambienti locali. Si può dire con sicurezza che il framework OpenAgents è un tentativo di fornire una solida base per facilitare valutazioni nel mondo reale e creare agenti di linguaggio innovativi, efficaci e avanzati.

Nel presente articolo, approfondiremo il framework OpenAgents e ne parleremo in maggior dettaglio. Parleremo del funzionamento e dell’architettura del framework, discutendo anche delle sfide comuni affrontate e dei risultati ottenuti. Quindi, cominciamo.

OpenAgents e agenti di linguaggio: introduzione

Gli agenti di linguaggio, nella loro essenza, derivano dagli agenti intelligenti. Questi agenti intelligenti sono concepiti per possedere capacità autonome di risoluzione dei problemi, insieme alla capacità di percepire l’ambiente, prendere decisioni e agire di conseguenza. Con i progressi dei grandi modelli di linguaggio, la comunità sviluppativa globale ha sfruttato il concetto di agenti intelligenti e LLM per creare agenti di linguaggio. Questi agenti utilizzano la programmazione del linguaggio naturale (NLP) per svolgere una vasta gamma di compiti complessi in diverse situazioni e hanno recentemente mostrato un notevole potenziale.

I framework attuali degli agenti di linguaggio, come Gravitas e Chase, forniscono principalmente un’interfaccia a console dedicata agli sviluppatori, insieme all’implementazione del concetto di prova di concetto. Tuttavia, spesso limitano l’accessibilità a un pubblico più ampio, in particolare a coloro che non sono esperti di programmazione. Inoltre, i benchmark attuali degli agenti sono creati dagli sviluppatori con requisiti specifici per le valutazioni deterministiche, specialmente in scenari che richiedono la navigazione Web, la programmazione, l’utilizzo di strumenti o una combinazione di queste attività.

Nel tentativo di sviluppare agenti intelligenti e di linguaggio basati su LLM per un pubblico più ampio, attori affermati come OpenAI e Microsoft hanno implementato una serie di prodotti ben progettati, incluso Advanced Data Analysis, noto anche come interprete di codice, e plug-in per browser. Sebbene questi agenti siano efficaci nelle loro funzioni, offrono un aiuto limitato alla comunità di sviluppo. Questa limitazione deriva dal fatto che il codice della logica aziendale e le implementazioni del modello non sono state rese open source, limitando così le opportunità per sviluppatori e ricercatori di approfondirne ulteriormente l’esplorazione, nonché di limitare l’accesso gratuito per gli utenti.

Nel tentativo di affrontare questo problema, gli sviluppatori hanno creato OpenAgents, una piattaforma open source per l’ospitalità e l’utilizzo degli agenti, attualmente basata su tre agenti interni:

  • Agente dati: Aiuta con l’analisi dei dati utilizzando strumenti di analisi dati e linguaggi di query come SQL o linguaggi di programmazione come Python.
  • Agenti plug-in: Aiutano fornendo accesso a oltre 200 strumenti API utili per compiti quotidiani.
  • Agenti web: Aiutano nella navigazione su Internet mantenendo l’anonimato.

La figura seguente illustra la piattaforma OpenAgents per utenti generali, sviluppatori e ricercatori.

  1. Al posto di utilizzare pacchetti o console orientati ai programmatori, gli utenti generali possono interagire con i tre agenti del framework OpenAgents utilizzando un’interfaccia web online.
  2. Gli sviluppatori possono utilizzare la logica aziendale e i codici di ricerca forniti dal framework OpenAgents per implementare senza problemi backend e frontend per ulteriori sviluppi.
  3. I ricercatori hanno la flessibilità di creare nuovi agenti di linguaggio da zero o implementare metodi correlati agli agenti utilizzando i componenti e gli esempi condivisi e valutare le loro prestazioni utilizzando l’interfaccia utente web.

Per riassumere, il framework OpenAgents è originariamente pensato per essere una piattaforma olistica e realistica per la valutazione di agenti linguistici che coinvolgono l’interazione umana, consentendo agli utenti di interagire con questi agenti per completare una vasta gamma di compiti. Queste interazioni umano-agente, insieme al feedback degli utenti, vengono memorizzate e analizzate per ulteriori sviluppi e valutazioni.

Per coloro che non ne sono consapevoli, il prompting LLM è un processo che consente agli sviluppatori di creare istruzioni che proteggono dai dati di input avversari o errati, migliorano l’estetica dell’output e soddisfano la logica di backend. Durante la fase di sviluppo, gli sviluppatori che lavorano sul framework OpenAgents utilizzano la tecnica del prompting LLM per sottolineare l’importanza di specificare efficacemente i requisiti dell’applicazione. Tuttavia, gli sviluppatori hanno presto osservato che l’accumulo di queste istruzioni o prompting LLM può essere considerevole a volte e potrebbe influire sulle capacità di gestione del contesto dei framework LLM insieme alle limitazioni di token. Gli sviluppatori hanno anche osservato che per distribuire efficacemente questi agenti nel mondo reale, i modelli degli agenti non dovrebbero solo mostrare prestazioni eccezionali, ma dovrebbero anche essere in grado di affrontare una vasta gamma di scenari interattivi in tempo reale. Anche se i framework degli agenti attuali coprono le prestazioni, spesso ignorano le considerazioni del mondo reale, specialmente in tempo reale, che spesso oscurano il vero potenziale dei framework LLM sacrificando la reattività o l’accuratezza.

Nella figura seguente, stiamo confrontando direttamente il framework OpenAgents con lavori esistenti su benchmark di concetti degli agenti e sulla costruzione di prototipi.

OpenAgents: Progettazione e implementazione della piattaforma

Il design sistematico o l’architettura della piattaforma OpenAgents può essere diviso in due componenti principali: Interfaccia utente, che include sia il backend che il frontend, e Agente linguistico, che comprende strumenti, modelli linguistici e ambienti. Il framework OpenAgents fornisce un’interfaccia di comunicazione tra gli utenti e gli agenti. Il flusso di interazione nel framework è il seguente.

Gli agenti utilizzano gli strumenti a loro disposizione per pianificare e intraprendere le azioni necessarie negli ambienti una volta ricevuti gli input dagli utenti. L’architettura o la progettazione sistematica del framework è dimostrata nell’immagine seguente.

Interfaccia utente

Gli sviluppatori del framework OpenAgents hanno dedicato molto tempo e impegno nello sviluppare non solo un’interfaccia utente altamente funzionale, ma anche user-friendly, dopo aver affrontato numerosi agenti ospitanti e logica di business riutilizzabile. Di conseguenza, il framework OpenAgents vanta di offrire supporto per una vasta gamma di compiti tecnici, inclusa la gestione degli errori, le operazioni del server backend, lo streaming dei dati e molto altro, con l’obiettivo principale di rendere il framework OpenAgents user-friendly, ma altamente efficace e utilizzabile allo stesso tempo.

Agente linguistico

All’interno del framework OpenAgents, l’agente linguistico ha tre componenti essenziali: una interfaccia degli strumenti, un modello linguistico e l’ambiente stesso. Il metodo del prompting implementato nel framework OpenAgents crea un processo sequenziale per gli agenti da seguire che inizia con Osservazione -> Deliberazione -> Azione. Il framework induce anche la generazione di testo analizzabile da parte del LLM con maggiore efficienza, e l’interfaccia degli strumenti è costituita da parser che possono tradurre questi testi analizzabili generati dai LLM in azioni eseguibili come chiamate API o generazione di codice. Queste azioni vengono quindi eseguite dal framework entro i limiti dell’ambiente corrispondente.

Agenti di OpenAgents

Alla base di OpenAgents ci sono tre agenti distinti: il Agente dati che aiuta con l’analisi dei dati utilizzando strumenti di analisi dei dati e linguaggi di interrogazione come SQL o linguaggi di programmazione come Python, i Plugin Agent che aiutano fornendo accesso a oltre 200+ strumenti API utili per compiti quotidiani, e i Web Agents che aiutano nella navigazione del web mantenendo l’anonimato. Questi agenti hanno una competenza di dominio individuale simile ai plugin di ChatGPT, tuttavia, a differenza di ChatGPT, l’implementazione su OpenAgents si basa esclusivamente su interfacce di programmazione delle applicazioni di linguaggio aperte o API.

Data Agent

Il data agent nel framework OpenAgents è stato progettato e implementato in modo da gestire una vasta gamma di compiti legati ai dati che gli utenti finali incontrano regolarmente. Gli agenti dati supportano la generazione e l’esecuzione di codice in due linguaggi di programmazione, ovvero SQL e Python, e l’agente dispone anche di diversi strumenti dati a sua disposizione, tra cui Data Profiling per fornire informazioni di base sui dati, Kaggle Data Search per la ricerca di dataset e ECharts Tool per la creazione di grafici interattivi ECharts. Inoltre, il framework OpenAgents sollecita l’agente dati a utilizzare questi strumenti in modo proattivo per rispondere efficacemente alle richieste degli utenti finali. Inoltre, data la complessità dei requisiti di codificazione, il framework OpenAgents opta per modelli di linguaggio incorporati per l’agente dati, e anziché l’agente generare il codice, sono gli strumenti come Python, ECharts e SQL a generare il codice. Con questo approccio, il framework è in grado di sfruttare appieno le competenze di programmazione dei modelli di linguaggio, riducendo così lo stress sull’agente dati. 

Con l’aiuto di questi strumenti dati, l’agente dati è in grado di gestire numerose richieste centrare sui dati e di eseguire visualizzazioni dei dati, manipolazioni e query con competenza, superando così i limiti della generazione di codice e testo. La figura seguente evidenzia un agente dati in azione e gli strumenti disponibili per gli utenti comuni. 

Plugins Agent

L’agente dei plugin nel framework OpenAgents è stato progettato dai programmatori con cura per soddisfare le esigenze multifaccettate dell’utente per compiti quotidiani come la ricerca su Internet, lo shopping online, la lettura delle notizie o la creazione di siti web e applicazioni fornendo accesso a oltre 200 plugin, con particolare attenzione interfaccia di chiamata di funzione, ping API e lunghezza della risposta API. Alcuni dei plugin più importanti includono 

  1. Ricerca di Google 
  2. Wolfram Alpha
  3. Zapier
  4. Klarna
  5. Coursera
  6. Mostrami
  7. Parla
  8. AskYourPDF
  9. BizTok
  10. Klook

In base alle loro esigenze, gli utenti possono scegliere il numero di plugin che desiderano che gli agenti dei plugin utilizzino e il funzionamento è illustrato nella figura seguente. 

Inoltre, per aiutare gli utenti in situazioni in cui non sono sicuri quale plugin sia più adatto alle loro esigenze, il framework OpenAgents offre agli utenti una funzione che seleziona automaticamente i plugin più pertinenti alle loro istruzioni. 

Agenti Web

Il framework OpenAgents presenta l’agente web come uno strumento specializzato incaricato di migliorare l’efficienza e le capacità dell’agente di chat. Sebbene l’agente di chat ospiti ancora l’interfaccia di interazione principale, incorpora senza soluzione di continuità l’agente web quando necessario. La risposta finale viene quindi consegnata all’utente finale dall’agente web e il processo è illustrato nella figura seguente. 

La strategia di progettazione implementata in questi agenti web si dimostra di grande beneficio, in quanto l’agente di chat elabora in modo sistematico i parametri importanti o avvia gli URL, prima che vengano trasferiti all’agente web, garantendo così una migliore allineamento tra le esigenze dell’utente e l’output generato, risultando quindi una comunicazione chiara. Inoltre, la strategia consente anche agli agenti web di gestire query utente stratificate ed adattabili utilizzando una navigazione web multi-turn dinamica combinata con dialoghi di chat. Pertanto, demarcando chiaramente i ruoli e le responsabilità degli agenti di chat e di navigazione multi-browser, il framework OpenAgents apre la strada al perfezionamento e all’evoluzione di ogni singolo modulo. 

OpenAgents: Applicazioni Pratiche e Implementazione nel Mondo Reale

In questa sezione, parleremo della traiettoria del framework OpenAgents dalla teorizzazione all’implementazione nel mondo reale insieme alle sfide incontrate e agli apprendimenti acquisiti insieme alle complessità di valutazione affrontate dai programmatori. 

Utilizzo di Prompts per Trasformare Grandi Modelli di Linguaggio in Applicazioni del Mondo Reale

Quando si utilizzano i promemoria LLM per la creazione di applicazioni reali per gli utenti finali, il framework OpenAgents utilizza istruzioni prompt per specificare determinati requisiti. Lo scopo di alcune delle istruzioni è garantire che l’output sia in linea con un formato specifico, consentendo così alla logica di backend di elaborarlo, mentre lo scopo di altre istruzioni è migliorare l’estetica dell’output, mentre le restanti proteggono il framework da potenziali attacchi malevoli.

Fattori reali incontrollabili

Quando gli sviluppatori hanno implementato il framework OpenAgents nel mondo reale, si sono confrontati con una serie di fattori reali incontrollabili innescati dall’infrastruttura Internet, dagli utenti, dalla logica aziendale e altro ancora. Questi fattori incontrollabili hanno costretto gli sviluppatori a rivalutare e ottimizzare alcune assunzioni basate sulla ricerca precedente e potrebbero alla fine portare a situazioni in cui gli utenti finali potrebbero non essere soddisfatti dalla risposta generata dal framework.

Complessità della valutazione

Sebbene gli agenti costruiti direttamente per le applicazioni possano avere un’applicazione più ampia e facilitare una migliore valutazione, ciò contribuisce alla complessità della creazione di applicazioni alimentate da LLM, rendendo difficile analizzare le prestazioni delle applicazioni. Inoltre, questo approccio aggiunge anche instabilità ed estende la catena di sistema degli LLM, rendendo difficile per il framework adattarsi a diversi componenti. Pertanto, ha senso perfezionare il design del sistema e la logica operativa di questi agenti per semplificare le procedure ed assicurare un output efficace.

Pensieri finali

In questo articolo, abbiamo parlato del framework OpenAgents, una piattaforma aperta per l’hosting e la distribuzione di agenti linguistici in svariati compiti quotidiani. Il framework OpenAgents si basa su tre agenti: Data Agent, che aiuta nell’analisi dei dati utilizzando strumenti di analisi dei dati e linguaggi di interrogazione come SQL o linguaggi di programmazione come Python, Plugin Agents, che fornisce accesso a oltre 200+ strumenti API utili per le attività quotidiane, e Web Agents, che aiuta a navigare sul web mantenendo l’anonimato. Il framework OpenAgents utilizza un’interfaccia utente web ottimizzata per i fallimenti comuni e risposte rapide nel tentativo di consentire agli utenti generali di interagire con le funzionalità degli agenti, offrendo al contempo ricercatori e sviluppatori un’esperienza di distribuzione senza problemi su configurazioni locali. Fornendo una piattaforma trasparente, olistica e distribuibile, OpenAgents mira a rendere il potenziale degli LLM accessibile a un’ampia gamma di utenti, non solo ricercatori e sviluppatori, ma anche utenti finali con competenze tecniche limitate.