notizia

OpenDevin ha rilasciato un rapporto tecnico, una lettura obbligata per gli sviluppatori di agenti di grandi dimensioni

2024-08-02

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina



Rapporto sul cuore della macchina

Editore: Chen Chen, Zenan

Popolare piattaforma di agenti per modelli di grandi dimensioni per uso generale.

Nel marzo di quest'anno, Devin, "il primo ingegnere informatico AI al mondo", ha fatto esplodere il cerchio dell'IA. A differenza dei precedenti assistenti alla programmazione AI, Devin non si limita a svolgere il ruolo di assistere alla programmazione, ma può completare l'intero progetto di sviluppo in modo indipendente ed end-to-end.



La nascita di Devin ci ha permesso di apprezzare le potenti capacità degli Agenti modello di grandi dimensioni. Ben presto, nel settore sono comparsi molti progetti open source che cercavano di copiarlo. Tra questi, OpenDevin si è distinto e ha ricevuto la massima attenzione.

OpenDevin è una piattaforma per lo sviluppo di agenti generici che interagiscono con il mondo tramite software. Le caratteristiche includono:

Il meccanismo di interazione tra il modello grande dell'Agente, l'interfaccia e l'ambiente;

Sistema operativo Sandbox + ambiente browser web a disposizione dell'Agente;

Un'interfaccia per creare ed eseguire codice;

Supporto multi-agente;

Quadro di valutazione.

Attualmente, GitHub di OpenDevin ha ricevuto più di 29.000 stelle.



Recentemente, il team di OpenaDevin ha pubblicato un rapporto tecnico su questo strumento.



Indirizzo del rapporto: https://arxiv.org/pdf/2407.16741

In un rapporto tecnico, gli autori di OpenDevin, accademici dell'Università dell'Illinois a Urbana-Champaign, della Carnegie Mellon University e altre istituzioni, descrivono in dettaglio OpenDevin, una piattaforma guidata dalla comunità per lo sviluppo di un'intelligenza artificiale generale e specializzata che interagisce con il mondo attraverso il software Agent.

Ancora più importante, OpenDevin non è solo un framework concettuale, ma include anche un agente, un ambiente e un'implementazione di valutazione completi e pronti all'uso. Al momento della pubblicazione di questo rapporto, OpenDevin contiene un Agent Center, che ha implementato più di 10 agenti, incluso un potente agente generale basato sull'architettura CodeAct, e ha aggiunto funzioni per la navigazione Web e la modifica del codice. L'interazione dell'utente con l'agente avviene tramite un'interfaccia chat, che visualizza le operazioni correnti dell'agente e consente feedback in tempo reale. Inoltre, il quadro di valutazione supporta attualmente 15 benchmark che possono essere utilizzati per valutare le prestazioni dell'agente.

Architettura OpenDevin

In questo articolo, l'autore descrive OpenDevin dai seguenti aspetti: (1) come definire e implementare gli agenti; (2) come l'esecuzione dell'azione promuove l'osservazione (3) come gestire ed espandere le competenze comunemente utilizzate dagli agenti (4) come integrare più agenti che lavorano insieme per risolvere un'attività.



Come definire e implementare un agente

Gli agenti possono rilevare lo stato dell'ambiente e generare azioni da eseguire quando risolvono attività specificate dall'utente.

Flusso di stati e eventi. In OpenDevin, lo stato è una struttura dati che incapsula tutte le informazioni rilevanti affinché un agente esegua le attività. Una componente chiave di questo stato è lo streaming di eventi, una raccolta cronologica di azioni e osservazioni passate.

azione. Ispirato da CodeAct, OpenDevin connette gli agenti all'ambiente attraverso una serie di azioni fondamentali. Le azioni IPythonRunCellAction e CmdRunAction consentono agli agenti di eseguire codice Python arbitrario e comandi bash all'interno di un ambiente sandbox (ad esempio, un sistema operativo Linux isolato in modo sicuro). BrowserInteractiveAction supporta l'interazione tra l'agente e il browser Web.

