O que é o MetaGPT?

Autores

Vanna Winland

AI Advocate & Technology Writer

Meredith Syed

AI Developer Advocate Lead

O que é o MetaGPT?

O MetaGPT é um framework multiagentes de código aberto que orquestra o uso do conhecimento processual humano e agentes de IA impulsionados por grandes modelos de linguagem (LLMs) para desenvolver uma variedade de soluções de software. Atuando como uma empresa de software de IA, o MetaGPT possui agentes de IA especializados que desempenham funções como as de empresas de software tradicionais.

MetaGPT é a tecnologia proprietária da DeepWisdom fundada por Chenglin Wu. O framework ganhou popularidade rapidamente no GitHub, gerando interesse em torno do objetivo subjacente do MetaGPT de impulsionar o avanço da programação em linguagem natural usando sistemas multiagentes (MAS).

O popular artigo de pesquisa "MetaGPT: Metaprogramming for A Multi-Agent Collaborative Framework" explica a orquestração da colaboração de agentes do framework. À medida que as pesquisas em torno da orquestração de LLMs e agentes de IA continuam, o MetaGPT é um dos primeiros colaboradores que oferece uma abordagem direta à colaboração multiagentes, usando fluxo de trabalho familiares.

As mais recentes tendências em IA, trazidas a você por especialistas

Receba insights selecionados sobre as notícias mais importantes (e intrigantes) sobre IA. Inscreva-se no nosso boletim informativo semanal Think. Consulte a Declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

O que é colaboração multiagentes?

Agentes atuando dentro de um MAS permanecem autônomos, mas também cooperam e coordenam estruturas agênticas ou frameworks como o MetaGPT.1 Um MAS coordena agentes individuais para operar e interagir em seu ambiente para realizar tarefas complexas e alcançar um objetivo comum. Essa ideia faz parte da inteligência coletiva, um conceito popular às vezes relacionado à AGI.

Um sistema multiagentes consiste em uma rede de agentes de resolução de problemas que trabalham juntos para enfrentar desafios além da capacidade de qualquer agente único.2 Um dos principais desafios no projeto de um MAS eficaz é coordenar os agentes para garantir sua colaboração em um objetivo compartilhado. A colaboração bem-sucedida depende da capacidade de cada agente de resolver tarefas individuais, bem como da capacidade de interagir de forma eficaz uns com os outros.3

As considerações no planejamento de um ambiente MAS incluem:

  • As limitações que as atividades de outros agentes criam para a tomada de decisão de um agente,
  • As restrições que surgem dos compromissos de um agente com outros em relação às suas ações disponíveis,
  • E a evolução imprevisível do mundo que é causada por agentes externos não modelados.4

Uma abordagem para esse desafio de design é a orquestração da colaboração dos agentes modelando explicitamente o trabalho em equipe. Esse padrão de design multicolaborativo divide um prompt complexo e delega as tarefas abstraídas aos agentes que as executam com base em suas funções especializadas.5

Dentro do framework colaborativo multiagentes do MetaGPT, uma equipe de agentes de IA opera de acordo com um fluxo de trabalho estruturado e guiado por procedimentos operacionais padrão (SOPs) que definem funções e instruções distintas. Ao integrar protocolos de comunicação e fluxos de trabalho simplificados em sistemas multiagentes orientados por LLMs, os usuários podem criar aplicações com uma única linha de entrada.

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

O MetaGPT atua como um framework colaborativo multiagentes capaz de resolver tarefas complexas. O framework de colaboração multiagentes funciona simulando uma empresa de software inteira usando agentes especializados que interagem com base em procedimentos operacionais padrão e um paradigma de linha de montagem para dividir tarefas. Cada agente desempenha um papel especializado de acordo com suas funções dentro da empresa de software. Por exemplo, o framework inclui agentes que atuam como gerentes de produtos, arquitetos, gerentes de projetos e engenheiros que fornecem todo o processo de uma empresa de software.

Esses agentes, em suas diferentes funções, atuam em um espaço de trabalho virtual para atender a um requisito de uma linha como entrada e saída de várias soluções de software. Essa entrada inclui estruturas de dados, interfaces de programação de aplicativos (APIs), análise competitiva e documentos. Os agentes se comunicam por meio de saídas estruturadas com base nos requisitos definidos por um paradigma de linha de montagem. Cada agente gera as informações necessárias para levar o próximo agente a concluir o objetivo coletivo: produzir uma aplicação de software com base no prompt do usuário. Este processo de desenvolvimento incremental se deve à forma como o MetaGPT integra fluxos de trabalho humanos para agilizar a coordenação em uma tarefa complexa.

