En un mundo donde la rapidez y la comodidad mandan, ofrecer acceso inmediato a la disponibilidad de servicios y permitir reservas rápidas puede marcar la diferencia para empresas orientadas al cliente. En Q2BSTUDIO, empresa especializada en desarrollo de software a medida, aplicaciones a medida, inteligencia artificial y ciberseguridad, nos propusimos crear un chat de reservas en tiempo real que combinara la solidez de Symfony con la inteligencia de modelos LLM para gestionar la disponibilidad de franjas horarias y la comunicación con los usuarios.
Nuestro objetivo principal fue ofrecer información instantánea y fiable sobre franjas libres y permitir reservas sin fricción. Las formas tradicionales de reserva y las llamadas telefónicas resultan lentas y poco naturales. Imaginamos una interfaz conversacional que guiara al usuario de forma ágil y cercana. Entre los requisitos clave estuvieron la disponibilidad en tiempo real de los slots, una experiencia de chat intuitiva, escalabilidad para atender concurrencia, fiabilidad para garantizar la consistencia de los datos y una integración limpia con el sistema de gestión de servicios existente.
La experiencia de chat se implementa desde un frontend ligero que puede estar desarrollado con frameworks como React o Vue o incluso con un widget JavaScript. El flujo típico comienza con el usuario solicitando una reserva, el controlador de Symfony actúa como punto de entrada, y el mensaje del usuario se envía al agente AI integrado en Symfony. Ese agente comunica la petición y las herramientas disponibles al modelo LLM, que decidirá si genera una respuesta textual o si invoca alguna herramienta especializada para comprobar disponibilidad, validar servicios o crear una reserva.
Si el modelo decide llamar a una herramienta, el agente ejecuta el método correspondiente en un servicio como ReservationTools. Ese servicio puede llamar al BookingService, consultar la base de datos para comprobar slots, o realizar llamadas a sistemas externos. El resultado de esa ejecución vuelve al agente y opcionalmente al LLM para que genere una respuesta final en lenguaje natural. De este modo el usuario recibe una respuesta conversacional y no simplemente datos crudos.
Para tareas que no requieren una respuesta inmediata, como la confirmación definitiva de una reserva, el envío de correos de confirmacion o el procesamiento de pagos, delegamos trabajo pesado al componente Messenger de Symfony. Este componente permite procesar mensajes de forma asíncrona, escribir detalles de la reserva en la base de datos y finalizar la interacción con sistemas externos sin bloquear la experiencia del usuario. La separación de responsabilidades queda clara: el controlador gestiona la interacción inmediata, los servicios implementan la lógica de negocio y Messenger se encarga de las tareas de larga duración.
En cuanto al modelo de datos, representamos cada franja horaria con una entidad Slot que contiene el servicio asociado, hora de inicio, hora de fin, bandera de reservado y un identificador del cliente que realizó la reserva, por ejemplo el id de sesión del chat. La entidad ServiceType agrupa los tipos de servicios disponibles como corte de pelo o manicura y mantiene la relación uno a muchos con las franjas. El repositorio de Slot incluye métodos para consultar franjas disponibles dado un tipo de servicio y un rango temporal, optimizando las consultas para devolver solo las opciones libres y actuales.
Para que el LLM pueda actuar dentro de nuestro sistema diseñamos herramientas concretas con la filosofía de una interfaz tipo MCP que describe las acciones disponibles. Estas herramientas cubren tareas como crear una reserva con parametros como usuario servicio y fecha preferida, comprobar disponibilidad en la base de datos y recuperar informacion del usuario para personalizar la experiencia. Al definir herramientas sencillas y de un solo propósito garantizamos que las acciones del agente sean previsibles, auditables y seguras.
Elegir el componente adecuado para integrar LLM fue clave. Optamos por el componente oficial symfony/ai-agent por su integración nativa con Symfony, su flexibilidad para conectar distintos proveedores de modelos y su capacidad para gestionar llaves de API y procesamiento de respuestas. Este componente facilita crear agentes IA que puedan invocar herramientas, mantener contexto y escalar según las necesidades del sistema.
La instalación del componente es sencilla mediante Composer ejecutando composer require symfony/ai-agent. Dado que el componente puede estar en fase de desarrollo, recomendamos revisar la configuracion de estabilidad de Composer y usar prefer-stable para evitar que otras dependencias pasen a versiones de desarrollo innecesarias.
En Q2BSTUDIO combinamos esta arquitectura con nuestra experiencia en desarrollo de aplicaciones a medida y software a medida para ofrecer soluciones robustas y seguras. Si su objetivo es integrar agentes IA en procesos de negocio o mejorar la atención al cliente mediante interfaces conversacionales, nuestra área de inteligencia artificial puede ayudarle a diseñar e implementar la solución adecuada. Conecte con nuestros especialistas en inteligencia artificial para empresas o explore nuestras opciones de desarrollo de aplicaciones y software a medida para proyectos personalizados.
Además de IA, Q2BSTUDIO ofrece servicios complementarios que garantizan que sus sistemas sean escalables y seguros, incluyendo ciberseguridad y pentesting, servicios cloud aws y azure, automatización de procesos y servicios de inteligencia de negocio como Power BI. Estas capacidades permiten no solo desplegar un chat de reservas en tiempo real sino integrarlo dentro de una plataforma empresarial completa que incluye analítica, seguridad y despliegue en la nube.
En la siguiente entrega de esta serie pondremos manos a la obra. Mostraremos ejemplos prácticos de cómo construir y registrar las herramientas que el agente IA puede invocar, cómo estructurar las llamadas al BookingService y cómo diseñar flujos asíncronos con Messenger para garantizar una experiencia de usuario rápida y fiable. Si desea que le acompañemos en la implementación de una solución a medida para su negocio, en Q2BSTUDIO estamos listos para convertir esa idea en una aplicación productiva y segura.