(Clique na imagem acima para ver o vídeo desta lição)
Assim que você começar a trabalhar em um projeto que envolve múltiplos agentes, será necessário considerar o padrão de design multiagente. No entanto, pode não ficar imediatamente claro quando trocar para multiagentes e quais são as vantagens.
Nesta lição, buscamos responder às seguintes perguntas:
Após esta lição, você deverá ser capaz de:
Qual é o panorama geral?
Multiagentes são um padrão de design que permite que múltiplos agentes trabalhem juntos para alcançar um objetivo comum.
Este padrão é amplamente utilizado em vários campos, incluindo robótica, sistemas autônomos e computação distribuída.
Então, quais cenários são um bom caso de uso para usar multiagentes? A resposta é que há muitos cenários onde empregar múltiplos agentes é benéfico, especialmente nos seguintes casos:
Um sistema com um único agente pode funcionar bem para tarefas simples, mas para tarefas mais complexas, usar múltiplos agentes pode oferecer várias vantagens:
Vamos tomar um exemplo, vamos reservar uma viagem para um usuário. Um sistema com um único agente teria que lidar com todos os aspectos do processo de reserva da viagem, desde encontrar voos até reservar hotéis e carros de aluguel. Para conseguir isso com um único agente, o agente precisaria ter ferramentas para lidar com todas essas tarefas. Isso poderia levar a um sistema complexo e monolítico, difícil de manter e escalar. Um sistema multiagente, por outro lado, poderia ter diferentes agentes especializados em encontrar voos, reservar hotéis e carros de aluguel. Isso tornaria o sistema mais modular, mais fácil de manter e escalável.
Compare isso a uma agência de viagens operada como uma loja pequena versus uma agência de viagens operada como uma franquia. A loja pequena teria um agente único lidando com todos os aspectos do processo de reserva da viagem, enquanto a franquia teria diferentes agentes cuidando de diferentes aspectos do processo de reserva da viagem.
Antes de você poder implementar o padrão de design multiagente, é necessário entender os blocos de construção que compõem o padrão.
Vamos tornar isso mais concreto novamente olhando para o exemplo de reservar uma viagem para um usuário. Neste caso, os blocos de construção incluiriam:
É importante que você tenha visibilidade de como múltiplos agentes estão interagindo entre si. Essa visibilidade é essencial para depuração, otimização e garantia da eficácia geral do sistema. Para conseguir isso, você precisa ter ferramentas e técnicas para rastrear as atividades e interações dos agentes. Isso pode estar na forma de ferramentas de registro e monitoramento, ferramentas de visualização e métricas de desempenho.
Por exemplo, no caso de reservar uma viagem para um usuário, você poderia ter um painel que mostra o status de cada agente, as preferências e restrições do usuário, e as interações entre os agentes. Este painel poderia mostrar as datas de viagem do usuário, os voos recomendados pelo agente de voos, os hotéis recomendados pelo agente de hotéis, e os carros de aluguel recomendados pelo agente de carros. Isso lhe daria uma visão clara de como os agentes estão interagindo uns com os outros e se as preferências e restrições do usuário estão sendo atendidas.
Vamos analisar cada um desses aspectos com mais detalhes.
Ferramentas de registro e monitoramento: Você quer ter registros feitos para cada ação tomada por um agente. Uma entrada de registro poderia armazenar informações sobre o agente que tomou a ação, a ação tomada, o horário em que a ação foi tomada e o resultado da ação. Essas informações podem então ser usadas para depuração, otimização e mais.
Ferramentas de visualização: Ferramentas de visualização podem ajudar você a ver as interações entre agentes de uma forma mais intuitiva. Por exemplo, você poderia ter um gráfico que mostra o fluxo de informações entre os agentes. Isso poderia ajudá-lo a identificar pontos de estrangulamento, ineficiências e outros problemas no sistema.
Métricas de desempenho: Métricas de desempenho podem ajudar você a acompanhar a eficácia do sistema multiagente. Por exemplo, você pode acompanhar o tempo levado para completar uma tarefa, o número de tarefas concluídas por unidade de tempo, e a precisão das recomendações feitas pelos agentes. Essas informações podem ajudar a identificar áreas para melhoria e otimizar o sistema.
Vamos mergulhar em alguns padrões concretos que podemos usar para criar aplicativos multiagente. Aqui estão alguns padrões interessantes a considerar:
Este padrão é útil quando você quer criar um aplicativo de bate-papo em grupo onde múltiplos agentes podem se comunicar entre si. Casos típicos de uso para este padrão incluem colaboração em equipe, suporte ao cliente e redes sociais.
Nesse padrão, cada agente representa um usuário no bate-papo em grupo, e as mensagens são trocadas entre agentes usando um protocolo de mensagens. Os agentes podem enviar mensagens para o grupo, receber mensagens do grupo e responder a mensagens de outros agentes.
Este padrão pode ser implementado usando uma arquitetura centralizada, onde todas as mensagens são roteadas através de um servidor central, ou uma arquitetura descentralizada, onde as mensagens são trocadas diretamente.

