名称: oura-ring-data
描述: 使用 ouracli CLI 工具访问 Oura Ring 健康数据。当用户询问 "oura 数据"、"睡眠统计"、"活动数据"、"心率"、"准备度分数"、"压力水平" 或希望获取其 Oura Ring 的健康指标时使用。
允许工具: Bash
使用 ouracli 命令行接口从 Oura Ring 获取健康和健身数据。
运行 ouracli 命令前,务必检查身份验证。 该工具需要 PERSONAL_ACCESS_TOKEN 环境变量。
secrets/oura.env 或 ~/.secrets/oura.envactivity - 日常活动(步数、MET 值、卡路里)sleep - 睡眠数据(阶段、效率、心率)readiness - 准备度分数及影响因素heartrate - 时间序列心率数据(5 分钟分辨率)spo2 - 血氧饱和度数据stress - 日常压力水平workout - 锻炼记录session - 活动记录tag - 用户添加的标签rest-mode - 休息模式时段personal-info - 用户个人信息all - 所有可用数据类型# 单个日期(无需引号)
ouracli activity 2025-12-25
ouracli sleep today
ouracli heartrate yesterday
# 从今天开始的相对范围(必须使用引号)
ouracli activity "7 days" # 过去 7 天(含今天)
ouracli sleep "30 days" # 过去 30 天
ouracli readiness "2 weeks" # 过去 2 周
ouracli stress "1 month" # 过去 1 个月
# 起始日期 + 时长(必须使用引号)
ouracli activity "2025-12-01 28 days" # 从 12 月 1 日起的 28 天
ouracli sleep "2025-09-23 7 days" # 从 9 月 23 日起的一周
⚠️ 关键:当日期范围包含空格时,必须使用引号!
# ❌ 错误 - 两个独立日期
ouracli activity 2025-09-23 2025-09-30
# ❌ 错误 - "to" 语法
ouracli activity "2025-09-23 to 2025-09-30"
# ❌ 错误 - 范围操作符
ouracli activity "2025-09-23..2025-09-30"
# ❌ 错误 - 相对过去表达式
ouracli activity "3 months ago"
如果用户请求两个特定日期之间的数据:
步骤 1:计算天数(包含起止日期)
示例:9 月 23 日至 9 月 30 日 = 7 天
12 月 1 日至 12 月 31 日 = 30 天
步骤 2:使用 "起始日期 + 时长" 格式
# ✅ 正确
ouracli activity "2025-09-23 7 days"
ouracli activity "2025-12-01 30 days"
为进行程序化数据分析,请始终使用 --json。 这是最可靠的解析格式。
# ✅ 推荐用于 AI 分析
ouracli activity "7 days" --json
# 其他格式(人类可读)
ouracli activity today --tree # 默认:树状结构
ouracli activity "7 days" --markdown # Markdown 格式(带图表)
ouracli activity "7 days" --html > activity.html # 交互式 HTML 图表
ouracli activity "7 days" --dataframe # Pandas DataFrame 格式
# 今日活动
ouracli activity today --json
# 近期睡眠数据
ouracli sleep "7 days" --json
# 当前准备度
ouracli readiness today --json
# 每周健康摘要
ouracli all "7 days" --json
# 月度活动报告
ouracli activity "30 days" --json
# 特定日期的心率
ouracli heartrate "2025-12-15 1 days" --json
# 按天分组的所有数据(HTML 报告)
ouracli all "7 days" --by-day --html > weekly-report.html
# 按类型分组的所有数据
ouracli all "7 days" --by-method --json
⚠️ 重要:准备度数据中的 contributors.resting_heart_rate 字段是一个分数(0-100),而非实际的心率值(BPM):
- 低分(19, 47)= 静息心率相对于基线升高(负面影响)
- 高分(95, 100)= 静息心率相对于基线处于最佳状态(正面影响)
- 实际的心率值(BPM)在 heartrate 命令的输出中
请勿将影响因素分数解释为实际的心率测量值。
原因:使用了两个独立的日期参数,而非一个带引号的范围
# ❌ 错误
ouracli activity 2025-09-23 2025-09-30
# ✅ 正确
ouracli activity "2025-09-23 7 days"
原因:使用了不支持的语法,如 "to"、".." 或相对表达式
# ❌ 错误
ouracli activity "2025-09-23 to 2025-09-30"
# ✅ 正确
ouracli activity "2025-09-23 7 days"
解决方案:
1. 尝试更宽的日期范围:ouracli activity "7 days" --json
2. 增加缓冲天数:ouracli activity "2025-12-25 2 days" --json
3. 检查戒指是否最近已同步
4. 验证日期是否在可用数据范围内
ouracli activity "7 days" --json
ouracli sleep today --json
ouracli readiness "2025-12-01 30 days" --json
# 计算:9 月 30 日 - 9 月 23 日 = 7 天
ouracli all "2025-09-23 7 days" --json
ouracli heartrate yesterday --json
| 用户意图 | 命令 |
|---|---|
| 今日活动 | ouracli activity today --json |
| 上周睡眠 | ouracli sleep "7 days" --json |
| 当前准备度 | ouracli readiness today --json |
| 今日心率 | ouracli heartrate today --json |
| 月度摘要 | ouracli all "30 days" --json |
| 特定日期范围 | ouracli [TYPE] "YYYY-MM-DD N days" --json |
| 所有数据类型 | ouracli all "7 days" --json |
--json 格式