Mega agentes

É possível combinar vários agentes do Dialogflow, chamados de subagentes, em um único mega-agente. Quando você executa uma solicitação de detecção de intent em um mega-agente, todos os subagentes são considerados, e a melhor resposta dos subagentes é retornada.

Há vários motivos para usar os mega-agentes:

  • Melhor governança: se você tem várias equipes criando um agente, cada uma delas pode ser responsável por um subagente. Isso simplifica os conflitos de mudança entre as equipes.
  • Mais intents: se você tiver agentes com um grande número de intents, poderá se aproximar do limite de contagem de intents. Nesse caso, é possível criar vários sub-agentes e um mega-agente.

Limitações

As limitações abaixo se aplicam a mega-agentes:

  • Um mega-agente e os subagentes dele precisam ser criados na mesma região.
  • Em uma região, um mega-agente e os subagentes dele estão associados a diferentes projetos do GCP.
  • Um mega-agente pode ter no máximo 10 subagentes.
  • O Small Talk não funciona com mega-agentes.
  • A prioridade da intent do subagente não afeta a correspondência de intents ao enviar solicitações para um mega-agente.
  • A integração do Google Assistente não pode ser usada com mega-agente.
  • Integrações de telefonia integradas ao parceiro (AudioCodes, Avaya, Genesys, SignalWire, Voximplant) não são compatíveis.
  • O mega-agente não oferece suporte a intents de fallback usadas como intents de continuidade.

Como criar subagentes

Os subagentes são criados como qualquer outro agente. Adicione intents, contextos, entidades etc. conforme necessário para criar seus agentes.

Como criar ou atualizar um mega-agente

É possível usar o Console do Dialogflow para criar um mega-agente e vinculá-lo aos subagentes.

O Dialogflow considera a maioria das configurações do mega-agente em conta e registra os dados para o mega-agente. Exemplo:

IU da Web

1. Criar um mega-agente

  1. Acesse o Console do Dialogflow ES.
  2. Clique em Criar agente no menu da barra lateral à esquerda. Se você já tiver outros agentes, clique no nome do agente, role até a parte inferior da página e clique em Criar novo agente.
  3. Digite o nome do agente, o idioma padrão, o fuso horário padrão e o projeto do GCP.
  4. Defina o Tipo de agente como Mega-agente.
  5. Clique no botão Criar.

2. Adicionar e gerenciar subagentes

  1. Clique em Subagentes no menu da barra lateral à esquerda.
  2. Selecione o subagente que você quer adicionar ao mega-agente.
  3. O sub-agente Ambiente é padronizado como Rascunho, mas você pode atualizar isso conforme necessário.
  4. Se você quiser usar a Base de conhecimento associada ao subagente, altere o campo de Excluídos para Incluídos.
  5. Clique em Save.

Configurar papéis

Dependendo de como você planeja usar o mega-agente, é necessário conceder papéis específicos nos seus projetos de subagente. Assim, o mega-agente tem permissão para fazer chamadas para os subagentes. Para configurar esses papéis:

  1. Crie os projetos do mega-agente e subagente do GCP como você faria normalmente e ative a "API Dialogflow" para cada um.
  2. Se você planeja usar a API para interagir com seu mega-agente, precisa conceder um papel a cada um dos projetos de subagente para a conta de serviço: usado para chamadas de API de mega-agente, e o papel precisa ter permissão para fazer chamadas de detecção de intent. Os seguintes fornecerão esse acesso: proprietário do projeto, editor do projeto, administrador da API Dialogflow ou cliente da API Dialogflow. Para saber o endereço de e-mail dessa conta de serviço, faça o seguinte:
    1. Acesse a página da conta de serviço do IAM.
    2. Selecione o projeto do seu mega-agente.
    3. Selecione uma conta de serviço criada para chamadas de API ou adicione uma nova conta de serviço com o papel desejado. Siga as instruções de configuração para criar uma nova conta de serviço e fazer o download de uma chave privada.
    4. Anote o endereço de e-mail da conta de serviço escolhida. Você precisará disso abaixo.
  3. Se você planeja usar integrações para o mega-agente, a conta de serviço do service-project-number@gcp-sa-dialogflow.iam.gserviceaccount.com criado automaticamente do mega-agente precisa ter um papel nesse projeto que inclua permissão para fazer chamadas de intent de detecção. Os seguintes fornecerão esse acesso: proprietário do projeto, editor do projeto, administrador da API Dialogflow ou cliente da API Dialogflow. Para saber o endereço de e-mail dessa conta de serviço, faça o seguinte:

    1. Visite a página principal do IAM.
    2. Selecione o projeto do seu mega-agente.
    3. Ative a opção Incluir concessões de papel fornecidos pelo Google à direita.
    4. Encontre a conta de serviço que corresponde ao padrão:
      service-project-number@gcp-sa-dialogflow.iam.gserviceaccount.com.
    5. Anote o endereço de e-mail da conta de serviço escolhida. Você precisará disso abaixo.
  4. Para cada projeto de subagente, conceda papéis às contas de serviço do mega-agente coletadas acima:

    1. Visite a página principal do IAM.
    2. Selecione o projeto para seu subagente.
    3. Conceda os papéis desejados aos endereços de e-mail da conta de serviço do seu mega-agente no projeto.

