Saltar al contenido
Iván Pintor
Read in English
Todos los proyectos

IA aplicada

Agente camarero con IA y pantalla de cocina

Prototipo de dos agentes para restauración: un camarero con IA que entiende pedidos en lenguaje natural y una cocina sin IA, organizada por zonas, que ordena y cronometra las comandas y analiza cada servicio.

Herramientas

  • Claude Haiku 4.5 (API de Anthropic)
  • Uso de herramientas (tool use)
  • Netlify Functions
  • Preact
  • Web Speech API
  • Simulación determinista

Prototipo propio. Proyecto de demostración construido para este portfolio: el restaurante, la carta y los precios son inventados.

  1. Situación

    En un restaurante con mucha rotación, la comanda pasa por varias manos: el camarero la apunta con prisa, las dudas sobre alérgenos dependen de lo que recuerde y la cocina recibe los pedidos sin un orden claro ni una idea de cuánto llevan esperando. En hora punta, cualquier error acaba en la mesa. Y el reparto del equipo entre zonas se decide de memoria, sin datos de dónde se atasca la cocina.

  2. Solución

    Dos agentes con papeles distintos. En sala, un camarero virtual con IA entiende el pedido en lenguaje natural y usa herramientas para consultar la carta, el estado de la cocina y crear la comanda: todo lo que dice sobre platos, precios, alérgenos y esperas sale de datos y reglas, y la comanda se valida contra la carta antes de llegar a cocina. En cocina no hay IA: cola, temporizadores y prioridades son lógica determinista, predecible, auditable y sin coste por uso. Cada plato va a su zona (pizzería, fuegos, ensaladas y fríos, postres y pica), y lo sin gluten, a un área propia que solo lleva la persona designada. Al empezar el servicio se asigna a cada empleado su zona, y la capacidad y las esperas se calculan por zona. En hora punta, la cocina prioriza por plato; si la espera sube, una regla avisa automáticamente a las plataformas de pedidos online (por API o webhook) con la espera estimada, y el camarero informa en sala. El cliente ve en qué fase está su pedido (en el horno, queda poco, listo) y el camarero lo sabe si le pregunta. Cada plato queda registrado, y el análisis del servicio muestra la demanda, los cuellos de botella y el mejor reparto del equipo, siempre por zonas y nunca por personas. La IA se usa solo donde aporta valor: entender a las personas y conversar con ellas. Las decisiones las toman reglas.

  3. Resultado

    Un prototipo funcional que se prueba en el navegador: del pedido en lenguaje natural a la comanda en cocina, leída en voz alta, con alérgenos que salen siempre de la carta y con los límites de uso y de coste que exige un servicio abierto al público. En una hora punta simulada con datos ficticios, la prioridad automática saca a tiempo 8 de 10 mesas, frente a 7 de 10 por orden de llegada, sin alargar la espera máxima (19 minutos en los dos casos). Ningún pedido online se rechaza, y los 4 están listos dentro del tiempo avisado al cliente; con el tiempo habitual de la plataforma, solo lo habría estado uno. En ocho semanas de servicios simulados, el análisis señala la pizzería como cuello de botella: con una sola persona sale tarde el 56 % de las pizzas, frente al 7 % con dos. Y el recomendador de plantilla encuentra que un viernes por la noche con 7 personas conviene poner 3 en pizzería y 2 en fuegos (83 % de comandas a tiempo) en lugar de 2 y 3 (81 %).

Cómo funciona

  1. El cliente pide en lenguaje natural

    «Una margarita sin albahaca y dos cervezas».

  2. El camarero con IA consulta la carta y la cocina

    Con herramientas: nunca responde de memoria. Conoce la espera de cada zona y, si la cocina va cargada, avisa.

  3. Bifurcación

    ¿Está todo en la carta?

    • Sí

      Resume el pedido y pide confirmación.

    • No

      Lo dice claramente y ofrece lo que sí hay.

  4. Comanda validada contra la carta

    Platos, cantidades y cambios permitidos. A cocina solo llegan datos de la carta, nunca texto libre.

  5. Cocina sin IA: zonas, cola, temporizadores y voz

    Cada plato va a su zona, y lo sin gluten, a su área; las bebidas, a barra. En hora punta, prioridad por plato; si la espera sube, aviso automático a las plataformas online. El cliente ve en qué fase está su pedido.

  6. Comanda servida y registrada

    Cada plato guarda cuándo llega, empieza y está listo, su zona y el tamaño del equipo: con eso se analiza el servicio.

