Cos'è BabyAGI?

Autori

Ivan Belcic

Staff writer

Cole Stryker

Staff Editor, AI Models

IBM Think

BabyAGI è un framework di agenti autonomi progettato per generare ed eseguire una sequenza di attività in base a un obiettivo fornito dall'utente. Condiviso pubblicamente da Yohei Nakajima nel 2023, BabyAGI orchestra un ciclo di creazione, esecuzione e definizione delle priorità utilizzando un modello linguistico di grandi dimensioni (LLM) e un archivio di memoria vettoriale. 

L'implementazione standard è uno script Python che utilizza i modelli GPT di OpenAI tramite un'API, un database vettoriale (comunemente Pinecone) per la memoria e il framework di agenti LangChain per strutturare i ruoli degli agenti AI. Il database vettoriale registra i risultati delle attività come embedding utilizzati per il recupero del contesto, mentre l'LLM potenzia il ragionamento dell'agente e la logica delle attività.1

In qualità di agente AI autonomo, BabyAGI itera continuamente utilizzando i risultati delle attività completate per informare nuove attività, riassegnare le priorità all'elenco delle attività ed eseguire le attività secondarie. Il processo continua fino all'esaurimento della coda delle attività o al raggiungimento di una condizione di arresto.

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.

Come funziona BabyAGI?

BabyAGI utilizza un workflow di AI ripetuto in tre fasi: 

  1. Esecuzione dell'attività: l'agente di esecuzione esegue un'attività usando il contesto del database vettoriale e l'obiettivo di alto livello come indicazioni.
     

  2. Creazione dell'attività: in base al risultato dell'attività eseguita, l'agente per la creazione dell'attività genera attività di follow-up in linea con l'obiettivo originale. 
     

  3. Assegnazione delle priorità alle attività: un agente addetto alle priorità riordina tutte le attività in sospeso, comprese le nuove attività, in base alle dipendenze e alla pertinenza rispetto all'obiettivo. 

Il ciclo si ripete fino a quando non rimane più alcuna attività o viene soddisfatta un'altra condizione finale.

Caratteristiche principali di BabyAGI

BabyAGI è costituito da diversi moduli architetturali di base che collaborano per facilitare la generazione, la definizione delle priorità e l'esecuzione automatizzate delle attività. Questi componenti sono:

  • LLM
     

  • Database vettoriali
     

  • Elenco delle attività
     

  • Agente di esecuzione delle attività
     

  • Agente di creazione delle attività
     

  • Agente di definizione delle priorità delle attività

LLM

Il componente LLM di BabyAGI è l'orchestratore centrale del sistema agentico. Questo modello di intelligenza artificiale (AI) svolge il ruolo di direttore di alto livello, riceve il prompt dell'utente e lo valuta con l'elaborazione del linguaggio naturale (NLP) per identificare l'obiettivo. Inoltre, potenzia gli agenti che creano, eseguono e assegnano priorità alle attività.

BabyAGI utilizza in genere GPT-4 di OpenAI. I tre agenti del sistema BabyAGI utilizzano il prompt engineering per guidare il comportamento del GPT-4 nei suoi ruoli agentici.

Database vettoriale

Il componente del database vettoriale di BabyAGI memorizza i record e i risultati delle attività completate ed è la memoria dell'agente. BabyAGI può utilizzare i risultati del primo compito per informare il secondo compito e itera questo processo man mano che procede nell'elenco dei compiti.

I database vettoriali memorizzano i dati come rappresentazioni matematiche chiamate embedding. I punti dati più vicini tra loro nello spazio vettoriale ad alta dimensione sono considerati più simili dal punto di vista semantico. BabyAGI utilizza la ricerca semantica per trovare informazioni rilevanti nel database.

L'implementazione canonica utilizza Pinecone, ma a volte vengono utilizzati database vettoriali alternativi come Facebook AI Similarity Search (FAISS) e Chroma di Meta in varianti o fork. FAISS e Chroma sono open source, mentre Pinecone, come molti prodotti OpenAI, non lo è.

Elenco delle attività

