Méga-agents

Vous pouvez combiner plusieurs agents Dialogflow, appelés sous-agents, en un seul agent, appelé méga-agent. Lorsque vous exécutez une requête de détection d'intent sur un méga-agent, tous les sous-agents sont pris en compte, et la meilleure réponse des sous-agents est renvoyée.

Plusieurs raisons peuvent vous pousser à utiliser des méga-agents :

  • Meilleure gouvernance : si plusieurs équipes créent un agent, chacune d'elles peut être responsable d'un sous-agent, ce qui simplifie les conflits de modifications entre les équipes.
  • Plus d'intents : si vous avez des agents qui comportent un grand nombre d'intents, vous pouvez approcher le nombre maximal d'intents. Dans ce cas, vous pouvez créer plusieurs sous-agents et un méga-agent.

Limites

Les limites suivantes s'appliquent aux méga-agents :

  • Un méga-agent et ses sous-agents doivent être créés dans la même région.
  • Dans une région, un méga-agent et ses sous-agents sont tous associés à différents projets Google Cloud.
  • Un méga-agent peut avoir 10 sous-agents au maximum.
  • Small Talk ne fonctionne pas pour les méga-agents.
  • La priorité d'un intent d'un sous-agent n'a aucun effet sur la correspondance de l'intent lors de l'envoi de requêtes à un agent de méga-agent.
  • L'intégration de l'Assistant Google ne peut pas être utilisée avec le méga-agent.
  • Les intégrations de téléphonie intégrées partenaires (AudioCodes, Avaya, SignalWire, Voximplant) ne sont pas acceptées.
  • Le méga-agent n'est pas compatible avec les intents de remplacement utilisés comme intents de suivi.

Créer des sous-agents

Vous créez des sous-agents comme n'importe quel autre agent. Ajoutez les intents, les contextes, les entités, etc. nécessaires pour créer vos agents.

Créer ou mettre à jour un méga-agent

Vous pouvez utiliser la console Dialogflow pour créer un méga-agent et l'associer à des sous-agents.

Dialogflow prend en compte la plupart des paramètres d'agent du méga-agent et consigne les données vers le méga-agent. Exemple :

UI Web

1. Créer un méga-agent

  1. Accédez à la console Dialogflow ES.
  2. Cliquez sur Créer un agent dans le menu de la barre latérale de gauche. (Si vous avez déjà d'autres agents, cliquez sur le nom de l'un d'eux, faites défiler vers le bas, puis cliquez sur Créer un agent.)
  3. Saisissez le nom, la langue par défaut, le fuseau horaire par défaut et le projet Google Cloud de l'agent.
  4. Définissez le type d'agent sur Méga-agent.
  5. Cliquez sur le bouton Créer.

2. Ajouter et gérer des sous-agents

  1. Cliquez sur Sous-agents dans le menu de la barre latérale de gauche.
  2. Sélectionnez un sous-agent à ajouter au méga-agent.
  3. Le sous-agent Environnement est défini par défaut sur Brouillon, mais vous pouvez le mettre à jour si nécessaire.
  4. Si vous souhaitez utiliser la base de connaissances associée au sous-agent, remplacez le champ Exclu par Inclus.
  5. Cliquez sur Enregistrer.

Configurer les rôles

Selon la manière dont vous envisagez d'utiliser votre agent méga, vous devez attribuer des rôles spécifiques dans vos projets de sous-agent, afin que le méga-agent soit autorisé à appeler les sous-agents. Pour configurer ces rôles, procédez comme suit :

  1. Créez les projets Google Cloud du méga-agent et des sous-agents comme vous le faites habituellement, et assurez-vous que vous avez activé l'API Dialogflow pour chacun d'entre eux.
  2. Si vous prévoyez d'utiliser l'API pour interagir avec votre méga-agent, vous devez attribuer au compte de service que vous utilisez pour les appels d'API du méga-agent un rôle sur chacun de vos projets de sous-agent, et le rôle doit être autorisé à effectuer des appels de détection d'intent. Les rôles suivants fournissent cet accès : Propriétaire de projet, Éditeur de projet, Administrateur de l'API Dialogflow ou Client de l'API Dialogflow. Pour obtenir l'adresse e-mail de ce compte de service, procédez comme suit :
    1. Accédez à la page Comptes de service IAM.
    2. Sélectionnez le projet de votre méga-agent.
    3. Sélectionnez un compte de service que vous avez déjà créé pour les appels d'API ou ajoutez un compte de service doté du rôle souhaité. Suivez les instructions de configuration pour créer un nouveau compte de service et téléchargez une clé privée.
    4. Notez l'adresse e-mail du compte de service choisi. Vous en aurez besoin ci-dessous.
  3. Si vous envisagez d'utiliser des intégrations pour le méga-agent, le compte de service automatiquement créé service-project-number@gcp-sa-dialogflow.iam.gserviceaccount.com pour le projet du méga-agent doit disposer d'un rôle sur ce projet qui inclut l'autorisation d'effectuer des appels de détection d'intent. Les rôles suivants fournissent cet accès : Propriétaire de projet, Éditeur de projet, Administrateur de l'API Dialogflow ou Client de l'API Dialogflow. Pour obtenir l'adresse e-mail de ce compte de service, procédez comme suit :

    1. Accédez à la page principale IAM.
    2. Sélectionnez le projet de votre méga-agent.
    3. Activez l'option Inclure les attributions de rôles fournies par Google située à droite.
    4. Recherchez le compte de service correspondant au modèle:
      service-project-number@gcp-sa-dialogflow.iam.gserviceaccount.com.
    5. Notez l'adresse e-mail du compte de service choisi. Vous en aurez besoin ci-dessous.
  4. Pour chaque projet de sous-agent, attribuez des rôles aux comptes de service du méga-agent que vous avez collectés ci-dessus :

    1. Accédez à la page principale IAM.
    2. Sélectionnez le projet de votre sous-agent.
    3. Attribuez les rôles souhaités aux adresses e-mail de compte de service de votre méga-agent sur le projet.

Détecter un intent

Pour détecter un intent, appelez la requête comme n'importe quelle autre requête de détection d'intent et utilisez l'ID du projet du méga-agent. Dialogflow prend en compte tous les sous-agents, et la meilleure réponse des sous-agents est renvoyée.

Prenons l'exemple des sous-agents suivants :

Sous-agent Intent Expressions d'entraînement
Commandes Livres "Je souhaite acheter un livre"
"Ajoutez un livre à mon panier"
Chapeaux "Je souhaite acheter un chapeau"
"Je veux un chapeau"
Compte Solde "Quel est mon solde ?"
"Combien reste-t-il sur mon compte ?"
Adresse "Je souhaite modifier mon adresse"
"J'ai une nouvelle adresse"

Si un utilisateur final dit : "Je veux acheter un chapeau, s'il vous plaît", une requête de détection d'intent envoyée au méga-agent entraînera une correspondance pour l'intent Hats dans l'agent Orders.

Pour spécifier un ou plusieurs sous-agents pour une requête de détection d'intent, définissez le champ subAgents sur QueryParameters. Par exemple, le code JSON REST pour cette requête devrait se présenter comme suit :

{
  "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"}
    ]
  }
}