Este padrão é útil quando você quer criar um aplicativo onde múltiplos agentes podem transferir tarefas entre si.
Casos típicos de uso para este padrão incluem suporte ao cliente, gestão de tarefas e automação de fluxos de trabalho.
Nesse padrão, cada agente representa uma tarefa ou um passo em um fluxo de trabalho, e agentes podem transferir tarefas para outros agentes com base em regras predefinidas.

Este padrão é útil quando você quer criar um aplicativo onde múltiplos agentes podem colaborar para fazer recomendações aos usuários.
Por que você gostaria que múltiplos agentes colaborassem? Porque cada agente pode ter expertise diferente e pode contribuir para o processo de recomendação de formas diversas.
Vamos tomar um exemplo onde um usuário quer uma recomendação sobre a melhor ação para comprar no mercado de ações.

Considere um cenário onde um cliente está tentando obter um reembolso por um produto, pode haver diversos agentes envolvidos nesse processo, mas vamos dividir entre agentes específicos para este processo e agentes gerais que podem ser usados em outros processos.
Agentes específicos para o processo de reembolso:
A seguir estão alguns agentes que poderiam estar envolvidos no processo de reembolso:
Agentes gerais:
Esses agentes podem ser usados por outras partes do seu negócio.
Há muitos agentes listados anteriormente tanto para o processo específico de reembolso quanto para os agentes gerais que podem ser usados em outras partes do seu negócio. Esperamos que isso lhe dê uma ideia de como decidir quais agentes usar no seu sistema multiagente.
Projete um sistema multiagente para um processo de suporte ao cliente. Identifique os agentes envolvidos no processo, seus papéis e responsabilidades, e como eles interagem entre si. Considere tanto agentes específicos para o processo de suporte ao cliente quanto agentes gerais que podem ser usados em outras partes do seu negócio.
Reflita um pouco antes de ler a solução a seguir, você pode precisar de mais agentes do que imagina.
DICA: Pense nas diferentes etapas do processo de suporte ao cliente e também considere os agentes necessários para qualquer sistema.
Qual cenário é o mais adequado para um sistema multiagente?
Quando um agente único geralmente é a melhor escolha?
Nesta lição, examinamos o padrão de design multiagente, incluindo os cenários em que multiagentes são aplicáveis, as vantagens de usar multiagentes em vez de um agente singular, os blocos de construção para implementar o padrão de design multiagente, e como ter visibilidade de como os múltiplos agentes estão interagindo entre si.
Junte-se ao Microsoft Foundry Discord para encontrar outros aprendizes, participar de horários de atendimento e tirar suas dúvidas sobre Agentes de IA.
Aviso Legal: Este documento foi traduzido usando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos pela precisão, por favor, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução.