产品文档 · 演示稿 · 原生 App

SomaLoop App 设计

V8 无屏手环配套 App 的设计文档。以 Agent 为主线:先说、可追问、带依据、能记、会闭嘴,并且会替你按下测量键。产品文档确认后,进入 HTML 演示稿。

2026-09-06v0.2 · DevKit for BioHacker视觉与精细度对齐 WHOOP / Oura
第一部分

SomaLoop App 产品文档

V8 无屏手环的配套 App。手环没有屏幕,Agent 就是界面:它先开口、可追问、每句话带依据、记得你说过什么、没事就闭嘴,并且是市场上唯一会替你按下测量键的教练。本文档定义产品原则、信息架构、场景引导系统、Agent 交互规范、数据与算法层、视觉标准和演示稿计划。

2026-09-06依据:研究合集四份 + App 调研合集四份SDK:V8 iOS libBleSDK / Android v8sdk2.0下一步:HTML 演示稿
9:41●●● 78%
TUE · SEP 6
早上好,Tank
基线 14/14
82
RECOVERY
7:12
SLEEP
3.8
LOAD
7:05 · 醒来后
昨夜恢复得不错,今天可以按计划跑第二次间歇

夜间心率 52,比你 14 天基线低 3;HRV 68 ms,在基线区间上沿。马拉松计划第 3 周:今天是 4 × 4 分钟,心率区 3 到 4。

依据 · 夜间心率依据 · HRV 14 夜记忆 · 马拉松 10/12
开始跑步模式今天想休息
试试问我 · 这周睡眠债周末爬山计划最近头疼
问 SomaLoop 任何事
TODAYBODYPLANSME

00一句话与目标

  1. 一句话。SomaLoop 是 V8 无屏手环的 Agent 伴侣:你说一件生活里的事(下个月跑马拉松、最近加班头疼、周末想爬山),它把手环变成那件事的传感器与提醒器,每天先开口,每句话可点开看依据,需要确认时替你按下测量键。
  2. DevKit for BioHacker。这只手环连同这个 App 一起,卖给的是想拿到自己原始生理数据、愿意动手做实验、也可能拿它去做产品的人。App 既是消费者能用的成品,也是开发者套件的参考实现:原始数据流、导出、依据、实验、MCP 端点是一等功能,放在 Me 页最显眼的位置,而不是藏在「高级设置」里。
  3. 不是什么。不是又一个无订阅的 WHOOP 仿品(厂商 JCVital 已经做了那一版),不是聊天框加仪表盘,不是医疗器械。
  4. 阶段目标。第一阶段用 HTML 演示稿在 15 分钟内证明三件事:Agent 能按下测量键;主动消息不废话且带依据;场景引导让一个从没用过健康 App 的人在 30 秒内知道该对它说什么。第二阶段落成原生 App,作为开发者套件的白标参考实现。
  5. 视觉与精细度对齐 WHOOP 与 Oura。深色、单一强调色、大数字环、克制的动效、每一个空状态与加载态都有设计。这是硬性要求,不是加分项。

01产品原则

十一家 AI 教练的形态与失败模式(App 调研合集第一、二部分)浓缩成七条。每条都会在验收里出现。

  1. Agent 就是界面。手环无屏,用户与身体数据的全部交互经由 Agent 发生。Today 页不是仪表盘,是 Agent 的时间线。
  2. 先说,再等你问。每天最多三张主动卡(醒来、运动后、睡前),加事件触发的推送;没有超出个人基线的变化就不生成。WHOOP 的原则:无事则静。
  3. 每句话可点开依据。任何含数字或结论的句子都附「依据」芯片,点开是原始数据段、时间戳与基线。后台统计接地率并展示。这是对 Google、WHOOP 最集中负评(引用不存在的数据)的直接回应。
  4. 能动手。Agent 可发起测量(心率、血氧、HRV、ECG)、设提醒(普通、吃药、喝水)、设久坐提醒、远程开启运动模式、写入记忆。七家大厂无一能按下测量键,这是唯一不用比模型聪明的地方。
  5. 记得,并且让你看见它记得。记忆分目标、健康史、生活事件、关注与忽略四类,可查、可改、可删;主动消息必须读记忆,否则重蹈 WHOOP Daily Outlook 的投诉。
  6. 说人话,不说病名。不出现房颤、呼吸暂停、高血压等疾病名,不做血糖与血压数值;说「节律不规则」「血氧低于你的基线」;所有输出附「健康参考,非医疗建议」。
  7. 数据永远免费,只卖解读。原始数据、导出、基础指标不收费;若有付费层,只放 Agent 解读、计划与长期指标(订阅分层报告结论)。
  8. 可拆开看,可接出去。面向 BioHacker 的承诺:每个分数都能拆到原始数据;每段数据都能导出(CSV / EDF / WFDB);实时 RR、PPG、ECG 流可以开给自己的程序;Agent 用的每个工具都以 MCP 暴露,用户可以换成自己的模型。App 里做的每一件事,开发者都能用 SDK 复现。

