Cos'è MetaGPT?

Autori

Vanna Winland

AI Advocate & Technology Writer

Meredith Syed

AI Developer Advocate Lead

Cos'è MetaGPT?

MetaGPT è un framework multiagente open source che orchestra l'uso della conoscenza procedurale umana e degli agenti AI basati su modelli linguistici di grandi dimensioni (LLM) per sviluppare una vasta gamma di soluzioni software. MetaGPT, in qualità di azienda di software AI, si avvale di agenti AI specializzati che svolgono ruoli simili a quelli delle aziende di software tradizionali.

MetaGPT è la tecnologia proprietaria di DeepWisdom fondata da Chenglin Wu. Il framework ha guadagnato rapidamente popolarità su GitHub, suscitando interesse per l'obiettivo di fondo di MetaGPT di promuovere il progresso della programmazione in linguaggio naturale utilizzando sistemi multiagente (MAS).

Il rinomato articolo di ricerca "MetaGPT: Metaprogramming for A Multi-Agent Collaborative Framework" illustra l'orchestrazione della collaborazione tra agenti all'interno del framework. Mentre la ricerca sull'orchestrazione LLM e sugli agenti AI continua, MetaGPT è uno dei primi collaboratori a offrire un approccio alla collaborazione multiagente con l'utilizzo di workflow familiari.

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.

Che cos'è la collaborazione multiagente?

Gli agenti che agiscono all'interno di un sistema multiagente (MAS) rimangono autonomi ma cooperano e si coordinano anche in strutture agentiche o framework come MetaGPT.1 Un MAS coordina i singoli agenti perché operino e interagiscano all'interno del loro ambiente per completare attività complesse al fine di raggiungere un obiettivo comune. Questa idea rientra nell'ambito dell'intelligenza collettiva, un concetto popolare a volte correlato all'AGI.

Un sistema multiagente è costituito da una rete di agenti che risolvono i problemi e che collaborano per affrontare sfide che vanno oltre la capacità di un singolo agente2. Una delle sfide chiave nella progettazione di un MAS efficace è coordinare gli agenti per garantire la loro collaborazione per il raggiungimento di un obiettivo comune. Una collaborazione efficiente si basa sulla capacità di ciascun agente di risolvere attività singole, nonché sulla loro capacità di interagire efficacemente tra loro.3

Le considerazioni nella pianificazione di un ambiente MAS includono:

  • Le limitazioni che le attività degli altri agenti creano per il processo decisionale di un agente,
  • I vincoli che derivano dagli impegni di un agente nei confronti degli altri in merito alle azioni disponibili,
  • E l'evoluzione imprevedibile del mondo causata da agenti esterni e non modellati.4

Un approccio a questa sfida progettuale è l'orchestrazione della collaborazione tra agenti modellando esplicitamente il lavoro di squadra. 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.5

All'interno del framework collaborativo multiagente di MetaGPT, un team di agenti AI opera secondo un workflow strutturato guidato da procedure operative standard (SOP) che definiscono ruoli e istruzioni distinti. Integrando protocolli di comunicazione e workflow semplificati all'interno di sistemi multiagente basati su LLM, gli utenti possono creare applicazioni con una sola linea di input.

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 MetaGPT?

MetaGPT agisce come un framework collaborativo multiagente in grado di risolvere compiti complessi. Il framework di collaborazione multiagente funziona simulando un'intera società di software utilizzando agenti specializzati che interagiscono in base a procedure operative standard e a un paradigma di catena di assemblaggio per suddividere le attività. Ogni agente svolge un ruolo specializzato in base alle sue funzioni all'interno della società di software. Ad esempio, il framework include agenti che agiscono come responsabili prodotto, architetti, responsabili di progetto e ingegneri che offrono l'intero processo di un'azienda di software.

