Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A orquestração generativa também dá suporte a sistemas de vários agentes, em que um agente chama outros agentes. Ao dividir problemas em vários agentes especializados, você torna seu aplicativo mais modular, escalonável e gerenciável.
Agentes inline
Agentes em linha, também conhecidos como agentes filhos, são pequenos fluxos de trabalho reutilizáveis dentro do mesmo agente. Frequentemente, são apenas tópicos que o agente principal usa como sub-rotinas. Por exemplo, o agente principal pode chamar um tópico "Traduzir Texto" como uma etapa de um plano maior. Agentes inline compartilham contexto com o agente principal, então passar dados entre eles é simples.
Prática recomendada: mantenha os agentes inline focados em uma única responsabilidade e teste-os bem.
Agentes conectados
Agentes conectados são agentes separados com sua própria orquestração, ferramentas e conhecimento. O agente principal delega parte de um pedido a um agente infantil. Por exemplo, um agente de TI chama um agente de Vendas para obter informações sobre preços. Os agentes conectados habilitam a modularidade e a separação de domínio e podem ignorar os limites do plano. Eles podem ter privilégios ou conhecimentos diferentes, então aplique controles de governança e auditoria.
No entanto, o uso de agentes conectados requer uma governança cuidadosa:
Orquestração: o orquestrador pai deve ter critérios claros de quando transferir para um agente conectado. O orquestrador geralmente transfere quando a intenção do usuário corresponde ao domínio do agente conectado. Para auxiliar nesse processo, descreva claramente o propósito do agente conectado na configuração do pai. Trate todo o agente conectado como uma "ferramenta" de agente com uma descrição, do ponto de vista do pai.
Transferência de dados: Você deve gerenciar a transferência de dados. Decida qual contexto do pai deve passar para o agente conectado. Copilot Studio passa o histórico da conversa por padrão quando um agente chama outro, de modo que o agente conectado entenda o contexto anterior da conversa. Mas talvez você precise cumprir parâmetros específicos também. Por exemplo, se o agente principal já sabe o nome do usuário anterior, ele pode enviar isso para o agente conectado para evitar perguntar novamente.
Segurança: O agente conectado pode ter acesso a coisas que o agente pai não tem. Certifique-se de que ligar para o agente conectado não contorne as restrições sem querer. Por exemplo, se o agente pai não puder excluir registros, mas o agente conectado pode, o agente pai não deve chamar o agente conectado em cenários onde a exclusão pode ocorrer sem aprovação adequada. Trate uma chamada de agente conectado como qualquer outra ação importante. Se estiver fazendo algo sensível, submeta-o às verificações necessárias ou ao consentimento do usuário.
Auditoria e monitoramento: Registre quando um agente conectado foi invocado e o que ele fez. Como é um agente separado, você tem transcrições separadas para ele. É importante para a depuração correlacionar as sessões do pai e as conectadas. Normalmente, identificadores na telemetria ligam os dois.
Quando separar os agentes
Não crie um agente separado para cada subtarefa. Use agentes separados se a subtarefa:
- É complexo o suficiente para ter seu próprio conjunto de ferramentas ou conhecimento (área de especialização diferente)
- Requer regras de governança ou controles de acesso diferentes do agente principal
- Pode ser reutilizado em muitos agentes principais diferentes (portanto, é como um agente de serviço)
Se nenhuma dessas condições se aplicar, um agente embutido simples poderá lidar bem com o trabalho e, ao mesmo tempo, ser mais simples do que um agente conectado completo. Agentes separados introduzem sobrecarga ao sistema. Há um tempo de execução um pouco maior devido à alternância de contexto e à complexidade na manutenção de vários agentes. Então use-as com discernimento. Para uma abordagem prática, comece com um agente. Só então divida em vários agentes quando houver uma necessidade clara de modularidade ou um limite que um único agente não deveria ultrapassar.
Práticas recomendadas para orquestração multiagente
As práticas recomendadas a seguir se aplicam ao criar instruções para pai e subagentes em uma configuração de vários agentes.
1. Princípio de resposta única
Verifique se apenas um agente conversa com o usuário por turno. Em uma configuração multiagente, o agente pai é o único que deve fornecer a resposta final. Subagentes são pesquisadores, não respondentes.
- Faça: Adicione às instruções principais: "Você é o único agente que se comunica com o usuário. Combine as descobertas de todos os agentes filho em uma única resposta."
- Não deixe isso ambíguo. Sem orientação explícita, os subagentes respondem diretamente ao usuário, causando mensagens duplicadas ou parciais.
2. As instruções de subagente devem declarar sua função
Sempre diga aos subagentes que eles são subagentes. Subagentes não sabem inerentemente que fazem parte de uma orquestração. Sem orientação explícita, eles se comportam como agentes autônomos e enviam mensagens diretamente ao usuário.
- Faça: Adicione às instruções de cada subagente: "Você é um subagente. NÃO responda diretamente ao usuário. Seu trabalho é buscar informações e relatar suas descobertas ao agente pai. O agente principal lida com toda a comunicação com o usuário.
- Não: suponha que os subagentes descubram o padrão de orquestração por conta própria.
3. Use um idioma claro e direto nas instruções
Use sempre uma linguagem direta. Evite frases suaves ou educadas. A plataforma injeta instruções em nível de sistema usando linguagem enfática (DEVE, NÃO FAÇA, NUNCA). Instruções escritas em tom brando ("por favor, tente", "você deveria", "seria bom") perdem prioridade quando entram em conflito entre si.
- Faça: "NUNCA responda diretamente ao usuário. Apenas retorne suas descobertas."
- Faça: "Deve haver exatamente uma resposta final para cada pergunta do usuário."
- Não: "Tente evitar o envio de mensagens para o usuário e, em vez disso, retorne suas descobertas."
- Não: "Idealmente, queremos uma única resposta combinada."
4. Usar uma fonte de conhecimento por subagente (sem sobreposição)
Atribua fontes de conhecimento distintas e não sobrepostas a cada subagente. Se dois subagentes pesquisarem a mesma base de dados de conhecimento, um subagente encontrará a resposta primeiro. O segundo subagente retorna resultados duplicados ou ignora totalmente sua pesquisa, não adicionando nenhum valor.
- Faça: a CA-1 pesquisa a Fonte de Conhecimento A (por exemplo, políticas de RH). A CA-2 pesquisa a Fonte de Conhecimento B (por exemplo, documentação de TI).
- Não: conceda aos dois subagentes acesso aos mesmos documentos, tabelas do Dataverse ou sites SharePoint.
- Observação: se você tiver apenas uma fonte de conhecimento, use um único agente com conhecimento em vez de dividir em dois subagentes. O multi-agente agrega valor somente quando as fontes são genuinamente diferentes.
5. Usar descrições precisas e distintas para subagentes
Escreva descrições claras e distintas para cada subagente visível para o pai. O agente pai usa as descrições dos subagentes para decidir o roteamento. Se as descrições forem vagas, idênticas ou imprecisas, o pai não poderá tomar boas decisões de roteamento.
- Faça: CA-1: "Pesquisa documentos de política de RH para perguntas relacionadas aos funcionários". CA-2: "Pesquisa a base de dados de conhecimento de TI para perguntas de suporte técnico".
- Não: dê a ambos os agentes a mesma descrição quando eles atendem a domínios diferentes.
- Não: use descrições genéricas como "Este agente pode ajudar com perguntas".
6. As instruções principais devem definir o padrão de orquestração
Diga ao agente pai como orquestrar. Não diga apenas "use agentes filho". O pai precisa de instruções explícitas sobre o padrão: invocar agentes, aguardar resultados, combinar e responder.
- Faça: "Quando o usuário fizer uma pergunta: 1. Invoque os agentes filho para coletar informações. 2. Aguarde até que os agentes filho retornem suas descobertas. 3. Combine as descobertas em uma única resposta unificada. 4. Forneça exatamente uma resposta ao usuário. Os agentes filho não devem responder diretamente ao usuário."
- Não: "Quando o usuário fizer uma pergunta, invoque subagentes, obtenha respostas de ambas as fontes e forneça uma única resposta consolidada." (Muito vago. A instrução não diz aos subagentes para permanecerem em silêncio.)
7. Incluir a diretiva "sem resposta direta" na delegação de tarefas
Mesmo com instruções claras para os subagentes, reforçar as instruções na tarefa delegada funciona como uma rede de segurança.
- O que fazer: adicione às instruções do pai: "Ao delegar a um agente filho, inclua sempre na tarefa: 'Retornar somente suas descobertas. Não responda ao usuário.'"
- Não: dependa apenas das instruções do próprio subagente. O contexto da tarefa fornece ao subagente mais sinais que reforçam o padrão.
8. Testar com consultas de incompatibilidade de domínio
Sempre teste com perguntas que não correspondam ao domínio de nenhum subagente. Este teste revela se os subagentes retornam normalmente "nenhuma informação encontrada" em vez de retornar informações que podem estar incorretas, ficar demorados ou enviar mensagens confusas.
- Faça: teste com consultas fora dos domínios de todos os subagentes (por exemplo, pergunte sobre o tempo quando os agentes lidam com RH e TI).
- O que fazer: verifique se o pai lida com "ambos os agentes não encontraram nada" normalmente.
- Não faça isso: teste apenas com consultas de caso mais simples que correspondam perfeitamente ao domínio de um subagente.
9. Prefira perguntar em vez de informar ao esperar uma resposta
Use interações em formato de pergunta quando esperar uma resposta do usuário. Use o estilo inform/send somente para as mensagens unidirecionais finais. Se o agente fizer uma pergunta ao usuário usando uma mensagem unidirecional (informar), a resposta do usuário voltará ao planejador pai como uma consulta totalmente nova. Nesse caso, é melhor continuar a mesma conversa com o subagente.
- Faça: Escreva instruções como: "Se você precisar de esclarecimento, faça uma pergunta ao usuário e aguarde sua resposta".
- Não: escreva instruções como: "Informe o usuário sobre as opções e deixe-o escolher". "Informe" sinaliza uma mensagem unidirecional, enquanto "perguntar" sinaliza uma troca bidirecional.
Lista de verificação de referência rápida
| # | Verificar |
|---|---|
| 1 | As instruções parentais declaram explicitamente: "somente eu respondo ao usuário" |
| 2 | Cada instrução de subagente diz "não responda diretamente ao usuário" |
| 3 | As instruções usam linguagem diretiva enfática (DEVE, NUNCA, SOMENTE) |
| 4 | Cada subagente tem uma fonte de conhecimento exclusiva e não sobreposta |
| 5 | As descrições dos subagentes são precisas, distintas e específicas |
| 6 | Instruções principais definem o padrão completo de orquestração (invocar → aguardar → combinar → responder) |
| 7 | O pai passa "sem resposta direta" no contexto da tarefa delegada |
| 8 | Testado com consultas de incompatibilidade de domínio |
| 9 | A distinção entre solicitar e informar está correta nas instruções do subagente |
Informações relacionadas
- Adicionar visão geral de outros agentes
- Adicione um agente de criança
- Conecte-se a um agente existente do Copilot Studio
- Conecte-se a um agente Microsoft Foundry
- Conectar a um agente de dados do Microsoft Fabric
- Conectar a um agente do SDK do Microsoft 365 Agents
- Conecte um agente disponível pelo protocolo Agent2Agent (A2A)