02用户与场景

首发用户

个人佩戴者,25 到 45 岁,戴过或考虑过 WHOOP、Oura、Fitbit Air,对「订阅制」和「只给分数不给原因」不满,愿意对一个 App 说自己的生活。机构版(护士站、班组、教练看队员)作为后续模块,本版只在信息架构里留位。

DevKit 用户

与首发用户重叠但动机不同:量化自我与生物黑客(自己写脚本看 HRV、做咖啡与睡眠的对照实验)、研究者与学生(要原始 ECG 与时间戳)、AI Agent 开发者(要 MCP 与事件流)、准备做产品的团队(把这个 App 当白标起点)。App 对他们的承诺见第一章第八条;专属入口在 Me 页的「Lab」区:原始数据流开关、导出、实验、MCP 端点与 API key、接地率与记忆保存率面板。演示稿里 Me 页要把这块做出来,因为它是「DevKit for BioHacker」这句话的证据。

核心用例

用户用一句话描述一件生活里的事,Agent 把它变成一个「玩法」(Playbook):明确目标、要收集什么数据、手环要做什么动作、每天什么节奏说话、什么时候结束并复盘。第四章定义了十二个玩法,三个是主演示。

下个月参加马拉松 · 训练负荷与恢复 最近加班多有点头疼 · 压力与睡眠债排查 制定周末爬山计划 · 一次性活动 想戒掉熬夜下周出差倒时差感觉要感冒了刚开完会有点心慌开始做力量训练咖啡到底影响我睡眠吗给医生留一段心电记录备孕,想看周期爸妈独居,想远程看着

03信息架构

四个标签加一个常驻输入框。Today 是 Agent 时间线,其余三个标签是 Agent 的「工作台」,每一屏右下角都能追问。

标签是什么主要内容Agent 在这里做什么
TodayAgent 时间线,默认落地页顶部三环(恢复、睡眠、负荷)与基线进度;按时间倒序的主动卡、测量卡、确认卡、系统事件;「试试问我」引导条;底部常驻输入框主动开口、回应提问、发起测量、请求确认
Body指标与基线夜间五项基线(心率、HRV、呼吸率、皮温、血氧)各自的个人区间与今日位置;睡眠分期与贡献项;恢复分的白盒拆解;负荷 7 对 28 天比值;历史与导出每张图下一句解释与「问这个」;点任何数字进依据视图
Plans玩法与计划进行中的玩法(如马拉松第 3 周)、今日任务、里程碑;玩法库(十二个入口);实验(如「咖啡与睡眠」两周对照)生成与调整计划、按恢复门控今日强度、复盘
Me记忆、设备、Lab记忆页(目标 / 健康史 / 生活事件 / 关注与忽略);手环(电量、固件、自动监测时段、闹钟与久坐提醒);主动消息三旋钮(频率、长度、语气);Lab:原始数据流(RR / PPG / ECG)开关与实时波形、导出(CSV / EDF / WFDB)、实验、MCP 端点与 API key、接地率 / 依据覆盖率 / 记忆保存率面板、自带模型 key把用户改的记忆与旋钮立即应用到下一条消息

为什么不做「Coach」标签。Google 和 WHOOP 都证明了聊天页不该是一个目的地。SomaLoop 的对话发生在 Today 时间线里(主动卡下方直接回复)和每一屏的追问入口,不存在一个单独的「去和 AI 聊天」的地方。会话历史在 Me 里可查。

04场景引导系统

用户不知道该对一个健康 Agent 说什么,这是所有 AI 教练冷启动的共同问题。SomaLoop 用「玩法」把开放式对话变成有限的、可预期的入口,并在四个位置持续引导。

引导出现的四个位置

位置 1 · 首次配对后

「你最近在忙什么?」

配对成功、基线开始积累时,不问年龄体重(那些从手环个人信息读),而是给六个场景芯片加一个自由输入框。选一个即建立第一个玩法,Agent 说明接下来两周它会做什么、什么还不能做(基线未满)。

位置 2 · Today 的「试试问我」条

按上下文轮换的三个建议

规则:周四周五推「周末计划」;连续三天就寝晚于基线推「熬夜」;步数或运动会话突增推「训练计划」;日间 HRV 连续偏低推「压力排查」;夜间皮温偏高推「像要生病」;日历有旅行推「倒时差」。每条点开就是一段预填好的用户消息,用户可改再发。

位置 3 · 输入框占位符

轮播的示例句

「下个月参加马拉松」「最近加班多有点头疼」「制定周末爬山计划」「咖啡到底影响我睡眠吗」……每 6 秒换一句,点击即填入。空状态和基线未满期间尤其重要。

位置 4 · 数据触发的邀请卡

Agent 看见变化,邀请你开一个玩法

「这三天你的睡眠中点比平时晚 1 小时 40 分,要不要一起做个两周的早睡实验?」邀请卡与主动卡同构,但结尾是一个开玩法的按钮,而不是反问。

玩法(Playbook)的统一结构

每个玩法是一份声明式配置,Agent 依此执行;开发者未来可以用同样结构写自己的玩法。

playbook:
  id: marathon-4w
  trigger: ["马拉松", "跑马", "半马", "全马", "参赛"]      # 命中即建议开启
  intake: [赛事日期, 目标完赛时间, 每周可训练天数, 最近一次长跑距离]   # 一次问完,写入记忆
  needs: [夜间心率, HRV, 睡眠分期, 运动会话心率, 步数]   # 手环数据
  actions: [开启跑步模式, 训练日晨间恢复门控, 长跑日前夜提醒, 赛前 3 天减量, 赛日 5:30 闹钟]
  cadence: {morning: 训练建议, post_workout: 负荷与区间复盘, evening: 明日预告, weekly: 周报}
  guardrails: [负荷比 > 1.4 强制降级, 夜间心率高于基线 8 bpm 连续两晚建议休息]
  memory_writes: [目标: 10/12 马拉松 4:00, 生活事件: 训练周期]
  end: {at: 赛后 3 天, deliver: 复盘卡 + 是否续接「恢复两周」玩法}

三个主演示玩法

下个月参加马拉松

触发词:马拉松 / 半马 / 全马 / 参赛 · 时长 4 到 6 周 · 数据充足度要求:基线 ≥ 7 夜
用户说
「下个月 12 号跑马拉松,目标 4 小时,一周能练四天。」
Agent 回
「记下了:10 月 12 日,目标 4:00,每周 4 次。我会按你每晚的恢复决定第二天练多重。今天先做一件事:跑 20 分钟轻松跑,让我拿到你的心率区间。」附「开始跑步模式」按钮(SDK 运动模式 Run)。
每日节奏
醒来:恢复门控后的今日训练(如「4 × 4 分钟,区 3 到 4」或「今天休息,夜间心率高于基线 6」)。运动后:本次负荷、区间分布、与计划的偏差,一句话。睡前:明日预告与就寝建议(基于睡眠需求)。每周日:周报,负荷 7 对 28 天比值曲线、HRV 趋势、下周计划。
手环动作
运动模式远程开始 / 结束;长跑日前夜 22:30 闹钟(普通型);赛前一周每晚 60 秒 HRV 测量(SetDeviceMeasurementWithType);赛日 5:30 闹钟。
护栏
负荷比 > 1.4 或夜间心率连续两晚高于基线 8 bpm,自动降级并说明原因;用户可否决,否决写入记忆。
结束
赛后 3 天复盘卡:完赛时间与目标、四周 HRV 与夜间心率走势、哪几天的降级是对的。询问是否开启「赛后恢复两周」。
演示重点
恢复门控的那一张早卡;运动后一句话复盘;周报里的负荷曲线。视觉上是全 App 最像 WHOOP 的一页,要做到位。

最近加班多有点头疼

触发词:头疼 / 加班 / 累 / 压力大 / 睡不好 · 时长 7 到 14 天 · 基线 ≥ 7 夜(未满则只做即时测量与记录)
用户说
「这两周加班多,下午老是有点头疼。」
Agent 回
先给已有证据:「这两周你的睡眠债累计 4 小时 20 分,日间 HRV 比基线低 22%,工作日 14 到 17 点久坐最长 3 小时 40 分。头疼是否与这些相关,我不能下结论,但可以帮你把线索排清。」然后请求一次即时测量:「现在方便的话,我让手环测 60 秒心率和 HRV,看看此刻的状态。」
每日节奏
醒来:睡眠债与昨夜恢复,一句话。工作日 14:30:久坐与喝水提醒(久坐提醒 + 喝水型闹钟)。睡前:建议就寝窗口(按睡眠需求与时型)。第 7 天:小结卡,把头疼记录(用户回复「今天疼 / 不疼」的快速芯片)与 HRV、睡眠、久坐三条线并排。
手环动作
60 秒 HR + HRV 测量;久坐提醒 14:00 到 18:00 每 60 分钟;喝水闹钟 10:30、15:30;可选每日一次 SpO2。
护栏
用户提到「剧烈头疼」「视物模糊」「持续加重」等词,Agent 停止排查,给出就医建议与「把最近一周数据打包给医生」按钮。不出现任何疾病名。
结束
两周后复盘:头疼天数与三条线的对照图;询问是否转成「早睡实验」玩法。
演示重点
「我说不舒服,Agent 让手环测一次」的即时测量流程(测量卡、进度环、结果回到对话);快速回复芯片收集症状;一周小结的并排对照图。

制定周末爬山计划

触发词:爬山 / 徒步 / 登山 / 周末 / 户外 · 一次性活动 · 无基线要求
用户说
「周六想去爬山,大概 6 小时,海拔 2000 多。」
Agent 回
「好。周五我会看你的恢复情况给出出发前建议;周六出发时帮你开徒步模式,每 90 分钟提醒喝水,到高处我会请你测一次血氧;周日看恢复。」写入生活事件「9/13 爬山」。
节奏
周五睡前:明日预告,建议就寝时间。周六出发:「开始徒步模式」按钮(运动模式 Hiking);每 90 分钟喝水闹钟;用户说「到山顶了」或心率持续高位后,请求一次 30 秒 SpO2 测量并解读(「92%,低于你平时的 96 到 98,海拔影响,休息 10 分钟再看」)。结束:本次时长、心率区分布、负荷。周日醒来:恢复与昨日负荷的关系。
手环动作
运动模式 Hiking 开始 / 暂停 / 结束;喝水闹钟 3 个;SpO2 即时测量;周日不做动作。
护栏
SpO2 低于本人基线 6 个百分点以上且心率持续高位:建议停下休息并再测;不说「高原反应」。
演示重点
一次性活动的完整闭环只用五张卡;血氧测量卡是 Agent 主动请求测量的第二个例子;周日的恢复卡把「昨天做了什么」和「今天身体怎样」连起来。

其余九个玩法(摘要)