Questi agenti, nei loro diversi ruoli, agiscono all'interno di uno spazio di lavoro virtuale per prendere un requisito di una riga come input e output da varie soluzioni software. Questo input include strutture di dati, application programming interface (API), analisi della concorrenza e documenti. Gli agenti comunicano attraverso output strutturati basati sui requisiti stabiliti da un paradigma di catena di assemblaggio. Ogni agente genera le informazioni necessarie per inviare prompt all'agente successivo al fine di completare l'obiettivo collettivo: produrre un'applicazione sulla base del prompt dell'utente. Questo processo di sviluppo incrementale è dovuto al modo in cui MetaGPT integra i workflow umani per semplificare il coordinamento per un'attività complessa.

Conoscenza procedurale umana per la collaborazione multiagente

Le procedure operative standard sono state adottate in vari ambiti in quanto svolgono un ruolo critico nel favorire la scomposizione delle attività e il coordinamento efficace.6 Nello sviluppo software, le SOP promuovono la collaborazione tra i team scomponendo le attività del progetto in procedure più piccole e attuative che vengono poi assegnate a ruoli specifici e specializzati. MetaGPT codifica le SOP in sequenze di prompt per organizzare e promuovere workflow multiagente. I workflow SOP introducono una struttura e delle opportunità di perfezionamento. 

Ad esempio, all'agente responsabile del progetto viene dato il prompt di creare un documento sui requisiti del prodotto (PRD). L'agente responsabile del prodotto riceve un prompt una volta e successivamente gli viene chiesto di perfezionare alcuni elementi del PRD per via dello sviluppo incrementale del progetto. Ad esempio, l'agente viene incaricato di creare una sezione all'interno del PRD per gli "obiettivi del prodotto". Gli viene quindi fornito un prompt per perfezionare nuovamente tali obiettivi aggiornando gli obiettivi del prodotto originali per garantire che siano in linea con la direzione attuale del progetto.7 Questo metodo di perfezionamento viene utilizzato per garantire che l'attività globale sia riconosciuta e coesa per tutti gli agenti.

Nell'esempio seguente, all'agente responsabile del prodotto viene dato il prompt di generare un'analisi dei requisiti. Dopo questo prompt iniziale, all'agente viene richiesto di generare un'analisi rifinita che tenga conto di eventuali nuove caratteristiche e miglioramenti derivanti dalla collaborazione in corso.

Prompt per l'analisi dei requisiti: "Fornisci un'analisi dettagliata dei requisiti".8

Prompt per l'analisi rifinita:"Controlla e perfeziona l'analisi dei requisiti esistente in un elenco di stringhe in modo che sia in linea con le mutevoli esigenze del progetto per via dello sviluppo incrementale. Assicurati che l'analisi copra in modo completo le nuove caratteristiche e i miglioramenti necessari per l'ambito rifinito del progetto".9

Questo esempio dimostra un PRD generato come output standardizzato che viene passato dall'agente responsabile del prodotto all'agente architetto. Accanto a essi è elencato il prompt basato su SOP per ogni output generato. Si noti che il prompt si basa in modo analogo sul workflow SOP, incluse le definizioni dei requisiti, i metodi per il completamento delle attività e l'ordine per completarle:

Prompt dell'utente"Sviluppami un'applicazione web basata su app e React che i gestori patrimoniali possano utilizzare per esaminare i portafogli dei loro clienti e formulare raccomandazioni sui fondi appropriati da utilizzare. Questa applicazione deve funzionare in America, Regno Unito e Spagna".

Requisiti originali
Prompt: "Inserisci qui i requisiti dell'utente originali".10

"Sviluppami un'applicazione web basata su app e React che i gestori patrimoniali possano utilizzare per esaminare i portafogli dei loro clienti e formulare raccomandazioni sui fondi appropriati da utilizzare. Questa applicazione deve funzionare in America, Regno Unito e Spagna."

