让 Agent 读懂你的身体:数据获取篇

11:19

某一天,我站在健身房里,发现自己似乎已经有一阵子没什么进步了,隐约生出一种「怎么练来练去还是这样」的顿感。我知道,这多半是平台期。理论上,我要做的无非是调整训练量、换动作、看恢复、查饮食,必要时调整周 ...


某一天,我站在健身房里,发现自己似乎已经有一阵子没什么进步了,隐约生出一种「怎么练来练去还是这样」的顿感。我知道,这多半是平台期。理论上,我要做的无非是调整训练量、换动作、看恢复、查饮食,必要时调整周期安排。但前提是,我得先知道自己卡在哪一环。

于是,我开始琢磨一件事:能不能让 AI Agent 来「接管」我的身体?这个需求可以拆分成三个问题:

  1. AI Agent 怎么才能方便地拿到我的数据?
  2. 拿到数据后,怎么让 AI Agent 正确地处理?
  3. AI 的处理结果在多大程度上可信?

由于篇幅问题,这三个问题,我准备分开来写。本文处理第一个问题:怎样让 AI 持续拿到我已经在记录的数据。

需要承认的是,我个人的精力与手边的设备都有限,只能实测从 Apple Health 与 Oura 获取数据的方法;其余厂商的部分,均来自公开资料的整理。如果有实际跑不通的地方,欢迎在评论区指正。

先判断数据在哪里

不同的获取方式之所以显得复杂,是因为健康数据并不只存在于一个地方。有些是手表直接记录的,有些经过厂商算法计算,还有一些本来就需要手动填写。为了便于理解,我个人粗浅地将运动健康数据分为三层:

三层依次远离传感器,也依次远离客观:第一层是事实,第二层是解释,第三层是自述。

第一层通常是步数、心率、睡眠时段和运动轨迹等基础记录;第二层是 readiness、strain、resilience 一类经过算法计算的指标;第三层则包括饮食、训练感受和其他手工记录。

这些数据大致分散在三类来源:

  • 聚合平台:Apple Health、Health Connect 与 Google Health,负责汇集设备和第三方 App 写入的通用数据;
  • 厂商或专业 App:Oura、Whoop、Samsung Health、Garmin、训记、Hevy 等,通常还保留平台里没有的特色指标;
  • 报告或手工记录:饮食、体成分、体检报告等,未必有稳定的数字化入口。

厂商或 App 大多能把第一层以及部分第二、三层信息同步给平台,但不会交出原应用里的全部内容。一方面,Apple Health 或 Health Connect 未必有对应字段;另一方面,某些复合指标本来就是订阅产品的核心卖点。因此,选择获取方式时,可以先问自己两个问题:数据是否已经进入聚合平台,以及平台里的字段够不够用。

在此基础上,下面,我将介绍七种获取数据的路径,供读者按情况参考。

方法一、直接在 AI 产品里使用

如果你只想做些轻量分析,不愿花太多心力配置,最直接的选择是让 AI 产品读取现成的数据。

ChatGPTClaude 都支持在 iOS App 内接入 Apple Health。以 ChatGPT 为例,符合开放条件的用户可以授权读取健康数据,然后直接提问。

https://openai.com/zh-Hans-CN/index/health-in-chatgpt/

不过,这类功能的可用性受地区、账号和开放进度等条件影响,一般只在美国先上线。如果你不在美国,也没有办法获得「假装在美国」的环境,国内的蚂蚁阿福 App 也可以接入 Apple Health 并做问答。按我的实测,相关功能还比较基础,能够应付一些简单的睡眠与运动问题,复杂分析的表现则较为有限。从产品呈现来看,它更侧重体检报告解读与 AI 问诊,健康管理功能似乎并不成熟。

总的来说,这种方式胜在省心,但更适合临时查询和轻量分析;如果希望长期积累、自由查询或者更换模型,还是需要把数据保存到自己能够控制的位置。

方法二、使用现成连接器或中转服务