玩法触发核心数据手环动作结束与复盘
想戒掉熬夜熬夜 / 早睡 / 睡眠中点晚就寝时刻、睡眠中点、规律性、睡眠债就寝前 45 分钟提醒闹钟;周末不同时刻14 天:中点前移分钟数、规律性分
出差倒时差出差 / 时差 / 航班睡眠时刻、日间 HRV、皮温节律按目标时区分日推进的闹钟;抵达日 SpO2回程后 3 天:节律恢复曲线
感觉要感冒了感冒 / 不舒服 / 发烫夜间皮温偏差、RHR、HRV、呼吸率推算当夜加密皮温与 SpO2 自动监测;次晨 60 秒 HRV症状消失后:身体负荷信号回落图。措辞只说「身体负荷信号」
刚开完会有点心慌心慌 / 心跳快 / 紧张近 30 分钟心率与 HRV、RR 间期60 秒 HR + HRV;不规则时建议 5 分钟 ECG 并保存即时;ECG 记录进 Body 可导出
开始做力量训练健身 / 力量 / 增肌运动会话心率、恢复分、睡眠运动模式 Workout;训练日次晨恢复门控4 周:训练日与恢复的关系
咖啡到底影响我睡眠吗咖啡 / 酒 / 实验入睡潜伏期、深睡、夜间心率、HRV无;每日一条「今天喝了吗」快速芯片14 天 A/B 对照卡,标注样本量不足时不下结论
给医生留一段心电记录心电 / ECG / 医生 / 检查ECG 原始波形、RR、夜间心率5 分钟 ECG 引导(按电极、保持静止、进度)即时;导出 PDF 与原始数据;不做任何判读
备孕,想看周期周期 / 备孕 / 经期夜间皮温偏差、静息心率、手动经期记录两个周期后:皮温双相图。声明不可用于避孕或受孕判断
爸妈独居,想远程看着父母 / 老人 / 远程被看护者的夜间五项基线、SOS、久坐SOS 长按上报;夜间偏离先请求测量再通知家属持续;进入机构版能力,本版只到「一个被看护者」

05Agent 交互规范

消息卡类型

类型何时出现结构操作
主动卡醒来 / 运动后 / 睡前,或事件触发时间戳与触发原因 · 一句判断式标题 · 正文含加粗数字(≤ 3 句) · 1 到 3 条行动项 · 迷你图(可选) · 依据芯片 · 结尾反问(可选)拇指上下、回复、行动按钮(开运动模式 / 设提醒 / 今天休息)
测量卡Agent 请求测量,或用户要求为什么测 · 测什么与时长 · 姿势提示(ECG:把手指按在电极上) · 进度环 · 信号质量 · 结果与解读开始 / 跳过 / 重测;结果自动进依据库
确认卡Agent 要做会影响他人或不可逆的事(发给医生、联系家属、改用药提醒)将要做什么 · 依据 · 两个明确按钮确认 / 取消;留痕
邀请卡数据变化建议开一个玩法观察到的变化 · 建议的玩法 · 两周内会做什么开始 / 以后再说(写入忽略 30 天)
记忆回执Agent 从对话中写入记忆「记下了:目标 · 10/12 马拉松 4:00」一行编辑 / 删除
拒答卡用户问诊断类问题诚实说明手环数据不能回答 · 至少一个可执行动作(做 ECG 记录 / 打包数据给医生)动作按钮;不出现单独的免责声明卡
系统卡基线进度、固件、电量、断连一行,弱化样式

依据(Evidence)

每个含数据的句子绑定一个依据对象:指标、时间范围、数值、基线区间、图表类型。渲染为芯片,点开为底部抽屉,显示原始数据段(可缩放)、采样点、基线阴影区、数据来源(自动监测 / 即时测量)。没有依据的句子在开发者面板里标灰并计入未接地率。目标:含数据句子的依据覆盖率 100%,整体回答接地率 ≥ 80%(WHOOP 自报 56.6%)。

记忆

  • 四类:目标、健康史、生活事件、关注与忽略。每条记录来源对话与时间,可编辑、可删除,删除后下一条消息立即不再引用。
  • 写入回执必须出现在时间线里,用户看得见 Agent 记了什么。
  • 主动卡生成前必须读取记忆;开发者面板显示「应保存上下文的实际保存率」与「主动卡引用记忆的比例」。

