O que é o ChatDev?

Autores

Vanna Winland

AI Advocate & Technology Writer

Erika Russi

Data Scientist

IBM

O que é o ChatDev?

O ChatDev é um framework agêntico de código aberto que implementa a colaboração de vários agentes por meio de uma equipe organizada de agentes inteligentes especializados que são impulsionados por grandes modelos de linguagem (LLMs). Cada agente de IA é orquestrado para colaborar em tarefas dentro das fases principais do ciclo de vida do desenvolvimento de software, para gerar e produzir de forma autônoma uma aplicação de software.

O ChatDev simula uma empresa de software virtual que opera por meio de vários agentes inteligentes que ocupam diferentes funções no ambiente da organização. Esses agentes formam uma estrutura organizacional multiagentes onde podem colaborar participando de seminários funcionais que ajudam a simplificar o processo de desenvolvimento de software. O ChatDev aplica IA ao modelo "cascata" amplamente adotado, um modelo de ciclo de vida de desenvolvimento de software que divide o processo de desenvolvimento de software em fases: design, codificação, teste e documentação. Agentes especializados trabalham em colaboração para completar cada fase.

Os principais objetivos do ChatDev são oferecer um framework de orquestração de LLMs personalizável e escalável e servir como um cenário ideal para o estudo da inteligência coletiva. A inteligência coletiva é a colaboração eficaz, o fenômeno em que um grupo pode superar um indivíduo em uma tarefa complexa. A abordagem amplamente aceita da inteligência coletiva define indivíduos como entidades que podem agir com propósito e razão e se adaptar a um ambiente.1 Em frameworks agênticos como o ChatDev, essas entidades inteligentes são conhecidas como agentes.

Inteligência coletiva em sistemas multiagentes (MAS)

As aplicações de inteligência coletiva em IA e aprendizado de máquina incluem sistemas ou frameworks de inteligência coletiva chamados sistemas multiagente (MAS). Um MAS pode ser descrito como uma rede interconectada de entidades de resolução de problemas, ou agentes, que colaboram para resolver problemas que excedem os recursos ou conhecimentos de um único agente.2

Ferramentas de IA, como sistemas multiagentes, são uma abordagem ao design de inteligência coletiva (COIN). A COIN é um sistema multiagentes extenso que se caracteriza por comunicação ou controle centralizado mínimo ou inexistente. Ela apresenta uma função de utilidade mundial que avalia os possíveis históricos de todo o sistema.3 O campo do MAS se preocupa com as interações entre os agentes dentro do sistema, bem como com a composição de cada agente em si. Embora haja várias maneiras de projetar um MAS, o objetivo principal permanece o mesmo: realizar uma tarefa global por meio das ações de seus componentes.

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.

Interações multiagentes cooperativas

Uma das etapas mais difíceis no projeto de um MAS funcional é a coordenação dos agentes de forma a ajudar a garantir que eles cooperem na tarefa global.4 A colaboração eficaz requer habilidades individuais de resolução de tarefas e interações bem coordenadas entre os indivíduos participantes.5 O planejamento de um ambiente MAS envolve as seguintes considerações:

  1. As restrições que as atividades de outros agentes impõem à escolha de ações de um agente.
  2. As restrições que os compromissos de um agente com terceiros colocam na escolha de ações de um agente
  3. A evolução imprevisível do mundo causada por outros agentes não modelados6

Uma maneira de abordar esse desafio de design é modelar o trabalho em equipe de forma explícita por meio da colaboração multiagentes.

O 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.7 Por exemplo, o ChatDev usa um design de comunicação de agente duplo chamado ChatChain para facilitar a comunicação cooperativa.

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

Frameworks como o ChatDev expandem a funcionalidade dos LLMs além de seus recursos excepcionais de processamento de linguagem natural para geração de texto. O ChatDev posiciona os LLMs como agentes versáteis por meio de suas técnicas de orquestração que envolvem a solicitação e a avaliação de vários agentes colaborativos com vários papéis sociais (por exemplo, engenheiro de software, diretor de tecnologia, diretor executivo, designer, testador).

Cada agente usa sua função especializada para trabalhar em colaboração nas fases principais do ciclo de vida do desenvolvimento de software. Esse processo envolve ampla comunicação entre os agentes em suas funções especializadas para compreender e analisar requisitos por meio de linguagem natural, além de desenvolvimento e depuração por meio de linguagens de programação. As fases do ChatChain têm níveis variados de envolvimento em linguagens naturais e de programação, dependendo da função e do prompt dos agentes.

