Intelligenza Artificiale
OpenAgents: una piattaforma aperta per agenti linguistici in the Wild

Recenti sviluppi hanno dimostrato che gli agenti linguistici, in particolare quelli costruiti su modelli linguistici di grandi dimensioni (LLM), hanno il potenziale per eseguire un'ampia gamma di compiti complessi in ambienti diversi utilizzando il linguaggio naturale. Tuttavia, l'obiettivo principale della maggior parte dei framework di agenti linguistici attualmente è facilitare la costruzione di agenti linguistici proof-of-concept. Questa attenzione spesso comporta poca o nessuna attenzione alla progettazione a livello di applicazione e spesso trascura l'accessibilità di questi agenti agli utenti non esperti.
Per colmare le attuali limitazioni sperimentate dagli agenti linguistici, gli sviluppatori hanno ideato il file Framework OpenAgents, una piattaforma aperta per l'hosting e la distribuzione di agenti linguistici in natura e in una serie di attività quotidiane. Il framework OpenAgents è costruito attorno a tre agenti
- Agente dei dati: Aiuta con l'analisi dei dati utilizzando strumenti di dati e linguaggi di query come SQL o linguaggi di programmazione come Python.
- Agenti plugin: Aiuta fornendo accesso a oltre 200 strumenti API utili per le attività quotidiane.
- Agenti Web: Aiuta a navigare sul Web mantenendo l'anonimato.
Il framework OpenAgents utilizza un'interfaccia utente Web ottimizzata per errori comuni e risposte rapide nel tentativo di consentire agli utenti generici di interagire con le funzionalità dell'agente, offrendo allo stesso tempo a ricercatori e sviluppatori un'esperienza di distribuzione senza soluzione di continuità sulle loro configurazioni locali. Sarebbe corretto affermare che il framework OpenAgents è un tentativo di fornire una solida base per facilitare le valutazioni del mondo reale e creare agenti linguistici innovativi, efficaci e avanzati.
Nell'articolo di oggi, approfondiremo il framework OpenAgents e parleremo del framework in modo più dettagliato. Parleremo del funzionamento e dell’architettura del quadro, discutendo anche delle sfide comuni affrontate e dei risultati. Quindi iniziamo.
OpenAgents e agenti linguistici: un'introduzione
Gli agenti linguistici, nella loro essenza, derivano da agenti intelligenti. Questi agenti intelligenti sono concettualizzati per possedere capacità autonome di risoluzione dei problemi, insieme alla capacità di percepire l'ambiente, prendere decisioni e agire di conseguenza. Con i progressi nei modelli linguistici di grandi dimensioni, la comunità di sviluppo globale ha sfruttato il concetto di agenti intelligenti e LLM per creare agenti linguistici. Questi agenti utilizzano la programmazione del linguaggio naturale (PNL) per eseguire un'ampia gamma di compiti complessi in ambienti diversi e recentemente hanno mostrato un notevole potenziale.
Gli attuali framework di agenti linguistici, come Gravitas e Chase, forniscono principalmente un'interfaccia console su misura per gli sviluppatori, insieme a implementazioni proof-of-concept. Tuttavia, spesso limitano l’accessibilità a un pubblico più ampio, in particolare a coloro che non sono esperti nella programmazione. Inoltre, gli attuali benchmark degli agenti sono costruiti da sviluppatori con requisiti specifici per la valutazione deterministica, soprattutto in scenari che richiedono navigazione web, codifica, utilizzo di strumenti o una combinazione di questi.
Nel tentativo di sviluppare agenti linguistici e intelligenti basati su LLM per una base di utenti più ampia, attori affermati come OpenAI e Microsoft hanno implementato una gamma di prodotti ben progettati, tra cui Advanced Data Analysis, noto anche come Code Interpreter, e plug-in del 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 stati open source, ostacolando le opportunità per sviluppatori e ricercatori di esplorarli ulteriormente, oltre a limitare l'accesso gratuito per gli utenti.
Nel tentativo di affrontare questo problema, gli sviluppatori hanno escogitato OpenAgent, una piattaforma open source per l'hosting e l'utilizzo di agenti, attualmente basata su tre agenti interni
- Agente dei dati: Aiuta con l'analisi dei dati utilizzando strumenti di dati e linguaggi di query come SQL o linguaggi di programmazione come Python.
- Agenti plugin: Aiuta fornendo accesso a oltre 200 strumenti API utili per le attività quotidiane.
- Agenti Web: Aiuta a navigare sul Web mantenendo l'anonimato.
La figura seguente mostra la piattaforma OpenAgents per utenti generici, sviluppatori e ricercatori.
- Invece di utilizzare pacchetti o console orientati ai programmatori, gli utenti generali possono interagire con i tre agenti nel framework OpenAgents utilizzando un'interfaccia web online.
- 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.
- I ricercatori hanno la flessibilità di creare nuovi agenti linguistici da zero o di implementare metodi relativi agli agenti utilizzando componenti ed esempi condivisi e valutarne le prestazioni utilizzando l'interfaccia utente web.
Per riassumere, il framework OpenAgents è originariamente pensato per essere una piattaforma olistica e realistica per la valutazione degli agenti linguistici human-in-the-loop che consente agli utenti di interagire con questi agenti per completare un'ampia gamma di attività e queste le interazioni degli agenti insieme al feedback degli utenti vengono archiviate e analizzate per ulteriore sviluppo e valutazione.
Per chi non lo sapesse, Richiesta LLM è un processo che consente agli sviluppatori di creare istruzioni che proteggano da input contraddittori o errati, migliorino l'estetica dell'output e soddisfino la logica del backend. Durante la fase di sviluppo, gli sviluppatori che lavorano sul framework OpenAgents utilizzano la tecnica di prompt LLM per sottolineare l'importanza di specificare in modo efficace i requisiti dell'applicazione. Tuttavia, gli sviluppatori hanno presto osservato che l'accumulo di queste istruzioni o prompt LLM a volte può essere sostanziale e potrebbe influire sulle capacità di gestione del contesto dei framework LLM insieme alle limitazioni dei token. Gli sviluppatori hanno inoltre osservato che, per poter implementare questi agenti in modo efficace nel mondo reale, i modelli degli agenti non dovrebbero solo mostrare prestazioni eccezionali, ma dovrebbero anche essere in grado di affrontare un'ampia gamma di scenari interattivi in ​​tempo reale. Sebbene attuali strutture di agenti hanno coperto le prestazioni, spesso ignorano le considerazioni del mondo reale, soprattutto in tempo reale, il che spesso offusca il vero potenziale dei framework LLM compromettendo la reattività o l'accuratezza.
Nella figura seguente, confrontiamo direttamente il framework OpenAgents con i lavori esistenti sui benchmark sul concetto di agente e costruiamo prototipi.
OpenAgents: progettazione e implementazione della piattaforma
La progettazione sistematica o architettura della piattaforma OpenAgents può essere suddivisa in due componenti principali: Interfaccia utente, inclusi backend e frontend, e Agente linguistico, comprendente strumenti, modelli linguistici e ambienti. Il framework OpenAgents fornisce un'interfaccia per la 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 richieste negli ambienti una volta ricevuti input dagli utenti. L'architettura o la progettazione sistematica del framework è illustrata nell'immagine seguente.
Interfaccia utente
Gli sviluppatori del framework OpenAgents hanno dedicato molta attenzione e impegno allo sviluppo non solo di un'interfaccia utente altamente funzionale ma anche intuitiva dopo aver affrontato un carico di agenti host e logica aziendale riutilizzabile. Di conseguenza, il framework OpenAgents si vanta di fornire supporto per una vasta gamma di attività tecniche tra cui la gestione degli errori, le operazioni del server backend, lo streaming di dati e molto altro, con l'obiettivo principale di rendere il framework OpenAgents facile da usare, ma altamente efficace e utilizzabile allo stesso tempo.
Agente linguistico
All'interno del framework OpenAgents, l'agente linguistico ha tre componenti essenziali: un'interfaccia dello strumento, un modello linguistico e l'ambiente stesso. Il metodo di richiesta implementato nel framework OpenAgents crea un processo sequenziale da seguire per gli agenti Osservazione -> Deliberazione -> Azione. Il framework richiede inoltre al LLM di generare testo analizzabile con maggiore efficienza e l'interfaccia dello strumento è costituita da parser in grado di tradurre questi testi analizzabili generati dai LLM in azioni eseguibili come l'esecuzione di chiamate API o la generazione di codice. Queste azioni vengono quindi eseguite dal framework entro i confini dell'ambiente corrispondente.
Agenti di OpenAgents
Al centro di OpenAgents ci sono tre agenti distinti: Agente dati che aiuta con l'analisi dei dati utilizzando strumenti di dati e linguaggi di query come SQL o linguaggi di programmazione come Python, Agenti plugin che aiuta fornendo accesso a oltre 200 strumenti API utili per le attività quotidiane e Agenti Web che aiuta a navigare sul Web mantenendo l'anonimato. Questi agenti hanno competenze di dominio individuali simili ai plug-in ChatGPT, tuttavia, a differenza di ChatGPT, l'implementazione su OpenAgents si basa esclusivamente sull'interfaccia di programmazione dell'applicazione o sulle API in linguaggio aperto.
Agente dati
L'agente dati nel framework OpenAgents è stato progettato e distribuito in modo da gestire un'ampia gamma di attività relative ai dati che gli utenti finali incontrano regolarmente. Gli agenti dati supportano la generazione e l'esecuzione del codice in due linguaggi di programmazione, ovvero SQL e Python, e l'agente ha anche diversi strumenti dati a sua disposizione, tra cui Profilazione dei dati per fornire informazioni di base sui dati, Ricerca dati Kaggle per la ricerca di set di dati e Strumento ECharts per tracciare grafici EChart interattivi. Inoltre, il framework OpenAgents richiede all'agente dati di utilizzare questi strumenti in modo proattivo per rispondere in modo efficace alle richieste degli utenti finali. Inoltre, dati i requisiti di codifica esaustivi, il framework OpenAgents opta per modelli linguistici incorporati per l'agente dati e, anziché l'agente che genera il codice, sono gli strumenti come Python, ECharts e SQL a generare il codice. Con questo approccio, il framework è in grado di sfruttare completamente l’abilità di programmazione dei modelli linguistici, riducendo così lo sforzo sull’agente dati.
Con l'aiuto di questi strumenti dati, l'agente dati è in grado di gestire numerose richieste incentrate sui dati ed esegue la visualizzazione, la manipolazione e le query dei dati in modo competente, 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.
Agente plugin
L'agente plug-in nel framework OpenAgents è stato progettato meticolosamente dagli sviluppatori per soddisfare le molteplici esigenze dell'utente per le attività quotidiane, tra cui la ricerca in Internet, lo shopping online, la lettura di notizie o la creazione di siti Web e applicazioni fornendo accesso a oltre 200 plug-in, con particolare attenzione essere pagato in base all'interfaccia di chiamata delle funzioni, ai ping API e alla durata delle risposte API. Alcuni dei plugin più importanti includono
- Google Search
- Wolfram Alpha
- Zapier
- Klarna
- Coursera
- TUTORIAL
- parlare
- Chiedi al tuo PDF
- BizTok
- Guarda
In base alle loro esigenze e requisiti, gli utenti possono scegliere il numero di plugin che desiderano che gli agenti plugin utilizzino e il funzionamento è dimostrato nella figura seguente.
Inoltre, per aiutare gli utenti nelle situazioni in cui non sono sicuri di quale plugin si adatti meglio alle loro esigenze, il framework OpenAgents offre agli utenti una funzionalità che seleziona automaticamente i plugin più rilevanti per le 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 chat. Sebbene l'agente chat contenga ancora l'interfaccia di interazione principale, incorpora perfettamente 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 rivela di grande vantaggio poiché l'agente chat elabora parametri importanti o avvia sistematicamente gli URL, prima che vengano trasferiti all'agente web, garantendo così un migliore allineamento tra i requisiti dell'utente e l'output generato, quindi con conseguente comunicazione chiara. Inoltre, la strategia consente anche agli agenti web di soddisfare le richieste degli utenti stratificate e adattabili utilizzando una navigazione web dinamica a più turni abbinata a dialoghi di chat. Pertanto, delimitando distintamente i ruoli e le responsabilità degli agenti di chat e multi-browsing, il framework OpenAgents lascia il posto al perfezionamento e all'evoluzione di ogni singolo modulo.
OpenAgents: applicazioni pratiche e distribuzione nel mondo reale
In questa sezione parleremo del percorso del framework OpenAgents dalla teorizzazione all'implementazione nel mondo reale insieme alle sfide incontrate e agli apprendimenti assorbiti insieme alle complessità di valutazione affrontate dagli sviluppatori.
Utilizzo dei prompt per trasformare modelli linguistici di grandi dimensioni in app del mondo reale
Quando si utilizzano i prompt LLM per creare applicazioni reali per gli utenti finali, il framework OpenAgents utilizza istruzioni prompt per specificare determinati requisiti. Lo scopo di alcune istruzioni è garantire che l'output sia allineato con un formato specifico, consentendo così l'elaborazione della logica di backend, mentre lo scopo di altre istruzioni è migliorare l'aspetto estetico dell'output, mentre il resto protegge la struttura da potenziali attacchi dannosi.
Fattori incontrollabili del mondo reale
Quando gli sviluppatori hanno implementato il framework OpenAgents nel mondo reale, sono stati accolti da una serie di fattori incontrollabili del mondo reale innescati dall'infrastruttura Internet, dagli utenti, dalle logiche aziendali e altro ancora. Questi fattori incontrollabili hanno costretto gli sviluppatori a rivalutare e modificare alcuni presupposti sulla base di ricerche precedenti e alla fine potrebbero portare a situazioni in cui gli utenti finali potrebbero non essere soddisfatti dalla risposta generata dal framework.
Complessità di valutazione
Sebbene gli agenti costruiti mirati direttamente alle applicazioni possano avere un'applicazione più ampia e facilitare una migliore valutazione, ciò aumenta la complessità della creazione di applicazioni basate su LLM che rende difficile analizzare le prestazioni delle applicazioni. Inoltre, questo approccio aggiunge ulteriore instabilità ed estende la catena del sistema LLM ciò rende difficile per il framework adattarsi a diversi componenti. Ha quindi senso affinare la progettazione del sistema e la logica operativa di questi agenti per semplificare le procedure e garantire risultati efficaci.
Considerazioni finali
In questo articolo abbiamo parlato del framework OpenAgents, una piattaforma aperta per l'hosting e la distribuzione di agenti linguistici in natura e in una serie di attività quotidiane. Il framework OpenAgents è costruito attorno a tre agenti: Data Agent, aiuta con l'analisi dei dati utilizzando strumenti di dati e linguaggi di query come SQL o linguaggi di programmazione come Python, agenti plug-in, aiuta fornendo accesso a oltre 200 strumenti API utili per le attività quotidiane e gli agenti Web aiutano a navigare sul Web mantenendo l'anonimato . Il framework OpenAgents utilizza un'interfaccia utente Web ottimizzata per errori comuni e risposte rapide nel tentativo di consentire agli utenti generici di interagire con le funzionalità dell'agente, offrendo allo stesso tempo a ricercatori e sviluppatori un'esperienza di distribuzione senza soluzione di continuità sulle loro configurazioni locali. Fornendo una piattaforma trasparente, olistica e distribuibile, OpenAgents mira a rendere il potenziale dei LLM accessibile a una gamma più ampia di utenti non limitati a ricercatori e sviluppatori, ma anche a utenti finali con competenze tecniche limitate.