(Clique na imagem acima para ver o vídeo desta lição)
Assim que começar a trabalhar num projeto que envolva vários agentes, terá de considerar o padrão de design multi-agente. No entanto, pode não ser imediatamente claro quando passar para multi-agentes e quais são as vantagens.
Nesta lição, iremos responder às seguintes perguntas:
- Quais são os cenários em que os multi-agentes são aplicáveis?
- Quais são as vantagens de usar multi-agentes em vez de um único agente a executar várias tarefas?
- Quais são os blocos de construção para implementar o padrão de design multi-agente?
- Como podemos ter visibilidade sobre como os múltiplos agentes estão a interagir entre si?
Após esta lição, deverá ser capaz de:
- Identificar cenários onde os multi-agentes são aplicáveis
- Reconhecer as vantagens de usar multi-agentes em vez de um agente singular.
- Compreender os blocos de construção para implementar o padrão de design multi-agente.
Qual é a visão geral?
Os sistemas multi-agente são um padrão de design que permite a vários agentes trabalharem em conjunto 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, que cenários são um bom caso de utilização para usar multi-agentes? A resposta é que há muitos cenários onde empregar múltiplos agentes é benéfico, especialmente nos seguintes casos:
- Grandes cargas de trabalho: Grandes cargas de trabalho podem ser divididas em tarefas mais pequenas e atribuídas a diferentes agentes, permitindo processamento em paralelo e conclusão mais rápida. Um exemplo disto é no caso de uma grande tarefa de processamento de dados.
- Tarefas complexas: Tarefas complexas, tal como grandes cargas de trabalho, podem ser divididas em subtarefas menores e atribuídas a diferentes agentes, cada um especializado num aspeto específico da tarefa. Um bom exemplo disto é no caso de veículos autónomos, onde diferentes agentes gerem a navegação, a deteção de obstáculos e a comunicação com outros veículos.
- Diversidade de competências: Diferentes agentes podem ter competências diversas, permitindo-lhes tratar diferentes aspetos de uma tarefa de forma mais eficaz do que um único agente. Para este caso, um bom exemplo é na área da saúde, onde agentes podem gerir diagnósticos, planos de tratamento e monitorização de pacientes.
Um sistema com um único agente pode funcionar bem para tarefas simples, mas para tarefas mais complexas, usar vários agentes pode oferecer várias vantagens:
- Especialização: Cada agente pode ser especializado para uma tarefa específica. A falta de especialização num único agente significa que tem um agente que consegue fazer tudo, mas que pode ficar confuso sobre o que fazer quando confrontado com uma tarefa complexa. Pode, por exemplo, acabar por executar uma tarefa para a qual não é o mais adequado.
- Escalabilidade: É mais fácil escalar sistemas adicionando mais agentes em vez de sobrecarregar um único agente.
- Tolerância a falhas: Se um agente falhar, outros podem continuar a funcionar, garantindo a fiabilidade do sistema.
Vamos tomar um exemplo: vamos reservar uma viagem para um utilizador. Um sistema com um único agente teria de tratar de 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 possuir ferramentas para tratar todas essas tarefas. Isto poderia levar 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 como uma loja familiar versus uma agência de viagens a operar em regime de franquia. A loja familiar teria um único agente a tratar todos os aspetos do processo de reserva, enquanto a franquia teria diferentes agentes a tratar de diferentes aspetos do processo de reserva.
Antes de poder implementar o padrão de design multi-agente, precisa de compreender os blocos de construção que compõem o padrão.
Vamos tornar isto mais concreto analisando novamente o exemplo de reservar uma viagem para um utilizador. Neste caso, os blocos de construção incluiriam:
- Comunicação entre agentes: Agentes para encontrar voos, reservar hotéis e carros de aluguer precisam de comunicar e partilhar informação sobre as preferências e restrições do utilizador. Precisa de decidir os protocolos e métodos para esta comunicação. Concretamente, isto significa que o agente que procura voos precisa de comunicar com o agente que reserva hotéis para garantir que o hotel é reservado para as mesmas datas do voo. Isso significa que os agentes precisam de partilhar informações sobre as datas de viagem do utilizador, o que implica que precisa de decidir quais os agentes que partilham informação e como é que partilham essa informação.
- Mecanismos de coordenação: Os agentes precisam de coordenar as suas ações para garantir que as preferências e restrições do utilizador sejam respeitadas. Uma preferência do utilizador poderia ser que queira um hotel perto do aeroporto, enquanto uma restrição poderia ser que os carros de aluguer só estão disponíveis no aeroporto. Isso significa que o agente que reserva hotéis precisa de coordenar-se com o agente que trata do aluguer de carros para garantir que as preferências e restrições do utilizador são satisfeitas. Isto significa que precisa de decidir como é que os agentes estão a coordenar as suas ações.
- Arquitetura do agente: Os agentes precisam de ter uma estrutura interna para tomar decisões e aprender a partir das suas interações com o utilizador. Isto significa que o agente que procura voos precisa de ter uma estrutura interna para tomar decisões sobre que voos recomendar ao utilizador. Isso implica que precisa de decidir como é que os agentes estão a tomar decisões e a aprender com as suas interações com o utilizador. Exemplos de como um agente aprende e melhora poderiam ser, por exemplo, o agente que procura voos utilizar um modelo de machine learning para recomendar voos ao utilizador com base nas suas preferências passadas.
- Visibilidade das interações multi-agente: Precisa de ter visibilidade sobre como os múltiplos agentes estão a interagir entre si. Isto significa que precisa de ferramentas e técnicas para rastrear as atividades e interações dos agentes. Isto pode ser na forma de ferramentas de registo e monitorização, ferramentas de visualização e métricas de desempenho.
- Padrões multi-agente: Existem diferentes padrões para implementar sistemas multi-agente, como arquiteturas centralizadas, descentralizadas e híbridas. Precisa de decidir o padrão que melhor se adapta ao seu caso de uso.
- Humano no processo: Na maioria dos casos, terá um humano no processo e precisa de instruir os agentes sobre quando pedir intervenção humana. Isto pode ser na forma de um utilizador a pedir um hotel ou voo específico que os agentes não tenham recomendado ou a pedir confirmação antes de reservar um voo ou hotel.
É importante ter visibilidade sobre como os múltiplos agentes estão a interagir entre si. Esta visibilidade é essencial para depuração, otimização e para garantir a eficácia geral do sistema. Para conseguir isto, precisa de ferramentas e técnicas para rastrear as atividades e interações dos agentes. Isto pode 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 restrições do utilizador, e as interações entre agentes. Este painel poderia mostrar as datas de 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 aluguer de carros. Isto daria uma visão clara de como os agentes estão a interagir entre si e se as preferências e restrições do utilizador estão a ser satisfeitas.
Vamos analisar cada um destes aspetos mais em detalhe.
- Registo e ferramentas de monitorização: Deve registar cada ação tomada por um agente. Uma entrada de registo pode armazenar informação sobre o agente que tomou a ação, a ação tomada, o momento em que a ação foi tomada e o resultado da ação. Esta informação pode depois ser usada para depuração, otimização e mais.
- Ferramentas de visualização: As ferramentas de visualização podem ajudar a ver as interações entre agentes de uma forma mais intuitiva. Por exemplo, poderia ter um grafo que mostre o fluxo de informação entre agentes. Isto pode ajudar a identificar estrangulamentos, ineficiências e outros problemas no sistema.
- Métricas de desempenho: As métricas de desempenho podem ajudar a acompanhar a eficácia do sistema multi-agente. Por exemplo, poderia acompanhar o tempo necessário 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. Esta informação pode ajudar a identificar áreas para melhoria e otimizar o sistema.
Vamos explorar alguns padrões concretos que podemos usar para criar aplicações multi-agente. Aqui estão alguns padrões interessantes a considerar:
Este padrão é útil quando pretende criar uma aplicação de chat de grupo onde múltiplos agentes podem comunicar entre si. Casos de utilização típicos para este padrão incluem colaboração de equipas, apoio ao cliente e redes sociais.
Neste padrão, cada agente representa um utilizador no chat de grupo, e as mensagens são trocadas entre agentes utilizando um protocolo de mensagens. Os agentes podem enviar mensagens para o chat de grupo, receber mensagens do chat 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.
Este padrão é útil quando pretende criar uma aplicação onde múltiplos agentes podem passar tarefas entre si.
Casos de utilização típicos para este padrão incluem apoio 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 passar tarefas para outros agentes com base em regras predefinidas.
Este padrão é útil quando pretende criar uma aplicação onde múltiplos agentes podem colaborar para fazer recomendações aos utilizadores.
A razão para querer que vários agentes colaborem é que cada agente pode ter competências diferentes 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 no mercado bolsista.
- Especialista do setor: Um agente poderia ser um especialista num setor específico.
- Análise técnica: Outro agente poderia ser um especialista em análise técnica.
- Análise fundamental: E outro agente poderia ser um especialista em análise fundamental. Ao colaborarem, estes agentes podem fornecer uma recomendação mais completa ao utilizador.
Considere um cenário onde um cliente está a tentar obter o reembolso de um produto; podem estar envolvidos vários 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:
A seguir estão alguns agentes que poderiam estar envolvidos no processo de reembolso:
- Agente do cliente: Este agente representa o cliente e é responsável por iniciar o processo de reembolso.
- Agente do vendedor: Este agente representa o vendedor e é responsável por processar o reembolso.
- Agente de pagamento: Este agente representa o processo de pagamento e é responsável por reembolsar o pagamento do cliente.
- Agente de resolução: Este agente representa o processo de resolução e é responsável por resolver quaisquer problemas que surjam durante o processo de reembolso.
- Agente de conformidade: Este agente representa o processo de conformidade e é responsável por garantir que o processo de reembolso cumpre as normas e políticas.
Agentes gerais:
Estes agentes podem ser usados por outras partes do seu negócio.
- Agente de envio: Este agente representa o processo de envio e é responsável por enviar o produto de volta ao vendedor. Este agente pode ser usado tanto no processo de reembolso como no envio geral de um produto aquando de uma compra, por exemplo.
- Agente de feedback: Este agente representa o processo de recolha de feedback e é responsável por recolher a opinião do cliente. O feedback pode ser recolhido a qualquer momento e não apenas durante o processo de reembolso.
- Agente de escalonamento: Este agente representa o processo de escalonamento e é responsável por escalar problemas para um nível superior de suporte. Pode usar este tipo de agente para qualquer processo onde seja necessário escalonar uma questão.
- Agente de notificações: Este agente representa o processo de notificações e é responsável por enviar notificações ao cliente em várias fases do processo de reembolso.
- Agente de análise: Este agente representa o processo de análise e é responsável por analisar dados relacionados com o processo de reembolso.
- Agente de auditoria: Este agente representa o processo de auditoria e é responsável por auditar o processo de reembolso para garantir que está a ser realizado corretamente.
- Agente de relatórios: Este agente representa o processo de geração de relatórios e é responsável por criar relatórios sobre o processo de reembolso.
- Agente de conhecimento: Este agente representa o processo de gestão do conhecimento e é responsável por manter uma base de conhecimento com informação relacionada com o processo de reembolso. Este agente pode ter conhecimento tanto sobre reembolsos como sobre outras partes do seu negócio.
- Agente de segurança: Este agente representa o processo de segurança e é responsável por garantir a segurança do processo de reembolso.
- Agente de qualidade: Este agente representa o processo de qualidade e é responsável por garantir a qualidade do processo de reembolso.
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 usar no seu sistema multi-agente.
Desenhe um sistema multi-agente para um processo de apoio 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 apoio ao cliente como agentes gerais que podem ser usados noutras partes do seu negócio.
Pensa antes de ler a solução seguinte, podes precisar de mais agentes do que pensas.
DICA: Pensa nos diferentes estágios do processo de apoio ao cliente e considera também os agentes necessários para qualquer sistema.
Pergunta: Quando deves considerar usar multi-agentes?
- A1: Quando tens pouca carga de trabalho e uma tarefa simples.
- A2: Quando tens uma grande carga de trabalho
- A3: Quando tens uma tarefa simples.
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 multi-agentes em vez de um único agente, os blocos de construção para implementar o padrão de design multi-agente e como ter visibilidade sobre como os vários agentes interagem entre si.
Junta-te ao Microsoft Foundry Discord para encontrares outros aprendentes, participa em sessões de atendimento e obter respostas às tuas perguntas 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 por garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original, na sua língua nativa, deve ser considerado a fonte fidedigna. Para informações críticas, recomenda-se uma tradução profissional realizada por um tradutor humano. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes da utilização desta tradução.