Obiettivi del prodotto 
Prompt: "Fornisci fino a tre obiettivi di prodotto chiari e ortogonali."11

  1. Sviluppare un'applicazione web sicura e affidabile per i gestori patrimoniali.
  2. Garantire il supporto multilingue per le varianti in inglese, spagnolo e regionali.
  3. Crea un'interfaccia intuitiva e facile da usare per la gestione e la raccomandazione del portafoglio.

Storie di utenti 
Prompt: "Fornisci fino a 3-5 storie di utenti basate su scenari."12

  1. In qualità di gestore patrimoniale, desidero esaminare il portafoglio dei miei clienti e fornire una consulenza personalizzata.
  2. In qualità di gestore patrimoniale, desidero consigliare dei fondi ai miei clienti in base ai loro obiettivi di investimento e alla loro tolleranza al rischio.
  3. In qualità di gestore patrimoniale, desidero accedere all'applicazione in inglese o spagnolo a seconda della mia posizione.

Analisi della concorrenza
Prompt: "Fornisca da 5 a 7 prodotti della concorrenza."13

  1. "Wealthfront: servizio di investimento automatizzato con un'interfaccia ordinata, ma privo di raccomandazioni personalizzate sui fondi."
  2. "Personal Capital: offre strumenti di gestione patrimoniale completi, ma può risultare complesso per i nuovi utenti."
  3. "Betterment: si concentra sugli investimenti automatizzati con una personalizzazione limitata per i gestori patrimoniali."

Analisi dei requisiti: Prompt: "Fornisci un'analisi dettagliata dei requisiti."14

L'applicazione deve essere creata utilizzando React, assicurando che sia scalabile e di facile manutenzione. Dovrebbe disporre di un'interfaccia multilingue per soddisfare le esigenze degli utenti in America, nel Regno Unito e in Spagna. L'applicazione deve essere sicura per proteggere i dati finanziari sensibili e rispettare le normative regionali. Dovrebbe inoltre integrarsi con varie fonti di dati finanziari per fornire analisi del portfolio e raccomandazioni sui fondi in tempo reale.

Insieme di requisiti
Prompt: "Elenca i primi 5-7 requisiti con la loro priorità (P0, P1, P2).", "Copri sia i contenuti obsoleti che i contenuti incrementali. Conserva i contenuti non correlati allo sviluppo incrementale."15

  •  ("Autenticazione sicura dell'utente e crittografia dei dati per proteggere le informazioni del cliente.", "P0"),
  • ("Supporto multilingue di inglese e spagnolo, con variazioni regionali.", "P0"),
  •  ("Integrazione in tempo reale con fonti di dati finanziari per la gestione del portafoglio.", "P0"),
  •  ("Dashboard per la revisione e la gestione dei portafogli dei clienti.", "P1"),
  • ("Motore di raccomandazione per suggerire fondi appropriati in base ai profili dei clienti.", "P2")

Bozza di progettazione dell'interfaccia utente
Prompt: "Fornisci una descrizione semplice degli elementi, delle funzioni, dello stile e del layout dell'interfaccia utente".16

L'interfaccia utente presenterà un design pulito e moderno con un dashboard che fornisce una panoramica dei portafogli dei clienti. Comprenderà dei grafici interattivi per l'analisi del portafoglio, una sezione con consigli per la scelta dei fondi e un facile passaggio dalla lingua inglese a quella spagnola e viceversa.

Cose NON CHIARE
Prompt: "Menziona gli aspetti del progetto che non sono chiari e cerca di chiarirli."17

Non vi sono punti poco chiari.

L'esempio precedente è un passaggio di consegne all'agente architetto per la progettazione; ecco il prompt basato su SOP fornito insieme al PRD:

"Ecco il documento con i requisiti del prodotto (PRD): in base a questo esame del PRD, verifica se questa progettazione API soddisfa i requisiti del PRD e se è conforme alle best practice di progettazione."18

L'architetto segue il suo workflow SOP per progettare il sistema per l'applicazione.

