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:

  • Al igual que con todos los agentes, solo puedes crear un agente por proyecto de GCP, por lo que cada agente secundario y agente combinado se asociará con su propio proyecto 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.

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:

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. Haga clic en Save.

Configura funciones

Según cómo planeas usar tu agente combinado, necesitas configurar miembros con 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 con el fin de interactuar con el agente combinado, debes agregar la cuenta de servicio que usas para llamar a la API del agente combinado como miembro de cada uno de los proyectos de los agentes secundarios, y la función aplicada 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 creada de forma automática del proyecto del agente combinado debe ser miembro de todos los proyectos de agentes secundarios, y la función aplicada 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 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, agrega las cuentas de servicio de agente combinado que recopilaste anteriormente como miembros del proyecto del agente secundario:

    1. Visita la página principal de IAM.
    2. Selecciona el proyecto para tu agente secundario.
    3. Agrega las direcciones de correo electrónico de la cuenta de servicio del agente combinado como miembros del proyecto y proporciónalas con las funciones deseadas.

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.