Appeler des événements

Pour appeler un événement à partir d'un service de webhook, vous pouvez spécifier le sous-agent pour l'intent que vous souhaitez déclencher. Utilisez le format de nom d'événement suivant :

sub-agent-project-id.event-name

Par exemple, si l'ID de projet du sous-agent est 123 et que le nom de l'événement est alarm pour l'intent souhaité, utilisez 123.alarm pour le nom de l'événement.

Si vous ne spécifiez pas de sous-agent pour l'événement, celui-ci est renvoyé au sous-agent contenant l'intent mis en correspondance précédemment.

Définir le contexte de sortie

Pour définir des contextes de sortie à partir d'un service de webhook, vous pouvez spécifier le sous-agent auquel le contexte appartient. Utilisez le format suivant :

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

Par exemple, si la session est projects/mega_agent_project_id/agent/sessions/session_id et que vous souhaitez définir un contexte nommé music_context pour un sous-agent ayant l'ID de projet sub_project_1, vous pouvez définir le contexte de sortie avec le nom suivant :

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

Si vous ne spécifiez pas de préfixe de sous-agent pour le nom de contexte, le système le considère comme un contexte du méga-agent.

Durée de vie du contexte

Lorsqu'un contexte devient actif, la durée de vie du contexte détermine normalement le nombre de tours de conversation qui se produiront avant que le contexte ne devienne inactif. En substance, la durée d'exécution d'un contexte actif est diminuée à chaque tour de conversation après qu'il est devenu actif.

Ce comportement peut être différent pour les méga-agents. Au cours d'une conversation, les intents de différents sous-agents peuvent être mis en correspondance pour chaque tour de conversation. Lorsqu'un intent d'un sous-agent est mis en correspondance et qu'il possède un contexte de sortie, la durée de vie de ce contexte n'est diminuée que pour les autres mises en correspondance d'intents dans le même sous-agent.

Par exemple, une mise en correspondance d'intent se produit dans le sous-agent A, et l'intent possède un contexte de sortie qui active un contexte. Les correspondances d'intents dans le sous-agent B ne réduisent pas la durée de vie d'exécution du contexte actif qui a été généré dans le sous-agent A.

Versions et environnements

Les versions et environnements au niveau du méga-agent vous permettent de créer différents instantanés de l'intent de remplacement du méga-agent, et de définir différents webhooks et paramètres Text-to-Speech pour différents environnements de méga-agents.

Les paramètres sur la page de la console Sous-agents du méga-agent ne sont pas inclus dans les versions et les environnements du méga-agent. Les requêtes de méga-agent déclenchent toujours les environnements des sous-agents spécifiés sur cette page à ce moment-là.