Cos'è ChatDev?

Autori

Vanna Winland

AI Advocate & Technology Writer

Erika Russi

Data Scientist

IBM

Cos'è ChatDev?

ChatDev è un framework agentico open source che implementa la collaborazione multiagente tramite un team organizzato di agenti intelligenti specializzati basati su modelli linguistici di grandi dimensioni (LLM). Ogni agente AI è orchestrato per collaborare alle attività nelle fasi principali del ciclo di vita dello sviluppo software per generare e produrre autonomamente un'applicazione software.

ChatDev simula un'azienda di software virtuale che opera attraverso vari agenti intelligenti che ricoprono diversi ruoli all'interno dell'ambiente dell'organizzazione. Questi agenti formano una struttura organizzativa multiagente in cui possono collaborare partecipando a seminari funzionali che aiutano a semplificare il processo di sviluppo software. ChatDev applica l'AI al modello "a cascata" ampiamente adottato, un modello del ciclo di vita dello sviluppo software che suddivide il processo di sviluppo in più fasi: progettazione, codifica, test e documentazione. Per completare ogni fase, gli agenti specializzati lavorano in modo collaborativo.

Gli obiettivi principali di ChatDev sono offrire un framework di orchestrazione LLM agentica, personalizzabile e scalabile e fungere da scenario ideale per lo studio dell'intelligenza collettiva. L'intelligenza collettiva è la collaborazione efficace, il fenomeno in cui un gruppo può completare un'attività complessa in modo più efficace rispetto a un singolo individuo. L'approccio ampiamente accettato all'intelligenza collettiva definisce gli individui come entità in grado di agire con uno scopo e una ragione e di adattarsi a un ambiente.1 Nei framework agentici come ChatDev, queste entità intelligenti sono note come agenti.

L'intelligenza collettiva nei sistemi multiagente (MAS)

Le applicazioni dell'intelligenza collettiva nell'AI e nel machine learning includono sistemi o framework di intelligenza collettiva chiamati sistemi multiagente (MAS). Un MAS può essere descritto come una rete interconnessa di entità o agenti preposti alla risoluzione dei problemi che collaborano per risolvere problemi e superano le capacità o le conoscenze di un singolo agente.2

Gli strumenti AI come i sistemi multiagente rappresentano un approccio alla progettazione dell'intelligenza collettiva (COIN). Il sistema COIN è un ampio sistema multiagente caratterizzato da comunicazioni o controlli centralizzati minimi o nulli. È dotato di una funzione di utilità mondiale che valuta le potenziali storie dell'intero sistema.3 Il campo dei MAS riguarda le interazioni tra gli agenti all'interno del sistema e la composizione di ciascun agente stesso. Sebbene ci siano diversi modi per progettare un MAS, l'obiettivo principale rimane lo stesso: completare un'attività globale attraverso le azioni dei suoi componenti.

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.

Interazioni cooperative multiagente

Una delle fasi più difficili nella progettazione di un MAS funzionale è il coordinamento degli agenti in modo da garantire che cooperino nell'attività globale.4 Una collaborazione efficace richiede sia capacità individuali di risoluzione dei compiti che interazioni ben coordinate tra gli individui partecipanti.5 La pianificazione di un ambiente MAS comporta le seguenti considerazioni:

  1. I vincoli che le attività degli altri agenti pongono sulla scelta delle azioni di un agente
  2. I vincoli che gli impegni di un agente nei confronti degli altri pongono sulla scelta delle azioni di un agente
  3. L'evoluzione imprevedibile del mondo causata da altri agenti non modellati6

Un modo per affrontare questa sfida progettuale è modellare il lavoro di squadra in modo esplicito attraverso la collaborazione multiagente.

Il modello di progettazione multicollaborativo scompone un prompt complesso e delega le attività astratte ad agenti che le eseguono in base ai loro ruoli specializzati.7 Ad esempio, ChatDev utilizza un modello di comunicazione a doppio agente denominato ChatChain per facilitare la comunicazione cooperativa.

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.

Come funziona ChatDev?

I framework come ChatDev espandono le funzionalità degli LLM al di là delle loro eccezionali capacità di elaborazione del linguaggio naturale per la generazione di testi. ChatDev posiziona gli LLM come agenti versatili attraverso le sue tecniche di orchestrazione che implicano l'invio di prompt e la valutazione di più agenti collaborativi con vari ruoli sociali (ad esempio, ingegnere software, responsabile della tecnologia, amministratore delegato, progettista, addetto ai test).