Conhecimento processual humano para colaboração multiagentes

Os procedimentos operacionais padrão foram adotados em vários domínios, pois desempenham um papel crítico no apoio à decomposição de tarefas e à coordenação eficaz.6 No desenvolvimento de software, os SOPs promovem a colaboração entre equipes desconstruindo as tarefas do projeto em procedimentos menores e acionais que são, então, atribuídos a funções específicas e especializadas. O MetaGPT codifica SOPs em sequências de prompts para organizar e promover fluxos de trabalho multiagentes. Os fluxos de trabalho SOP introduzem estrutura e oportunidades de refinamento. 

Por exemplo, o agente Gerente de Projetos é solicitado a criar um documento de requisitos do produto (PRD). O agente Gerente de Produtos é solicitado uma vez e, em seguida, é pedido que refine determinados elementos do PRD devido ao desenvolvimento incremental do projeto. Por exemplo, o agente é instruído a criar uma seção no PRD para "objetivos de produtos". Em seguida, é solicitado novamente a refinar essas metas, atualizando as metas originais do produto para garantir que elas se alinhem com a direção atual do projeto.7 Esse método de refinamento é empregado para garantir que a tarefa global seja reconhecida e coesa em todos os agentes.

No exemplo abaixo, o agente Gerente de Produtos é solicitado a gerar uma análise de requisitos. Após essa solicitação inicial, o agente é solicitado a gerar uma análise refinada que leva em consideração todos os novos recursos e aprimoramentos da colaboração contínua.

Instrução de prompts de análise de requisitos: "Forneça uma análise detalhada dos requisitos."8

Instruções de prompts de análise refinada: “Faça uma avaliação e refine a análise de requisitos existente em uma lista de strings para alinhar com as necessidades em evolução do projeto devido ao desenvolvimento incremental. Certifique-se de que a análise cubra de forma abrangente as novas funcionalidades e melhorias necessários para o escopo do projeto refinado.”9

Este exemplo demonstra um PRD gerado como saída padronizada que é transmitida do agente gerente de produtos para o agente arquiteto. O prompt baseado em SOP para cada saída gerada está listado ao lado deles. Observe que o prompt é baseado de forma semelhante no fluxo de trabalho, incluindo definições de requisitos, métodos para conclusão de tarefas e a ordem para completá-los:

Prompt do usuário“Crie uma aplicação baseada em aplicativo para os gerentes de patrimônio usarem para revisar os portfólios de seus clientes e fazer recomendações de fundos apropriados para eles usarem. Este aplicativo precisa funcionar nos Estados Unidos, no Reino Unido e na Espanha.”

Requisitos originais
Instrução do prompt: "Coloque os requisitos originais do usuário aqui."10

"Crie para mim um aplicativo baseado em React para os gerentes de patrimônio usarem para fazer avaliações dos portfólios de seus clientes e fazer recomendações de fundos apropriados para eles usarem. Este aplicativo precisa funcionar nos Estados Unidos, no Reino Unido e na Espanha."

Objetivos de produtos 
Instrução do prompt: "Forneça até três objetivos de produtos claros e ortogonais."11

  1. Desenvolva uma aplicação da web segura e confiável para Gerentes de Patrimônio.
  2. Garanta compatibilidade multilíngue para inglês, espanhol e variações regionais.
  3. Crie uma interface intuitiva e fácil de usar para gerenciamento e recomendação de portfólios.

Histórias de usuários 
Instrução de prompt: "Forneça de três a cinco histórias de usuários baseadas em cenários."12

  1. Como gerente de patrimônio, quero avaliar os portfólios dos meus clientes e fornecer conselhos personalizados.
  2. Como Gerente de Patrimônio, quero recomendar fundos a meus clientes com base em suas metas de investimento e tolerância ao risco.
  3. Como Gerente de Patrimônio, quero acessar a aplicação em inglês ou espanhol, dependendo de minha localização.

Análise competitiva
Instrução de prompt: "Forneça de cinco a sete produtos competitivos."13

  1. "Wealthfront: serviço de investimento automatizado com uma interface limpa, mas carece de recomendações personalizadas de fundos."
  2. “Personal Capital: oferece ferramentas abrangentes de gestão de patrimônio, mas pode ser esmagadora para novos usuários."
  3. “Betterment: concentra-se no investimento automatizado com personalização limitada para gerentes de patrimônio."

