Para crear tu primer agente en la plataforma, la opción se encuentra en la parte superio derecha de la pantalla de contacto, muy accesible para su creación..

Al momento de presionar el boton se abrirá un popup para la gestión rapida del agente.

La plataforma le dará la opcíon de poder crear y configurar un agente de IA por medio de una estructura json. Recalcammos que en la plataforma no existe ninguna parte donde se codifica. La estructura json es una estructura mundial para poder realizar configuraciones generales rápidas en cualquier ambito.

✅ Si tiene un perfil técnico lo invitamos a ver nuestro SDK donde se puede realizar estas configuraciones en sus respectivos ambientes.

Paso 1: Creación del Agente.

La plataforma le dará tres opciones, dependiendo de la configuración que necesita desde un agente básico hasta un agente experimental con conexiones a servicios externos.

Características del Agente

  • Contestar en base a información del Prompt.
  • Contestar en base a la configuración general.
  • Contestar sobre información de diferentes Archivos PDF y DOCs.
  • Contestar sobre información de servicios externos API y recolección de datos.
  • Conectarse con Whatsapp.
  • Conectarse con un Portal Search IA.
  • Conectarse por Widget instalable.

Tipo de Agentes

Son los tipos de Agente que se puedan crear dependiendo de la facilidad de como desee configurar y entrenar. De igual forma con cualquier agente, puedes tener un Agente 24/7 contestando para tu empresa en todo momento.

  • Blanco
  • Básico
  • Avanzado

Los agente cuentan con una configuración básica necesaria:

{
  "name": "Sales Clinic",
  "prompt": "",
  "zone": "LA",
  "buffer": 50
}

👉 Nombre: Es el nombre del Agente para su respectiva identificación, este nombre se mostrará en la lista asi como en el listado de Contactos para que puedas saber que agente esta atendiendo a tus clientes.

👉 Prompt: Es la instrucción general que le vas a dar a tu agente, como se comportará y que necesitas que diga, es la información general para que pueda contestar.

Los limites de un prompt (gpt 4o, que es el modelo que usamos) son aproximadamente 128K tokens (~300 páginas de texto), de igual forma no se recomienda estos limites, en caso se necesite trabajar esta informacion, le recomendamos colocarlo en un archivo PDF y trabajarlo cargando el archivo, ya que de esa forma extraemos la información de forma vectorial de la base de datos.

👉 Buffer: Es la memoria del agente, el Buffer es la capacidad de conversaciones guardadas que puede tener el agente, esto es para que siempre tenga el contexto de la conversación. (Limite: 3 - 20).

👉 zone: Solo valores (LA,EU) de Este campo es sumamente importante, ya que es la zona que se encuentra el agente y la plataforma. En caso se comparta el archivo agent.config.json con alguna otra persona, lo unico que debe tener en cuenta es que si la otra persona se encuentra en Europa, entonces el agente lo debe de crear con zone: EU.

💡 Es importante mencionar que todos los campos de la configuración que no son services o channels, es un ordenamiento de información que lo guardamos como prompt para el cliente, se puede crear el prompt con todas las características sin problemas, pero nuestro archivo configurador es una gran ayuda para que pueda tener de forma ordenada el conocimiento de su agente.

Configuración Completa