Ogni agente usa il proprio ruolo specializzato per lavorare in modo collaborativo alle fasi principali del ciclo di vita dello sviluppo software. Questo processo comporta un'ampia comunicazione tra gli agenti nei loro ruoli specializzati per comprendere e analizzare le necessità attraverso il linguaggio naturale, nonché lo sviluppo e il debug tramite l'uso di linguaggi di programmazione. Le fasi della ChatChain presentano diversi livelli di interazione, sia nei linguaggi naturali che in quelli di programmazione, a seconda del ruolo e del prompt degli agenti.

Come ChatDev invia prompt ai suoi agenti AI autonomi

Gli agenti di ChatDev utilizzano il gioco di ruolo e l'inception prompting come guide per completare i loro compiti. L'inception prompting è un metodo di auto-prompt LLM conversazionale che consente agli agenti di inviarsi prompt l'un l'altro per completare le attività tramite giochi di ruolo.8

All'inizio di ogni fase delle sottoattività, ChatDev applica il prompt engineering. Sebbene ChatChain sia efficace nel definire il processo di completamento delle attività, il semplice scambio di risposte tra agenti senza ulteriori prompt o linee guida non è efficace per una comunicazione orientata alle attività e articolata in più fasi. Per promuovere lo sviluppo di comunicazioni produttive ed evitare problemi quali l'inversione dei ruoli, la ripetizione delle istruzioni e le risposte non pertinenti, ChatDev utilizza un meccanismo di inception prompting.

Il meccanismo di inception prompting funziona con l'ipnosi degli LLM con il prompt dell'istruttore e del sistema assistente al momento della loro istanziazione. L'ipnosi degli LLM può avere una connotazione negativa (può essere usata in modo dannoso per manipolare un modello), ma in questo caso è un modo per inviare prompt in modo efficace gli agenti che interpretano i ruoli. Nel prompt, le attività e i ruoli sono specificati per garantire che l'LLM istruisca gli agenti su come svolgere il loro ruolo collaborativo e seguire le istruzioni.

Questi prompt iniziali per ciascun ruolo guidano gli agenti a fornire risposte appropriate senza invertire i ruoli. I prompt per entrambi i ruoli nel sistema sono quasi identici, riguardano la panoramica e gli obiettivi dell'attuale sottoattività, i ruoli specializzati, gli strumenti esterni disponibili, i protocolli di comunicazione, le condizioni di conclusione e i vincoli o i requisiti per prevenire comportamenti indesiderati.9 Questo meccanismo funziona come un guardrail LLM, migliorando la qualità delle risposte e riducendo la necessità dell'intervento umano.

Come interagiscono gli agenti AI in ChatDev

Per promuovere una comunicazione cooperativa adeguata tra gli agenti, ChatDev introduce un workflow agentico denominato ChatChain per suddividere ulteriormente ogni fase in sottoattività più gestibili. Questo processo guida le comunicazioni a più turni tra diversi ruoli per proporre e convalidare soluzioni per ogni sottoattività. Gli agenti sono governati da un meccanismo chiamato deallucinazione comunicativa, uno schema comunicativo per alleviare le allucinazioni inaspettate. Con questo meccanismo, gli agenti richiedono informazioni più dettagliate prima di rispondere direttamente e quindi procedere con la fase successiva della comunicazione in base a questi dettagli.10

ChatDev offre un visualizer basato su browser per studiare le interazioni di ogni singolo agente che agisce nell'ambito del proprio ruolo e ambiente. Questa interfaccia offre agli utenti la possibilità di esaminare la progettazione del sistema multiagente stesso. Gli utenti possono visualizzare la struttura di cooperazione artificiale che consente agli agenti di lavorare insieme per completare un'attività globale al di là delle loro capacità individuali.

ChatChain

ChatChain segue un modello di comunicazione a doppio agente che semplifica il processo di completamento delle attività lungo il workflow agentico. Il modello di progettazione agentica inizia segmentando il processo di sviluppo software in tre fasi sequenziali: progettazione, codifica e test. Le fasi di codifica e test sono ulteriormente suddivise in sottoattività: scrittura e completamento del codice, e revisione del codice (test statici) e test di sistema (test dinamici).

Ogni fase di comunicazione all'interno di una ChatChain è composta da un agente istruttore e un agente assistente. In ogni sottoattività, due agenti con ruoli specializzati distinti (come un revisore e un programmatore GUI) svolgono le funzioni di istruttore e assistente. L'agente istruttore istruisce il discorso verso il completamento di un'attività, mentre l'agente assistente riceve e segue queste istruzioni e risponde con soluzioni appropriate.11 Gli agenti avviano un dialogo a più turni fino al completamento dell'attività o al raggiungimento del consenso. Le soluzioni estratte dalla fase di comunicazione ampliano dal testo (ad esempio, una descrizione della funzionalità desiderata dell'applicazione) al codice (ad esempio, il codice sorgente iniziale).