Análise de requisitos
Instrução de prompt: "Forneça uma análise detalhada dos requisitos."14

A aplicação deve ser construída usando o React, garantindo que seja escalável e sustentável. Ele deve ter uma interface multilíngue para atender aos usuários nos Estados Unidos, no Reino Unido e na Espanha. A aplicação deve ser segura para proteger dados financeiros confidenciais e estar em conformidade com as regulamentações regionais. Ele também deve se integrar a várias fontes de dados financeiros para fornecer análise de portfólios e recomendações de fundos em tempo real.

Pool de requisitos
Instrução de prompt: "Liste os cinco a sete principais requisitos com sua prioridade (P0, P1, P2).", "Cubra tanto o conteúdo legado quanto o conteúdo incremental. Mantenha o conteúdo não relacionado ao desenvolvimento incremental.”15

  •  (“Autenticação de usuário segura e criptografia de dados para proteger informações dos clientes.”, “P0”),
  • (“Compatibilidade multilíngue com inglês e espanhol, com variações regionais.”), “P0”),
  •  (“Integração em tempo real com fontes de dados financeiros para gerenciamento de portfólios.”, “P0”),
  •  (“Dashboard fácil de usar para avaliações e gerenciamento de portfólios de clientes.”, “P1”),
  • (“Mecanismo de recomendação para sugerir fundos apropriados com base nos perfis dos clientes.”, “P2”)

Rascunho do design da IU
Instruções de prompt: "Forneça uma descrição simples dos elementos, funções, estilo e layout da IU."16

A IU terá um design limpo e moderno, com um dashboard que fornece uma visão geral dos portfólios dos clientes. Ele incluirá gráficos interativos para análise de portfólios, uma seção de recomendação para seleção de fundos e facilidade de alternar entre os idiomas inglês e espanhol.

Qualquer coisa NÃO CLARA
Instruções de prompt: "Mencione os aspectos do projeto que não estão claros e tente esclarecê-los."17

Não há pontos pouco claros.

O exemplo anterior é uma transferência ao agente Arquiteto para design; aqui está o prompt baseado em SOP fornecido junto com o PRD:

"Aqui está o documento de requisitos do produto (PRD): com base nessa avaliação do PRD, veja se o design da API atende aos requisitos do PRD e se está em conformidade com as boas práticas de design."18

O Arquiteto segue seu próprio fluxo de trabalho de SOP para projetar o sistema para a aplicação.

Um SOP descreve as responsabilidades da função de cada agente e estabelece padrões para produções intermediárias. Esses SOPs são então codificados para influenciar o comportamento do agente. Essa prática permite que os agentes gerem saídas estruturadas, como documentos de requisitos de alta qualidade, artefatos de design, fluxogramas e especificações de interface. Todas as transferências entre agentes devem cumprir determinados padrões estabelecidos, que reduzem o risco de alucinação causada por conversa ociosa entre LLMs. O uso de saídas estruturadas aumenta muito a taxa de sucesso da geração do código de destino.19

Como o MetaGPT usa SOPs para enviar prompts aos agentes

Todos os agentes do MetaGPT atuam como funcionários que devem seguir um fluxo de trabalho rigoroso e simplificado. Há duas partes principais no SOP que definem o comportamento dos agentes: especialização de funções e fluxo de trabalho entre agentes.

Especialização da função do agente: o MetaGPT define cinco funções na empresa de software: gerente de produtos, arquiteto, gerente de projeto, engenheiro e engenheiro de qualidade. O perfil de cada agente é inicializado com informações específicas, como nome, perfil, objetivo e as restrições do agente para cada função, bem como o contexto e as habilidades específicas de cada função.20 Cada agente é como um organismo digital atuando dentro de um ambiente.21 O conceito de funções predefinidas é diferente de frameworks multiagentes, como o CrewAI, que permitem que os usuários definam a função do agente em uma equipe para casos de uso mais gerais.

Fluxo de trabalho entre agentes: a definição das funções e as habilidades operacionais dos agentes estabelece um fluxo de trabalho básico a ser seguido pelos agentes durante o processo de desenvolvimento de software. Os agentes trabalham dentro de uma ordem sequencial ou em um paradigma de linha de montagem para dividir tarefas complexas para maior eficiência da equipe.

Como os agentes interagem no MetaGPT?

O MetaGPT postula que uma colaboração significativa requer processos eficazes, coerentes e precisos de resolução de problemas. Os agentes de IA são sistemas complexos; no entanto, seus processos não precisam ser, pelo menos não de acordo com o MetaGPT e sua herança de fluxos de trabalho humanos simples.