Demo

Pide en la sala como lo harías a un camarero y mira cómo la comanda llega a cocina. El restaurante, la carta, los precios, los empleados y el historial son inventados.

Pide en lenguaje natural, como a un camarero. El agente consulta la carta, resuelve dudas de alérgenos y, cuando confirmas, envía la comanda a cocina, donde la pantalla la ordena, la cronometra y la lee en voz alta.

Restaurante, carta, precios y empleados ficticios

Sala

Camarero virtual · con IA

Lo que el camarero sabe de cocina: Carga normal · espera estimada ~12 min · sin aviso de retraso

  1. Camarero: ¡Hola! Bienvenido a Trattoria Ficticia. ¿Qué te apetece tomar? Puedo ayudarte con la carta y los alérgenos.

Ideas para empezar

0/280

Análisis del servicio

Historial ficticio

Ocho semanas de servicios ficticios, de martes a domingo, comida y cena, generados con el mismo simulador de cocina. La demanda cambia según el día y la hora, y el equipo, de un servicio a otro (bajas, refuerzos, cambios de zona). Cada plato guarda cuándo llega, cuándo empieza y cuándo está listo, su zona y cuántas personas había en ella.

Tu servicio, en directo

Los platos que han salido por la pantalla de cocina en esta visita, con el mismo registro. Se guardan solo en tu navegador y se borran al recargar.

Aún no hay platos listos: pide algo en sala, envía la comanda de ejemplo o simula una hora punta.

La sala usa IA (Claude Haiku 4.5) solo para entender y conversar; la carta es su única fuente. La cocina no usa IA: cola, temporizadores y avisos son lógica fija. Máximo 15 mensajes por conversación. No escribas datos personales.

Más detalles

IA con límites claros

  • La carta es la única fuente. El modelo consulta los platos con una herramienta y la comanda se valida en el servidor: no puede inventar platos, ingredientes ni precios. Sobre alérgenos solo informa de lo declarado y nunca afirma que un plato sea «apto».
  • «Sin gluten», solo si se puede garantizar. Es una mención regulada: el plato no puede superar 20 mg/kg de gluten (Reglamento (UE) 828/2014). El camarero solo la usa con los platos elaborados en el área sin gluten, con utensilios propios; del resto dice «no declara gluten».
  • La IA comunica; las reglas deciden. La espera estimada, el nivel de carga y el aviso de retraso a las plataformas los calculan reglas fijas. El camarero solo los transmite y no puede cambiarlos, ni aunque alguien se haga pasar por el encargado.
  • Sin datos personales. El camarero no pide nombres, teléfonos ni pagos, y la mesa la indica la propia pantalla.
  • Coste acotado. Respuestas cortas, un máximo de mensajes por conversación, límites por visitante y por día, y un tope de gasto mensual en la cuenta de la API. La clave nunca llega al navegador.
  • Si la IA falla, el servicio sigue. La cocina no depende del modelo: funciona igual con un pedido de ejemplo.

Probado a fondo: reglas fijas alrededor del modelo

El camarero se probó con una batería de 65 conversaciones de prueba, muchas con trampa: alérgenos y celiaquía, un menor que pide cerveza, alguien que se hace pasar por el encargado, peticiones de descuento, cancelaciones, cantidades imposibles, notas para cocina, otros idiomas o un historial falsificado. Salieron fallos reales, como decir «enviado» sin enviar nada, inventar un precio o prometer una cancelación que no podía hacer. Los críticos no se arreglaron solo con instrucciones, sino con reglas en el servidor:

  • Si el cliente confirma el pedido que se le acaba de resumir, el servidor obliga a enviarlo; si aun así la respuesta lo da por enviado sin haberlo hecho, se repite el turno.
  • Los totales y las esperas de cada plato los calcula una herramienta (revisar_pedido), no el modelo. Cualquier importe que no salga de las herramientas o de la conversación se corrige antes de que lo vea el cliente.
  • Con una alergia de por medio, una respuesta que garantice que algo es «seguro», «apto» o «sin riesgo» también se corrige.
  • Cada respuesta del camarero va firmada por el servidor: el historial que vuelve del navegador no se puede falsificar para hacerle «decir» lo que no dijo.

La batería se repite tras cada cambio en las instrucciones, y las reglas tienen pruebas automáticas con un modelo simulado, sin gastar.

El camarero, en persona, y el seguimiento del pedido