Una SOP delinea le responsabilità del ruolo di ciascun agente e stabilisce gli standard per gli output intermedi. Queste SOP vengono quindi codificate per influenzare il comportamento dell'agente. Questa pratica consente agli agenti di generare output strutturati, come documenti sui requisiti, artefatti di progettazione, diagrammi di flusso e specifiche di interfaccia di alta qualità. Tutti i passaggi di consegne tra agenti devono rispettare determinati standard stabiliti che riducono il rischio di allucinazioni causate da chiacchiere inutili tra LLM. L'uso di output strutturati migliora notevolmente il tasso di successo della generazione del codice target.19

In che modo MetaGPT utilizza le SOP per dare prompt agli agenti

Tutti gli agenti di MetaGPT agiscono come dipendenti che devono seguire un flusso di lavoro rigoroso e semplificato. Ci sono due parti principali all'interno della SOP che definiscono il comportamento degli agenti: specializzazione dei ruoli e workflow tra agenti.

Specializzazione del ruolo degli agenti: MetaGPT definisce cinque ruoli all'interno della società di software: responsabile prodotto, architetto, responsabile di progetto, ingegnere e ingegnere del controllo qualità. Il profilo di ogni agente viene inizializzato con informazioni specifiche come il nome dell'agente, il profilo, l'obiettivo e i vincoli per ogni ruolo, nonché il contesto e le competenze specifiche per ogni ruolo.20 Ogni agente è come un organismo digitale che agisce all'interno di un ambiente.21 Il concetto di ruoli predefiniti è diverso dai framework multiagente come crewAI che consentono agli utenti di definire la funzione dell'agente all'interno di un equipaggio per casi d'uso più generici.

Workflow tra agenti: la definizione dei ruoli e delle competenze operative degli agenti stabilisce un workflow di base che gli agenti devono seguire nel processo di sviluppo software. Gli agenti lavorano all'interno di un ordine sequenziale o di un paradigma di catena di assemblaggio per suddividere le attività complesse per garantire una maggiore efficienza all'interno del team.

Come interagiscono gli agenti in MetaGPT?

MetaGPT afferma che una collaborazione significativa richiede processi di risoluzione dei problemi efficaci, coerenti e accurati. Gli agenti AI sono sistemi complessi; tuttavia, i loro processi non devono necessariamente esserlo, almeno non secondo MetaGPT e la sua eredità di flussi di lavoro umani semplici.

Protocollo di comunicazione

Gli agenti interagiscono all'interno di un'interfaccia di comunicazione strutturata denominata protocollo di comunicazione. MetaGPT si differenzia dalla maggior parte dei framework multiagente basati su LLM perché non utilizza il linguaggio naturale non vincolato come interfaccia di comunicazione e propone invece l'uso di una comunicazione strutturata per formulare l'interazione tra gli agenti. Ad esempio, in ChatDev, un altro framework di collaborazione multiagente, gli agenti comunicano attraverso il dialogo, mentre gli agenti in MetaGPT comunicano tramite output strutturati come documenti e diagrammi.

Per facilitare questo protocollo di comunicazione, MetaGPT stabilisce uno schema e un formato per ogni agente e richiede che ogni ruolo diverso fornisca gli output necessari in base al proprio obiettivo e contesto specifici.22 In un esempio, l'agente architetto genera due output: la progettazione dell'interfaccia di sistema e un diagramma di flusso di sequenza. Entrambi gli output contengono sequenze di progettazione e interazione dei moduli di sistema che fungono da risultati fondamentali per gli agenti ingegneri.23

Meccanismo di pubblicazione e abbonamento

Per migliorare l'efficienza della comunicazione, MetaGPT utilizza un pool globale di messaggi per memorizzare informazioni che consentono agli agenti di scambiarsi messaggi in modo diretto. Gli agenti pubblicano i loro messaggi strutturati nel pool e possono accedere ai messaggi di altri agenti in modo trasparente. Questo approccio consente agli agenti di accedere direttamente alle informazioni necessarie dal pool comune, eliminando la necessità di chiedere ad altri agenti e di attendere le loro risposte.24

