Agentes combinados

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 GCP.
  • 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 socio (AudioCodes, Avaya, Genesys y SignalWire, Voximplant) no se admiten.
  • El agente combinado no admite los intents de resguardo que se usan 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 tiene en cuenta la mayoría de la configuración de agentes del agente combinado y registra los datos en este. Por ejemplo:

IU web

1. Crea un agente combinado

  1. Ve a la consola de Dialogflow ES.
  2. 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).
  3. Ingresa el nombre, el idioma predeterminado, la zona horaria predeterminada y el proyecto de GCP del agente.
  4. Configura Tipo de agente como Agente combinado.
  5. Haz clic en el botón Crear.

2. Agrega y administra agentes secundarios

  1. Haz clic en Agentes secundarios en el menú de la barra lateral izquierda.
  2. Selecciona un agente secundario que desees agregar al agente combinado.
  3. El Entorno predeterminado del agente secundario es Borrador, pero puedes actualizarlo según sea necesario.
  4. Si deseas usar la Base de conocimiento asociada con el agente secundario, cambia el campo de Excluido a Incluido.
  5. Haz clic en Guardar.

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:

  1. Crea los proyectos de GCP de los agentes secundarios y del agente combinado como lo harías con normalidad y asegúrate de haber habilitado la “API de Dialogflow” para cada uno.
  2. 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:
    1. Visita la página de la cuenta de servicio de IAM.
    2. Selecciona el proyecto para tu agente combinado.
    3. 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.
    4. Toma nota de la dirección de correo electrónico de la cuenta de servicio seleccionada. La necesitarás más adelante.
  3. 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:

    1. Visita la página principal de IAM.
    2. Selecciona el proyecto para tu agente combinado.
    3. Habilita la opción Incluir asignaciones de funciones proporcionadas por Google a la derecha.
    4. Busca la cuenta de servicio que coincida con el patrón:
      service-project-number@gcp-sa-dialogflow.iam.gserviceaccount.com.
    5. Toma nota de la dirección de correo electrónico de la cuenta de servicio seleccionada. La necesitarás más adelante.
  4. Para cada proyecto de agente secundario, otorga funciones a las cuentas de servicio de agente combinado que recopilaste antes:

    1. Visita la página principal de IAM.
    2. Selecciona el proyecto para tu agente secundario.
    3. 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 se activa un contexto, la vida útil del contexto determina normalmente cuántos turnos de conversación se realizará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 agentes combinados. Durante una conversación, los intents de diferentes agentes secundarios pueden coincidir para cada turno de conversación. Cuando se establece una coincidencia con un intent de un agente secundario y este tiene un contexto de salida, la vida útil de este contexto solo se reduce para otras coincidencias de intents en el mismo agente secundario.

Por ejemplo, una coincidencia de intent se produce en el agente secundario A, y el intent tiene un contexto de salida que activa un contexto. Las coincidencias de intents del agente secundario B no disminuyen la vida útil del tiempo de ejecución del contexto activo que se originó en el agente secundario 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.