Questo workflow semplifica le comunicazioni evitando complicate topologie multiagente e semplificando efficacemente il processo di consenso.12 Questo approccio offre una transizione graduale tra le varie sottoattività, poiché le soluzioni delle attività precedenti fungono da ponte verso la fase successiva. Questo workflow continua fino al completamento di tutte le sottoattività, guidando gli agenti lungo il percorso. La struttura a catena del workflow collega le sottoattività in linguaggio naturale e linguaggio di programmazione, guidando efficacemente gli agenti in merito a cosa comunicare. ChatChain è una soluzione al problema più complesso della progettazione MAS: la cooperazione tra agenti.

Utilizzando le impostazioni predefinite, la ChatChain produce i software nel seguente ordine:

  • Analisi della domanda: decidi il processo procedurale complessivo per l'applicazione.
  • Selezione del linguaggio: decidi quale linguaggio di programmazione utilizzare per creare ed eseguire il software.
  • Codifica: gli agenti scrivono il codice per creare l'applicazione.
  • CodeCompleteAll: completa il codice includendo le funzioni/classi mancanti.
  • CodeReview: controlla e modifica il codice per garantirne la funzionalità.
  • Test: esegui il software e modifica il codice in base al report dei test.
  • EnvironmentDoc: documenta l'ambiente.
  • Manuale: documenta e scrivi un manuale per l'applicazione.

Deallucinazione comunicativa

Le allucinazioni degli LLM si verificano quando i modelli producono output imprecisi o privi di senso. Le allucinazioni di codifica sono un tipo di allucinazione che influisce sugli output dei modelli che eseguono attività legate alla programmazione. I ricercatori di ChatDev hanno scoperto che spesso le allucinazioni di codifica si presentano quando l'agente che esegue la funzionalità dell'assistente fatica a seguire delle istruzioni precise.13 Gli assistenti faticano a rispettare le istruzioni, in genere a causa della vaghezza che richiede molteplici interazioni e aggiustamenti successivi. Per evitare output indesiderati, ChatDev introduce la deallucinazione comunicativa.

La deallucinazione comunicativa dà all'assistente un prompt perché richieda attivamente all'istruttore dei suggerimenti più dettagliati prima di fornire una risposta formale.14 Gli assistenti assumono un ruolo simile a quello degli istruttori e ricercano proattivamente ulteriori informazioni (ad esempio, i nomi precisi delle dipendenze esterne o a quale repository GitHub inviare le modifiche), effettuando una deliberata "inversione di ruolo" prima di fornire una risposta. L'assistente esegue un'ottimizzazione precisa dopo che l'istruttore ha risposto con le modifiche. Il modello di comunicazione istruisce gli agenti su come comunicare, consentendo uno scambio di informazioni granulare e riducendo anche le allucinazioni di codifica.

Visualizer

Visualizer di ChatDev è un'app Python che esegue una demo web locale in cui gli utenti possono visualizzare i log in tempo reale, i log riprodotti e ChatChain. L'app contiene tre visualizer di log separati per ognuno.

  • Log Visualizer: un registro in tempo reale che stampa le informazioni di dialogo dell'agente, le modifiche all'ambiente e altre informazioni di sistema utili per il debug.
  • Replay Visualizer: il log dei replay stampa le informazioni di dialogo dell'agente.
  • ChatChain Visualizer: gli utenti possono caricare qualsiasi file di configurazione ChatChain e visualizzare la catena di workflow agentica per qualsiasi progetto software attuale o precedente. Questa funzione offre una visione trasparente dell'intero processo di sviluppo software per consentire agli utenti di esaminare ogni risoluzione delle sottoattività e identificare eventuali inefficienze.

Il Visualizer contiene anche una pagina Chat Replay che mostra i dialoghi in linguaggio naturale tra gli agenti per una determinata applicazione software generata.

Integrazione LLM di ChatDev

Il concetto del modello di progettazione agentico di ChatDev è come una tecnica di machine learning di combinazione di esperti, con la differenza che i suoi agenti AI che sono esperti specializzati nella gestione di attività complesse. I sistemi di orchestrazione sono necessari per coordinare la collaborazione tra una combinazione di agenti specializzati.

La base di tali orchestrazioni sono modelli di trasformatori preaddestrati come i modelli GPT di OpenAI.15 I foundation model come la serie granite di IBM possono essere utilizzati anche per fornire agenti con solide capacità linguistiche e garantire loro funzionalità specializzate. Ad esempio, Granite Code è una famiglia di modelli con dimensioni dei parametri che vanno da 3B a 34B e sono addestrati sulla base di 116 linguaggi di programmazione. Questa offerta è vantaggiosa per i framework agentici che pianificano l'uso di agenti comunicativi per lo sviluppo software. Al momento in cui scriviamo, ChatDev supporta i modelli GPT-3.5-turbo e GPT-4 di OpenAI per potenziare i loro agenti intelligenti.