osservare. Le osservazioni descrivono i cambiamenti nell'ambiente osservati da un agente. Può essere causato o meno da un'azione dell'agente: può essere 1) un'istruzione in linguaggio naturale fornita dall'utente, 2) il risultato dell'esecuzione dell'azione precedente dell'agente (ad esempio, il risultato dell'esecuzione del codice, ecc.).

Implementare nuovi agenti. Il design dell'agente è semplice ma potente e consente agli utenti di creare e personalizzare facilmente gli agenti per una varietà di attività. Il nucleo risiede nella funzione step, che prende lo stato corrente come input e genera azioni appropriate in base alla logica dell'agente. La Figura 2 mostra un codice di esempio semplificato per l'astrazione dell'agente.



Osservare i risultati dell'esecuzione dell'azione

Agent Runtime fornisce agli agenti uno spazio d'azione paragonabile a quello degli sviluppatori di software umani, consentendo a OpenDevin di gestire una varietà di attività di sviluppo software e basate sul Web, inclusi flussi di lavoro di sviluppo software complessi, progetti di analisi dei dati, attività di navigazione Web, ecc. Consente agli agenti di accedere a un terminale bash per eseguire codice e strumenti da riga di comando, sfruttare i notebook Jupyter per scrivere ed eseguire codice al volo e interagire con un browser Web per eseguire attività basate sul Web (ad esempio, ricerca di informazioni).

Agente scalabile: interfaccia computer

Gli autori hanno creato una libreria AgentSkills, un toolbox progettato per migliorare le capacità degli agenti, fornendo utilità non facilmente disponibili con i comandi bash di base o il codice Python.

Interazione multi-agente

OpenDevin consente a più agenti di interagire. Per raggiungere questo obiettivo, gli autori hanno utilizzato un tipo di azione speciale, AgentDelegateAction, che consente a un agente di delegare attività secondarie specifiche a un altro agente.

Valutare

Questa sezione mette a confronto OpenDevin (abbreviato come OD nei seguenti risultati sperimentali) con metodi di base riproducibili open source. I 15 benchmark coprono attività come l'ingegneria del software e la navigazione web.



La tabella 3 mostra che, anche se l'agente OpenDevin potrebbe non raggiungere prestazioni ottimali in ogni categoria, è progettato tenendo presente la generalità.



La tabella 4 riporta i risultati dell'agente sui benchmark di ingegneria del software.



in particolare:

SWE-bench è progettato per valutare la capacità di un agente di risolvere problemi di GitHub, come segnalazioni di bug o richieste di funzionalità. Come mostrato nella Tabella 4, l'ultima versione di CodeActAgent v1.8 in questo articolo, basata su claude-3.5-sonnet, ha un tasso di risoluzione dei problemi fino al 26% rispetto ad altri agenti open source utilizzati specificamente per lo sviluppo di software.

HumanEvalFix. OpenDevin CodeActAgent ha corretto con successo il 79,3% degli errori nelle suddivisioni Python, superando significativamente tutti i metodi non agenti e quasi raddoppiando le prestazioni di StarCoder2-15B.

L'agente OpenDevin basato su GPT-4o ha ottenuto il tasso di successo più alto del 76,47% su ML-Bench, che è migliore di SWE-Agent (42,64%).

Gorilla APIBench esamina la capacità di un agente di utilizzare le API. OpenDevin che utilizza GPT-4o ha una percentuale di successo del 36,4%, che è migliore della linea di base che non è specificatamente ottimizzata per le chiamate API.

ToolQA valuta la capacità di un agente di utilizzare strumenti esterni. OpenDevin con GPT-4o mostra le prestazioni più elevate rispetto a tutte le linee di base. L'agente ha ottenuto risultati migliori nelle attività relative all'utilizzo di CSV e strumenti di database, ma necessitava di miglioramenti nell'utilizzo degli strumenti di matematica e calcolatrice.

La tabella 5 riporta i risultati della valutazione per il benchmark di navigazione web.



La tabella 6 riporta i risultati di vari benchmark ausiliari.



Tra questi, GAIA viene utilizzato per valutare la capacità dell'agente di risolvere compiti generali. I risultati mostrano che l'agente ha ottenuto 32,1 punti su GAIA, un valore significativamente migliorato rispetto all'AutoGPT originale.

GPQA viene utilizzato per valutare la capacità di un agente di coordinare l'uso degli strumenti durante la risoluzione di problemi impegnativi a livello di laurea. I risultati sono mostrati nelle Tabelle 6 e 7. OpenDevin integra funzioni che supportano l'uso di più strumenti e ricerche web, consentendo all'agente di risolvere meglio problemi complessi multi-step.



Per ulteriori risultati, fare riferimento al documento originale.