如何用 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 复杂不少:
- 去 WHOOP 开发者后台创建应用,拿到 Client ID 和 Secret
- 在本地起一个临时 HTTP 服务器接收回调
- 浏览器里登录 WHOOP 账号授权
- 回调带回 authorization code,换成 access token + refresh token
- 后续每次调用自动用 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 脚本,做的事情:
- 读取当天的 Oura 和 WHOOP 各自的报告(markdown 文件)
- 提取关键指标,按类别合并
- 两个设备数据不一致的地方,并排展示(比如静息心率 WHOOP 62 bpm / Oura 60 bpm)
- 输出一份结构化的综合报告
最终的报告长这样:
| |
一屏看完所有关键数据。哪个指标来自哪个设备,一目了然。
3.4 每日自动推送
最后一步是配 cron。OpenClaw 的 cron 系统可以设定任意时间执行任意任务:
| |
为什么是 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 | 功能 | 特点 |
|---|---|---|
| oura | Oura Ring 数据同步与分析 | 纯 Python 零依赖、自动处理跨天睡眠、支持日报+周报 |
| whoop | WHOOP 数据同步与分析 | OAuth 一次授权永久有效、支持本地/远程两种授权模式 |
快速上手
把 Skill 地址发给你的龙虾就行:
| |
龙虾会自动克隆代码、引导你配置 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,才是真正的个人助理。
你的健康,交给龙虾就好了。