Configuración de los Servicios de Agentes IA

Este documento como se puede conectar en el archivo agent.config.json, servicios externos API rest ya sean GET o POST para poder ejecutar ciertas acciones, que le dan mas capacidades al Agente de IA, por ejemplo consultar servicios a base de datos, productos, reservar citas, etc.

Github

Puedes descargar nuestro repositorio de ejemplo para crear tus agentes.

Estructura

✅ El servicio se encuentra en Pruebas Experimentales para probar su fiabilidad y el porcentaje de Aciertos con las solicitudes del usuario, estamos mejorando el servicio dia a dia.

{
   "services": [
    {
      "intent": "schedule_date",
      "reference": "Service for recording patients' medical appointments at the clinic",
      "enabled": true,
      "method": "POST",
       "requiredFields": [
        {
          "name": "nombre",
          "description": "Nombre de la persona que quiere agendar la reunion.",
          "promptHint": "¿Podrías indicarme tu nombre completo, por favor?",
          "type": "string"
        },
        {
          "name": "email",
          "description": "Correo electrónico de la personsa que quiere agendar la reunion.",
          "promptHint": "¿Cuál es tu dirección de correo electrónico para la cita?",
          "type": "email"
        },
        {
          "name": "fecha",
          "description": "Fecha y hora preferida para la reunion.",
          "promptHint": "¿Qué día y hora te vendría bien para la reunión?",
          "type": "date"
        }
      ],
      "endpoint": "https://api.clinic.com/v1/date/schedule",
      "tags": ["appointment","date","booking"],
      "headers": {
        "Authorization": "Bearer {{apiKey}}",
        "Content-Type": "application/json"
      },
      "bodyTemplate": {
        "nombre": "{{nombre}}",
        "email": "{{email}}", 
        "fecha": "{{fecha}}"
      },
      "responseMapping": {
        "mensaje": "$.reponse.mensaje",
        "date": "$.response.date"
      },
      "responseMessage": "Tu cita ha sido registrada exitosamente para el {{date}}"
    }
  ]
}

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}}.

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.