O que é o BabyAGI?

Autores

Ivan Belcic

Staff writer

Cole Stryker

Staff Editor, AI Models

IBM Think

O BabyAGI é um framework de agente autônomo projetado para gerar e executar uma sequência de tarefas com base em um objetivo fornecido pelo usuário. Publicamente compartilhado por Yohei Nakajima em 2023, o BabyAGI orquestra um ciclo de criação, execução e priorização de tarefas usando um grande modelo de linguagem (LLM) e um armazenamento de memória vetorial. 

A implementação padrão é um script Python que utiliza os modelos do GPT da OpenAI por meio de uma API, um banco de dados de vetores (geralmente Pinecone) para memória e o framework de agente LangChain para estruturar as funções dos agentes de IA. O banco de dados de vetores registra os resultados das tarefas como embeddings usadas para recuperação de contexto, enquanto o LLM alimenta o raciocínio do agente e a lógica da tarefa.1

Como um agente de IA autônomo, o BabyAGI itera continuamente usando os resultados das tarefas concluídas para informar novas tarefas, mudar a prioridade da lista de tarefas e executar subtarefas. O processo continua até que a fila de tarefas se esgote ou uma condição de parada seja atingida.

Como o BabyAGI funciona?

O BabyAGI usa um fluxo de trabalho de IA repetido em três estágios: 

  1. Execução de tarefas: o agente de execução executa uma tarefa usando o contexto do banco de dados de vetores e o objetivo de alto nível como orientação.
     

  2. Criação de tarefas: com base no resultado da tarefa executada, o agente de criação de tarefas gera tarefas de acompanhamento que se alinham ao objetivo original. 
     

  3. Priorização de tarefas: um agente de priorização reordena todas as tarefas pendentes, incluindo novas tarefas, com base nas dependências e relevância para o objetivo. 

O loop se repete até que não haja mais tarefas ou outra condição final seja atendida.

Características principais do BabyAGI

O BabyAGI consiste em vários módulos de arquitetura central que trabalham juntos para facilitar a geração, priorização e execução automatizadas de tarefas. Esses componentes incluem:

  • LLM
     

  • Banco de dados de vetores
     

  • Lista de tarefas
     

  • Agente de execução de tarefas
     

  • Agente de criação de tarefas
     

  • Agente de priorização de tarefas

LLM

O componente de LLM do BabyAGI é o orquestrador central do sistema de agentes. Esse modelo de inteligência artificial (IA) atua como um diretor de alto nível, que recebe o prompt do usuário e o avalia com processamento de linguagem natural (NLP) para identificar o objetivo. Ela também capacita os agentes que criam, executam e priorizam tarefas.

O BabyAGI normalmente usa o GPT-4 da OpenAI. Os três agentes do sistema BabyAGI usam engenharia de prompts precisa para orientar o comportamento do GPT-4 em suas funções agênticas.

Banco de dados de vetores

O componente de banco de dados de vetores do BabyAGI armazena os registros e resultados de tarefas concluídas e funciona como a memória do agente. O BabyAGI pode usar os resultados da primeira tarefa para informar a segunda tarefa e itera esse processo à medida que avança na lista de tarefas.

Os bancos de dados de vetores armazenam dados como representações matemáticas chamadas embeddings. Pontos de dados que estão mais próximos uns dos outros no espaço vetorial de alta dimensão são considerados mais semanticamente semelhantes. O BabyAGI usa pesquisa semântica para encontrar informações relevantes no banco de dados.

A implementação canônica usa o Pinecone, mas armazenamentos de vetores alternativos, como o Facebook IA Similarity Search (FAISS) da Meta e o Chroma, às vezes, são usados em variantes ou forks. O FAISS e o Chroma são de código aberto, enquanto o Pinecone, como muitos produtos da OpenAI, não é.

Lista de tarefas

A lista ou fila de tarefas é uma lista priorizada de subtarefas decorrentes do objetivo de alto nível e da tarefa inicial. À medida que o agente de execução de tarefas conclui as tarefas, esses resultados são carregados no banco de dados de vetores. Com base nos resultados dessas tarefas, a lista de tarefas pode mudar à medida que as prioridades são ajustadas e novas tarefas são adicionadas.

Agente de execução de tarefas

O agente de execução de tarefas usa o LLM e os dados no banco de dados de vetores para executar as tarefas na lista de tarefas. Técnicas de busca semântica são usadas para encontrar informações relevantes no banco de dados. Após a conclusão da tarefa, o sistema cria uma nova embedding e armazena o registro no banco de dados.

