如何用 OpenClaw 打通 Oura Ring + WHOOP,打造一个每天主动给你发报告的 AI 健康管家

一、两个手环,两个 App,零整合

我同时戴着两个健康设备——手指上是 Oura Ring,手腕上是 WHOOP。

这两个东西各有所长。Oura 的睡眠追踪和 Readiness 评分很准,WHOOP 的 Recovery 和运动 Strain 分析更细。问题是,它们的数据完全割裂在两个 App 里。

每天早上,我要先打开 WHOOP 看 Recovery 多少、HRV 多少,再切到 Oura 看睡眠评分、Readiness 评分。两边的睡眠时长还不一样——同一晚上,Oura 说我睡了 5 小时 13 分,WHOOP 说 5 小时 47 分。到底信谁?

其实我想要的很简单:每天早上一条消息,把两个设备的数据整合在一起,告诉我昨晚睡得怎么样、今天状态如何、该注意什么。

这事儿人干不了——我不可能每天手动记录两个 App 的数据再做对比。传统的自动化工具(Shortcuts、IFTTT)也干不了——它们只能搬运数据,不会分析,更不会用人话跟你说"你昨晚深睡只有 33 分钟,今晚该早点睡了"。

所以我把这件事交给了龙虾。

二、为什么龙虾能管健康

先说清楚"龙虾"是什么。OpenClaw(龙虾)不是一个健康 App,它是一个 AI Agent 平台——你可以理解为一个有手有脑、能自己干活的 AI 助手。

它天然适合干"健康管家"这件事,因为三个核心能力:

第一,会写代码。 龙虾能自己写 Python 脚本去对接任何有 API 的服务。Oura 有 API、WHOOP 有 API、Apple Health 有导出接口——只要有数据出口,龙虾就能接进来。不需要等官方出"整合功能",不需要找第三方 App 做中转。

第二,有定时任务系统。 OpenClaw 内置了 cron 调度器,可以设定"每天早上 10:30 拉取昨天的健康数据,生成报告"。不用你操心,到点自动跑。

第三,能主动找你。 报告生成后,直接通过 Telegram(也支持微信、Discord、Slack 等)推到你手机上。你不需要打开任何 App,消息就在那里等你。

和其他方案对比一下:

方案能整合多设备吗能自动跑吗能解读数据吗能主动推送吗
手动看 App不能不能靠自己不能
Shortcuts / IFTTT有限不能有限
ChatGPT 对话不能不能不能
OpenClaw

差距一目了然。ChatGPT 很聪明但没有"手"——它不能定时拉 API、不能持久化数据、不能主动给你发消息。Shortcuts 有"手"但没有"脑"——它能搬运数据但不会解读。龙虾是既有手又有脑的。

三、实战:从零搭建健康监控

以下是我的真实搭建过程,包括踩过的坑。

3.1 接入 Oura Ring

第一步是在 OpenClaw 的社区技能市场(ClawHub)找到了一个 Oura skill。装上,配好 API token,跑了一下——报错了。

排查发现是 Oura API 的一个经典坑:睡眠数据按入睡时间过滤,不是按日期过滤。比如我 3 月 8 号凌晨 2:34 入睡,这条记录的 bedtime_start 是 3 月 8 号凌晨,但 day 字段是 3 月 8 号。如果用 start_date=2026-03-08 去查,API 会按 bedtime_start 过滤,结果查不到——因为它认为这条记录属于 3 月 7 号那个"睡眠窗口"。

这种 bug 人来排查可能要半天,龙虾直接分析了 API 文档和返回数据的时间戳,定位到了根因,然后自己重写了整个 skill

重写后的版本:

  • 纯 Python 标准库,零外部依赖(原版依赖一个第三方库,那个库本身有 bug)
  • 查询范围自动前后各扩一天,再按 day 字段精确筛选
  • 拉取的数据比原版丰富得多:Resilience(韧性评分)、入睡延迟、6 项睡眠子评分、活动详情、压力恢复比
  • 支持 --weekly 生成周报