Protocolo de comunicação

Os agentes interagem dentro de uma interface de comunicação estruturada chamada de protocolo de comunicação. O MetaGPT difere da maioria dos frameworks baseados em LLMs porque não usa linguagem natural irrestrita como interface de comunicação e, em vez disso, propõe o uso de comunicação estruturada para formular a interação entre os agentes. Por exemplo, no ChatDev, outro framework de colaboração multiagentes, os agentes se comunicam por meio de diálogo, enquanto os agentes no MetaGPT se comunicam por meio de saídas estruturadas, como documentos e diagramas.

Para facilitar esse protocolo de comunicação, o MetaGPT estabelece um esquema e um formato para cada agente e solicita que cada função diferente forneça as saídas necessárias com base em seu objetivo e contexto específicos.22 Em um exemplo, o agente Arquiteto gera duas saídas: o design da interface do sistema e um diagrama de fluxo de sequência. Ambas as saídas contêm design de módulo do sistema e sequências de interação que servem como resultados fundamentais para os agentes Engenheiros.23

Mecanismo de publicação e inscrição

Para melhorar a eficiência da comunicação, o MetaGPT utiliza um conjunto de mensagens globais para armazenar informações que permitem aos agentes trocar mensagens diretamente. Os agentes publicam suas mensagens estruturadas no pool e podem acessar mensagens de outros agentes de forma transparente. Essa abordagem permite que os agentes acessem diretamente as informações necessárias do pool compartilhado, removendo a necessidade de perguntar a outros agentes e esperar por suas respostas.24

Processo de desenvolvimento do MetaGPT

O processo de desenvolvimento começa com um comando de entrada do usuário e termina com o software projetado de acordo com as especificações do usuário. Por exemplo, a entrada do usuário pode ser "Escreva uma aplicação GUI Python de modo que você possa desenhar uma imagem com ela." O prompt do usuário é passado para a empresa de software, uma equipe de agentes de desempenho de funções: Gerente de Produtos, Arquiteto, Gerente de Projetos, Engenheiro, Engenheiro de QA

Depois de receber o prompt do usuário para criar uma aplicação de software específica, o Gerente de Produtos gera um PRD que engloba metas, histórias de usuários, análise competitiva, análise de requisitos e pool de requisitos. Além disso, o agente Gerente de Produtos também gera um gráfico de quadrantes da concorrência com base nas especificações da aplicação. Esses documentos e gráficos são entregues ao agente Arquiteto para o design do sistema.

O agente Arquiteto desenvolve especificações técnicas com base nos requisitos da PRD. As especificações incluem diagramas de arquitetura do sistema e definições de interface para a trajetória técnica geral do projeto. A arquitetura do projeto, incluindo arquivos, classes e o fluxograma de sequência, é projetada com base nas definições técnicas do agente Arquiteto. A documentação gerada pelo Arquiteto é, então, entregue ao Gerente de Projetos para alocação e execução de tarefas.

O Gerente de Projetos divide o projeto em uma lista de tarefas. Cada arquivo de código é analisado com base em sua funcionalidade pretendida e, em seguida, tratado como uma tarefa separada atribuída aos Engenheiros.

O agente engenheiro gera o código necessário com habilidades de desenvolvimento fundamentais para concluir as tarefas de desenvolvimento. Ao receber a produção do código do agente engenheiro, o agente engenheiro de QA gera código de teste de unidade e o avalia para identificar e fazer correções.

Integração de LLMs ao MetaGPT

Os agentes do MetaGPT são baseados na série de modelos GPT (generative pre-trained transformer) GPT-3.5 e GPT-4 da OpenAI. No entanto, o MetaGPT e sua comunidade de código aberto contribuíram para a adição de vários outros modelos que podem ser inicializados por meio da configuração de APIs de LLMs. O MetaGPT oferece um tutorial que facilita a exploração de como se integrar a LLMs de código aberto em seu site de documentação GitHub. A primeira etapa para integrar um LLM é configurar um repositório (repo) de inferência, como LLaMA-Factory, FastChat, Ollama etc. Esse repositório permite a implementação do modelo de LLM correspondente, que é configurado por meio de suas credenciais de APIs. Todos os repositórios de inferência compatíveis, exceto o Ollama, aceitam a publicação de interfaces compatíveis com o OpenAI. O MetaGPT procura ser compatível com a interface do Ollama no futuro.

Agentes de IA podem se destacar em metaprogramação?