Processo di sviluppo di MetaGPT

Il processo di sviluppo inizia con un comando di input dell'utente e termina con un software progettato in base alle specifiche dell'utente. Ad esempio, l'input dell'utente potrebbe essere "Scrivi un'applicazione GUI Python in modo che si possa usare per disegnare un'immagine". Il prompt dell'utente viene trasmesso alla società di software, un team di agenti che giocano dei ruoli: responsabile prodotto, architetto, responsabile di progetto, ingegnere, ingegnere del controllo qualità

Dopo aver ricevuto il prompt dell'utente per creare un'applicazione specifica, il responsabile prodotto genera un PRD che comprende obiettivi, storie degli utenti, analisi della concorrenza, analisi dei requisiti e insieme di requisiti. Inoltre, l'agente responsabile del prodotto genera anche un grafico a quadranti sulla concorrenza basato sulle specifiche dell'applicazione. Questi documenti e grafici vengono consegnati all'agente architetto per la progettazione del sistema.

L'agente architetto elabora le specifiche tecniche in base ai requisiti del PRD. Le specifiche includono i diagrammi dell'architettura del sistema e le definizioni per l'interfaccia per la traiettoria tecnica complessiva del progetto. L'architettura del progetto, inclusi i file, le classi e il diagramma di flusso della sequenza, è progettata in base alle definizioni tecniche dell'agente architetto. La documentazione generata dall'architetto viene quindi consegnata al responsabile del progetto per passare all'assegnazione e all'esecuzione delle attività.

Il manager di progetto suddivide il progetto in un elenco di attività. Ogni file di codice viene analizzato in base alla funzionalità prevista e quindi trattato come un'attività separata assegnata agli ingegneri.

L'agente ingegnere genera il codice necessario con competenze di sviluppo fondamentali per completare le attività di sviluppo. Dopo aver ricevuto l'output del codice dall'agente ingegnere, l'agente ingegnere del controllo qualità genera il codice di test unitario e lo controlla per individuare e correggere eventuali bug.

Integrazione di LLM in MetaGPT

Gli agenti di MetaGPT si basano sulla serie di modelli GPT (Generative Pretrained Transformer) GPT-3.5 e GPT-4 di OpenAI. Tuttavia, MetaGPT e la sua comunità open source hanno contribuito all'aggiunta di diversi altri modelli che possono essere inizializzati tramite la configurazione dell'API LLM. Meta GPT offre un tutorial che facilita l'esplorazione di come eseguire l'integrazione con gli LLM open source sul suo sito di documenti di GitHub. Il primo passo per l'integrazione di un LLM consiste nella configurazione di un repository (repo) di inferenza come LLaMA-Factory, FastChat, Ollama e così via. Questo repository consente la distribuzione del modello LLM corrispondente configurato tramite le sue credenziali API. Tutti i repository di inferenza supportati, ad eccezione di Ollama, supportano la pubblicazione di interfacce compatibili con OpenAI. MetaGPT si propone di supportare l'interfaccia Ollama in futuro.

Gli agenti AI possono eccellere nella metaprogrammazione?

I framework di metaprogrammazione offrono la funzionalità per creare programmi in grado di scrivere, manipolare e analizzare altri programmi, oltre al programma stesso. MetaGPT modella questo scopo incorporando workflow umani per potenziare l'AI generativa utilizzando tecniche basate su agenti per migliorare la metaprogrammazione.

Gli agenti basati su LLM contengono diverse funzionalità di base che hanno avanzato le attività di programmazione automatica.25 Tra questi progressi ci sono ReAct e Reflexion, paradigmi di ragionamento utilizzati dagli agenti che impiegano un prompt a catena di pensieri per generare traiettorie di ragionamento e piani d'azione con gli LLM.26