La conversación transcurre en una trattoria ilustrada, de día o de noche según el tema de la página. El camarero, una caricatura, gesticula según lo que pasa: saluda, saca la libreta mientras escribes, enseña la carta, hace el beso del chef al recomendar, levanta el pulgar al enviar la comanda, levanta el índice con los alérgenos, mira el reloj si la cocina va cargada y sale con el plato cuando tu pedido está listo. Los gestos los eligen reglas fijas, no la IA. Debajo del chat, el seguimiento muestra en qué fase está cada comanda de la mesa (recibida, en el horno o en los fuegos, queda poco, lista), los minutos que faltan y si va con retraso. El camarero recibe ese mismo seguimiento con cada mensaje, así que a «¿cómo va lo mío?» responde con datos, no con suposiciones.

Zonas y equipo del servicio

La cocina trabaja por zonas, como una real: pizzería, fuegos, ensaladas y fríos, y postres y pica (quien lleva los postres también friega, así que lleva menos a la vez). Al empezar el servicio se elige el día y se asigna a cada empleado su zona. La capacidad sale de las personas y del equipo de cada zona: por ejemplo, cada pizzero lleva 3 tandas a la vez y el horno admite 8. En pizzería y en fuegos, una persona queda designada para lo sin gluten, con zona y utensilios propios, y solo ella prepara esos platos; si falta, el servicio no puede empezar. Cada zona tiene su espera, así que el camarero puede decir que una ensalada sale mucho antes que una pizza.

Hora punta: prioridad medida, no supuesta

Con 4 comandas en cola o 10 raciones pendientes, la cocina pasa sola a «hora punta» y vuelve al servicio normal con menos carga, para no cambiar de modo a cada momento. La regla de prioridad se eligió midiendo varias alternativas con las mismas comandas. En 30 escenarios, con cargas y repartos del equipo distintos, nunca queda por debajo del orden de llegada, ni en mesas a tiempo ni en espera máxima, y una prueba automática lo vuelve a comprobar en cada cambio. Y la simulación deja clara una conclusión: con la cocina desbordada ningún orden lo arregla; hacen falta más manos.

Cocina cargada: ningún pedido se rechaza, se avisa del tiempo real

La carga se mide por lo que esperaría un pedido nuevo: el trabajo pendiente de cada zona repartido entre las personas que hay en ella, más lo que tarda el plato. Desde 20 minutos, la cocina avisa automáticamente a las plataformas de pedidos online con esa espera, la actualiza si cambia 5 minutos o más y retira el aviso al bajar de 17: el cliente online ve un tiempo realista y el restaurante no pierde el pedido. En la demo, el aviso es un webhook simulado (se muestra el envío, pero no sale nada); en un restaurante real se conectaría con la API de la plataforma o con un integrador de pedidos, que permiten actualizar el tiempo de preparación. En sala, el camarero avisa de la espera con carga alta y ofrece los platos de las zonas más libres.

Análisis del servicio: por zonas, nunca por personas

Cada plato guarda cuándo llega, cuándo debía empezar, cuándo empieza y cuándo está listo, su zona y cuántas personas había en ella. Para mostrar qué se puede sacar de esos datos, la demo genera ocho semanas de servicios ficticios, de martes a domingo, comida y cena, con el mismo simulador de cocina: la demanda cambia según el día y la hora, y el equipo, de un servicio a otro. El panel muestra la demanda por día y hora, los servicios más concurridos, los platos más pedidos y el peso de lo sin gluten, los platos que más se retrasan, las zonas que hacen de cuello de botella y los resultados de cada zona según el tamaño de su equipo. El recomendador de plantilla prueba todos los repartos posibles con la demanda real de ese servicio y propone el mejor. En un restaurante real, los registros irían a una base de datos con un cuadro de mando encima (por ejemplo, PostgreSQL y Superset); cada gráfico enseña la consulta SQL equivalente.

No hay un ranking de empleados, a propósito. Usar IA para evaluar el rendimiento de los trabajadores es de alto riesgo según el Reglamento Europeo de IA (anexo III); cualquier algoritmo que afecte a las condiciones de trabajo obliga a informar al comité de empresa de sus reglas (art. 64.4.d del Estatuto de los Trabajadores), y el RGPD exige minimizar los datos personales. Además, el ritmo de una zona depende de la carga y del equipo, no solo de quien está en ella. Por eso los registros guardan cuántas personas había en cada zona, no quiénes.