Como o ChatDev aciona seus agentes de IA autônomos

Os agentes do ChatDev usam dramatizações e prompts de iniciação como guias para concluir suas tarefas. O prompt de iniciação é um método de prompt automático de LLM conversacional que permite que os agentes solicitem uns aos outros para resolver tarefas por meio de dramatização.8

O ChatDev aplica a engenharia de prompts no início de cada fase da subtarefa. Embora o ChatChain se saia bem na definição do processo de resolução de tarefas, os agentes simplesmente trocam respostas sem qualquer prompt ou proteção adicional, o que não é eficaz para a comunicação orientada para a tarefa de várias rodadas. Para avançar na progressão das comunicações produtivas e evitar desafios como inversão de papéis, repetição de instruções e respostas falsas, o ChatDev emprega um mecanismo de prompt de iniciação.

O mecanismo de prompt de iniciação funciona hipnotizando os LLMs com o prompt do instrutor e do sistema assistente à medida que são instanciados. A hipnose do LLM pode ter uma conotação negativa (pode ser usada de forma maliciosa para manipular um modelo), mas, nesse caso, é uma forma de acionar efetivamente os agentes de dramatização. No prompt, tarefas e papéis são especificados para ajudar a garantir que o LLM esteja instruindo os agentes sobre como cumprir seu papel colaborativo e seguir as instruções.

Essas prompts iniciais para cada função orientam os agentes a fornecer respostas apropriadas sem inversão de funções. Os prompts para ambas as funções no sistema são quase idênticos, lidando com a visão geral e os objetivos da subtarefa atual, as funções especializadas, as ferramentas externas disponíveis, os protocolos de comunicação, as condições de término e as restrições ou requisitos para evitar comportamentos indesejáveis.9 Esse mecanismo funciona como uma proteção do LLM, melhorando a qualidade das respostas e reduzindo a necessidade de intervenção humana.

Como os agentes de IA interagem no ChatDev

Para orientar a comunicação cooperativa adequada entre os agentes, o ChatDev introduz um fluxo de trabalho de agentes chamado ChatChain para dividir ainda mais cada fase em subtarefas mais gerenciáveis. Esse processo orienta as comunicações em várias rodadas entre diferentes funções para propor e validar soluções para cada subtarefa. Os agentes são governados por um mecanismo chamado desalucinação comunicativa, um padrão comunicativo para aliviar alucinações inesperadas. Com esse mecanismo, os agentes solicitam informações mais detalhadas antes de responder diretamente e, em seguida, continuar a próxima fase de comunicação com base nesses detalhes.10

O ChatDev fornece um visualizador baseado em navegador para estudar as interações de cada agente individual atuando dentro de sua função e ambiente. Essa interface oferece aos usuários a capacidade de investigar o próprio design do sistema multiagentes. Os usuários podem visualizar a estrutura de cooperação artificial que permite que os agentes trabalhem juntos para concluir uma tarefa global além de seus recursos individuais.

ChatChain

O ChatChain segue um design de comunicação de agente duplo que simplifica o processo de resolução de tarefas ao longo do fluxo de trabalho dos agentes. O padrão de design agêntico começa segmentando o processo de desenvolvimento de software em três fases sequenciais: design, programação e testes. As fases de programação e testes são divididas ainda mais em subtarefas: redação e conclusão do código, avaliações (testes estáticos) e testes do sistema (testes dinâmicos).

Cada fase de comunicação dentro de um ChatChain é composta por um agente instrutor e um agente assistente. Em cada subtarefa, dois agentes com funções especializadas distintas (como um revisor e um programador de design de GUI) cumprem as funções de instrutor e assistente. O agente instrutor instrui o discurso para a conclusão de uma tarefa, enquanto o agente assistente recebe e segue essas instruções e responde com soluções apropriadas.11 Os agentes se envolvem em um diálogo várias vezes até que a tarefa seja concluída ou o consenso seja alcançado. As soluções extraídas da fase de comunicação vão desde texto (por exemplo, uma descrição da funcionalidade desejada da aplicação) até código (por exemplo, o código-fonte inicial).