{
  "name": "Sales Clinic",
  "description": "Virtual Agent IA assistant of the Dental Clinic Smiles",
  "prompt": "",
  "zone": "LA",
  "buffer": 50,
  "color": "blue",
  "question": "How can I help you today?",
  "timezone": "America/Lima",
  "showInChat": false,
  "enable": true,
  "tags": [
    "health",
    "dentistry",
    "ia",
    "plazbot"
  ],
  "examples": [
    { "value": "How to be a partner??", "color": "green" },
    { "value": "Benefits of being members?", "color": "blue" }
  ],
  "instructions": {
    "tone": "professional",
    "style": "short answers",
    "personality": "friendly",
    "objective": "help with clarity",
    "language": "es-419",
    "emojis": false,
    "preferredFormat": "plain text",
    "maxWords": 80,
    "avoidTopics": [
      "laboratory costs",
      "external claims"
    ],
    "respondOnlyIfKnows": true,
    "maintainToneBetweenMessages": true,
    "greeting": "Hello, I am Maximo"
  },
  "person": {
    "name": "Maximo",
    "role": "Virtual customer service assistant",
    "speaksInFirstPerson": true,
    "isHuman": false
  },
  "fallbacks": {
    "noAnswer": "Sorry, I don't have information on that topic.",
    "serviceError": "There was a problem processing your request. Please try again later.",
    "doNotUnderstand": "Could you please repeat it in another way?"
  },
  "rules": {
    "doNotMentionPrices": false,
    "doNotDiagnose": true,
    "doNotRespondOutsideHours": "Our hours are Monday to Saturday, from 8am to 6pm."
  },
   "services": [
    {
      "intent": "schedule_date",
      "reference": "Service for recording patients' medical appointments at the clinic",
      "enabled": true,
      "method": "POST",
      "requiredFields": ["nombre", "email", "fecha"],
      "endpoint": "https://api.clinic.com/v1/date/schedule",
      "headers": {
        "Authorization": "Bearer {{apiKey}}",
        "Content-Type": "application/json"
      },
      "bodyTemplate": {
        "nombre": "{{nombre}}",
        "email": "{{email}}", 
        "fecha": "{{fecha}}"
      },
      "responseMapping": {
        "mensaje": "$.reponse.mensaje",
        "date": "$.response.date"
      },
      "responseMessage": "Your appointment has been successfully registered for the {{date}}"
    }
  ],
  "channels": [
    { "channel": "whatsapp", "key": "123456789" }
  ]
}

Paso 2: Entendimiento de los campos

CampoDescripción
nameNombre del agente. Visible en el panel. Requerido
promptInstrucciones base para el comportamiento del agente. Requerido
bufferCantidad de mensajes que se mantienen como contexto. Rango: 3 a 10. Requerido
colorColor de presentación. Valores: blue, orange, gray, green, white.
questionPregunta principal que se muestra en el portal.
descriptionDescripción general del agente.
zoneZona donde opera el agente: LA (Latinoamérica) o EU (Europa). Requerido
timezoneZona horaria. Ejemplo: America/Lima. TimeZone Formats
tagsEtiquetas internas para clasificar agentes.
examplesPreguntas sugeridas. Hasta 5.
showInChatSi el agente se muestra en el widget/chat. (boolean)

Instrucciones (instructions) Las instrucciones se las puede colocar en español o en ingles, no hay ningun problema, la IA respetará el idioma que se le configura.

CampoTipoDescripción
tonestringTono de comunicación: professional, friendly, etc.
stylestringEstilo de respuestas: short answers, detailed.
personalitystringPersonalidad del agente.
objectivestringObjetivo principal del agente.
languagestringIdioma en que debe responder. Ver tabla de idiomas.
emojisbooleanSi puede usar emojis.
preferredFormatstringplain text o markdown.
maxWordsnumberMáximo de palabras por respuesta.
avoidTopicsarrayLista de temas prohibidos.
respondOnlyIfKnowsbooleanSi debe evitar responder sin información confiable.
maintainToneBetweenMessagesbooleanMantiene el mismo tono entre mensajes.
greetingstringMensaje de bienvenida.

Opciones Objetive “help with clarity” Enfocado en brindar respuestas claras “sell more” Promociona productos o servicios “support users” Ayuda a resolver problemas “guide actions” Brinda pasos concretos o instrucciones

Opciones Personalidad “friendly” Agradable y empático “serious” Reservado y directo “funny” Con toques de humor sutil “robotic” Más neutral, tipo IA técnica