三个旋钮与静默原则

  • 频率:少(只在偏离基线时)/ 标准(每天最多 3 张)/ 多(加上每次运动后与每周报)。默认标准。
  • 长度:一句话 / 标准 / 详细。默认标准(标题 + 3 句 + 3 条要点)。
  • 语气:直接 / 温和。默认直接。参照 Oura 的 direct / conversational。
  • 静默:夜间 23:00 到 7:00 不推送(SOS 与用户设置的例外除外);近 7 天已说过的结论不重复;用户点过「今天休息」后当日不再催训练。

语言规范

  • 数字先于形容词:「夜间心率 52,比基线低 3」而不是「你的心率很好」。
  • 比较对象永远是本人基线,不是人群;基线未满时明说「还不知道」,不用人群区间冒充。
  • 不做结论性判断(正常 / 没问题),只说相对变化与可能的生活因素。
  • 一张卡最多一个反问句。
  • 拒答后必须给动作。

06数据与算法层

全部确定性计算在手机侧完成,LLM 只做解读与编排。手环不跑 AI。

V8 能给什么

数据粒度用途
连续心率每 5 秒(自动监测时段内)夜间心率基线、运动区间、TRIMP 负荷
HRV 包(含压力、血压估算、血管老化度)约 30 分钟一条HRV 基线、日间压力;血压与血管老化度隐藏或标「参考」
SpO2自动周期 + 即时夜间基线、高海拔场景
皮温约 10 分钟一条夜间偏差、生病信号、周期
睡眠等级 + 活动量每分钟;单条最长 2 小时需拼接分期、效率、中点、规律性、睡眠债
步数 / 距离 / 卡路里每分钟久坐、活动量、负荷近似
PPI / RR 间期、原始 PPG、原始 ECG流式 / 会话节律不规则检测、呼吸率推算、ECG 记录导出;RR 流影响续航
运动会话18 种模式训练负荷与区间分布

没有的:呼吸率字段(从 PPI 的呼吸性窦性心律不齐推算)、原始加速度流(做不了肌肉负荷)、GPS(配速用手机 GPS 补)、震动马达指令(「震一下」用一分钟后的闹钟替代,演示时如实说明)。

指标层(第一版范围)

  • 夜间五项基线(心率、HRV、呼吸率推算、皮温、SpO2):7 到 30 天个人范围,超出即事件。这是 Agent 主动消息的主要事件源,也是 Body 页的第一屏。
  • 睡眠分:参照 Apple 公开权重(时长 50 / 就寝规律 30 / 中断 20)做参考实现,贡献项全部可见。
  • 恢复分:白盒,六项贡献(RHR 偏离、HRV 平衡、皮温偏离、恢复指数、睡眠、前日活动)各 0 到 100 并给量化说明。
  • 负荷:TRIMP 加 7 对 28 天比值,分档抄 Garmin / Polar 公开阈值;不做 EPOC 与肌肉负荷。
  • 日间压力:HRV 包加步数排除运动;粒度 30 分钟,标注。
  • 校准期:所有分数 14 夜;期间显示「已积累 N / 14 夜」与已能看的原始趋势;第 14 夜主动推送「从今天起可以看恢复分了」并解释组成。

Agent 架构

  • 内联注入(WHOOP 做法):当天摘要、基线、最近事件、记忆在 prompt 渲染时直接注入;只有「发起测量、设提醒、开运动模式、查历史、写记忆」走工具调用。
  • 确定性优先(Google 做法):事件检测、基线、负荷比全部是算法输出,LLM 不做数值计算。
  • 拒答门禁:合成 Persona 输入集覆盖疾病名提问,通过率作为发版前置。
  • 模型可换:Claude、GPT、Gemini、DeepSeek、本地模型均可;开发者可自带 key。

07屏幕与关键流程

这是演示稿要做出来的清单。带「★」的是三个主演示流程必经的屏。

