# Agente de IA Empresarial ## Funcionamiento general ### Pensamiento Como entidad autónoma, el Agente responde a las solicitudes del usuario ejecutando un proceso de "pensamiento" que inicia con la detección de la intención, es decir la deducción de lo que el usuario espera obtener con la interacción. La detección de la intención se realiza combinando información del usuario, parámetros, contexto variable, memoria conversacional, la definición del perfil del agente, las reglas y conocimientos generales configurados. Con todo esto, el LLM subyacente decide si puede responder de primera mano o debe usar una herramienta para hacer una tarea o recabar más información. ### Temas de conversación En determinados escenarios, es posible que requiera que el agente tenga un contexto más amplio relacionado con el propósito de una conversación. Por ejemplo, si ha incluido un enlace al agente desde una página que ofrece automóviles de cierta marca, es probable que quiera que el agente inicie con conocimientos extensos en esa marca y además, tenga preguntas preparadas para incentivar la interacción. Puede definir temas, saludos para ese tema (que se mostrarán aleatorios) y preguntas preparadas cuyas respuestas (u opciones) se presentarán al usuario como botones. Esto además de motivar la conversación, ayudan a disminuir el consumo de Créditos IA porque no se usará el LLM para responder, sino la respuesta que haya predeterminado expresamente. #### Detección automática de tema A lo largo de la conversación el agente tratará de determinar el tema que mejor se ajuste a la situación, por lo que recuperará mayor contexto automáticamente, incluso si ha iniciado con un tema en particular, puede que el agente lo cambie según su criterio. ### Intenciones y herramientas Para que el Agente use herramientas, es necesario definir Intenciones en la sección de Comportamiento adaptativo de la configuración. Procure proporcionar una descripción clara en la definición de las intención y escriba en las instrucciones los campos (atributos) que el agente deberá recopilar para incluir en el contenido de la carga útil al invocar el punto final y cuáles de ellos son requeridos. La invocación de herramientas se realiza de acuerdo al [protocolo de integración](https://docs.induxsoft.net/es/iae/agentes/protocolo-integracion.md) Una vez ejecutada la herramienta, el resultado puede devolverse al usuario "tal cual" se ha recibido, volverse a introducir al LLM para elaborar una respuesta precisa o simplemente continuar el hilo de la conversación. Además, puede establecer si la realización de la intención se debe hacer una sola vez o múltiples veces. Ejemplos: - Si está definiendo una intención de búsqueda de información para responder al usuario, deberá indicar que la respuesta del punto final se vuelva a procesar por la IA subyacente y que esta intención puede realizarse múltiples veces. - Si está definiendo una intención de creación de una orden de trabajo o un pedido, la respuesta del punto final debería mostrarse tal cual (porque incluye el número de orden) al usuario y solo puede realizarse una vez - Si está registrando datos de un prospecto, simplemente continúe el hilo de la conversación después de la invocación al punto final y defina que solo se realice una vez Algunas intenciones solo deberían realizarse si se ha validado la identidad del usuario, para lo cual puede usar los controles apropiados e incluso definir un mensaje específico invitando a la autenticación. ### Información del usuario La información específica de un usuario, que permite personalizar las respuestas con información de contexto individualizado, se obtiene mediante la validación de la sesión a través de un 'token' provisto por los mecanismos que ofrece la interfase que se usa para el Agente. Configure el punto final y encabezado de autorización en Identificación del usuario (en la sección de Comportamiento adaptativo de la configuración). Vea el [protocolo de integración](https://docs.induxsoft.net/es/iae/agentes/protocolo-integracion.md) ### Opciones - Modelo subyacente. Elija y pruebe el que mejor se adapte a su caso de uso. - Nivel de creatividad. Este ajuste controlará qué tantas "alucinaciones" puede tener el agente - Duración máxima de la conversación en minutos. Permite establecer después de cuánto tiempo sin interacción se considera terminada una conversación. - Zona horaria. La especificación de zona horaria en la marca de tiempo del agente, de forma predetermina la marca de tiempo está establecida a la correspondiente a la Ciudad de México. - Habilitar visión. Indique si se podrán proporcionar imágenes al agente y lo que el agente debe buscar en esas imágenes - Habilitar lectura. Indique si se podrán proporcionar archivos PDF al agente y lo que el agente debe buscar en esos documentos ### Contexto variable Si es necesario proveer al Agente con información en tiempo real que deba considerarse en su contexto, puede pasarse un "Identificador de contexto variable" e invocarse un punto final como se describe en el [protocolo de integración](https://docs.induxsoft.net/es/iae/agentes/protocolo-integracion.md) Configure el punto final y encabezado de autorización Contexto variable, en la sección Avanzadas de la configuración. ### Diseño de prompt Es posible configurar el prompt principal (detección de intención) y el prompt de cada herramienta que procesa sus resultados con el LLM. El prompt se configura mediante un array de objetos (JSON) que representan el contexto. ``` [ {"role":"system", "text":"...."}, ... ] ``` Los valores posibles para el campo 'role' de cada objeto son: - system. Representa indicaciones dadas al agente - user. Representa una solicitud del usuario - assistant. Representa una respuesta del agente - memory. Representa toda la memoria conversacional (no requiere se indique el campo 'text') En el campo 'text', se puede escribir cualquier texto o bien, una constante precediéndola con el caracter '@', esto hará que al generar el contexto el nombre de la constante se reemplace por su valor. De manera predeterminada, los agentes ya traen el diseño de prompt predeterminado, usualmente no debería modificar este diseño si no está seguro de lo que hace. El prompt principal se puede modificar desde la sección 'Avanzadas' de la configuración del agente, por otra parte, los diseños de prompt de cada intención se pueden modificar en la página de propiedades de cada intención. #### Constantes Las constantes son pares clave/valor que pueden usarse dentro de los diseños de prompt. Puede definir las constantes desde la sección 'Avanzadas' de la configuración del agente. No modifique las constantes predeterminadas si no está seguro de lo que hace. ### Parámetros Los parámetros son pares clave/valor que se adjuntan en el campo 'params' de las solicitudes HTTP de las herramientas, validación de sesión del usuario y contexto variable. Puede definir las parámetros globales (se incluyen en toda solicitud HTTP) desde la sección 'Avanzadas' de la configuración del agente o bien, parámetros específicos para las herramientas de las intenciones. ## Interfases ### Chat del sitio Web Consiste en una URL que despliega un chat directo con el asistente indicado. Url: ```https://agent.induxsoft.net/chat/{id_del_asistente}/``` Parámetros de URL admitidos: - user_sid. Es un identificador que se usará para validar la sesión del usuario y recuperar información específica del mismo. - var_context_id. Es un identificador que se pasará en la llamada al contexto variable. - topic. Es el identificador de un tema de conversación que dará al agente un contexto más específico. - Cualquier otro parámetro de URL. Se incorporará como un parámetro global (aunque no esté definido como tal en la configuración del agente y si lo estuviera, reemplazará el valor que tuviese) ### Servicio Web La funcionalidad del agente está disponible como servicio para ser consumido a través de solicitudes POST al punto final. Punto final: ```https://agent.induxsoft.net/svc/{id_del_asistente}/``` [Vea la especificación de solicitud y respuesta](https://docs.induxsoft.net/es/iae/agentes/servicio-web.md)