Heartbeat: Un Motor de Salud Proactiva Que Piensa Antes de Que Preguntes
Gonzalo Monzón
Fundador & Arquitecto Principal
La mayoría de apps de salud esperan a que hagas algo — registrar una comida, revisar una métrica, hacer una pregunta. Heartbeat invierte ese modelo por completo. Es un motor de salud proactiva que late periódicamente, analiza tu contexto completo mediante IA y genera recomendaciones, alertas y acciones antes de que preguntes. Piensa en ello como una inteligencia de salud en segundo plano que nunca deja de pensar en ti.
Heartbeat no es una app — es el motor debajo de las apps. Es la base sobre la que construimos NutriNen Baby, y la base para futuras aplicaciones de salud orientadas a mayores, fitness y salud mental. Este artículo cubre la arquitectura: perfiles User DNA, análisis Deep Pulse, simulación de crisis, el sandbox de desarrollo y el UI Action Resolver que traduce decisiones de IA en comandos de interfaz.
La Metáfora del Heartbeat (Es Literal)
El nombre no es decorativo. El sistema literalmente late — ejecutando ciclos de análisis periódicos igual que un corazón bombea sangre:
Trigger (tiempo / evento / manual)
│
├── Recopilar contexto
│ ├── Perfil User DNA
│ ├── Últimos 20 heartbeats
│ ├── Datos de sensores (peso, temp, sueño, glucosa)
│ └── Estado de gamificación (XP, nivel, rachas)
│
├── Análisis IA (Deep Pulse)
│ ├── Evaluación de salud
│ ├── Detección de tendencias (mejorando/empeorando)
│ ├── Evaluación de riesgos
│ └── Generación de acciones
│
├── UI Action Resolver
│ └── Traducir decisiones → cards / alertas / navegación
│
└── Persistir resultados
├── D1 (log de heartbeats)
├── User DNA (actualizado)
└── Estado de gamificación
Cada latido enriquece el perfil del usuario, detecta tendencias, evalúa riesgos y genera acciones concretas — todo sin input del usuario. El usuario solo ve aparecer cards inteligentes: "Tu bebé necesita su merienda", "Gluten detectado en la última comida — alerta", "¡Racha de 15 días! Insignia desbloqueada."
User DNA: Perfiles Vivos Que Evolucionan
Cada usuario tiene un perfil JSON completo — su "DNA" — que evoluciona con cada interacción:
{
"demographics": { "age": 8, "stage": "toddler" },
"health": { "allergies": ["gluten"], "conditions": [] },
"preferences": { "vegetarian": true, "spicy_level": 0 },
"history": { "meals_logged": 342, "streaks": 15 },
"gamification": { "level": 12, "xp": 4500 },
"devices": { "wearable": true, "scale": true }
}
Decisiones de diseño clave:
- Auto-enriquecimiento — cada interacción actualiza el DNA. ¿Registraste una comida? Las preferencias se refinan. ¿Sin comidas durante 2 días? El historial lo marca. ¿Desbloqueaste una insignia? El estado de gamificación se actualiza.
- Personas predefinidas — Baby, Celíaco, Estudiante, Senior. Perfiles de inicio rápido que dan a la IA contexto inmediato sin un flujo de onboarding largo.
- Totalmente editable — en el sandbox Heartbeat Studio, los desarrolladores pueden editar manualmente cualquier campo del DNA para probar cómo responde el motor a diferentes estados.
El DNA es lo que hace que las recomendaciones de Heartbeat sean realmente útiles. La IA no conoce "un usuario genérico" — conoce a esta persona específica con alergia al gluten que es vegetariana y ha registrado 342 comidas con una racha de 15 días en el nivel 12.
Deep Pulse: Análisis Estratégico de Salud
Deep Pulse es el cerebro de cada heartbeat — un análisis IA multicapa que evalúa el estado actual del usuario y genera acciones:
| Componente | Función | Output |
|---|---|---|
| Health Analysis | Evaluación del estado de salud actual | Puntuación de salud (0-100) |
| Trend Detection | Patrones de mejora, estabilidad o empeoramiento | Delta de los últimos 5 heartbeats |
| Risk Assessment | Evaluación de riesgos futuros basada en patrones | Nivel de riesgo + preocupaciones específicas |
| Action Generation | Acciones recomendadas concretas | Cards, alertas, comandos de navegación |
| Travel Engine | Contexto geográfico para recomendaciones | Sugerencias según ubicación |
El Travel Engine es particularmente interesante — ajusta recomendaciones según la ubicación del usuario. ¿Viajando a una región conocida por alérgenos alimentarios específicos? El motor avisa proactivamente. ¿Diferente zona horaria alterando horarios de comidas? Ajusta sus recomendaciones temporales.
Simulación de Crisis: Stress-Testing de la IA
¿Cómo sabes que tu motor de salud responde correctamente cuando las cosas van mal? Simulas crisis.
El módulo de Simulación de Crisis ejecuta escenarios de estrés predefinidos:
- Detección de alergia — "El usuario comió alimento con alérgeno X. ¿Qué hace el motor?"
- Falta de datos — "Sin datos durante 48 horas. ¿Cómo responde el motor?"
- Condiciones de emergencia — "Signos vitales anormales detectados. ¿Cuál es la escalación?"
- Rachas rotas — "El usuario rompió una racha de 30 días. ¿Cómo responde la gamificación?"
- Stress testing — "Ejecutar 20+ heartbeats consecutivos a intervalos de 2 segundos. ¿Alguna degradación?"
Cada escenario mide tiempo de respuesta, calidad de decisiones y si el motor genera las acciones UI correctas. Es esencialmente testing de integración para el juicio de la IA — no solo "¿funciona el código?" sino "¿toma la IA la decisión correcta bajo presión?"
Heartbeat Studio: El Sandbox de Desarrollo
Heartbeat Studio es donde los desarrolladores construyen y prueban el motor. Tiene seis paneles:
| Panel | Función |
|---|---|
| Profile Selector | Seleccionar y editar perfiles User DNA |
| Trigger Box | Inyectar eventos (tiempo, sensores, acciones de usuario) |
| AI Thought Viewer | Visualización JSON raw del razonamiento IA |
| UI Preview | Renderiza cards tal como aparecerían en la app |
| Metrics Dashboard | Puntuación de salud, estado de juego, deltas en tiempo real |
| Heartbeat Log | Timeline de los últimos 20 heartbeats con filtros |
El Trigger Box es la herramienta clave. Permite inyectar eventos que provocan heartbeats:
- "Avanzar 6 horas" — simula el paso del tiempo
- "Inyectar lectura de glucosa: 180" — simula datos de sensores
- "Usuario registró pasta" — simula una comida con potenciales alérgenos
- "Modo auto-heartbeat" — dispara heartbeats cada 2 segundos para stress testing
- "Ejecutar escenario: 48h sin datos" — activa la simulación de crisis
Tres modos de ejecución cubren diferentes necesidades de desarrollo: Mock (datos simulados, iteración rápida), API (backend real de Cloudflare Workers, datos persistentes), e Híbrido (mock con validación API selectiva para verificaciones puntuales).
UI Action Resolver: Pensamientos de IA → Comandos de Interfaz
El puente entre el razonamiento de la IA y las acciones visibles por el usuario:
IA decide: "mostrar alerta de alergia"
│
└── UI Action Resolver traduce a:
{
"action": "show_alert",
"type": "allergy_warning",
"severity": "high",
"content": "Gluten detectado en la última comida"
}
Tipos de acción: show_card, show_alert, navigate, update_score, unlock_badge, play_sound, show_celebration. La IA genera intenciones de alto nivel; el Resolver las mapea a comandos de UI concretos que cualquier app frontend puede consumir.
Este desacoplamiento es lo que hace de Heartbeat un motor y no una app. NutriNen Baby renderiza estas acciones como cards tiernas temáticas de bebé con efectos de partículas. Una futura app de fitness podría renderizarlas como notificaciones de entrenamiento. Mismo motor, diferente personalidad.
Esquemas de Cards: UI Contextual
El motor genera cards con diferentes esquemas visuales según el contexto:
| Esquema | Uso | Ejemplo |
|---|---|---|
| Nido | Hogar, feeds, rutinas | "Tu bebé necesita su merienda" |
| Escudo | Alertas, protección | "Alerta: alimento con gluten" |
| Biblioteca | Info, educación | "Artículo: Introducción al BLW" |
| Invernadero | Progreso, crecimiento | "¡Racha de 15 días! 🌱" |
Cada esquema lleva jerarquía visual, nivel de urgencia y patrones de interacción. Las cards Escudo siempre tienen prioridad (seguridad/salud primero). Las cards Nido son cálidas y rutinarias. Las cards Biblioteca son descartables. Las cards Invernadero son de celebración con animaciones.
API del Motor
El motor expone una API REST limpia desde Cloudflare Workers:
| Endpoint | Método | Función |
|---|---|---|
/api/heartbeat/pulse | POST | Ejecutar un heartbeat con contexto |
/api/heartbeat/profile | GET/PUT | Leer/actualizar User DNA |
/api/heartbeat/history | GET | Historial de heartbeats |
/api/heartbeat/simulate | POST | Ejecutar simulación de crisis |
/api/heartbeat/actions | GET | Acciones pendientes para el usuario |
Alojado en Cloudflare Workers con D1 para almacenamiento persistente. Todo el motor corre en el edge — el análisis de heartbeat ocurre en la región más cercana al usuario, con latencia sub-100ms para la mayoría de operaciones.
Conclusiones Clave
1. Proactivo supera a reactivo. Las apps de salud que esperan input del usuario pierden el punto. Un sistema que analiza contexto y genera recomendaciones autónomamente aporta valor incluso cuando los usuarios se olvidan de abrir la app.
2. El User DNA hace que las recomendaciones de IA sean personales, no genéricas. La diferencia entre "come sano" y "tu bebé con alergia al gluten necesita una merienda vegetariana" son 342 comidas registradas de contexto. Los perfiles ricos convierten IA genérica en guía genuinamente útil.
3. La simulación de crisis es testing de integración para el juicio de la IA. No basta con probar si el código funciona — necesitas probar si la IA toma la decisión correcta cuando un usuario reporta haber comido un alérgeno o cuando los datos se quedan en silencio 48 horas.
4. Motores, no apps, son la abstracción correcta. Al construir Heartbeat como motor reutilizable, NutriNen Baby obtuvo inteligencia de salud gratis. Futuras apps (cuidado de mayores, fitness, salud mental) también. El motor maneja IA, perfiles y decisiones; las apps manejan personalidad y UI.
5. El UI Action Resolver es la capa de desacoplamiento clave. La IA genera intenciones abstractas. El Resolver las mapea a comandos de UI. Las apps renderizan esos comandos como quieran. Esta separación de tres capas (IA → Acciones → UI) es lo que hace al motor verdaderamente reutilizable.
Etiquetas
Sobre el Autor
Gonzalo Monzón
Fundador & Arquitecto Principal
Gonzalo Monzón es Arquitecto de Soluciones Senior e Ingeniero IA con más de 26 años construyendo sistemas críticos en Sanidad, Automatización Industrial e IA empresarial. Fundador de Cadences Lab, está especializado en conectar infraestructura legacy con tecnología de vanguardia.
Artículos Relacionados
Por Qué Usamos 7 Proveedores de IA (No Solo Uno) — Y Cómo Rastreamos Cada Céntimo
11.200+ llamadas/mes, ~$184 de coste total, 2.4% de errores. Así es como nuestro AI Gateway en Cloudflare Workers enruta entre Gemini, GPT-4o, Claude y más — con fallback automático, rate limiting por tiers y tracking de costes en tiempo real.
Desplegando un Sistema de Radiología Completo en el Edge: 13 Módulos, Cero Servidores
Construimos un RIS completo — visor DICOM, diagnóstico IA con MedGemma, HL7 FHIR, firmas digitales, facturación CASS — 100% en Cloudflare. Puntuado 9/10 por un radiólogo experto que ha usado Siemens, Philips y Epic. La historia técnica completa.
Synapse Studio: Una Oficina Virtual 2D Donde los Agentes IA Hacen el Trabajo Real
Construimos una oficina animada estilo SimTower donde agentes IA con capacidades multimodales — visión, generación de imágenes, búsqueda web, evolución iterativa de imágenes — colaboran en tareas reales. Zero dependencias, Vanilla JS puro, corriendo en Cloudflare.