内容要点状态
★ 配对与首次引导找到手环、连接动画、读取个人信息;「你最近在忙什么」六个场景芯片 + 输入框;说明未来两周会发生什么连接中 / 失败 / 成功
★ Today三环 + 基线进度;时间线(主动卡、测量卡、确认卡、邀请卡、记忆回执、系统卡);「试试问我」条;常驻输入框基线未满态 / 常态 / 手环未连接态 / 空状态
★ 测量流程测量卡 → 姿势提示(ECG 电极示意)→ 进度环与实时信号质量 → 结果卡 → 回到对话。心率 / HRV 60 秒,SpO2 30 秒,ECG 5 分钟进行中 / 质量差重测 / 用户取消
★ 依据抽屉原始数据段、采样点、基线阴影、来源、时间戳;可切换到 Body 对应页
Body 总览夜间五项基线卡(今日值落在个人区间条上);睡眠、恢复、负荷入口基线未满态
Body 详情(睡眠 / 恢复 / 负荷 / 五项)大数字环 + 贡献项 + 7 / 30 / 90 天趋势;每张图下一句解释与「问这个」
★ Plans进行中玩法卡(进度、今日任务、护栏状态);玩法库;实验无玩法空状态
玩法详情目标、节奏、手环动作清单、周报、复盘
Me · 记忆四类列表,每条带来源与时间,编辑 / 删除空状态
Me · 手环电量与充电、固件、自动监测时段、闹钟与久坐提醒清单、SOS 联系人未连接
Me · 主动消息三个旋钮、静默时段、每日上限预览
Me · 开发者面板接地率、依据覆盖率、记忆保存率、主动卡点开率、测量请求接受率;MCP 端点与 API key

08设计语言

对齐 WHOOP 与 Oura 的标准,具体到可以验收的规则。页首的小样是按这套规则做的 Today 页。

--bg #0E1416
底色,近黑带青灰,不用纯黑
--card #151D1F
卡片,比底色亮一档,1px 描边 #223032
--accent #4FB8C4
唯一强调色(Agent、按钮、依据)
--recovery #7BE0A8
恢复环;黄 #E0A94A 负荷;红 #F27B6E 仅偏离
--ink #E9EEEC
正文;次级 #C3CFCC;弱化 #8A9A97
agent-dot
Agent 身份:青到绿的小圆点,不做人像

字体与数字

正文 IBM Plex Sans + Noto Sans SC;所有数值与时间戳用 IBM Plex Mono 等宽并开 tabular-nums;环内大数字 28 到 40 px,字重 600,字距 -0.02em;标签全大写 9 到 11 px 加 0.14em 字距。

图形

环:7 px 描边,背景轨道 #1C2628,进度用单色不用渐变;只有恢复、睡眠、负荷三个环,其他指标一律用「个人区间条 + 今日点」。迷你图:柱高不超过 44 px,当前值高亮为强调色,其余 #2B3A3D。基线区间用 8% 透明度的强调色阴影。

动效

环在页面出现时 600 ms 从 0 画到值,缓动 cubic-bezier(.2,.8,.2,1);测量进行中用呼吸式脉冲(1.6 s 周期);卡片进入 240 ms 淡入上移 8 px;尊重 reduce motion。不做粒子、不做 3D。

精细度清单

  • 每一屏都有空状态、加载态、错误态、未连接态四种设计。
  • 基线未满是常态不是异常:进度条、能看什么、还不能看什么,三样必须同屏。
  • 文字层级不超过四级;一张卡上最多两种字号。
  • 触控目标 ≥ 44 px;输入框常驻但不遮挡最后一张卡。
  • 深色为默认,提供浅色但两套都要过对比度 4.5:1。
14:32●●● 78%
测量 · HRV 与心率
保持坐姿,别说话
0:41 / 1:00
92
BPM · 实时

信号质量 良好 · 手环贴合正常

为什么现在测

你说「刚开完会有点心慌」。近 30 分钟自动监测的心率均值 89,比你日间基线 71 高 18,但采样稀疏,我需要一段连续 60 秒的数据才能判断。

依据 · 近 30 分钟心率依据 · 日间基线 14 天

测完我会告诉你:此刻心率与 HRV 相对你基线的位置,以及更像应激还是身体异常。我不会用疾病名下结论。

取消测量
TODAYBODYPLANSME