从发现 bug 到重写完成,大概 30 分钟。

3.2 接入 WHOOP

WHOOP 在社区没有现成的 skill,龙虾从零写了一个。

WHOOP 用 OAuth 2.0 授权,流程比 Oura 的 Personal Access Token 复杂不少:

  1. 去 WHOOP 开发者后台创建应用,拿到 Client ID 和 Secret
  2. 在本地起一个临时 HTTP 服务器接收回调
  3. 浏览器里登录 WHOOP 账号授权
  4. 回调带回 authorization code,换成 access token + refresh token
  5. 后续每次调用自动用 refresh token 续期

整个授权脚本龙虾一次写完,支持三种模式:本地自动回调、远程手动粘贴 code、从完整回调 URL 提取 code。这是因为我们在实际使用中发现,如果 OpenClaw 跑在远程服务器上,localhost 回调不可达——所以龙虾主动加了远程模式的支持。

密钥管理方面,WHOOP 的 Client ID 和 Secret 存在 1Password 里,通过 Service Account Token 自动读取。没有 1Password 的用户也可以用环境变量,skill 文档里两种方式都写清楚了。

关于 token 续期:WHOOP 的 refresh token 是滚动更新的——每次刷新都会返回新的 refresh token。只要 cron 每天跑一次 sync,token 就会自动续期,一次授权永久有效

拉取的数据包括:

  • Recovery 评分(红/黄/绿三档)
  • HRV(RMSSD)、静息心率、血氧、皮肤温度
  • 睡眠:总时长、效率、一致性、各阶段时长、呼吸频率、睡眠需求和欠债
  • Day Strain(0-21 分)、卡路里消耗
  • 每次运动的详情:类型、时长、Strain、心率区间、距离、海拔

3.3 合并报告

两个设备都接上之后,关键一步是把数据合在一起

我让龙虾写了一个 health-combined.py 脚本,做的事情:

  1. 读取当天的 Oura 和 WHOOP 各自的报告(markdown 文件)
  2. 提取关键指标,按类别合并
  3. 两个设备数据不一致的地方,并排展示(比如静息心率 WHOOP 62 bpm / Oura 60 bpm)
  4. 输出一份结构化的综合报告

最终的报告长这样:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
🏥 Daily Health — 2026-03-09

💪 Recovery & Readiness
• WHOOP Recovery: 🟢 66%
• Oura Readiness: 73
• Oura Resilience: adequate

❤️ Vitals
• HRV: WHOOP 41.4 ms
• Resting HR: WHOOP 62 bpm / Oura 60 bpm
• SpO2: WHOOP 96.3% / Oura 97%
• Skin Temp: WHOOP 33.7°C / Oura dev -0.5°C

😴 Sleep
• WHOOP: 5h47m · Performance 61% · Efficiency 90%
• Oura: 5h13m · Score 55
• Stages: Deep 0h33m | REM 1h06m | Light 3h33m | Awake 1h14m
• Bedtime: 04:09 → Wake: 10:36
• Sleep Debt: 4h29m

🧠 Stress
• Sleep Recovery: 45 · Daytime Recovery: 45 · Stress: 43

🔥 Activity
• Day Strain: 0.1 / 21.0
• Calories: 534 kcal

一屏看完所有关键数据。哪个指标来自哪个设备,一目了然。

3.4 每日自动推送

最后一步是配 cron。OpenClaw 的 cron 系统可以设定任意时间执行任意任务:

1
每天 10:30 → 拉取 Oura + WHOOP 数据 → 生成合并报告 → 发到 Telegram

为什么是 10:30?因为 WHOOP 的睡眠数据需要等起床后才能最终确认,Oura 也类似。设在上午确保数据完整。

从此以后,我每天醒来打开 Telegram,报告已经在那里了。不用打开任何健康 App。

龙虾还能把报告渲染成信息图——HTML 设计稿通过 Playwright 3 倍分辨率截图,输出 2250px 宽的高清 PNG,发到 Telegram 不失真。

四、龙虾健康管家给我的价值

用了一段时间,总结几个真正有用的点:

1. 一眼看全貌

两个设备的数据在一条消息里,不用切 App。特别是两个设备的数据不一致时(比如睡眠时长差了半小时),并排看一眼就知道大致范围,比纠结"到底信谁"有用得多。

2. 主动预警

报告不只是罗列数字。龙虾会在末尾加上解读——“睡眠欠债 4.5 小时,深睡仅 33 分钟,今晚目标 23:30 前入睡”。这比你自己打开 App 看一堆图表再自己判断高效得多。

3. 趋势可见

支持 --weekly 模式生成周报,看一周的 HRV 趋势、Readiness 变化、运动量分布。单天数据波动大,一周数据才能看出规律。

4. 随时追问

因为历史报告都存在本地文件里(health/combined-YYYY-MM-DD.md),我可以随时在 Telegram 问龙虾:“我最近一周平均 HRV 多少?““上周哪天睡眠最好?” 它能读取历史数据回答。

5. 完全可定制

不满意报告格式?改脚本。想加新指标?改脚本。想换推送渠道?改配置。整个系统都是你的,不受任何平台限制。

五、开箱即用:我们开源了 Skill

上面说的 Oura 和 WHOOP 接入,我们已经把完整的 Skill 开源到了 GitHub,拿来就能用:

👉 https://github.com/jincai/openclaw-skills

Skill功能特点
ouraOura Ring 数据同步与分析纯 Python 零依赖、自动处理跨天睡眠、支持日报+周报
whoopWHOOP 数据同步与分析OAuth 一次授权永久有效、支持本地/远程两种授权模式

快速上手

把 Skill 地址发给你的龙虾就行:

1
2
3
帮我装一下这两个健康 Skill:
https://github.com/jincai/openclaw-skills/tree/main/oura
https://github.com/jincai/openclaw-skills/tree/main/whoop

龙虾会自动克隆代码、引导你配置 API Token、设好定时任务。整个过程你只需要跟着它的提示操作——去 Oura/WHOOP 开发者后台拿个 Token,浏览器里点一下授权,剩下的它全包了。

这两个 Skill 也兼容 Claude Code——复制到 ~/.claude/skills/ 目录即可。不是 OpenClaw 用户也能用。

六、还能接什么

目前我接了 Oura 和 WHOOP,但这套架构理论上能接任何有 API 的健康数据源:

Apple Health:iPhone 的"健康"App 可以通过快捷指令导出数据,龙虾解析后纳入报告。步数、心率、血氧、运动记录都有。

Garmin / Fitbit / Withings:都有开放 API,接入方式和 WHOOP 类似(OAuth 授权 + 定时拉取)。

体重秤、血压计:只要数据能数字化,就能接进来。

更有意思的是交叉分析——比如:

  • 运动后 HRV 恢复速度和运动强度的关系
  • 睡眠质量和前一天屏幕时间的相关性
  • Readiness 低于 70 的日子,是不是运动表现也会下降

这些分析传统健康 App 做不了(它们只能看自己的数据),但龙虾可以——因为所有数据都在同一个地方。

七、AI Agent 的真正价值

搭建健康管家这件事,让我更深刻地理解了"AI Agent"和"AI 聊天"的区别。

ChatGPT 很聪明,你把数据粘贴给它,它能分析得头头是道。但它不会主动干活——不会每天早上自己去拉数据、生成报告、发给你。你不问它,它就不动。

OpenClaw 不一样。它是一个有手有脑的执行者

  • 有手:能调 API、能写文件、能发消息、能定时执行
  • 有脑:遇到 bug 能自己排查、能根据数据给出建议、能理解你的自然语言指令
  • 有记忆:知道你的设备配置、历史数据、个人偏好

健康管理只是一个缩影。同样的模式——“对接数据源 → 定时拉取 → 智能分析 → 主动推送”——可以复制到任何场景:投资组合追踪、社交媒体监控、项目进度管理、信息流过滤……

一个会写代码、能定时执行、能主动联系你的 AI,才是真正的个人助理。

你的健康,交给龙虾就好了。