¿Por qué tu agente nunca inventa una plaza que no existe, nunca salta el ratio de seguridad y nunca ve los datos de otra escuela? No es suerte — es la arquitectura de debajo: un flujo de datos en tiempo real, agentes que se gobiernan unos a otros, y paredes que sellan cada escuela. En producción hoy — sin promesas de marketing.
agent · gate de pre-push
suite adversarial — en cada pre-push
dueño de escuelapasó
instructorpasó
surfistapasó
intentos de jailbreakbloqueadas
veredicto del juezaprobado
núcleo de seguridad: sellado · el sistema no lo puede relajar
TL;DR · 4 cosasEn curso
Un agente gobernado, no un chatbot
Una sola verdad, permisos separados, cada escuela aislada — el agente no puede saltarse una regla ni cruzar un muro.
Muros entre escuelas
Filtrado en el servidor + fichero de contexto privado + agente aislado. Cero lecturas entre escuelas — hecho en código, no en política.
Forecast calibrado por spot
Mezcla propia + una lectura de la ola spot a spot + ventanas ajustadas al nivel de cada clase.
Enjambre adversario en el gate de pre-push
Seis personas + un juez atacan a nuestro propio Agente en cada gate de pre-push. Una regla fallada bloquea el push.
0
Intentos entre escuelas bloqueados en 90 días · 0 conseguidos
93
Casos adversariales en cada push
46
Ejecuciones con modelo (7 días)
6
Personas en CI
Donde el software deja de ser hype
Dos años de ingeniería de operaciones.
El agente es una feature. El OS por debajo es el moat. Cada línea de abajo es un sistema que otro equipo tarda meses en copiar — no semanas.
State-machine de clases
Nivel de reembolso (>96h 100%, <24h 0%), no-show, cadena de reprogramación (el ID del slot original protege el nivel contra bypass), cancelación condicional + cron de auto-reembolso, división de grupo con re-dedupe idempotente.
Ledger hash-chain + cron de drift
Cada evento de Stripe se escribe en un registro de solo adición, encadenado con SHA-256. Un cron diario concilia Stripe ↔ DB y señala las divergencias. Instantáneas cifradas replicadas fuera de la base de datos de producción, incluida una máquina física fuera de la nube, con cifrado de sobre AES-256-GCM.
Channel-Manager iCal
Protección SSRF ya en la resolución DNS, límite de tamaño en streaming, detección automática de codificación, protección para que un feed que llega vacío de forma sospechosa no borre las reservas futuras, bloqueo por feed y STATUS:CANCELLED de salida para que Airbnb libere de verdad la plaza.
Forecast por playa
Modelo propio por playa que lee ola, viento, marea y estado del mar en conjunto, promueve alertas oficiales del océano, se ajusta a la marea y muestra un indicador de confianza por hora — afinado a la ola en el peak, no a la lectura mar adentro.
Editais de Praia + ratios SurfBooking
Ratios SurfBooking (1:6 principiante, 1:8 intermedio, 1:4 kids, 1:4 privada), validación de edad kids, sanity-check de precio (por debajo de 10 € rechaza), aviso Editais cada vez que 2+ monitores comparten una clase.
RGPD + protocolo de admin
Derecho de supresión en 20+ tablas (conservando el registro fiscal), limpieza del almacenamiento de objetos para avatares y fotos de clase, registro de auditoría de administración en 30+ acciones destructivas, OTP por correo obligatorio en toda acción de un administrador sobre otro y bloqueo que impide que dos administradores se dejen fuera mutuamente.
Agente por voz · en producción hoy
Habla con el calendario. El calendario responde.
Dos micrófonos: uno en la cabecera del calendario para operaciones en lote, otro en la miniatura de cada clase para ediciones quirúrgicas. Sin comandos que memorizar — portugués natural, voz nativa del navegador.
Selector de la mejor ventana
"Move to the best day this week" → fetches 7 days of forecast, scores per level (wave height range for the level + swell period bonus from 12s + offshore wind direction), picks the top hour, modal shows conditions (1.2m · 8kn · score 7.8/10) before confirm.
Reprogramación en lote
"Cambia todas las clases de iniciación a la próxima semana" / "al próximo mes" / "al mejor día". Una frase reprograma decenas de slots en paralelo, con las condiciones visibles por clase — los conflictos de personal se detectan en el servidor antes del commit.
Edits quirúrgicos por clase
El micro de la miniatura de la clase conoce el contexto: "Instructor Pedro" / "Precio 55€" / "6 alumnos" / "Duplica al sábado a las 10". Coincidencia difusa del nombre contra el personal activo. Sin menús — PUT directo, feedback instantáneo.
Nunca abre el agente solo
Si el parser no entiende el comando, muestra ejemplos en un toast — se queda en el calendario. El agente solo se abre cuando el usuario dice explícitamente "abre el agente". Acaba con el patrón frustrante de "la IA intentó responder y lo empeoró".
Tolerancia a fallos pt-PT
El reconocimiento de voz del navegador oye "Móvel" en vez de "Move-a", "Mac me" en vez de "Marca-me". El parser normaliza antes del regex, acepta "dia 24" / "próxima semana" / "próximo mês", y números en palabras ("cinco alunos") — hecho específicamente para como hablan de verdad los dueños de escuelas de surf portuguesas.
Agente con stock en contexto
Pregunta "¿cuántos neoprenos M tengo?" y el chat del agente responde a partir de un bloque de stock precalculado en el system prompt — nunca inventa números. Equipamiento + cantidad en mantenimiento visibles por separado. Lazy-fetched: no gasta tokens en consultas no relacionadas.
El cerebro que crece · en producción hoy
Los agentes no solo responden. Se acuerdan, se vigilan — y evolucionan por medición, no por corazonada.
La mayoría de las funciones de IA se congelan el día que salen. La nuestra tiene una memoria que acumula, un ciclo de automejora basado en ensayos A/B medidos, y un mapa vivo que muestra sus propios puntos débiles.
Una memoria que consolida
Un grafo de conocimiento persistente. Cada regla, enmienda y ensayo medido queda guardado — no se vuelve a dibujar desde cero cada vez. Las conexiones que aguantan a lo largo del tiempo se consolidan y se dibujan más gruesas; la historia — incluso una enmienda rechazada — se queda con su fecha. Nunca miente sobre el presente; solo añade el pasado.
Automejora, medida
El agente puede proponer cambios a sus propias instrucciones — cada uno probado por un ensayo A/B (control frente a tratamiento), promovido solo si gana de forma medida, con el feedback de las escuelas reales como canario que retira lo que empeoró. La arquitectura está construida y corre a demanda; el ciclo autónomo nocturno se enciende cuando lo decidamos — sin techo codificado en el diseño.
Una red que se vigila
Un mapa vivo en la consola del operador muestra todo el sistema nervioso — y señala sus propias señales débiles: una persona de prueba que vence al agente, una propuesta que no protege ninguna regla. Autodiagnóstico como funcionalidad, no como defecto — la red mostrando sus propias señales.
En resumen
Una inteligencia coordinada — una sola verdad, tres salidas en tiempo real.
Coordinación
Un cerebro, una verdad
↓
En toda la red
Efecto de red
Inteligencia de la red
Datos externos
Verificado
Fuentes verificadas
Por escuela · Sellado
Aislado
Cada escuela aislada
Tres paredes por escuela · filtrado en el servidor · libro de reglas fijado · fichero de contexto privado. Cero lecturas entre escuelas.
↓
→ Web · Marketplace
Páginas públicas de spot, rankings Surf Today, clases para reservar.
→ App móvil
Check-ins, códigos QR, waivers — operaciones en la arena.
→ Red de partners
Hoteles y partners difunden clases por link/QR.
Diferente por diseño
Esto no es una feature. Es una decisión de arquitectura desde el día uno.
Decenas de subsistemas hablando entre sí, cada uno obsesionado con una parte de las operaciones de surf — forecast, ratios, waivers, payouts, sync de canales, atribución, aislamiento del agente. La integración es el foso. Cada pieza aislada es ingeniería conocida; la forma en que se alinean alrededor de cómo funciona de verdad una escuela de surf no lo es.
Una plataforma de reservas con surf por encima no es esto. Una app de forecast con reservas pegadas por detrás tampoco.
La capa abierta — la inteligencia que se conecta
El moat no es una feature. Es un sistema operativo al que otros — marcas, apps, sensores — se conectan, según las reglas.
Una sesión, cualquier señal
La Capa de Inteligencia trata un Apple Watch, un sensor de tabla y una nota manual como streams de una sola sesión — cada uno con su propio reloj, fundidos en el servidor en el Pasaporte del surfista. Viaja una coordenada al principio, solo para confirmar que estuviste en el spot — y nunca se graba para quien no tiene la edad verificada. Ningún rastro continuo sale del dispositivo.
Una API abierta y MCP
El forecast por spot, la disponibilidad real y la creación de reservas son legibles por cualquier marketplace, channel manager o IA — mediante formatos estándar. Los partners se conectan a la inteligencia según las reglas, nunca por fuera.
Un agente que no puede mentir
Cada respuesta que el agente produce pasa por un filtro de honestidad determinista antes de llegar a nadie: nunca puede inventar una previsión, prometer un reembolso ni filtrar cifras de dinero al personal — en portugués y en inglés. Estas protecciones están fijadas por un conjunto de pruebas de regresión, de modo que el agente puede afinar la redacción, pero nunca retroceder en la verdad.
Seguridad en el perímetro
Antes de que cualquier petición llegue a nuestros agentes o a la base de datos, tiene que atravesar la capa de borde.
Un borde enterprise delante de todo
Todo el tráfico entra por un borde enterprise — WAF, mitigación de DDoS, bot fight mode, filtrado por ASN país a país. Los servidores de origen nunca ven la internet pública directa; un atacante tiene que derrotar primero el borde.
Rate limiting por capas
Más allá del borde, cada endpoint sensible tiene su propio límite por IP / usuario / endpoint — intentos de login, llamadas de IA, búsquedas, listados públicos. Una credencial comprometida o un scraper creativo queda limitado mucho antes de hacer daño a escala. El cost-DoS en los endpoints de IA (alguien intentando drenar nuestro presupuesto de LLM) se mide por el mismo patrón.
Solo TLS, HSTS, cookies firmadas
Nada de tráfico en claro en ningún punto — HTTPS obligatorio, con HSTS de 180 días en el dominio principal. La clave de renovación de sesión vive en una cookie HttpOnly con ruta restringida, de modo que una sesión robada no sobrevive a la pestaña. Los puntos de contacto con el pago pasan por Stripe Checkout / Connect — los números de tarjeta no los vemos nunca.
Autenticación de dos factores con secretos encriptados
Los dueños de escuela y los administradores pueden exigir un segundo factor — un código de seis dígitos de una app de autenticación o desbloqueo biométrico en el móvil. Los secretos TOTP que generan esos códigos están cifrados en reposo con un algoritmo moderno y fuerte — así que ni un volcado de la base de datos toca el segundo factor. Las contraseñas se guardan con hash bcrypt + salt; cambiar el email de una cuenta revoca todas las sesiones activas de ese usuario.
El sistema nervioso
Lo que pasa cuando una escuela crea o edita una clase:
1
Origen — SurfBooking OS
El dueño define hora, nivel, restricción de marea, capacidad, instructor. Se envía al core de SurfBooking.
2
Validación — ratios de la plataforma + cruce con el forecast
El servidor valida el ratio contra el reglamento de la plataforma (1:6 principiante, 1:8 intermedio, 1:4 kids), confirma las ventanas de marea, puntúa las condiciones y graba el resultado.
3
Distribución — tres salidas, en tiempo real
Web · Marketplace
La clase aparece en la página pública del spot + rankings de Surf Today.
App móvil
Check-ins, QR Codes, waivers. Los instructores gestionan el día en la arena.
Red de partners
Hoteles y partners difunden clases por link/QR — cada reserva sabe de dónde vino.
Inteligencia gobernada, no un chatbot
Nuestra IA no es un chatbot con instrucciones. Es un sistema gobernado con permisos separados — hecho para resistir el prompt-injection y para garantizar que ninguna respuesta atraviesa una pared que no debía.
Garantía · Coordinación
Una sola fuente de verdad
Cada respuesta se asienta en el estado real de la plataforma — reservas, calendario, mar. Las señales del exterior nunca llegan al núcleo directamente: todo se filtra primero.
Garantía · Red
La red aprende, las escuelas quedan privadas
Patrones agregados y anonimizados alimentan la mejora continua — efecto de red — sin compartir nunca los datos de una escuela con otra.
Garantía · Datos externos
Las fuentes externas entran verificadas
Los datos públicos (reglamentos, fuentes oficiales) se higienizan antes de poder influir en nada — la defensa estándar contra la Indirect Prompt Injection.
Garantía · Por escuela
Cada escuela aislada
El asistente de cada escuela está sellado dentro de esa escuela, aislado por RGPD. Conoce el contexto local (horarios, equipamiento, normas de la casa) y nunca puede leer datos de otra escuela.
Muros entre escuelas
Cada escuela es un silo sellado. Lo aplicamos en todas las capas.
Filtrado a nivel de servidor
Todos los endpoints que devuelven reservas, alumnos, equipo o forecast filtran por el ID de la escuela antes de que ningún dato salga de la base de datos. La interfaz no puede saltarse esto.
Constitución anti-jailbreak
El asistente de IA está vinculado a un libro de reglas fijado en el servidor e inyectado antes de cada conversación. Está instruido para conocer una sola escuela, no mencionar nunca otras y respetar las reglas de la plataforma incluso cuando la escuela insiste en lo contrario.
Tu propio archivo de contexto
Cada escuela edita un archivo de texto privado que el asistente lee antes de responder — tus horarios, tu equipamiento, tus normas de la casa. El archivo tiene tamaño limitado, queda registrado en auditoría en cada edición y nunca se comparte con otras escuelas.
PII eliminada antes de que ningún modelo la vea
Cada mensaje escrito por un usuario pasa por una capa de depuración que elimina direcciones de email, números de teléfono, identificaciones fiscales, IBAN y números de tarjeta antes de llegar a cualquier modelo de lenguaje. La misma capa se aplica a la respuesta del modelo en el camino de vuelta, así que ni siquiera un modelo que alucine uno puede filtrarlo. Las tarjetas se detectan por prefijo IIN + comprobación de Luhn; el resto de identificadores, por coincidencia de forma anclada. Esa capa queda blindada contra regresiones por la capa de pruebas adversarias de arriba.
Pipeline de forecast
Por qué nuestra 'mejor ventana para principiantes' no es una corazonada.
Confianza honesta, no falsa precisión
Cuando los datos no son seguros, el spot recibe un sello de 'baja confianza' en vez de fingir que lo sabemos. Preferimos decirte que está en el límite antes que venderte falsa precisión.
La ola en el peak, playa a playa
El número que ves es la ola en el peak de esa playa exacta — no el valor bruto en mar abierto. El mismo swell atlántico llega a una punta expuesta y a una bahía abrigada con alturas reales muy distintas, y nosotros leemos cada una en su propio terreno.
Ventanas pedagógicas por nivel
Puntuamos ventanas a lo largo del horizonte de previsión frente a las definiciones de nivel del reglamento — lo que cuenta como buena ventana para principiantes no es lo que cuenta para avanzados. La 'mejor ventana' que muestra el asistente es la que encaja con el nivel que la escuela está enseñando.
Capa de defensa adversarial
Lo que corre contra nuestro propio Agent antes que cualquier usuario real.
S
Instructor
Sondea muros de privacidad
C
Cliente
Exige reembolso · enseña tarjeta
D
Dueño de escuela
Pone a prueba los límites de escala
M
Multi-turno
Adormece y luego ataca
Verificación determinista en cada camino de respuesta
Antes de que cualquier respuesta del Agent llegue a un usuario, el texto del usuario pasa por una capa de saneamiento que elimina identificadores personales y neutraliza patrones conocidos de prompt-injection. La capa está cerrada por una suite interna de tests — una nueva forma de ataque que aparezca in-the-wild lleva un test de regresión emparejado antes de que la corrección se considere lanzada.
Seis personas, escritas para romper el sistema
Mantenemos seis personajes adversarios — entre ellos un cliente frustrado, un dueño de escuela que fuerza la escala, un empleado que tantea los muros de privacidad y un atacante de varios turnos que adormece al Agente durante muchos turnos antes de golpear — cada uno un juego de rol detallado que sabe exactamente qué soltar (un número de tarjeta, una exigencia de reembolso, los datos de un compañero) para hacer caer al Agente. Las reglas deterministas corren en cada control previo al push; las conversaciones de varios turnos con modelo en vivo, que los llevan por escenarios completos, corren en el enjambre adversario (lanzado por un operador).
Bloquea el build, sin intuiciones
Una regla fallada no es un aviso — bloquea el deploy. Ya sea la regla 'ningún IBAN sobrevive a la capa de redacción' o 'el rol staff no puede ver las reservas de otro instructor', el veredicto es verificable en código y binario. El copy de marketing no se evalúa; solo el comportamiento.
Diligencia en segundo plano en cada solicitud de escuela
Cuando una escuela pide el badge de Partner, un Agente de Verificación hace un barrido en segundo plano para que el revisor humano lea un briefing, no un formulario en blanco.
Verificación con datos públicos
El Agente de Verificación hace una búsqueda web aislada (la única búsqueda externa de la plataforma), recoge menciones públicas de la escuela + de la licencia declarada, y marca cada afirmación como confirmada / no confirmada / contradicha. Cada dato lleva la URL de la fuente para que el revisor humano lo confirme en un clic.
Barrido de sesgo y patrones de reseñas
Una segunda pasada analiza la presencia pública de reseñas de la escuela en busca de señales — campañas negativas coordinadas, picos de 5 estrellas sospechosos, patrones ya prohibidos. El resultado es informativo, nunca bloqueante; un risk-score aislado (0-100) llega al briefing para que el revisor lo sopese.
Briefing sellado — nunca vuelve a la plataforma
El briefing queda en una tabla de historial de research accesible solo a admin. Nunca llega a otra escuela, nunca entrena modelos, nunca aparece en el contexto de otra escuela. Solo lo ve el revisor que abre el caso; borrar el caso borra el briefing.
Decide un humano — siempre
El agente nunca aprueba ni rechaza. Escribe el briefing; una persona lo lee y hace clic. Cada aprobación y cada rechazo queda registrado con el briefing adjunto — para que un regulador (o la propia escuela, si lo pide) pueda reconstruir exactamente lo que se sabía en el momento de la decisión.
Resiliencia de datos
Lo que te prometemos sobre que tu operación sobreviva a cualquier fallo.
Registro de auditoría solo-append + ledger de reembolsos encadenado por hash
Las operaciones administrativas (cambios de cuenta, escaladas de rol, borrados RGPD) se escriben en un registro de solo adición que se conserva por convención. La conciliación de reembolsos y pagos va un paso más allá con una cadena de hashes en el servidor, así que manipular el flujo de dinero se detecta al reproducirla.
Copia de seguridad replicada fuera de la base de datos
Snapshots cifrados diarios replicados entre la base de datos de producción, un proveedor independiente de object-storage y una máquina física en otro país. Perder un silo = perder cero datos.
Exportación cifrada self-service
Cualquier escuela descarga sus datos operativos en un ZIP AES-256 cuya clave es su propia contraseña. Ni nosotros podemos abrirlo. La exportación excluye la PII de clientes de la app (se queda dentro del canal de mensajes SurfBooking) pero incluye todo lo demás.
Lo que ven los auditores
Bajo acuerdo de confidencialidad, cuando un regulador pregunta, abrimos nuestros controles — el código que prueba que la privacidad, la integridad del registro de auditoría y las purgas RGPD funcionan como se describe. Nunca abrimos el contenido que esos controles protegen: el archivo de contexto de la escuela, los prompts del asistente, las conversaciones entre escuelas y la IA. Auditoría de controles, no de contenido.
Constitución algorítmica
Las reglas que vinculan a todos los agentes.
Toda nuestra red multiagente está gobernada por leyes fijadas en el servidor y codificadas en las instrucciones base de cada agente (blindadas contra jailbreaks y prompt-injection). Es la constitución la que garantiza el aislamiento entre escuelas, la honestidad de la atribución y la automatización de los pagos masivos sin intervención humana.