Esse fluxo de trabalho agêntico simplifica as comunicações, evitando topologias complicadas multiagentes e otimizando efetivamente o processo de consenso.12 Essa abordagem proporciona uma transição tranquila entre subtarefas, pois as soluções de tarefas anteriores servem como pontes para a próxima fase. Esse fluxo de trabalho continua até que todas as subtarefas sejam concluídas, orientando os agentes ao longo do caminho. A estrutura em estilo de cadeia do fluxo de trabalho vincula subtarefas de linguagem natural e linguagem de programação, orientando de forma eficaz os agentes sobre o que comunicar. O ChatChain é uma solução para o problema mais desafiador do design do MAS: a cooperação dos agentes.

Usando as configurações padrão, o ChatChain produz software na seguinte ordem:

  • Análise da demanda: decide o processo geral de procedimentos de método para a aplicação.
  • Seleção da linguagem: decide qual linguagem de programação usar para construir e executar o software.
  • Codificação: os agentes escrevem o código para criar a aplicação.
  • CodeCompleteAll: conclui o código, incluindo as funções/classes ausentes.
  • CodeReview: avalia e modifica o código para funcionalidade.
  • Teste: executa o software e modifica o código com base no relatório de teste.
  • EnvironmentDoc: documente o ambiente.a
  • Manual: documenta e escreva um manual para a aplicação.

Desalucinação comunicativa

As alucinações de LLMs ocorrem quando os modelos produzem saídas imprecisa ou sem sentido. As alucinações de programação são um tipo de alucinação que afeta as saídas de modelos que realizam tarefas relacionadas à programação. Os pesquisadores do ChatDev descobriram que as alucinações de codificação frequentemente aparecem quando o agente que executa a funcionalidade de assistente se esforça para seguir instruções precisas.13 Os assistentes enfrentam dificuldades para cumprir as instruções geralmente devido à falta de clareza, que requer várias interações e ajustes de acompanhamento. Para evitar saídas indesejáveis, o ChatDev introduz a desalucinação comunicativa.

A desalucinação comunicativa faz com que o assistente solicite ativamente sugestões mais detalhadas do instrutor antes de fornecer uma resposta formal.14 Os assistentes assumem um papel semelhante ao de um instrutor e buscam proativamente mais informações (como os nomes precisos de dependências externas ou para qual repositório do GitHub enviar as alterações), assumindo uma "inversãode papéis" deliberada antes de entregar uma resposta. O assistente faz uma otimização precisa depois que o instrutor responde com modificações. O padrão de comunicação instrui os agentes sobre como se comunicar, permitindo a troca de informações granular e, ao mesmo tempo, reduzindo as alucinações de programação.

Visualizer

O Visualizer do ChatDev é um aplicativo Python que executa uma demonstração local na web, onde os usuários podem visualizar logs em tempo real, logs repetidos e ChatChain. O aplicativo contém três visualizadores de logs separados para cada um.

  • Log Visualizer: um log em tempo real que imprime as informações da caixa de diálogo do agente, as mudanças de ambiente e outras informações do sistema úteis para depuração.
  • Replay Visualizer: o log de repetição imprime as informações do diálogo do agente.
  • ChatChain Visualizer: os usuários podem carregar qualquer arquivo de configuração do ChatChain e visualizar a cadeia de fluxos de trabalho do agente para qualquer projeto de software atual ou anterior. Essa funcionalidade oferece uma visão transparente de todo o processo de desenvolvimento de software para os usuários examinarem cada solução de subtarefa e identificarem possíveis ineficiências.

O Visualizer também contém uma página Chat Replay, que mostra os diálogos em linguagens naturais entre agentes para uma determinada aplicação de software gerada.

Integração com o LLM do ChatDev

O conceito de padrão de design agêntico do ChatDev é como a mistura de técnicas de aprendizado de máquina de especialistas, exceto seus agentes de IA que são especialistas especializados que lidam com tarefas complexas. Os sistemas de orquestração são necessários para coordenar a colaboração entre uma combinação de agentes especializados.

A base dessas orquestrações são modelos de transformadores pré-treinados, como os modelos GPT da OpenAI.15 Modelos de base, como a série Granite da IBM, também podem ser usados para fundamentar agentes com recursos de linguagem robustos e conceder-lhes funcionalidades especializadas. Por exemplo, o Granite Code é uma família de modelos que variam de 3 B a 34 B em tamanho de parâmetros e são treinados em 116 linguagens de programação. Essa oferta é benéfica para frameworks agênticos que planejam usar agentes comunicativos para o desenvolvimento de software. No momento em que este artigo foi escrito, o ChatDev era compatível com os modelos GPT-3.5-turbo e GPT-4 da OpenAI para impulsionar seus agentes inteligentes.