Opciones preferredFormat “plain text” Texto simple “markdown” Permite negritas, listas, enlaces “html” Usado si se integrará en un entorno web

Opciones Style “short answers” Respuestas breves y directas “detailed” Respuestas explicativas, útiles para asistencia técnica “bullet points” Instrucciones u opciones en lista (ideal para pasos o listas) “conversational” Estilo fluido y natural, más humano

Opciones Tono “professional” Tono formal, educado, propio para empresas “friendly” Tono amigable, cercano, ideal para atención al cliente “casual” Informal, con lenguaje relajado y natural “neutral” Objetivo, sin inclinación emocional

Persona del Agente (person)

CampoTipoDescripción
namestringNombre que usará el agente.
rolestringRol representado.
speaksInFirstPersonbooleanHabla en primera persona.
isHumanbooleanSimula ser una persona real.

Fallbacks

CampoTipoDescripción
noAnswerstringMensaje si no tiene respuesta.
serviceErrorstringMensaje de error de servicio.
doNotUnderstandstringMensaje si no entiende la consulta.

Reglas

CampoTipoDescripción
doNotMentionPricesbooleanNo hablar de precios.
doNotDiagnosebooleanNo hacer diagnósticos médicos.
doNotRespondOutsideHoursstringMensaje fuera del horario definido. Trabaja junto con el campo de Timezone

Códigos de Idioma

ValorDescripción
esEspañol general
es-419Español latinoamericano neutral
es-ESEspañol de España
enInglés general
en-USInglés estadounidense
en-GBInglés británico
frFrancés general
fr-FRFrancés de Francia
pt-BRPortugués brasileño
deAlemán

Paso 3: Agregar Archivos al Agente

Para agregar archivos solo tiene que Guardar su primer agente en la plataforma, luego puede ir agregando los archivos para que el Agente pueda contestar con referencia a la solicitud de los usuarios.

Cuando le coloca un archivo al Agente, le saldran dos campos, uno de referencia y uno de etiquetas, los dos campos son importantes, ya que le da el contexto y la referencia de donde puede sacar la información para contestar la pregunta de los usuarios. Recordar que los Agentes de IA trabajan en base a referencias y metadatos, ellos no leen archivos completos, la inteligencia le da la referencia y deciden de donde sacar la informacion.

Esta información de referencia tampoco debe ser tan amplia, debe ser concreta y especifica y se debe de apoyar de las etiquetas para complementar la referencia.

Por ejemplo: Si desea adjuntar un manual de ventas para sus vendedores la referencia seria:

  • 👉 Referencia: Manual de ventas y objeciones para los comerciales del año 2024.
  • 👉 Etiquetas: ventas, manual, precios, objeciones, devoluciones, garantias.

Paso 4: Probar las iteracciones

La plataforma le da la opción de poder probar todas las configuraciones que hace hasta llegar al punto optimo y su gusto para el Agente, recuerde que puede cambiar las configuraciones cuando las necesite.

Paso 5: Creación de Servicios Externos.

Nuestros agentes estan en la capacidad de poder conectarse a servicios externos.

{
   "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": "string"
        },
        {
          "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}}"
    }
  ]
}

✅ 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, pero con servicios básicos y de extracción de datos, el servicio funciona sin problemas.

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

Información de los campos requeridos

  • Usted puede darle mas contexto a los campos requeridos, de la misma forma como lo hace con archivos, el agente podrá realizar las preguntas correspondientes en caso se necesite en un POST para consultar los datos o reservar citas.

  • El {{type}} en el campo requerido, puede ser de tipo: string, date o datetime, esto es importante para que cuando el cliente diga alguna fecha en el lenguaje que se desee la IA pueda entender y pasarlo al formato que necesita el servicio, para eso los campos de requiredFields pueden formatarse a nivel de number, date y datetime.

Formatos

Puede revisar mas a detalle los formatos de los campos requeridos en la siguiente página.

Consideraciones

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