Puedes combinar varios agentes de Dialogflow, llamados subagentes, en un solo agente, llamado megaagente. Cuando envías una solicitud de detección de intención a un megaagente, se tienen en cuenta todos los subagentes y se devuelve la mejor respuesta de los subagentes.
Hay varios motivos por los que puede que quieras usar mega agentes:
- Mejor gestión: si tienes varios equipos creando un agente, cada equipo puede encargarse de un subagente, lo que simplifica los conflictos de cambios entre equipos.
- Más intenciones: si tienes agentes con un gran número de intenciones, puede que te acerques al límite de intenciones. En este caso, podrías crear varios subagentes y un megaagente.
Limitaciones
Se aplican las siguientes limitaciones a los mega agentes:
- Un megaagente y sus subagentes deben crearse en la misma región.
- En una región, un megaagente y sus subagentes están asociados a diferentes proyectos Google Cloud .
- Un megaagente puede tener como máximo 10 subagentes.
- Las conversaciones informales no funcionan con los megaagentes.
- La prioridad de los intents de los subagentes no afecta a la coincidencia de intents cuando se envían solicitudes a un megaagente.
- La integración del Asistente de Google no se puede usar con mega agentes.
- No se admiten las integraciones de telefonía integrada de partners (AudioCodes, Avaya, SignalWire y Voximplant).
- El mega agente no admite intenciones de reserva usadas como intenciones de seguimiento.
Crear subagentes
Los subagentes se crean como cualquier otro agente. Añade las intenciones, los contextos, las entidades, etc. que necesites para crear tus agentes.
Crear o actualizar un megaagente
Puedes usar la consola de Dialogflow para crear un megaagente y vincularlo a subagentes.
Dialogflow tiene en cuenta la mayoría de los ajustes del agente del megaagente y registra los datos en el megaagente. Por ejemplo:
- Dialogflow toma los ajustes de registro, sentimiento, conversión de voz a texto y conversión de texto a voz de todo el agente del megaagente.
- Dialogflow almacena analíticas, historial de conversaciones y datos de la herramienta de entrenamiento en el megaagente.
UI web
1. Crear un megaagente
- Ve a la consola de Dialogflow ES.
- En el menú de la barra lateral de la izquierda, haz clic en Crear agente. Si ya tienes otros agentes, haz clic en el nombre del agente, desplázate hasta la parte inferior y haz clic en Crear nuevo agente.
- Introduce el nombre, el idioma predeterminado, la zona horaria predeterminada y elGoogle Cloud proyecto de tu agente.
- En Tipo de agente, selecciona Mega agente.
- Haz clic en el botón Crear.
2. Añadir y gestionar subagentes
- En el menú de la barra lateral de la izquierda, haz clic en Subagentes.
- Selecciona el subagente que quieras añadir al megaagente.
- El subagente Entorno tiene el valor predeterminado Borrador, pero puedes cambiarlo si lo necesitas.
- Si quieres usar la base de conocimientos asociada al subagente, cambia el campo de Excluido a Incluido.
- Haz clic en Guardar.
Configurar roles
En función de cómo quieras usar tu superagente, debes conceder roles específicos en los proyectos de tus subagentes para que el superagente tenga permiso para hacer llamadas a los subagentes. Para configurar estos roles, sigue estos pasos:
- Crea los proyectos del megaagente y del subagente Google Cloud como lo harías normalmente y asegúrate de que la API Dialogflow esté habilitada en ambos.
- Si tienes previsto usar la API para interactuar con tu megaagente, debes asignar un rol en cada uno de tus proyectos de subagente a la cuenta de servicio que utilices para las llamadas a la API del megaagente. El rol debe tener permiso para hacer llamadas a la detección de intenciones.
Los siguientes roles
proporcionarán este acceso:
Propietario del proyecto, Editor del proyecto, Administrador de la API de Dialogflow
o Cliente de la API de Dialogflow.
Para obtener la dirección de correo de esta cuenta de servicio, sigue estos pasos:
- Ve a la página de cuentas de servicio de IAM.
- Selecciona el proyecto de tu megaagente.
- Selecciona una cuenta de servicio que ya hayas creado para las llamadas a la API o añade una cuenta de servicio nueva que tenga el rol que quieras. Sigue las instrucciones de configuración para crear una cuenta de servicio y descargar una clave privada.
- Anota la dirección de correo de la cuenta de servicio elegida. Lo necesitarás más adelante.
Si tienes previsto usar alguna integración para el megaagente, la cuenta de servicio creada automáticamente service-project-number@gcp-sa-dialogflow.iam.gserviceaccount.com del proyecto del megaagente debe tener un rol en ese proyecto que incluya el permiso para hacer llamadas a la detección de intenciones. Los siguientes roles proporcionarán este acceso: Propietario del proyecto, Editor del proyecto, Administrador de la API de Dialogflow o Cliente de la API de Dialogflow. Para obtener la dirección de correo de esta cuenta de servicio, sigue estos pasos:
- Ve a la página principal de IAM.
- Selecciona el proyecto de tu megaagente.
- Habilita la opción Incluir concesiones de roles proporcionadas por Google situada a la derecha.
- Busca la cuenta de servicio que coincida con el patrón:
service-project-number@gcp-sa-dialogflow.iam.gserviceaccount.com. - Anota la dirección de correo de la cuenta de servicio elegida. Lo necesitarás más adelante.
En cada proyecto de subagente, asigna roles a las cuentas de servicio del megaagente que has recogido anteriormente:
- Ve a la página principal de IAM.
- Selecciona el proyecto de tu subagente.
- Asigna los roles que quieras a las direcciones de correo de la cuenta de servicio de tu megaagente en el proyecto.
Detectar un intent
Para detectar la intención, llama a la solicitud como cualquier otra solicitud de detección de intención y usa el ID de proyecto del megaagente. Dialogflow tendrá en cuenta todos los subagentes y devolverá la mejor respuesta de los subagentes.
Por ejemplo, considera los siguientes subagentes:
Subagente | Intent | Frases de preparación |
---|---|---|
Pedidos | Libros | "Quiero comprar un libro" "Añade un libro a mi carrito" |
Sombreros | "I want to purchase a hat" "I want a hat" ("Quiero comprar un sombrero" "Quiero un sombrero") |
|
Cuenta | Saldo | "¿Cuál es mi saldo?" "¿Cuánto me queda en la cuenta?" |
Dirección | "Quiero cambiar mi dirección" "Tengo una nueva dirección" |
Si un usuario final dice "Quiero comprar un sombrero", una solicitud de detección de intent enviada al megaagente dará como resultado una coincidencia con el intent Hats
del agente Orders
.
Para especificar uno o varios subagentes en una solicitud de detección de intención, asigna el campo subAgents
de QueryParameters
.
Por ejemplo, el JSON de REST de esta solicitud sería el siguiente:
{ "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"} ] } }
Invocar eventos
Para invocar un evento desde un servicio de webhook, puedes especificar el subagente de la intención que quieras activar. Usa el siguiente formato de nombre de evento:
sub-agent-project-id.event-name
Por ejemplo, si el ID de proyecto del subagente es 123
y el nombre del evento es alarm
para la intención deseada, use 123.alarm
como nombre del evento.
Si no especifica un subagente para el evento, el evento se enviará de nuevo al subagente que contenga el intent que se haya encontrado anteriormente.
Definir el contexto de salida
Para definir contextos de salida desde un servicio webhook, puedes especificar el subagente al que pertenece el contexto. Utiliza el siguiente formato:
projects/mega_agent_project_id/agent/sessions/session_id/contexts/sub_agent_project_id.context_name
Por ejemplo, si la sesión es
projects/mega_agent_project_id/agent/sessions/session_id
,
y quieres definir un contexto llamado music_context
para un subagente con el ID de proyecto sub_project_1
,
puedes definir el contexto de salida con el siguiente nombre:
projects/mega_agent_project_id/agent/sessions/session_id/contexts/sub_project_1.music_context
Si no especificas un prefijo de subagente para el nombre del contexto, el sistema lo considerará como un contexto del megaagente.
Tiempo de vida del contexto
Cuando un contexto se activa, la duración del contexto suele determinar cuántos turnos de conversación se producirán antes de que el contexto se inactive. Básicamente, la duración del tiempo de ejecución de un contexto activo se reduce en cada turno de conversación después de que se active.
Este comportamiento puede ser diferente en el caso de los mega agentes. Durante una conversación, se pueden asociar intenciones de diferentes subagentes a cada turno de conversación. Cuando se encuentra una coincidencia con un intent de un subagente y el intent tiene un contexto de salida, el tiempo de vida de este contexto solo se reduce para las coincidencias posteriores de intents del mismo subagente.
Por ejemplo, se produce una coincidencia de intención en el subagente A y la intención tiene un contexto de salida que activa un contexto. Las coincidencias de intenciones en el subagente B no reducen el tiempo de vida del contexto activo que se originó en el subagente A.
Versiones y entornos
Las versiones y los entornos a nivel de megaagente te permiten crear diferentes instantáneas de la intención de reserva del megaagente y definir diferentes webhooks y ajustes de conversión de texto a voz para los distintos entornos del megaagente.
Los ajustes de la página de la consola Sub Agents (Subagentes) del megaagente no se incluyen en las versiones ni en los entornos del megaagente. Las solicitudes de megaagente siempre activan los entornos de los subagentes especificados en esa página en ese momento.