Agente de criação de tarefas

O agente de criação de tarefas usa o objetivo de alto nível e os resultados de tarefas anteriores para gerar as próximas tarefas no fluxo de trabalho. Em vez de trabalhar em um fluxo de trabalho predeterminado, o processo de geração contínua de tarefas permite que o sistema itere resultados anteriores e aprenda dinamicamente.

Agente de priorização de tarefas

O agente de priorização de tarefas lida com o gerenciamento de tarefas reordenando e organizando regularmente a lista de tarefas. Sua função é priorizar subtarefas com base nos resultados de tarefas anteriores e em como as novas tarefas se relacionam com o objetivo de alto nível. O agente de priorização também considera as dependências entre as tarefas: se uma tarefa deve ser concluída antes que outra se torne possível.

Agentes de IA

Cinco tipos de agentes de IA: funções autônomas e aplicações no mundo real

Saiba como a IA orientada por objetivos e baseada em utilidade se adapta a fluxos de trabalho e ambientes complexos.

Como usar o BabyAGI

O BabyAGI é uma biblioteca Python e exige algum conhecimento de programação Python para ser usado. No entanto, o processo de configuração é relativamente simplificado:

  1. Instale o Python e o Git. Baixe o repositório BabyAGI GitHub em github.com.
     

  2. Abra o diretório com o BabyAGI e instale todas as dependências com o comando pip install.
     

  3. Crie um arquivo .env e copie o arquivo de exemplo de .env para ele.
     

  4. Adicione uma chave de API do OpenAI e uma chave de API do Pinecone no arquivo .env . Se necessário, primeiro crie uma conta do OpenAI e obtenha uma chave de API.
     

  5. Defina o objetivo alterando o valor de OBJECTIVE. Em seguida, forneça uma tarefa inicial.
     

  6. Salve e feche o arquivo .env .
     

  7. Insira o comando python babyagi.py para executar o agente.

Casos de uso do BabyAGI

O BabyAGI é mais uma área de testes educacional, em vez de uma aplicação de nível de produção pronta para uso de IA agêntica convencional. Entusiastas de aprendizado de máquina (ML) e IA agêntica usaram o BabyAGI para explorar agentes de tarefas autônomos e raciocínio em cadeia de pensamento com LLMs.

BabyAGI versus AutoGPT

O BabyAGI é frequentemente comparado ao AutoGPT, outro framework de código aberto para agentes autônomos desenvolvidos em LLMs. Ambos são ferramentas de IA projetadas para automatizar objetivos multietapas ao combinar um LLM com uso de memória e ferramentas.

O BabyAGI executa um loop compacto que cria, executa e muda a prioridade de tarefas com um banco de dados de vetores para memória de curto e longo prazo. O AutoGPT fornece um framework rico em funcionalidades para decomposição de objetivos, integração de ferramentas e uso de APIs externas.

Enquanto o BabyAGI é mais adequado como ferramenta de pesquisa e área de testes, o AutoGPT pode automatizar tarefas em escala maior.

O BabyAGI é uma inteligência artificial geral (AGI?)

Apesar do nome, o BabyAGI não é um exemplo de inteligência artificial geral (AGI). A AGI é uma IA hipotética que possui recursos de pensamento e raciocínio de nível humano. Até o momento, a AGI ainda é um conceito teórico. Nenhuma aplicação de IA, incluindo o BabyAGI, atingiu um nível tão grande de sofisticação.

Como muitos outros exemplos de aplicações de IA generativa, o BabyAGI usa modelagem estatística avançada para prever o resultado mais provável de qualquer entrada. Ele não entende, aprende e pensa como os seres humanos.

O que é o BabyAGI 2?

Em 2024, Nakajima lançou o BabyAGI 2, uma variante experimental que usa um framework functionz que armazena funções e seus metadados associados em um banco de dados. O agente pode carregar, executar e atualizar funções com metadados à medida que se cria.

Soluções relacionadas
Desenvolvimento de agentes de IA da IBM 

Permita que desenvolvedores criem, implementem e monitorem agentes de IA com o IBM watsonx.ai studio.

 

Explore o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Se você optar por personalizar aplicativos e habilidades criados previamente ou criar e implementar serviços agênticos personalizados usando um estúdio de IA, a plataforma IBM watsonx tem aquilo de que você precisa.

  1. Explore o watsonx Orchestrate
  2. Explore o watsonx.ai