另一种省事的路径,是使用厂商已经做好的连接器,或者让第三方服务替你完成数据汇集。得益于 AI 的火热,「能被 AI Agent 读取」正在变成这类服务的一项卖点。例如:

  • Strava 上线了官方 MCP 连接器,面向订阅用户,可以让 AI Agent 直接获取数据。
  • 训记向买断用户提供 API Skill,入口在「我的」>「数据导出和导入」。这个 API 还支持回写,Agent 可以把训练记录写回 App。
  • Hevy 可以在 Settings > Developer 中生成 API Key,需要 Hevy Pro 订阅。
  • Freddy 则更像一台健康数据的中转服务器:它可以把多个平台的数据同步到自己的服务器,再通过 MCP 或 API 提供访问。第一个数据源免费,多数据源需要订阅,也提供价格较高的终身买断。此外,配置省事的代价,是数据需要存储在第三方服务器上。
Freddy 支持相当多的数据来源

如果选择连接器服务,需要确认它能读取哪些字段、数据存放在哪里,以及停止订阅后能否完整导出。

方法三、从聚合平台持续导出

如果多个设备和 App 已经把数据写入同一个平台,从平台统一导出,往往比逐个连接厂商更省事。Apple Health、Health Connect 与 Google Health 都承担了这样的角色,但三者的工作方式并不完全相同。

Apple Health

想到要把健康数据和 AI Agent 对接,我的第一反应就是从 Apple Health 入手。一方面,Apple Watch 是我的主要数据来源之一;另一方面,Apple Health 本身就是一个汇总平台,支持相当丰富的数据类型。除了手表记录的数据外,一些第三方 App 写入的营养和训练记录,也可以汇集在这里。你甚至可以手动在「健康」App 中添加数据。

Apple Health 支持多种数据字段

支持 Apple Health 生态的第三方厂商也比较多。根据我的查询,至少小米、Zepp、OPPO、佳明等都支持同步,Keep、Nike Run Club 等运动 App 也可以接入。至于是否写入你看中数据,建议读者根据自身情况进一步核实。

得益于其完善的生态,读取和导出 Apple Health 的工具也已相当丰富。下面介绍快捷指令、第三方 app 和自己 vibe 工具三种方法。

快捷指令

快捷指令是 iOS 自带的自动化工具,少数派社区里已经有很多介绍和攻略文章,这里就不过多赘述。

快捷指令可以直接读取 Apple Health 的数据,并且支持日期、时间等条件筛选。于是,「只导出你真正关心的那几项指标」以及「增量导出」成为可能;若你已经备好服务器或数据库,甚至可以让它把数据直接送上云端。

这同样有现成的方案,例如Aimee1129/apple-health-shortcuts-mcp。你可以跟着教程搭建适合自己的快捷指令,一键把所需数据上传到云端数据库,再让 AI Agent 通过 MCP 读取。

在我的实际体验中,这个方法能够覆盖我需要的大多数数据类型。主要门槛在于需要一些动手配置的耐心,当然,这个过程也可以请 AI 协助:

我想用快捷指令持续导出特定的 Apple Health 数据。请先完整读这篇教程再回答,不要凭记忆推测操作步骤。我的环境:iPhone ___,iOS ___,有/没有 Apple Watch,有/没有 Cloudflare 账号。我要导出的指标:___。请先告诉我这些是否都在该项目默认支持的范围内;如果有超出的,说明需要改哪些地方,以及改动难度。我的最终目标是 ___(例如:每天睡醒自动同步昨天的睡眠数据,每天运动完自动同步运动数据,每天 0 点自动同步状态数据)。请说明如何处理迟到的数据、重复记录和后续修改。交付方式:一步一步来,每步给一个动作,我做完回复「好了」或发截图,你再给下一步。如果文档里的步骤和我实际看到的界面对不上,指出差异并给替代路径。

查找健康样本支持的数据类型

现成工具:花一点钱,少做一些配置

如果不想自己搭快捷指令,可以使用专门的导出工具。

例如,Health Push 是一个简单的小工具,可以将数据导出为 JSON,供 AI Agent 读取和分析。

Health Auto Export 的功能则更完整。它支持选择数据类型、时间范围和导出格式,也可以把数据自动发送到 REST API 或云存储(需要高级版)。接收端可以放在电脑、NAS、服务器上,也可以使用 Supabase、Cloudflare 一类云服务。数据库建表和数据清洗等工作,可以交给 AI Agent 协助完成。可惜的是,国区目前不支持终身买断。