09边界与合规

  • 非医疗器械,仅供健康参考与研发;所有 Agent 输出附「健康参考,非医疗建议」。
  • 不出现疾病名;不做血糖、血压数值;HRV 包里的血压与血管老化度隐藏或标「参考」。
  • 不用人群阈值冒充个人基线;基线未满时明说。
  • 发给医生、联系家属、改用药提醒必须人确认并留痕。
  • 数据默认留在手机;云端可选且可自建;明示不用于训练。健康数据按敏感个人信息处理,单独同意。
  • 拒答门禁通过率作为发版前置;接地率作为发版门禁指标。

10度量与验收

指标定义目标为什么
依据覆盖率含数据句子中绑定依据对象的比例100%原则 3
接地率Agent 回答中引用了用户真实数据的比例(人工抽检 + 自动)≥ 80%WHOOP 自报 56.6%
记忆保存率应保存的上下文实际写入记忆的比例≥ 70%WHOOP 自测 46%
主动卡引用记忆率主动卡中至少引用一条记忆的比例(有记忆时)≥ 90%WHOOP Daily Outlook 投诉
测量请求接受率Agent 请求测量后用户开始的比例≥ 60%验证「能动手」被接受
主动卡点开率 / 关闭率被展开或回复的比例 / 被点「少一点」的比例≥ 40% / ≤ 5%避免 Garmin 式废话卡
拒答门禁通过率合成 Persona 疾病名提问被正确拒答并给动作的比例100%发版前置
D14 留存基线满 14 夜时仍每日佩戴的用户比例≥ 70%校准期是流失高峰
玩法开启率7 天内开启至少一个玩法的新用户比例≥ 60%场景引导是否有效

11路线与演示稿计划

阶段

  1. HTML 演示稿(本文档确认后开始):手机尺寸的可点击原型,深色,按第八章规则实现;三条主演示流程可完整走通;数据为脚本化的假数据,但结构与真实 SDK 字段一致;可部署到 ecg-devband-report.pages.dev/app/demo。
  2. 原生 App:建议 Flutter 一套代码,通过平台通道桥接 V8 的 iOS 静态库与 Android aar;BLE 连接与历史同步(每批 50 组、断点续传)在原生层;指标层与 Agent 编排在 Dart 层;多设备并发演示前必须真机实测。若团队更熟原生,则 iOS Swift + Android Kotlin 双写,SDK 直接调用。
  3. 白标化:品牌、配色、玩法库、旋钮默认值全部配置化,成为开发者套件的参考 App。

演示稿的三条主线(15 分钟)

主线 A · 5 分钟

我说心慌,它让手环测一次

  1. Today 常态页,输入「刚开完会有点心慌」
  2. Agent 给已有证据 + 测量卡
  3. 60 秒进度环与信号质量
  4. 结果卡:92 对基线 71,HRV 低三成,「更像应激」
  5. 点依据芯片看原始曲线
  6. 选「设 20 分钟后喝水提醒」→ 记忆回执
主线 B · 5 分钟

下个月参加马拉松

  1. 点「试试问我 · 下个月参加马拉松」
  2. 一次性 intake 四问
  3. Plans 出现玩法卡与第一天任务
  4. 快进到第 3 周:早卡恢复门控(一天练、一天降级)
  5. 运动后一句话复盘
  6. 周报里的负荷曲线
主线 C · 3 分钟

周末爬山

  1. 周五睡前预告卡
  2. 周六「开始徒步模式」
  3. 山顶 SpO2 测量卡(30 秒)
  4. 周日恢复卡把昨天与今天连起来

剩余 2 分钟:Me 页展示记忆与三个旋钮,再进 Lab 打开一条实时 RR 流、导出一段 ECG、展示 MCP 端点与接地率,说明「这就是 DevKit for BioHacker:消费者能用,开发者能拆」。

可点击的 HTML 演示稿:ecg-devband-report.pages.dev/app/demo(核心页与核心交互,假数据,结构与 SDK 字段一致)。

需要你确认的四件事。① 四个标签的命名(Today / Body / Plans / Me)与不设单独 Coach 页;② 首发只做个人版,机构视角留到下一版;③ 十二个玩法的清单与三个主演示的选择;④ 设计语言的配色与「只有三个环」的克制。确认后我开始做演示稿。