Detectar intent

Para detectar a intent, chame a solicitação como qualquer outra solicitação de detecção de intent e use o ID do projeto do mega-agente. O Dialogflow vai analisar todos os subagentes, e a melhor resposta dos subagentes será retornada.

Por exemplo, considere os seguintes subagentes:

Subagente Intent Frases de treinamento
Pedidos Livros "Quero comprar um livro"
"Adicionar um livro ao meu carrinho"
Chapéus "Quero comprar um chapéu"
"Eu quero um chapéu"
Conta Saldo "Qual é meu saldo?"
"Quanto resta na minha conta?"
Endereço "Quero alterar meu endereço"
"Tenho um novo endereço"

Se um usuário final disser "Quero comprar um chapéu", uma solicitação de detecção de intent enviada para o mega-agente resultará em uma correspondência para a intent Hats no agente Orders.

Para especificar um ou mais subagentes para uma solicitação de detecção de intent, defina o campo subAgents de QueryParameters. Por exemplo, o REST JSON para esta solicitação seria mais ou menos assim:

{
  "queryInput": {
    "text": {
      "text": "reserve a meeting room for six people",
      "languageCode": "en-US"
    }
  },
  "queryParams": {
    "subAgents": [
       {"project": "projects/sub-agent-1-project-id"},
       {"project": "projects/sub-agent-2-project-id"}
    ]
  }
}

Como invocar eventos

Para invocar um evento de um serviço de webhook, especifique o subagente da intent que você quer acionar. Use o seguinte formato de nome de evento:

sub-agent-project-id.event-name

Por exemplo, se o ID do projeto do subagente for 123 e o nome do evento for alarm para a intent desejada, use 123.alarm como o nome do evento.

Se você não especificar um subagente para o evento, ele será enviado de volta ao subagente que contém a intent correspondida anteriormente.

Definição do contexto de saída

Para definir contextos de saída de um serviço de webhook, especifique o subagente ao qual o contexto pertence. Use o seguinte formato:

projects/mega_agent_project_id/agent/sessions/session_id/contexts/sub_agent_project_id.context_name

Por exemplo, se a sessão for projects/mega_agent_project_id/agent/sessions/session_id e você quiser definir um contexto chamado music_context para um subagente com ID do projeto sub_project_1, defina o contexto de saída com o seguinte nome:

projects/mega_agent_project_id/agent/sessions/session_id/contexts/sub_project_1.music_context

Se você não especificar um prefixo de subagente para o nome do contexto, o sistema o considerará como um contexto do mega-agente.

Vida útil do contexto

Quando um contexto se torna ativo, a vida útil do contexto normalmente determina quantas rodadas de conversa ocorrerão antes que ele se torne inativo. Essencialmente, a vida útil de um contexto ativo é reduzida para cada turno de conversa depois que ele se torna ativo.

Esse comportamento pode ser diferente para mega-agentes. Durante uma conversa, intents de diferentes subagentes podem ser correspondidas para cada turno da conversa. Quando uma intent de um subagente tem correspondência e ela tem um contexto de saída, a vida útil desse contexto só é reduzida para mais correspondências de intents no mesmo subagente.

Por exemplo, uma correspondência de intent ocorre no subagente A, e a intent tem um contexto de saída que ativa um contexto. As correspondências de intents no subagente B não diminuem a vida útil do ambiente de execução para o contexto ativo originado no subagente A.

Versões e ambientes

Versões e ambientes no nível do mega-agente permitem que você crie snapshots diferentes da intent de substituição do mega-agente e defina configurações diferentes de webhooks e Text-to-Speech para diferentes ambientes de um mega-agente.

As configurações na página do console do subagentes do mega-agente não estão incluídas nas versões e ambientes do mega-agente. As solicitações do mega-agente sempre testam os ambientes dos subagentes especificados nessa página no momento.