自己写 App:自由度更高,门槛也最高

倘若你有一台 Mac,并且拥有开发者账号,又稍微懂一点 iOS 应用开发,也可以自己做一个自用 App 来导出数据,甚至同步到自己的服务器或电脑。

GitHub 上有可用的 SDK,例如 the-momentum/open_wearables_ios_sdk。所谓 SDK,就是别人写好、封装好的一段可复用功能,你只要调用它,不必从零写起,交给 AI 稍作修改包装即可上手。

可以先让 Agent 按 SDK 文档做出一个最小应用,在真机上完成授权和一次同步,再增加数据类型与更新机制。

请基于这个 SDK,帮我开发一个个人自用的 iOS App:https://github.com/the-momentum/open_wearables_ios_sdk

请先阅读项目文档,确认支持范围,不要凭记忆编写接口。

我的环境:Mac ___,Xcode ___,iOS ___,开发者账号类型 ___。需要读取的 Apple Health 数据:___。历史范围:___。保存目标:本地文件/自己的电脑/服务器?

先做最小版本:真机安装 > 读取授权 > 按日期查询 > 导出 JSON。保留时间、单位、来源和记录标识,确认数据正确后,再增加上传、增量同步、去重和失败重试。后台同步以 iOS 实际支持的能力为准。

先给方案,我确认后再执行。遇到文档缺失或权限限制,明确说明,不要猜测。

不过,开发、安装和长期稳定使用是不同的事情。苹果允许通过 Xcode 的 Personal Team 在个人设备上测试应用,只是免费签名有有效期等限制。

Google Health 与 Health Connect

Android 这边,首先需要理清几个容易混淆的名字:

  • Google Health:既是 App,也是云端服务。它由 Fitbit App 更名而来,2026 年 5 月完成替换;Fitbit 与 Pixel Watch 的数据直接汇入其中,对外提供 Google Health API(v4,即 Fit API 的继任者)。
  • Health Connect:Android 系统层的数据中转站,在本地存储数据并管理授权,让不同的健康类 App 读写同一份记录。从 Android 14 起,它已并入系统框架,无需另装。
  • Google Fit:上一代产品,正在退场。官方说明 Fit API 支持到 2026 年底,App 本身也将并入 Google Health。

如果你使用 Fitbit 或 Pixel Watch,数据会直接进入 Google Health。其他品牌则要看对应 App 能否把所需数据写入 Health Connect。

从公开信息和网上讨论看,OPPO、vivo、小米等国内厂商的国际版,以及非国行的三星设备,都支持向 Health Connect 写入数据。以小米为例,可以在 Mi Fitness 的「账号—添加账号」中授权。但我手上没有真机,无从逐一确认。部分国行三星设备也可以通过开发者设置与地区调整启用 Health Connect;这类方法依赖具体系统版本,不能直接视为通用方案。

Google Health 改版后的用户评价并不好

在 Health Connect 一侧,老牌工具 Health Sync 和开源项目 Health Data Export 都是现成的选择。前者可以把数据导出到网盘或者服务器,支持多种格式;后者支持导出到 Google 表格并增量更新。

如果想自己定制,可以参考 Health Connect 官方文档 或第三方项目 the-momentum/open_wearables_android_sdk。相比 iOS,Android 自用应用的安装通常更灵活,调试和安装到自己的手机上不需要商店开发者账号。

方法四、直接调用官方 API 或 SDK

如果平台不能提供你需要的数据,就要回到数据来源。厂商提供的 API、SDK 或官方连接器,能够直接读取原服务里的数据,通常也更适合自动更新。

Google Health API

Google Health 提供了一条与 Apple Health 本地接入不同的路径:通过 API 从 Google Health 云端直接获取数据。大致流程是:创建 Google Cloud 项目、启用 API、配置 OAuth 应用和所需权限,再完成账号授权。个人自用可以全程自助;只有支持超过 100 名用户时,才会触发安全审核