Como o ChatDev escala

O ChatDev está implementando uma maneira de escalar a colaboração multiagentes baseada em LLMs com redes de colaboração multiagentes (MacNet). O MacNet inspira-se na lei de escala neural, que sugere que o aumento dos neurônios leva a habilidades emergentes.16 A ChatDev propõe um princípio semelhante que se aplica ao aumento de agentes na colaboração multiagentes.

O MacNet usa gráficos acíclicos para estruturar agentes e aprimorar seu raciocínio interativo por meio de ordem topológica. As soluções são derivadas das interações dos agentes. Esse processo supera consistentemente os modelos de referência, facilitando a colaboração eficiente entre os agentes em diferentes topologias de rede e acomodando a cooperação entre mais de mil agentes. Por meio dessa aplicação, o ChatDev identificou uma lei de escala colaborativa que mostra que a qualidade das soluções melhora em um padrão de crescimento logístico à medida que o número de agentes aumenta.

Sistemas multiagentes para desenvolvimento de software

Em vez de tentar incorporar todos os recursos em um único modelo, sistemas multiagentes dividem as tarefas entre vários agentes especializados. Os agentes podem usar o mesmo modelo de linguagem ou modelos diferentes, o que lhes dá o potencial de realizar uma ampla gama de tarefas.

O ChatDev fez uma avaliação em um artigo de pesquisa popular que compara desempenhos dele e de dois outros frameworks de orquestração de desenvolvimento de software baseados em LLMs, o GPT-Engineer e o MetaGPT. As métricas foram baseadas na integridade, executabilidade, consistência e qualidade. O ChatDev e o MetaGPT superaram o GPT-Engineer, uma abordagem de orquestração de agente único, demonstrando que tarefas complexas são mais desafiadoras de resolver em uma solução de etapa única. Esses resultados de desempenho sugerem que a divisão de tarefas complexas em subtarefas mais gerenciáveis aumenta a eficácia da conclusão das tarefas.

O ChatDev superou significativamente o MetaGPT na métrica de qualidade devido aos métodos de comunicação cooperativa dos agentes, que usam linguagens naturais e de programação. Os agentes que possuem comunicação eficiente conseguiram orientar cada subtarefa para a conclusão, superando as restrições que normalmente estão vinculadas às regras de otimização estabelecidas manualmente.17 Esse resultado sugere que os frameworks que usam agentes comunicativos e colaborativos oferecem funções mais versáteis e adaptáveis.

Outros frameworks multiagentes

GPT-Engineer – Um framework de orquestração de agente único para a criação de aplicações de software. O usuário fornece um prompt para a IA criar uma aplicação com a funcionalidade de software desejada e pode se comunicar de forma bidirecional com o sistema para fazer melhorias ou atualizações.18 Os usuários podem realizar um benchmark de suas próprias implementações de agentes em relação a conjuntos de dados populares por meio do "bench", um binário instalado no sistema que contém uma interface de benchmarking simples.

MetaGPT – Um framework multiagentes que opera como uma entidade de software colaborativo que atribui diferentes agentes de interpretação de papéis aos modelos GPT para realizar tarefas complexas. Como o ChatDev, os agentes mantêm várias funções em um ambiente virtual semelhante a uma empresa de software. O MetaGPT também usa SOPs (procedimentos pperacionais padrão) cuidadosamente orquestrados para gerar software.

CrewAI – O CrewAI é um framework multiagentes de código aberto que opera no LangChain. Ele organiza agentes de IA autônomos em equipes que lidam com fluxos de trabalho e tarefas relacionadas a aplicações de LLM. O CrewAI se integra a qualquer LLM.

AutoGen – Um framework de conversação multiagentes de código aberto da Microsoft oferece uma abstração elevada de modelos de base. O AutoGen é um framework baseado em agentes que emprega vários agentes para interagir e lidar com tarefas. Suas característica principais incluem a possibilidade de personalizar agentes de IA que participam de diálogos multiagentes com padrões adaptáveis, o que permite a criação de diferentes aplicações de LLMs.

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