ai-agents-for-beginners

Design Multiagente

(Clique na imagem acima para ver o vídeo desta lição)

Padrões de design multi-agente

Assim que começar a trabalhar num projeto que envolve múltiplos agentes, terá de considerar o padrão de design multi-agente. No entanto, pode não ser imediatamente óbvio quando mudar para múltiplos agentes e quais as vantagens.

Introdução

Nesta lição, procuramos responder às seguintes questões:

Objetivos de aprendizagem

Após esta lição, deverá ser capaz de:

Qual é o panorama geral?

Os multi-agentes são um padrão de design que permite a vários agentes trabalhar em conjunto para atingir um objetivo comum.

Este padrão é amplamente utilizado em vários campos, incluindo robótica, sistemas autónomos e computação distribuída.

Cenários onde os multi-agentes são aplicáveis

Então, que cenários são um bom caso de uso para usar multi-agentes? A resposta é que existem muitos cenários em que empregar múltiplos agentes é benéfico, especialmente nos seguintes casos:

Vantagens de usar multi-agentes em vez de um agente singular

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 utilizador. Um sistema com um único agente teria de tratar todos os aspetos do processo de reserva da viagem, desde encontrar voos até reservar hotéis e carros de aluguer. Para conseguir isto com um único agente, o agente teria de dispor de ferramentas para tratar todas estas tarefas. Isto poderia conduzir a um sistema complexo e monolítico que é difícil de manter e escalar. Um sistema multi-agente, por outro lado, poderia ter diferentes agentes especializados em encontrar voos, reservar hotéis e carros de aluguer. Isto tornaria o sistema mais modular, mais fácil de manter e escalável.

Compare isto com uma agência de viagens gerida por uma pequena empresa familiar versus uma agência de viagens operada como uma franquia. A pequena agência teria um único agente a tratar todos os aspetos do processo de reserva da viagem, enquanto a franquia teria diferentes agentes a tratar de diferentes aspetos do processo de reserva da viagem.

Blocos de construção para implementar o padrão de design multi-agente

Antes de poder implementar o padrão de design multi-agente, precisa de entender os blocos de construção que compõem o padrão.

Vamos tornar isto mais concreto voltando a olhar para o exemplo de reservar uma viagem para um utilizador. Neste caso, os blocos de construção incluiriam:

Visibilidade nas interações multi-agente

É importante que tenha visibilidade de como os múltiplos agentes estão a interagir entre si. Esta visibilidade é essencial para depuração, otimização e garantia da eficácia global do sistema. Para alcançar isto, precisa de ferramentas e técnicas para rastrear atividades e interações dos agentes. Isto poderia ser na forma de ferramentas de registo e monitorização, ferramentas de visualização e métricas de desempenho.

Por exemplo, no caso de reservar uma viagem para um utilizador, poderia ter um painel que mostre o estado de cada agente, as preferências e os constrangimentos do utilizador, e as interações entre agentes. Este painel poderia mostrar as datas da viagem do utilizador, os voos recomendados pelo agente de voos, os hotéis recomendados pelo agente de hotéis e os carros de aluguer recomendados pelo agente de carros de aluguer. Isto daria uma visão clara de como os agentes estão a interagir entre si e se as preferências e os constrangimentos do utilizador estão a ser cumpridos.

Vamos analisar cada um destes aspetos com mais detalhe.

Padrões multi-agente

Vamos aprofundar alguns padrões concretos que podemos usar para criar aplicações multi-agente. Aqui estão alguns padrões interessantes a considerar:

Conversa de grupo

Este padrão é útil quando quer criar uma aplicação de conversa de grupo onde vários agentes podem comunicar entre si. Casos de uso típicos para este padrão incluem colaboração em equipa, suporte ao cliente e redes sociais.

Neste padrão, cada agente representa um utilizador na conversa de grupo, e as mensagens são trocadas entre agentes usando um protocolo de mensagens. Os agentes podem enviar mensagens para a conversa de grupo, receber mensagens da conversa de grupo e responder a mensagens de outros agentes.

Este padrão pode ser implementado usando uma arquitetura centralizada onde todas as mensagens são encaminhadas através de um servidor central, ou uma arquitetura descentralizada onde as mensagens são trocadas diretamente.

Conversa de grupo

Transferência de tarefas

Este padrão é útil quando quer criar uma aplicação onde múltiplos agentes podem transferir tarefas entre si.

Casos de uso típicos para este padrão incluem suporte ao cliente, gestão de tarefas e automação de fluxos de trabalho.

Neste padrão, cada agente representa uma tarefa ou um passo num fluxo de trabalho, e os agentes podem transferir tarefas para outros agentes com base em regras predefinidas.

Hand off

Filtragem colaborativa

Este padrão é útil quando quer criar uma aplicação onde múltiplos agentes podem colaborar para fazer recomendações aos utilizadores.

Porque quererá múltiplos agentes a colaborar é porque cada agente pode ter diferentes áreas de especialização e pode contribuir para o processo de recomendação de formas distintas.

Vamos tomar um exemplo em que um utilizador quer uma recomendação sobre a melhor ação para comprar na bolsa.

Recomendação

Cenário: processo de reembolso

Considere um cenário em que um cliente está a tentar obter um reembolso por um produto; podem estar envolvidos bastantes agentes neste processo, mas vamos dividi-los entre agentes específicos para este processo e agentes gerais que podem ser usados noutros processos.

Agentes específicos para o processo de reembolso:

Seguem-se alguns agentes que poderiam estar envolvidos no processo de reembolso:

Agentes gerais:

Estes agentes podem ser usados por outras partes do seu negócio.

Há bastantes agentes listados anteriormente, tanto para o processo específico de reembolso como para os agentes gerais que podem ser usados noutras partes do seu negócio. Espera-se que isto lhe dê uma ideia de como pode decidir quais os agentes a utilizar no seu sistema multi-agente.

Tarefa

Desenhe um sistema multi-agente para um processo de suporte ao cliente. Identifique os agentes envolvidos no processo, os seus papéis e responsabilidades, e como interagem entre si. Considere tanto agentes específicos do processo de suporte ao cliente como agentes gerais que podem ser usados noutras partes do seu negócio.

Reflita antes de ler a solução seguinte, poderá precisar de mais agentes do que pensa.

DICA: Pense nas diferentes etapas do processo de apoio ao cliente e considere também os agentes necessários para qualquer sistema.

Solução

Solução

Verificações de conhecimento

Pergunta: Quando deve considerar utilizar multi-agentes?

Questionário da solução

Resumo

Nesta lição, analisámos o padrão de design multi-agente, incluindo os cenários em que os multi-agentes são aplicáveis, as vantagens de utilizar múltiplos agentes em vez de um agente singular, os blocos construtivos para implementar o padrão de design multi-agente, e como obter visibilidade sobre a forma como os múltiplos agentes interagem entre si.

Tem mais perguntas sobre o Padrão de Design Multi-Agente?

Junte-se ao Discord do Microsoft Foundry para conhecer outros aprendizes, participar em horas de atendimento e obter respostas às suas perguntas sobre Agentes de IA.

Recursos adicionais

Lição anterior

Planeamento do Design

Próxima lição

Metacognição em Agentes de IA


Aviso legal: Este documento foi traduzido com recurso ao serviço de tradução por IA Co-op Translator. Embora nos esforcemos pela exatidão, tenha em atenção que traduções automáticas podem conter erros ou imprecisões. O documento original, na sua língua nativa, deverá ser considerado a fonte autorizada. Para informações críticas, recomenda-se a tradução profissional por um tradutor humano. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes da utilização desta tradução.