Ir al contenido
Jesus Miguel Sánchez Torres
Volver a los proyectos

Maître

Un asistente de IA que toma reservas de restaurantes por teléfono y chat web, en francés, inglés y español, con cada regla escrita en código con tests.

Papel
Diseño y desarrollo
Equipo
Proyecto propio
Fechas
oct. 2026
Tecnología
TypeScript, Python, Cloudflare Workers y Durable Objects, Astro, LiveKit, Claude Haiku
Estado
Demo pública en línea
Llamada de prueba con datos inventados

Por qué está hecho así

Los asistentes de voz para reservas suelen mostrarse funcionando una vez, en una llamada en directo, y se dan por terminados. En una de esas demos, el agente repite el número de quien llama con un dígito mal y reserva la mesa a ese número. Nada lo detecta, porque nada lo comprueba.

Maître empieza por el otro extremo. Lo que siempre tiene que cumplirse está escrito en código y cubierto por tests, y el modelo de lenguaje solo conversa. Los clientes reservan por teléfono o por chat; el equipo lleva el servicio del día desde un panel con el plano de la sala.

Reglas que hace cumplir el código

  • La última mesa, para un solo cliente

    Buscar mesa y reservarla es un único paso, así que dos clientes nunca se quedan con la misma mesa.

  • Fechas exactas

    El cliente dice «el viernes» o «pasado mañana», el código calcula el día y cada respuesta repite la fecha completa.

  • Alérgenos de la ficha de cocina

    La respuesta sale de la ficha, palabra por palabra. Si la ficha no lo dice, la respuesta es «no lo sabemos» y la pregunta pasa al equipo.

  • El modelo nunca ve el teléfono

    El número llega por el propio canal (el identificador de llamadas, el teclado o el formulario), nunca por el reconocimiento de voz.

  • Sin reservas duplicadas

    Si el modelo repite una acción, no se crea una segunda reserva.

  • Datos en la Unión Europea

    Los datos de cada restaurante se guardan en la UE, y las conversaciones se borran a los 90 días.

Cómo se evalúa

El modelo se eligió con una regla escrita antes de las pruebas. Cada conversación tenía que salir bien en las tres ejecuciones; después contaba la espera más corta para el cliente y, entre candidatos parecidos, una prueba independiente de conversaciones con herramientas. Así se compararon varios modelos reales, y Claude Haiku quedó primero.

Hoy la batería tiene 41 conversaciones escritas de antemano en francés, inglés y español, 26 de ellas también por teléfono. Cada una se ejecuta tres veces y solo cuenta como buena si salen bien las tres. En la última ronda pasaron las 41, con una respuesta mediana de 1,6 segundos.

Varios fallos acabaron convertidos en código. Un modelo puso una fecha con el mes equivocado, así que el modelo ya no maneja fechas (las calcula el código). Otro prometió que llamarían a un cliente y no lo registró; ahora es el código el que pasa el aviso al equipo.

Límites conocidos

Todavía no junta mesas, así que los grupos más grandes que la mesa mayor pasan a una persona. No hay acceso con usuario para el equipo, y un despliegue real pondría Cloudflare Access delante del panel. WhatsApp está diseñado, pero no construido.

Ningún restaurante real lo usa todavía. La demo funciona con un bistró inventado y datos inventados, y la evaluación detecta regresiones sin demostrar que el asistente acierte en cualquier conversación posible.

41/41
conversaciones correctas, última ronda
1,6 s
respuesta mediana, última evaluación
26
conversaciones también por teléfono
90 días
antes de borrar las conversaciones
  • Llamada de prueba con subtítulos, en la que el asistente confirma una mesa para dos
    Llamada de prueba con datos inventados
  • El cliente teclea su número en el teclado de la llamada
    Llamada de prueba con datos inventados
  • Una alergia a los frutos secos que la ficha no cubre, así que el asistente pasa la pregunta al equipo sin adivinar
    Llamada de prueba con datos inventados
  • La reserva telefónica para dos en el plano de la sala, pendiente de confirmar
    Panel del restaurante con datos inventados
  • La lista de llamadas pendientes del panel, con la pregunta de alérgenos que la ficha no respondía
    Panel del restaurante con datos inventados
  • La transcripción de la llamada en el panel, con la reserva y la pregunta que pasó al equipo
    Panel del restaurante con datos inventados