Il ciclo di progettazione di agenti ReAct dimostra un processo efficace per la programmazione automatica grazie al suo ciclo di progettazione iterativo che consente agli agenti di ragionare, agire e osservare.27 La riflessione rafforza gli agenti linguistici attraverso il feedback linguistico, seguendo un ciclo di progettazione iterativo simile per indurre un migliore processo decisionale.28 Entrambi i paradigmi consentono agli agenti di apprendere e migliorare continuamente il proprio workflow.

Gli LLM tradizionali, come il modello GPT-3 di OpenAI, i modelli Llama di Meta e i modelli IBM Granite, sono limitati in quanto a conoscenza e ragionamento. Generano risposte sulla base dei dati di addestramento, che spesso possono includere informazioni obsolete. Al contrario, la tecnologia agentica utilizza le chiamate di strumenti di backend per accedere alle informazioni correnti, semplificare i workflow e creare autonomamente attività specifiche per raggiungere obiettivi complessi. Durante questo processo, l'agente autonomo impara ad adattarsi alle aspettative degli utenti nel corso del tempo, offrendo un'esperienza su misura e risposte più complete. Questa chiamata di strumenti può avvenire senza l'intervento umano, ampliando le potenziali applicazioni nel mondo reale per questi sistemi AI.

In che modo MetaGPT utilizza gli agenti di metaprogrammazione

Gli agenti ingegneri di MetaGPT partecipano alla programmazione iterativa con feedback eseguibili. I processi di debug e ottimizzazione sono importanti nelle attività di programmazione quotidiane. Altre implementazioni sono prive di meccanismi di autocorrezione degli agenti che portano a risultati indesiderati come allucinazioni di codice o codice non funzionante. Per mitigare questi rischi, MetaGPT introduce un meccanismo di feedback eseguibile per migliorare il codice a ogni iterazione.

L'agente ingegnere scrive il codice in base ai requisiti e alla progettazione originali del prodotto. Ciò consente all'agente di migliorare continuamente il codice utilizzando la propria memoria storica di esecuzione e debug. L'ingegnere ottiene ulteriori informazioni per migliorare il codice scrivendo ed eseguendo i casi di test per le unità corrispondenti. Dopo aver ricevuto i risultati, l'ingegnere procede con attività di sviluppo aggiuntive o esegue il debug del codice prima di riprendere la programmazione. Questo processo iterativo continua fino al superamento del test o al raggiungimento di un massimo di 3 tentativi.29

Altri framework multiagente

crewAI – CrewAI è un framework multiagente open source basato su python che sfrutta agenti autonomi che giocano di ruolo e lavorano insieme come una squadra per completare le attività. Gli utenti possono creare e personalizzare gli agenti in base alle esigenze o all'utilizzo delle applicazioni. I casi d'uso includono scopi generalizzati come la pianificazione e la creazione di contenuti, l'analisi dei dati e le attività di automazione. CrewAI offre l'integrazione con watsonx.ai di IBM, diverse integrazioni LLM e compatibilità con Ollama.30

ChatDev – ChatDev è un framework multiagente open source che simula una società di software virtuale che opera attraverso vari agenti intelligenti che ricoprono ruoli organizzativi diversi. Gli agenti collaborano attraverso il dialogo per produrre un prodotto software che includa codice eseguibile e documentazione. ChatDev supporta i modelli GPT-3.5-turbo e GPT-4 di OpenAI per potenziare i loro agenti intelligenti.31

AutoGPT – AutoGPT è un framework multiagente open source che applica l'elaborazione del linguaggio naturale (NLP) per comprendere gli obiettivi degli utenti e la scomposizione di attività complesse. Gli agenti collaborano in un workflow automatizzato per elaborare un prompt dell'utente di alto livello suddividendo ogni attività in una sequenza di sottoattività più piccole. I casi d'uso includono soluzioni generalizzate come ricerche e analisi di mercato, sviluppo di prodotti, assistenza virtuale e altro ancora. Questo framework è progettato con agenti AI basati su GPT-4 di OpenAI.32

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