Introducción

Este documento menciona como se puede conectar el agente a Servicios externos del cliente, por ejemplo consultar servicios a base de datos, productos, reservar citas, etc.

✅ Se pueden agregar tantos servicios como se desee conectar, es importante poder diferenciar las referencias de los servicios para que el Agente pueda entender la intención. Mientras mas diferenciada esta la referencia, mejor sera el Agente para entender la intención.

Campos del Servicio

CampoDescripción
intentIdentificador único de la intención del servicio. Se usa para detectar qué está solicitando el usuario (por ejemplo, "schedule_appointment").
referenceFrase corta y descriptiva que ayuda a la IA a entender cuándo debe activarse este servicio. Ejemplo: “Servicio para reservar citas médicas”.
enabledBooleano que indica si el servicio está activo (true) o no (false).
methodMétodo HTTP usado para llamar a la API externa (GET, POST.), no se puede otra solicitud por el momento.
endpointURL completa de la API que se desea invocar cuando se activa la intención.
headersObjeto con pares clave-valor para incluir headers HTTP personalizados como Authorization.
requiredFieldsArreglo de strings que indica qué datos del usuario son requeridos antes de ejecutar el servicio (por ejemplo, ["nombre", "email"]).
bodyTemplateObjeto que se usa para construir el cuerpo del request. Soporta interpolación de variables como {{email}}, {{nombre}}.
responseMappingDefine cómo extraer datos desde la respuesta de la API (por ejemplo, "mensaje": "$.response.message").
responseMessageMensaje que el agente debe devolver al usuario tras ejecutar correctamente el servicio. Se pueden usar placeholders como {{fecha}}.

Ejemplo de headers

    headers: {
      "Authorization": "Bearer {{apiKey}}",
      "Content-Type": "application/json",
      "x-api-key": "{{secretKey}}"
    }

Ejemplo de bodyTemplate


    bodyTemplate: {
      "nombre": "{{nombre}}",
      "email": "{{email}}",
      "fecha": "{{fecha|format('yyyy-MM-dd')}}"
    }

Los campos que se usan en el bodyTemplate pueden usar los formatos correspondientes para Fechas y para Numericos. En el siguiente link se puede ver los formatos disponibles.

👉 Formatos de Campos

Ejemplo de responseMapping


    responseMapping: {
      "mensaje": "$.response.mensaje",
      "status": "$.response.status",
      "data.fecha": "$.response.data.fecha",
      "data.id": "$.response.data.id"
    }

Campos requeridos

Con la plataforma se puede crear los campos que se deben de solicitar al usuario para poder enviarlos a un servicio POST, comunmente se usan los campos de nombre, email, telefono, etc para agendar citas y reservas, pero se pueden generar todos los campos que se deseen y estos enviarlos por el bodyTemplate.

La descripción de los campos se puede crear en el campo requiredMessage son:

CampoDescripción
NombreNombre del campo que se mostrará al usuario.
TipoLos tipos pueden ser string, number, integer, date, datetime, boolean
DescripciónDescripción del campo que se mostrará al usuario, esto analizará la IA para poder darle un entendimiento y hacerle la pregunta correcta al usuario en base al contexto
EjemploEl ejemplo ayuda a la IA a entender como desees que se le haga la pregunta al usuario.

Consideraciones

  • El Agente de IA consultará al usuario, los campos que se encuentran en el campo requiredFields en el formato: campo: campo, el usuario puede llenar un campo o todos, la IA entenderá si faltan o no campos antes del consumir el servicio.
  • El responseMapping te ayudará a poder completar los datos del campo requiredMessage, colocando la información en las llaves correspondientes, el json que te trae el servicio deberia de poder colocar los campos dentro del Mensaje.
  • Se pueden crear uno o varios servicios dentro de la configuración del Agente, para que pueda consultar sus servicios.