Come si scala ChatDev

ChatDev sta implementando un modo per scalare la collaborazione multiagente basata su LLM con le reti di collaborazione multiagente (MacNet). MacNet si ispira alla legge di scalabilità neurale, che suggerisce che l'aumento dei neuroni porta a capacità emergenti.16 ChatDev propone un principio simile, che si applica all'aumento degli agenti nella collaborazione multiagente.

MacNet utilizza grafi aciclici per strutturare gli agenti e migliorare il loro ragionamento interattivo attraverso l'ordinamento topologico. Le soluzioni derivano dalle interazioni degli agenti. Questo processo supera costantemente i modelli di base in termini di prestazioni, facilitando una collaborazione efficiente tra gli agenti in diverse topologie di rete e consentendo la cooperazione tra più di mille agenti. Attraverso questa applicazione, ChatDev ha identificato una legge sulla scalabilità collaborativa che dimostra che la qualità delle soluzioni migliora in un modello di crescita logistica all'aumentare del numero di agenti.

Sistemi multiagente per lo sviluppo software

Invece che cercare di racchiudere tutte le funzionalità in un unico modello, i sistemi multiagente suddividono le attività tra diversi agenti specializzati. Gli agenti possono utilizzare lo stesso modello linguistico o modelli diversi, offrendo loro il potenziale per svolgere un'ampia gamma di attività.

ChatDev ha effettuato una valutazione in un popolare documento di ricerca che confronta le sue prestazioni con quelle di altri due framework di orchestrazione dello sviluppo software basati su LLM, GPT-Engineer e MetaGPT. Le metriche si basavano su completezza, eseguibilità, coerenza e qualità. ChatDev e MetaGPT hanno superato GPT-Engineer, un approccio di orchestrazione con un solo agente, dimostrando che le attività complesse sono più difficili da completare in una soluzione con un'unica fase. Questi risultati sulle prestazioni suggeriscono che la suddivisione delle attività complesse in attività secondarie più gestibili migliora l'efficacia del completamento delle attività.

ChatDev ha superato significativamente MetaGPT nelle metriche della qualità grazie ai metodi di comunicazione cooperativa degli agenti che utilizzano linguaggi sia naturali che di programmazione. Gli agenti capaci comunicare in modo efficiente sono stati in grado di portare ogni sottoattività verso il completamento, superando i vincoli che sono tipicamente legati alle regole di ottimizzazione stabilite manualmente.17 Questo risultato suggerisce che i framework multiagente che utilizzano agenti comunicativi e collaborativi offrono funzioni più versatili e adattabili.

Altri framework multiagente

GPT-Engineer – Un framework di orchestrazione con un solo agente per la creazione di applicazioni software. L'utente invia un prompt all'AI per creare un'applicazione con la funzionalità software desiderata e può comunicare a più riprese con il sistema per apportare miglioramenti o aggiornamenti.18 Gli utenti possono confrontare le proprie implementazioni di agenti con i set di dati più diffusi attraverso "bench", un file binario installato nel sistema che contiene una semplice interfaccia di benchmarking.

MetaGPT – Un framework multiagente che funziona come un'entità software collaborativa che assegna diversi agenti di ruolo ai modelli GPT per completare attività complesse. Come in ChatDev, gli agenti mantengono vari ruoli all'interno di un ambiente virtuale simile a un'azienda di software. MetaGPT utilizza anche delle SOP (procedure operative standard) orchestrate con cura per generare software.

crewAIcrewAI è un framework multiagente open source che funziona su LangChain. Organizza agenti AI autonomi in team che gestiscono i workflow e le attività correlate alle applicazioni LLM. crewAI si integra con qualsiasi LLM.

AutoGen – Il framework di conversazione multiagente open source di Microsoft offre un'astrazione elevata dei foundation model. AutoGen è un framework basato su agenti che utilizza più agenti per interagire e completare le attività. Le sue caratteristiche principali sono gli agenti AI personalizzabili che partecipano a dialoghi multiagente con schemi adattabili, consentendo la creazione di diverse applicazioni LLM.

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
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Prossimi passi

Sia che tu scelga di personalizzare app e competenze precostituite o di creare e implementare servizi di agenti personalizzati utilizzando uno studio di AI, la piattaforma IBM watsonx è la soluzione che fa per te.

Scopri watsonx Orchestrate Esplora watsonx.ai