Ao criar um agente personalizado no Copilot Studio, você pode perceber que ele entra em um loop infinito após um redirecionamento de tópico. Em vez de seguir para o próximo passo lógico, o agente repete o mesmo caminho de conversa repetidamente. Isso acontece porque o redirecionamento não está configurado corretamente ou as condições de gatilho são muito amplas. Este artigo explica por que o loop ocorre e fornece as etapas exatas para corrigi-lo, para que seu agente funcione corretamente.
Principais conclusões: Pare loops infinitos de redirecionamento no Copilot Studio
- Frases de gatilho do tópico: Garanta que cada tópico tenha frases de gatilho exclusivas para evitar que a mesma entrada seja correspondida duas vezes.
- Ação de redirecionamento > Seleção de tópico: Sempre defina um tópico de destino específico; nunca deixe como “Fallback do Sistema” ou o mesmo tópico.
- Nó de encerrar conversa: Insira este nó após o redirecionamento para interromper o loop quando nenhuma ação adicional for necessária.
Por que um Redirecionamento de Tópico Cria um Loop
Um loop ocorre quando o redirecionamento de tópico do agente envia a conversa de volta para um tópico que imediatamente redireciona novamente para o mesmo tópico ou para um conjunto de tópicos que continuam se correspondendo. A causa raiz geralmente é um destes três cenários:
Frases de Gatilho Amplas
Se dois ou mais tópicos têm frases de gatilho sobrepostas ou idênticas, o agente pode corresponder ao tópico errado após um redirecionamento. Por exemplo, o Tópico A é acionado por “ajuda” e o Tópico B também é acionado por “ajuda”. Após o Tópico A terminar e redirecionar para o Tópico B, o agente pode corresponder novamente ao Tópico A porque a frase de gatilho “ajuda” ainda está presente no contexto da conversa.
Redirecionamento para o Mesmo Tópico
Um desenvolvedor pode acidentalmente configurar um redirecionamento que aponta de volta para o tópico atual. Quando o agente executa o redirecionamento, ele reentra no mesmo tópico, executa a mesma lógica e redireciona novamente. Isso cria um loop infinito que nunca atinge um nó final.
Falta do Nó de Encerrar Conversa
Cada tópico deve ter um ponto final claro. Se um tópico realiza um redirecionamento, mas não inclui um nó “Encerrar conversa” para quando o redirecionamento não for necessário, o agente pode voltar ao início do tópico. Isso é comum quando o redirecionamento está dentro de uma ramificação condicional que não cobre todos os resultados possíveis.
Etapas para Corrigir o Loop de Redirecionamento
Siga estas etapas para identificar e resolver o loop no seu agente do Copilot Studio.
- Abra o agente no Copilot Studio
Faça login no Copilot Studio em copilotstudio.microsoft.com. Selecione o agente que está com o problema de loop na lista de agentes. Se você não vir o agente, clique em “Agentes” na navegação à esquerda e depois clique no nome do agente. - Vá para Tópicos e identifique os tópicos em loop
Na navegação à esquerda, clique em “Tópicos”. Procure por tópicos que tenham um alto número de redirecionamentos ou um ícone de aviso. Esses são provavelmente os tópicos envolvidos no loop. Expanda os tópicos para ver o fluxo completo. - Revise as frases de gatilho de cada tópico
Clique em cada tópico no loop. No editor de tópicos, clique no nó “Gatilho” na parte superior. Examine a lista de frases de gatilho. Se dois tópicos compartilham a mesma frase, edite as frases de gatilho de um tópico para torná-las exclusivas. Por exemplo, altere “ajuda” no Tópico A para “assistência com pedidos” e mantenha “ajuda” apenas no Tópico B. - Verifique a configuração da ação Redirecionar
No fluxo do tópico, encontre a ação “Redirecionar”. Clique nela para abrir suas propriedades. Verifique se o menu suspenso “Tópico de destino” aponta para um tópico diferente do atual. Se apontar para o mesmo tópico, altere para o tópico de destino correto. Se você pretende encerrar a conversa, use um nó “Encerrar conversa” em vez de um redirecionamento. - Insira um nó de Encerrar conversa
Após a ação de redirecionamento, adicione um nó “Encerrar conversa” clicando no sinal de mais (+) abaixo do nó de redirecionamento. Escolha “Encerrar conversa” no menu. Isso garante que, após o redirecionamento, o agente pare de processar e não volte ao início do tópico. - Teste o agente no painel de teste
Clique no botão “Testar” no canto superior direito do editor. Digite uma mensagem que acione o tópico que você corrigiu. Observe o fluxo da conversa no painel de teste. Se o agente ainda estiver em loop, repita as etapas 2 a 5 até que o loop pare. - Publique o agente atualizado
Assim que o loop for resolvido, clique em “Publicar” no canto superior direito. Selecione “Publicar” novamente na caixa de diálogo de confirmação. O agente atualizado estará disponível para os usuários após alguns minutos.
Se o Loop Persistir Após a Correção Principal
Às vezes, o loop continua mesmo depois de você corrigir o redirecionamento e as frases de gatilho. Os seguintes problemas geralmente causam isso.
Contexto da Conversa Armazena Dados Antigos do Gatilho
O Copilot Studio lembra das últimas mensagens do usuário. Se o usuário disser “ajuda” no início da conversa, essa palavra permanece no contexto. Após um redirecionamento, o agente pode corresponder ao contexto antigo em vez do novo tópico. Para corrigir isso, adicione uma ação “Limpar contexto” antes do redirecionamento. No fluxo do tópico, clique no sinal de mais acima do nó de redirecionamento, selecione “Gerenciar contexto” e depois escolha “Limpar todo o contexto”. Isso redefine a memória da conversa.
Redirecionamento Aponta para um Tópico de Fallback
Se o destino do redirecionamento estiver definido como “Fallback do Sistema” ou “Escalar”, o agente pode não encontrar um tópico correspondente e voltar ao tópico padrão. Abra a ação de redirecionamento e selecione um tópico personalizado específico no menu suspenso. Nunca deixe o destino como “Fallback do Sistema” a menos que você queira que o agente escale para um humano.
Múltiplos Redirecionamentos em um Único Tópico
Um tópico que contém mais de uma ação de redirecionamento pode criar um loop se as condições não forem mutuamente exclusivas. Por exemplo, se o Tópico A tem um redirecionamento para o Tópico B quando o usuário diz “sim” e outro redirecionamento para o Tópico C quando o usuário diz “não”, mas a lógica da condição é falha, o agente pode executar ambos os redirecionamentos. Revise a condição de cada redirecionamento e garanta que eles usem ramificações “Se/Senão” corretamente. Use o nó “Condição” para separar os caminhos.
Loop de Redirecionamento de Tópico vs Conflito de Gatilho de Tópico: Principais Diferenças
| Item | Loop de Redirecionamento de Tópico | Conflito de Gatilho de Tópico |
|---|---|---|
| Descrição | Agente redireciona para um tópico que redireciona de volta ao tópico original | Dois tópicos têm frases de gatilho que correspondem à mesma entrada do usuário |
| Sintoma principal | Repete o mesmo caminho de conversa sem entrada do usuário | Agente pula para o tópico errado quando o usuário digita uma frase |
| Local da correção | Propriedades da ação Redirecionar no fluxo do tópico | Nó de Gatilho no editor de tópicos |
| Causa comum | Destino do redirecionamento definido para o mesmo tópico ou fallback | Frases de gatilho duplicadas ou sobrepostas |
| Método de teste | Execute o painel de teste e observe o fluxo em busca de nós repetidos | Digite a mesma frase e veja qual tópico é ativado |
| Tempo de resolução | 5-10 minutos por tópico | 2-5 minutos por frase duplicada |
Agora você pode identificar e corrigir loops de redirecionamento no Copilot Studio. Comece verificando se há frases de gatilho duplicadas, depois verifique se o destino do redirecionamento não é o mesmo tópico. Adicione um nó de Encerrar conversa após cada redirecionamento para interromper o loop. Para agentes avançados, use Limpar contexto antes dos redirecionamentos para remover entradas antigas do usuário da memória.