SomaLoop App 产品文档
V8 无屏手环的配套 App。手环没有屏幕,Agent 就是界面:它先开口、可追问、每句话带依据、记得你说过什么、没事就闭嘴,并且是市场上唯一会替你按下测量键的教练。本文档定义产品原则、信息架构、场景引导系统、Agent 交互规范、数据与算法层、视觉标准和演示稿计划。
昨夜恢复得不错,今天可以按计划跑第二次间歇
夜间心率 52,比你 14 天基线低 3;HRV 68 ms,在基线区间上沿。马拉松计划第 3 周:今天是 4 × 4 分钟,心率区 3 到 4。
00一句话与目标
- 一句话。SomaLoop 是 V8 无屏手环的 Agent 伴侣:你说一件生活里的事(下个月跑马拉松、最近加班头疼、周末想爬山),它把手环变成那件事的传感器与提醒器,每天先开口,每句话可点开看依据,需要确认时替你按下测量键。
- DevKit for BioHacker。这只手环连同这个 App 一起,卖给的是想拿到自己原始生理数据、愿意动手做实验、也可能拿它去做产品的人。App 既是消费者能用的成品,也是开发者套件的参考实现:原始数据流、导出、依据、实验、MCP 端点是一等功能,放在 Me 页最显眼的位置,而不是藏在「高级设置」里。
- 不是什么。不是又一个无订阅的 WHOOP 仿品(厂商 JCVital 已经做了那一版),不是聊天框加仪表盘,不是医疗器械。
- 阶段目标。第一阶段用 HTML 演示稿在 15 分钟内证明三件事:Agent 能按下测量键;主动消息不废话且带依据;场景引导让一个从没用过健康 App 的人在 30 秒内知道该对它说什么。第二阶段落成原生 App,作为开发者套件的白标参考实现。
- 视觉与精细度对齐 WHOOP 与 Oura。深色、单一强调色、大数字环、克制的动效、每一个空状态与加载态都有设计。这是硬性要求,不是加分项。
01产品原则
十一家 AI 教练的形态与失败模式(App 调研合集第一、二部分)浓缩成七条。每条都会在验收里出现。
- Agent 就是界面。手环无屏,用户与身体数据的全部交互经由 Agent 发生。Today 页不是仪表盘,是 Agent 的时间线。
- 先说,再等你问。每天最多三张主动卡(醒来、运动后、睡前),加事件触发的推送;没有超出个人基线的变化就不生成。WHOOP 的原则:无事则静。
- 每句话可点开依据。任何含数字或结论的句子都附「依据」芯片,点开是原始数据段、时间戳与基线。后台统计接地率并展示。这是对 Google、WHOOP 最集中负评(引用不存在的数据)的直接回应。
- 能动手。Agent 可发起测量(心率、血氧、HRV、ECG)、设提醒(普通、吃药、喝水)、设久坐提醒、远程开启运动模式、写入记忆。七家大厂无一能按下测量键,这是唯一不用比模型聪明的地方。
- 记得,并且让你看见它记得。记忆分目标、健康史、生活事件、关注与忽略四类,可查、可改、可删;主动消息必须读记忆,否则重蹈 WHOOP Daily Outlook 的投诉。
- 说人话,不说病名。不出现房颤、呼吸暂停、高血压等疾病名,不做血糖与血压数值;说「节律不规则」「血氧低于你的基线」;所有输出附「健康参考,非医疗建议」。
- 数据永远免费,只卖解读。原始数据、导出、基础指标不收费;若有付费层,只放 Agent 解读、计划与长期指标(订阅分层报告结论)。
- 可拆开看,可接出去。面向 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 在这里做什么 |
|---|---|---|---|
| Today | Agent 时间线,默认落地页 | 顶部三环(恢复、睡眠、负荷)与基线进度;按时间倒序的主动卡、测量卡、确认卡、系统事件;「试试问我」引导条;底部常驻输入框 | 主动开口、回应提问、发起测量、请求确认 |
| 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 用「玩法」把开放式对话变成有限的、可预期的入口,并在四个位置持续引导。
引导出现的四个位置
「你最近在忙什么?」
配对成功、基线开始积累时,不问年龄体重(那些从手环个人信息读),而是给六个场景芯片加一个自由输入框。选一个即建立第一个玩法,Agent 说明接下来两周它会做什么、什么还不能做(基线未满)。
按上下文轮换的三个建议
规则:周四周五推「周末计划」;连续三天就寝晚于基线推「熬夜」;步数或运动会话突增推「训练计划」;日间 HRV 连续偏低推「压力排查」;夜间皮温偏高推「像要生病」;日历有旅行推「倒时差」。每条点开就是一段预填好的用户消息,用户可改再发。
轮播的示例句
「下个月参加马拉松」「最近加班多有点头疼」「制定周末爬山计划」「咖啡到底影响我睡眠吗」……每 6 秒换一句,点击即填入。空状态和基线未满期间尤其重要。
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: 复盘卡 + 是否续接「恢复两周」玩法}
三个主演示玩法
下个月参加马拉松
SetDeviceMeasurementWithType);赛日 5:30 闹钟。最近加班多有点头疼
制定周末爬山计划
其余九个玩法(摘要)
| 玩法 | 触发 | 核心数据 | 手环动作 | 结束与复盘 |
|---|---|---|---|---|
| 想戒掉熬夜 | 熬夜 / 早睡 / 睡眠中点晚 | 就寝时刻、睡眠中点、规律性、睡眠债 | 就寝前 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-dotAgent 身份:青到绿的小圆点,不做人像
字体与数字
正文 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。
信号质量 良好 · 手环贴合正常
你说「刚开完会有点心慌」。近 30 分钟自动监测的心率均值 89,比你日间基线 71 高 18,但采样稀疏,我需要一段连续 60 秒的数据才能判断。
测完我会告诉你:此刻心率与 HRV 相对你基线的位置,以及更像应激还是身体异常。我不会用疾病名下结论。
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路线与演示稿计划
阶段
- HTML 演示稿(本文档确认后开始):手机尺寸的可点击原型,深色,按第八章规则实现;三条主演示流程可完整走通;数据为脚本化的假数据,但结构与真实 SDK 字段一致;可部署到 ecg-devband-report.pages.dev/app/demo。
- 原生 App:建议 Flutter 一套代码,通过平台通道桥接 V8 的 iOS 静态库与 Android aar;BLE 连接与历史同步(每批 50 组、断点续传)在原生层;指标层与 Agent 编排在 Dart 层;多设备并发演示前必须真机实测。若团队更熟原生,则 iOS Swift + Android Kotlin 双写,SDK 直接调用。
- 白标化:品牌、配色、玩法库、旋钮默认值全部配置化,成为开发者套件的参考 App。
演示稿的三条主线(15 分钟)
我说心慌,它让手环测一次
- Today 常态页,输入「刚开完会有点心慌」
- Agent 给已有证据 + 测量卡
- 60 秒进度环与信号质量
- 结果卡:92 对基线 71,HRV 低三成,「更像应激」
- 点依据芯片看原始曲线
- 选「设 20 分钟后喝水提醒」→ 记忆回执
下个月参加马拉松
- 点「试试问我 · 下个月参加马拉松」
- 一次性 intake 四问
- Plans 出现玩法卡与第一天任务
- 快进到第 3 周:早卡恢复门控(一天练、一天降级)
- 运动后一句话复盘
- 周报里的负荷曲线
周末爬山
- 周五睡前预告卡
- 周六「开始徒步模式」
- 山顶 SpO2 测量卡(30 秒)
- 周日恢复卡把昨天与今天连起来
剩余 2 分钟:Me 页展示记忆与三个旋钮,再进 Lab 打开一条实时 RR 流、导出一段 ECG、展示 MCP 端点与接地率,说明「这就是 DevKit for BioHacker:消费者能用,开发者能拆」。
可点击的 HTML 演示稿:ecg-devband-report.pages.dev/app/demo(核心页与核心交互,假数据,结构与 SDK 字段一致)。
需要你确认的四件事。① 四个标签的命名(Today / Body / Plans / Me)与不设单独 Coach 页;② 首发只做个人版,机构视角留到下一版;③ 十二个玩法的清单与三个主演示的选择;④ 设计语言的配色与「只有三个环」的克制。确认后我开始做演示稿。