Construí una IA que lee mis datos de recuperación cada mañana — Esto es lo que realmente genera
Pasé una semana construyendo un sistema personalizado de inteligencia deportiva en OpenClaw que extrae datos de seis fuentes y genera una recomendación de entrenamiento matutina antes de que me despierte. Aquí están las salidas reales, la lógica de decisión y lo que he aprendido al ejecutarlo a diario.
Por qué construí esto
El problema suena simple: tengo demasiados datos de demasiados dispositivos que no se comunican entre sí.
WHOOP 5.0, Garmin Forerunner 265S, 8Sleep Pod, Speediance Gym Monster 2S — además del seguimiento de calorías a través de Chronometer. Cada dispositivo vive en su propia aplicación, su propio ecosistema, su propio jardín amurallado. Speediance no tiene aplicación web. Tonal tampoco. La aplicación web de WHOOP ha ido empeorado progresivamente durante los últimos dos años. Ninguno de ellos está diseñado para comunicarse con los demás de forma significativa.
Así que acabé haciendo lo que siempre hago con los problemas de datos: construí algo.
Al cabo de una semana ejecutando OpenClaw en un Mac M3 Ultra que tenía acumulando polvo, disponía de un sistema de inteligencia de fitness funcional que obtiene datos de seis conectores y genera dos informes: un informe matutino que me indica cómo de intenso debo entrenar, y un informe nocturno que evalúa cómo fue el día. Ambos se publican automáticamente en un panel alojado (GitHub Pages) que puedo consultar desde cualquier lugar.
La pila tecnológica
Hardware: Mac M3 Ultra como host base del agente. ARIA se encarga del panel de fitness y coordina los datos de varios conectores.
Modelos: Orquestación principal a través de MiniMax (~$10/mes), que es fiable y lo suficientemente lento como para delegar tareas correctamente sin agotar el presupuesto. Cuando necesito carga pesada — trabajo de integración en varios pasos, depuración, construir nuevos conectores — cambio a modelos alojados como Claude (Anthropic) bajo demanda. Para la generación rutinaria de informes diarios, el plan más económico lo resuelve sin problemas.
Conectores (6 activos):
- WHOOP API (puntuación de recuperación, HRV, datos de sueño, carga)
- Garmin Connect (datos de actividad — carreras, zonas de FC, ritmo, carga de entrenamiento)
- Speediance (a través del endpoint de la API no oficial de la comunidad de Reddit — extrae datos de entrenamientos completados, incluyendo volumen, desglose de ejercicios y estimaciones de 1RM)
- 8Sleep (puntuación de sueño, temperatura, HRV del Pod)
- Chronometer (datos de calorías y macros)
- Apple Health (capa puente que permite que los datos de calorías de Speediance lleguen a WHOOP para un cálculo preciso de la carga)
El conector de Speediance es el que más preguntan. No existe una API oficial. Alguien en la comunidad de Reddit publicó el endpoint que devuelve los datos de entrenamientos completados. OpenClaw lo encontró, lo dirigí a la URL, y en cuestión de minutos estaba descargando mi historial de entrenamientos y enviándolo al panel. Todo el flujo de trabajo — descargar el gestor no oficial de Speediance, descompilarlo, identificar el endpoint de datos, construir un conector — le llevó al agente menos tiempo del que me habría llevado hacerlo manualmente.
Cómo es realmente el informe matutino
Aquí está la salida real del 11 de febrero de 2026 — el día de recuperación 18% WHOOP:
INFORME DE FITNESS MATUTINO — 11 de febrero de 2026
Fuentes de datos: WHOOP, Garmin, 8Sleep, Speediance, Chronometer
Resumen de recuperación:
- Recuperación WHOOP: 18% 🔴
- VFC: 18.7ms (por debajo de la línea base de 7 días)
- Sueño total (WHOOP): 3.5h
- Puntuación 8Sleep: 61/100
- Strain WHOOP del día anterior: 11.6
Carga de entrenamiento (últimos 7 días):
- Volumen Speediance: 94,280 lbs
- Carreras registradas: 4 sesiones, 8.9 millas
- Sesión de mayor intensidad: carrera anaeróbica del 8 de febrero
⚠️ Alertas:
- Deuda de sueño detectada (>2h por debajo de la línea base)
- Ingesta calórica de ayer: 792 kcal (déficit estimado de ~800 kcal frente al mantenimiento)
- Riesgo de lesión elevado: privación aguda de sueño + déficit calórico
Recomendación: Recuperación activa Confianza: 77.8% | Puntuación ponderada: 55.65
Razonamiento: La VFC está deprimida respecto a la línea base móvil. La deuda de sueño es el factor principal: 3.5h es clínicamente insuficiente para la recuperación neuromotora. El déficit calórico agrava la supresión de la recuperación. El strain previo de 11.6 fue moderado y normalmente respaldaría una sesión ligera, pero la combinación de las tres señales negativas (sueño, calorías, VFC) desplaza la recomendación únicamente a Recuperación activa. Una carrera ligera en Zona 1 de 20–30 minutos es aceptable. Speediance Warrior 1 con peso de trabajo: no recomendado hoy. BJJ: no recomendado (riesgo de tiempo de reacción degradado).
Esa es la salida real. No es un genérico «descansa hoy», sino una recomendación razonada con las entradas específicas destacadas, el nivel de confianza mostrado y la llamada de BJJ realizada de forma explícita porque el sistema sabe que practico jiu-jitsu y que BJJ tiene un perfil de riesgo de lesión distinto al de una sesión de pesas.
El número de confianza 77.8% importa. Cuando la confianza es más baja, digamos 55%, profundizo en qué señales están en conflicto. En este caso, el strain del día anterior no era lo suficientemente alto como para exigir descanso por sí solo, pero las otras tres señales negativas lo superaron en la votación. El modelo muestra su trabajo.
El informe nocturno
El informe nocturno se ejecuta después de que he tenido tiempo de registrar las actividades del día. Evalúa:
- ¿El entrenamiento coincidió con la recomendación matutina?
- ¿Cuál fue el strain WHOOP acumulado real?
- Volumen Speediance si hubo una sesión de pesas
- Cierre de calorías de Chronometer
- Cualquier nuevo PR de 1RM en Speediance
- Datos de carrera de Garmin si corresponde
Se publica en el mismo panel. Con el tiempo, puedo mirar atrás y ver si seguí las recomendaciones matutinas y cuál fue el resultado: ¿anulé un día rojo y me sentí peor dos días después?
¿Entrené en un día amarillo y publiqué un PR? El conjunto de datos se convierte en algo útil.
Lo que construirlo realmente me enseñó
Esperaba que esto tardara semanas. Tardó aproximadamente una semana de tardes. La mayor parte fue la configuración inicial en el M3 Ultra y la construcción del primer conector funcional. Una vez que OpenClaw tuvo un conector funcionando, construir el siguiente fue más rápido. Una vez que tuvo los datos, construir la capa de visualización fue aún más rápido.
Las partes frustrantes: los modelos gratuitos (Google AI Studio, Nvidia Kimmy K2.5) cometen errores graves en cargas de trabajo complejas de varios pasos. El modelo de Google una vez eliminó sus propios archivos de configuración centrales al ejecutar un git clean en el ámbito equivocado. El de Nvidia es más rápido cuando funciona y completamente silencioso cuando no. Para construir y depurar, nada iguala a Claude con una clave API adecuada, pero consume tokens rápidamente. La solución con la que me quedé es: Miniax para las ejecuciones diarias programadas, Claude bajo demanda cuando estoy construyendo algo nuevo activamente.
La canalización de datos Speediance requirió la mayor paciencia. El endpoint no oficial no está documentado. El agente tuvo que inspeccionar las solicitudes de red desde la aplicación no oficial de gestión Speediance, identificar el endpoint correcto, descifrar el patrón de autenticación y construir un conector que manejara la paginación correctamente. Hizo todo eso. Lo observé trabajar en ello en los registros. Ese momento, verlo extraer con éxito 125 entrenamientos completados con desgloses completos de ejercicios, fue cuando entendí por qué la gente describe esta tecnología como genuinamente diferente de todo lo que vino antes.
El panorama general
Llevo años dedicándome a la tecnología del fitness. Tuve una Microsoft Band antes de que existiera el Apple Watch. He usado cada generación de WHOOP. He tenido Tonal. He tenido dos Speediance. He rastreado calorías a través de cada aplicación que haya existido en este ámbito.
Lo que hace este sistema y que ningún otro ha hecho es poner todos esos datos en la misma sala y permitir que algo con capacidad de razonamiento real los examine conjuntamente. No es un panel de widgets desconectados. Un agente que puede mirar mi tendencia de HRV, mi volumen de levantamiento de la semana pasada, mi ingesta calórica y mis datos de sueño simultáneamente y hacer un juicio que tenga en cuenta todo ello.
¿Es perfecto? No. La canalización de datos de calorías sigue siendo desordenada: estoy construyendo un puente de Apple Health para datos de Snap Cow de mi viaje reciente. El conector Speediance ocasionalmente se pierde un entrenamiento si la API no oficial agota el tiempo de espera. El problema de la carga BJJ es real: WHOOP puede detectar que una sesión de jiu-jitsu elevó mi frecuencia cardíaca, pero no puede evaluar el componente neuromotor y de fatiga de agarre como lo haría un entrenador con conocimiento.
Pero el 11 de febrero, cuando me dijo 18% recuperación, 77.8% confianza, Active Recovery — acertó. Y me lo dijo antes incluso de levantarme de la cama.
Esa es la versión de tecnología de fitness que llevo intentando construir desde que empecé a registrar estas cosas. Solo hizo falta la plataforma adecuada para hacerlo posible.