L'elenco o la coda delle attività è un elenco con assegnazione di priorità delle attività secondarie derivanti dall'obiettivo di alto livello e dall'attività iniziale. Man mano che l'agente di esecuzione delle attività le completa, tali risultati vengono caricati nel database vettoriale. In base ai risultati di tali attività, il relativo elenco può cambiare man mano che le priorità vengono modificate e ne vengono aggiunte di nuove.

Agente di esecuzione delle attività

L'agente di esecuzione delle attività utilizza l'LLM e i dati nel database vettoriale per eseguire le attività elencate. Per trovare informazioni rilevanti nel database vengono utilizzate delle tecniche di ricerca semantica. Una volta completata l'attività, il sistema crea un nuovo embedding e memorizza il record nel database.

Agente di creazione attività

L'agente per la creazione delle attività utilizza l'obiettivo di alto livello e i risultati delle attività precedenti per generare le attività successive nel workflow. Piuttosto che lavorare tramite un workflow predeterminato, il processo di generazione continua delle attività consente al sistema di iterare sui risultati passati e apprendere in modo dinamico.

Agente di definizione delle priorità delle attività

L'agente di prioritizzazione delle attività le gestisce riordinandone e organizzandone regolarmente l'elenco. Il suo compito è dare priorità alle attività secondarie in base ai risultati delle attività precedenti e al modo in cui le nuove attività si relazionano all'obiettivo di alto livello. L'agente di prioritizzazione considera anche le dipendenze tra le attività, ovvero se un'attività deve essere completata prima che un'altra diventi possibile.

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 usare BabyAGI

BabyAGI è una libreria Python e richiede alcune conoscenze di codifica Python per essere utilizzata. Tuttavia, il processo di configurazione è relativamente snello:

  1. Installa Python e Git. Scarica il repository GitHub di BabyAGI da github.com.
     

  2. Apri la directory con BabyAGI e installa tutte le dipendenze usando il comando pip install .
     

  3. Crea un file con estensione .env e copia il file .env di esempio.
     

  4. Aggiungi una chiave API OpenAI e una chiave API Pinecone al file .env . Se necessario, crea prima un account OpenAI e ottieni una chiave API.
     

  5. Definisci l'obiettivo modificando il valore OBJECTIVE. Quindi, fornisci un compito iniziale.
     

  6. Salva e chiudi il file .env.
     

  7. Immetti il comando python babyagi.py per eseguire l'agente.

Casi d'uso di BabyAGI

BabyAGI è più una sandbox di formazione che un'applicazione a livello di produzione pronta per l'uso mainstream dell'agentic AI. Gli appassionati di machine learning (ML) e agentic AI hanno usato BabyAGI per esplorare task agent autonomi e ragionamenti a catena di pensiero con gli LLM.

BabyAGI e AutoGPT

BabyAGI viene spesso paragonato ad AutoGPT, un altro framework open source per agenti autonomi basato su LLM. Entrambi sono strumenti di AI progettati per automatizzare obiettivi in più fasi combinando un LLM con memoria e uso degli strumenti.

BabyAGI esegue un ciclo compatto che crea, esegue e riassegna priorità alle attività con un database vettoriale per la memoria a breve e lungo termine. AutoGPT fornisce un framework con caratteristiche per la scomposizione degli obiettivi, l'integrazione degli strumenti e l'uso di API esterne.

Mentre BabyAGI è meglio utilizzato come strumento di ricerca e sandbox, AutoGPT può automatizzare le attività su larga scala.

BabyAGI è un'intelligenza artificiale generale (AGI?)

Nonostante il nome, BabyAGI non è un esempio di intelligenza artificiale generale (AGI). L'AGI è un'ipotetica AI con funzionalità di pensiero e ragionamento a livello umano. Ad oggi, l'AGI è ancora un concetto teorico. Nessuna applicazione di AI, compresa BabyAGI, ha raggiunto un tale livello di sofisticazione.

Come molti altri esempi di applicazioni AI generativa, BabyAGI utilizza modelli statistici avanzati per prevedere il risultato più probabile per un determinato input. Non capisce, non impara e non pensa come gli esseri umani.

Che cos'è BabyAGI 2?

Nel 2024, Nakajima ha introdotto BabyAGI 2, una variante sperimentale che utilizza un framework functionz in grado di memorizzare le funzioni e i relativi metadati in un database. L'agente può caricare, eseguire e aggiornare le funzioni con i metadati durante la compilazione.

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