Puedes combinar varios agentes de Dialogflow, llamados agentes secundarios, en un único agente, denominado agente combinado. Cuando se realiza una solicitud de detección de intents en un agente combinado, se consideran todos los agentes secundarios y se muestra su mejor respuesta.
Existen varios motivos por los que se recomienda usar agentes combinados:
- Mejor administración: Si tienes varios equipos en la compilación de un agente, cada equipo puede ser responsable de un agente secundario, lo que simplifica conflictos de cambio entre los equipos.
- Más intents: Si tienes agentes con una gran cantidad de intents, puedes acercarte al límite de recuento de intents. En este caso, puedes crear varios agentes secundarios y un agente combinado.
Limitaciones
Las siguientes limitaciones se aplican a los agentes combinados:
- Se debe crear un agente combinado y sus agentes secundarios en la misma región.
- Dentro de una región, un agente combinado y sus agentes secundarios están asociados con diferentes proyectos de Google Cloud.
- Un agente combinado puede tener 10 agentes secundarios como máximo.
- Small Talk no funciona para los agentes combinados.
- La prioridad de intents del subagente no afecta la coincidencia de intents cuando se envían solicitudes a un agente combinado.
- La integración del Asistente de Google no se puede usar con el agente combinado.
- Las integraciones telefónicas incorporadas por socios (AudioCodes, Avaya, SignalWire y Voximplant) no se admiten.
- El agente combinado no admite intents de resguardo que se usen como intents de seguimiento.
Crea agentes secundarios
Creas agentes secundarios de la misma forma que creas cualquier otro agente. Agrega cualquier intent, contexto, entidad etc., según sea necesario para compilar tus agentes.
Crea o actualiza un agente combinado
Puedes usar la consola de Dialogflow para crear un agente combinado y vincularlo a agentes secundarios.
Dialogflow toma en cuenta la mayoría de las configuraciones del agente y registra los datos en el agente combinado. Por ejemplo:
- Dialogflow toma la configuración de todo el agente, opiniones, voz a texto y texto a voz del agente combinado.
- Dialogflow almacena las estadísticas, el historial de conversaciones y los datos para la herramienta de entrenamiento en el agente combinado.
IU web
1. Crea un agente combinado
- Ve a la consola de Dialogflow ES.
- Haz clic en Create agent, en el menú de la barra lateral izquierda. (Si ya tienes otros agentes, haz clic en el nombre del agente, desplázate hacia la parte inferior y haz clic en Crear agente nuevo).
- Ingresa el nombre, el idioma predeterminado, la zona horaria predeterminada y el proyecto de Google Cloud del agente.
- Configura Tipo de agente como Agente combinado.
- Haz clic en el botón Crear.
2. Agrega y administra agentes secundarios
- Haz clic en Agentes secundarios en el menú de la barra lateral izquierda.
- Selecciona un agente secundario que desees agregar al agente combinado.
- El Entorno predeterminado del agente secundario es Borrador, pero puedes actualizarlo según sea necesario.
- Si deseas usar la Base de conocimiento asociada con el agente secundario, cambia el campo de Excluido a Incluido.
- Haga clic en Save.
Configura funciones
Según cómo planeas usar tu agente combinado, necesitas otorgar funciones específicas en tus proyectos de agente secundario, de modo que el agente combinado tenga permiso para realizar llamadas a los agentes secundarios. Para configurar estas funciones, sigue estos pasos:
- Crea los proyectos de Google Cloud de los agentes secundarios y el agente combinado como lo harías con normalidad y asegúrate de haber habilitado la "API de Dialogflow" para cada uno.
- Si planeas usar la API para interactuar con el agente combinado, debes otorgar una función en cada uno de los proyectos de los agentes secundarios a la cuenta de servicio que usas para las llamadas a la API del agente combinado y la función debe tener permiso para realizar llamadas de intent de detección.
Las siguientes funciones proporcionarán este acceso: propietario de proyectos, editor de proyectos, administrador de la API de Dialogflow o cliente de la API de Dialogflow.
Para obtener la dirección de correo electrónico de esta cuenta de servicio, haz lo siguiente:
- Visita la página de la cuenta de servicio de IAM.
- Selecciona el proyecto para tu agente combinado.
- Selecciona una cuenta de servicio que ya hayas creado para las llamadas a la API o agrega una cuenta de servicio nueva que tenga la función deseada. Sigue las instrucciones de configuración para crear una cuenta de servicio nueva y descargar una clave privada.
- Toma nota de la dirección de correo electrónico de la cuenta de servicio seleccionada. La necesitarás más adelante.
Si planeas usar alguna integración para el agente combinado, la cuenta de servicio service-project-number@gcp-sa-dialogflow.iam.gserviceaccount.com que se crea de forma automática para el proyecto del agente combinado debe tener una función en ese proyecto que incluya permiso para realizar llamadas de intent de detección. Las siguientes funciones proporcionarán este acceso: propietario de proyectos, editor de proyectos, administrador de la API de Dialogflow o cliente de la API de Dialogflow. Para obtener la dirección de correo electrónico de esta cuenta de servicio, haz lo siguiente:
- Visita la página principal de IAM.
- Selecciona el proyecto para tu agente combinado.
- Habilita la opción Incluir asignaciones de funciones proporcionadas por Google a la derecha.
- Busca la cuenta de servicio que coincida con el patrón:
service-project-number@gcp-sa-dialogflow.iam.gserviceaccount.com. - Toma nota de la dirección de correo electrónico de la cuenta de servicio seleccionada. La necesitarás más adelante.
Para cada proyecto de agente secundario, otorga funciones a las cuentas de servicio de agente combinado que recopilaste antes:
- Visita la página principal de IAM.
- Selecciona el proyecto para tu agente secundario.
- Otorga las funciones deseadas a las direcciones de correo electrónico de la cuenta de servicio de tu agente combinado en el proyecto.
Detecta intents
Para detectar el intent, llama a la solicitud como lo harías con cualquier otra solicitud de detección de intents y usa el ID del proyecto del agente combinado. Dialogflow tendrá en cuenta a todos los agentes secundarios y se mostrará su mejor respuesta.
Por ejemplo, considera los siguientes agentes secundarios:
Agente secundario | Intent | Frases de entrenamiento |
---|---|---|
Pedidos | Libros | “Quiero comprar un libro” “Agrega un libro a mi carrito” |
Sombreros | “Quiero comprar un sombrero” “Quiero un sombrero” |
|
Cuenta | Saldo | “¿Cuál es mi saldo?” “¿Cuánto queda en mi cuenta?” |
Dirección | “Quiero cambiar mi dirección” “Tengo una dirección nueva” |
Si un usuario final dice “Quiero comprar un sombrero, por favor”, una solicitud de detección de intents que se envía al agente combinado dará como resultado una coincidencia para el intent Hats
en el agente Orders
.
Si deseas especificar uno o más agentes secundarios para una solicitud de detección de intents, configura el campo subAgents
de QueryParameters
.
Por ejemplo, el JSON de REST para esta solicitud se vería de la siguiente manera:
{ "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"} ] } }
Invoca eventos
Si quieres invocar un evento desde un servicio de webhook, puedes especificar el agente secundario para el intent que deseas activar. Usa el siguiente formato de nombre de evento:
sub-agent-project-id.event-name
Por ejemplo, si el ID del proyecto del agente secundario es 123
y el nombre del evento es alarm
para el intent deseado, usa 123.alarm
como el nombre del evento.
Si no especificas un agente secundario para el evento, el evento se enviará de regreso al agente secundario que contiene el intent coincidente anterior.
Configura el contexto de salida
Para configurar contextos de salida desde un servicio de webhook, puedes especificar el agente secundario al que pertenece el contexto. Usa 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 deseas configurar un contexto llamado music_context
para un agente secundario con el ID del proyecto sub_project_1
, puedes configurar 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 del agente secundario para el nombre de contexto, el sistema lo considerará como un contexto del agente combinado.
Vida útil del contexto
Cuando un contexto se vuelve activo, la vida útil del contexto suele determinar cuántos turnos de conversación se producirán antes de que el contexto se vuelva inactivo. En esencia, la vida útil del tiempo de ejecución de un contexto activo se reduce para cada turno de conversación después de que se activa.
Este comportamiento puede ser diferente para los megaagentes. Durante una conversación, los intents de diferentes subagentes pueden coincidir para cada turno de conversación. Cuando se detecta una coincidencia con un intent de un subagente y este tiene un contexto de salida, la vida útil de este contexto solo se reduce para otras coincidencias de intents en el mismo subagente.
Por ejemplo, se produce una coincidencia de intents en el subagente A, y el intent tiene un contexto de salida que activa un contexto. Las coincidencias de intents en el subagente B no disminuyen la vida útil del entorno de ejecución para el contexto activo que se originó en el subagente A.
Versiones y entornos
Las versiones y entornos a nivel de agente combinado te permiten crear diferentes instantáneas del intent de resguardo del agente combinado y establecer webhooks y parámetros de configuración de Text-to-Speech distintos para diferentes entornos de agentes combinados.
La configuración de la página de la consola de los agentes secundarios del agente combinado no se incluyen en las versiones y los entornos del agente combinado. Las solicitudes de los agentes combinados siempre clasifican los entornos de los agentes secundarios especificados en esa página en ese momento.