谷歌还提供了 Google-Health-API/google-health-cli。它覆盖四十余种数据类型,可输出 JSON、CSV 或终端表格,仓库里也附有 Agent Skill 文件。对于想让 Agent 直接读取自己数据的人,这算得上是一种官方适配。

Oura 与 Whoop

Oura 与 Whoop 的生态位颇为相近:硬件价格较高,完整体验依赖订阅,生态相对封闭,但开发者接口对个人较为开放,前提是订阅仍然有效。

如有开发需求,可以直接在 OuraWhoop 的开发者中心注册应用,取得 client_id 和 client_secret,再按文档完成授权。接下来,就可以让 AI Agent 协助建立数据抓取、存储和分析程序。

以 Oura 为例:

请先读一遍 Oura 官方文档再回答,不要凭记忆写端点和参数:https://cloud.ouraring.com/v2/docs。认证部分:https://cloud.ouraring.com/docs/authentication

目标:写一个本地脚本,定期把我自己的 Oura 数据拉下来,存进本地 SQLite。

环境:脚本跑在 ___(Mac / Docker),语言用 Python,依赖可以自由安装。

认证:我已在 Oura 后台创建了 OAuth 应用,拿到了 client_id 和 client_secret。

我要拉的数据:___(例:daily_sleep、daily_readiness、daily_activity、sleep、workout;heartrate 暂不拉/只拉最近 N 天)。历史回补范围:___。之后的更新频率:___。

方案里请明确处理这几点:

  1. 授权码流程怎么在本地跑通;
  2. token 的有效期和刷新机制是什么,刷新后如何持久化新 token,以及失效时的恢复路径;
  3. 增量拉取的判重键和断点续传。

先给方案,把你的不确定点和默认假设一次性列出来,我确认后再写代码。

(安全提示:令牌更适合在本地配置,不要直接粘贴进对话。)

如果开发基础薄弱,也没必要重复造轮子。spxrogers/oura-toolkit 面向 AI Agent 使用场景,直接把仓库地址交给 Agent 即可开始配置;Whoop 也有现成的社区项目,如 dpshde/whoop-mcp

需要留意的是,Oura 已于 2025 年 12 月弃用 Personal Access Token(PAT),目前需要采用 OAuth 2.0;WHOOP 也已迁移到新版 API,旧版 webhook 已移除。网上不少旧脚本和教程已经不再适用。

WHOOP 还有一个容易忽略的细节:它不按自然日组织数据,基本单位是 physiological cycle(生理周期)。让 Agent 处理数据前,需要明确这个定义,否则它可能直接按日历日期聚合,得到一份时间错位的分析。

三星:Health Connect 或 Data SDK

官方文档,Samsung Health 与 Health Connect 之间支持双向同步,但只覆盖有限的类别。

如果想读取 Energy Score 等特色数据,可以使用 Samsung Health Data SDK。在 Samsung Health 里连点十次版本号打开开发者模式,再按 SDK 要求申请权限并读取数据。

具体做法与前文类似:让 Agent 创建一个Android 应用,接入 SDK,申请所需权限,读取后保存为文件或上传到接收端。

国内厂商:个人接口普遍有限

华为、小米、OPPO、vivo 都有面向合作方的健康开放平台,但普通用户和个人开发者能够使用的范围有限。四家的情况可以归纳如下:

厂商 面向个人的接口 个人能拿到什么 门槛
华为 有限开放 基础数据 按项目申请,权限有使用期限,并有应用相关要求
小米 暂未找到 健康云开放平台主要面向生态链企业及合作伙伴
OPPO 暂未找到 Health Research Kit 面向健康行业与科研机构
vivo 暂未找到 Health Kit 位于开发者开放平台,个人接入路径不明确

可以看出,只有华为的 Health Service Kit 允许个人开发者申请,不一定需要公司主体。理论上,你可以自己写一个 App,持续把自己的数据导出。

会员专属文章,欢迎加入少数派会员。
优质内容
权益周边
会员社群
power+
评论区
全部评论0
成为少数派会员方可评论,立即加入。若已是少数派会员,点击登录
还没有评论,来发表第一个评论吧
全部评论
还没有评论,来发表第一个评论吧
成为少数派会员方可评论,立即加入。若已是少数派会员,点击登录