Frameworks de metaprogramação fornecem a funcionalidade para criar programas que podem escrever, manipular e analisar outros programas, bem como o próprio programa. O MetaGPT modela esse propósito incorporando fluxos de trabalho humanos para alimentar a IA generativa usando técnicas baseadas em agentes para aprimorar a metaprogramação.

Os agentes baseados em LLMs contêm vários recursos principais que têm avançado tarefas de programação automática.25 Entre esses avanços estão o ReAct e o Reflexion, paradigmas de raciocínio usados por agentes que empregam uma cadeia de prompts de pensamento para gerar trajetórias de raciocínio e planos de ação com LLMs.26

O ciclo de design do agente ReAct demonstra um processo eficaz para programação automática devido ao seu ciclo de design iterativo que capacita os agentes a raciocinar, agir e observar.27 A reflexão reforça os agentes linguísticos por meio do feedback linguístico, seguindo um ciclo de design iterativo semelhante para induzir uma melhor tomada de decisão.28 Ambos os designs do paradigma permitem que os agentes aprendam e melhorem continuamente seu fluxo de trabalho.

Os LLMs tradicionais, como o modelo GPT-3 da OpenAI, os modelos Llama da Meta e os modelos do IBM Granite, têm conhecimento e raciocínio limitados. Eles geram respostas com base nos dados de treinamento, que frequentemente podem incluir informações desatualizadas. Por outro lado, a tecnologia agêntica aproveita a chamada de ferramentas de back-end para acessar informações atuais, simplificar fluxos de trabalho e criar tarefas específicas de forma autônoma para realizar objetivos complexos. Durante esse processo, o agente autônomo aprende a se ajustar às expectativas do usuário ao longo do tempo, oferecendo uma experiência personalizada e respostas mais completas. Essa chamada de ferramentas pode ocorrer sem intervenção humana, ampliando o potencial de aplicações do mundo real para esses sistemas de IA.

Como o MetaGPT usa agentes de metaprogramação

Os agentes Engenheiros do MetaGPT participam de programação iterativa com feedback executável. Os processos de depuração e otimização são importantes nas tarefas diárias de programação. Outras implementações não possuem mecanismos de autocorreção do agente que levam a resultados indesejados, como alucinações de código ou código não funcional. Para mitigar esses riscos, o MetaGPT introduz um mecanismo de feedback executável para melhorar o código a cada iteração.

O agente Engenheiro escreve código com base nos requisitos e design originais do produto. Isso permite que o agente melhore continuamente o código usando sua própria memória de execução histórica e depuração. O Engenheiro obtém mais informações para melhorar o código escrevendo e executando os casos de teste de unidade correspondentes. Depois de receber os resultados, o Engenheiro prossegue com tarefas de desenvolvimento adicionais ou depura o código antes de retomar a programação. Esse processo iterativo continua até que o teste seja aprovado ou até que um máximo de três tentativas seja atingido.29

Outros frameworks multiagentes

CrewAI – O CrewAI é um framework multiagentes baseado no Python de código aberto que utiliza agentes autônomos de simulação que trabalham juntos como uma equipe para concluir tarefas. Os usuários podem criar e personalizar agentes com base em suas necessidades ou uso de aplicações. Os casos de uso incluem propósitos generalizados, como planejamento e criação de conteúdo, análise de dados e tarefas de automação. O CrewAI apresenta integração com o watsonx.ai da IBM e oferece várias integrações de LLMs e compatibilidade com o Ollama.30

ChatDev – O ChatDev é um framework multiagentes de código aberto que simula uma empresa de software virtual operando por meio de vários agentes inteligentes que possuem diferentes funções organizacionais. Os agentes cooperam por meio do diálogo para produzir um produto de software, incluindo código executável e documentação. O ChatDev é compatível com os modelos GPT-3.5-turbo e GPT-4 da OpenAI para alimentar os agentes inteligentes.31

AutoGPT – O AutoGPT é um framework multiagentes de código aberto que aplica o processamento de linguagem natural (NLP) para entender os objetivos do usuário e a decomposição de tarefas complexas. Os agentes cooperam em um fluxo de trabalho automatizado para processar um prompt de alto nível do usuário, dividindo cada tarefa em uma sequência de subtarefas menores. Os casos de uso incluem soluções generalizadas, como pesquisa e análise de mercado, desenvolvimento de produtos, assistência virtual e muito mais. Esse framework é desenvolvido com agentes de IA com base no GPT-4 da OpenAI.32

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.

Explore o watsonx Orchestrate Explore o watsonx.ai