PracticeMate 产品简要
一句话
学生打开 App 开一场「陪练会话」,端侧 AI 教练实时陪伴、温和提醒,结束后可选择让云端考官给专家级评分。
产品隐喻:陪练会话,不是视频录制
PracticeMate 的核心体验是「开一场练习仪式(Practice Ritual)」,不是「录视频等评分」。这个隐喻决定了所有交互设计:
| 旧叙事 | 新叙事 | 为什么 |
|---|---|---|
| 开始录制 | 开始练习 | 弱化「被拍」的抵触感 |
| 结束录制 → 上传 → 等报告 | 本次练习小结(教练即时复盘)→ 可选「申请专家评分」 | 用户先得到即时价值 |
| 视频是核心产出 | 视频是副产品,用于证据回放 | 贴合「陪练」名称 |
| AI 是评分工具 | 端侧教练 + 云端考官 = 两个角色 | 差异化,不只是文案问题 |
练习仪式层
PracticeMate 在每次练习前后引入心理启动仪式——不是冥想 App,是帮学生快速切换到「实操练习」心理状态的微仪式。
开练前:3 秒专注引导
- 深呼吸提示 + haptic 脉冲 + 屏幕聚光
- 文案:「进入练习状态」
- 目的:把注意力从手机日常切换到实操场景,降低第一步犹豫
阶段切换:里程碑感知
- haptic 轻震 + 教练语音里程碑(「环境评估完成,进入按压」)
- 让学生清晰感知自己「走到了哪一步」,不靠看计时器
结束时:亮点优先
- 先列做得好的 → 再列待改进
- 正向结尾降低挫败感,提升下次打开 App 的意愿
设计原则:仪式时长不超过 3 秒,绝不阻塞练习流程。
两个 AI 角色
端侧教练(Practice Coach)
操作中、实时、温和可打断。目标是防错和养成习惯。
- 语气:「双手掌根放在胸骨中段哦」「按压位置对了,继续」
- 正向激励为主,发现问题时温和提醒
- 按阶段陪伴:「环境评估完成,进入按压环节」
- 会话结束时给即时复盘(不评分)
- Coach Voice 使用 rubric 模板字符串生成,不依赖 LLM 推理;确保零延迟、可离线
云端考官(Expert Examiner)
结束后、异步、严谨有证据。目标是定分和给改进路径。
- 语气:「安全规范扣 5 分,15.2s 处环境安全未确认」
- 多维度评分,引用具体时间戳作证据
- 按练习阶段分段评价
- 给出结构化改进建议
同一事件在两端呈现不同:教练说「双手位置记得调整」,考官写「按压位置扣 5 分」。
诚实哲学
PracticeMate 的教练不「装确定」——这是与竞品的核心差异。
核心卖点:教练会说「我不太确定,练完再帮你查」。低置信事件不假装已知,而是诚实标记为待确认,事后由云端考官或人类教师复核。
UI 可见:
- 教练复盘中,低置信条目显示「待考官确认」状态标签,而非隐藏
- 考官报告中,对应条目标注「已确认 / 已推翻」
与竞品差异:传统 AI 评分产品倾向于隐藏不确定性、给出看似权威的结论。PracticeMate 把不确定性暴露为产品特性——学生知道哪些反馈已确证、哪些需要进一步判断,从而建立对系统的信任。
Uncertainty Ledger(不确定性账本)
诚实哲学的产品化落地——把散落的低置信标记变成一个清晰的 UI 面板。
练习结束后:Instant Recap 底部新增"不确定项"折叠区
- 列出所有 alert_tier: low 的事件,每项显示时间戳 + 信号描述 + 教练备注
- 提供「一键请考官裁定」——选中的不确定项随 events.jsonl 上传,考官报告给出裁定
- 教师端可看到全班 ledger 聚合:哪些信号最常不确定 → 指导 rubric 迭代
设计价值:Uncertainty Ledger 不是"藏起来不给用户看"的技术债,而是"主动展示我们的诚实"的产品特性。「一键请考官裁定」自然衔接价值阶梯 L1→L2。
目标用户
Hero 用户:医学生及急救培训学员,需要掌握标准心肺复苏(CPR/BLS)操作。
延伸用户(路线图中呈现,不进 90 秒 demo):医学 OSCE、化学实验、烹饪培训。
用户三角:练 – 评 – 教
学生(端侧教练陪练)←→ events.jsonl ←→ 教师(全智评 Web 看班)
↓
云端考官(深度评分)PracticeMate 是学生入口,全智评是教师后台,events.jsonl 是纽带。教师端通过全智评 Web(截图/原型已有)查看班级数据、调整 Rubric 权重、审阅低置信条目。「应用价值」从个人工具升级为教学基础设施。即使 MVP 不做教师端账号,产品叙事要讲清楚这个三角。
Rubric 驱动的实操平台
核心定位:PracticeMate = Rubric Runtime。
PracticeMate 不是「一个 CPR App」,而是「任意实操都可被 Rubric 描述并陪练的运行时」。
- 每个练习场景 = 一份 Rubric(YAML)
- Rubric 定义阶段、edge_signals、cloud_criteria
- 端侧消费 edge_signals,云端消费 cloud_criteria
- 长期:教师/机构可定制 Rubric(接 L3 教师看板)
- MVP 聚焦 CPR/BLS Hero Story(CPR/BLS 心肺复苏),但路演讲「模板可扩展」
Skill Journey(技能旅程)
单次练习是横截面,Skill Journey 是纵向切面——看学生在同一个 rubric 下的成长轨迹。
- 一个 journey = 一个 rubric_id + 一个用户的所有 session
- 每次 session_end 自动关联到当前 journey
- journey 级聚合:信号趋势("连续 3 次环境安全一次确认")、阶段耗时趋势、进步曲线
- 为 Summary Card 和 Examiner Report 的 growth_indicators 提供数据基础
- 远期接 L3 教师看板:教师看到的是 journey 级聚合
Demo 展示:30 秒内切换模板(CPR → OSCE 洗手),同一架构、不同行为。证明 Rubric Runtime 概念——不重写代码、只换 YAML,就能支持全新实操场景。
同架构三场景
以下三个场景共享同一个 Rubric Runtime 架构,仅 YAML 模板不同——用于路演 pitch 展示平台通用性,NOT in MVP。
| 场景 | 一句话描述 | Rubric 差异 |
|---|---|---|
| CPR/BLS 心肺复苏 | 环境评估-胸外按压-通气-循环,关注按压质量 + 通气效果 | edge_signals 侧重姿态与动作(双手位置/按压深度/胸廓起伏) |
| OSCE 洗手 | 七步洗手法 + 无菌操作,阶段多步骤少 | edge_signals 侧重动作序列完整性和时间窗口 |
| 化学实验 | 准备-操作-收尾三阶段,关注安全装备 + 操作规范 | edge_signals 侧重视觉(护目镜/瓶盖/液面颜色) |
核心用户旅程(Hero Story:CPR/BLS 心肺复苏)
1. 选择练习模板
小明打开 PracticeMate,选择「医学 - CPR/BLS 心肺复苏」。
2. 机位引导(5 秒)
App 提示:「把手机架在侧面,能拍到假人和你的双手」。AR 框显示推荐位置。画面过暗 → 提示调整。通过后自动进入练习。
3. 专注引导仪式(3 秒)
画面聚光 + 深呼吸 haptic 脉冲 +「进入练习状态」→ 自动进入练习。
4. 开始练习(教练陪伴)
点击「开始练习」。端侧教练按阶段陪伴:
环境评估阶段(教练关注:环境安全、意识检查、呼救)
- 第 3 秒:确认环境安全 → 「环境安全确认,继续」
- 第 10 秒:拍肩喊名完成 → 无提示(正向事件仅记录)
- 第 18 秒:可能未呼救(中置信) → 顶部角标「记得拨打 120 或呼救」
阶段切换:haptic 轻震 + 教练语音「评估完成,进入按压」。用户也可手动点击「下一阶段」触发切换;若超时 60 秒未有阶段信号,教练会轻声提示「是否准备进入下一环节?」
胸外按压阶段(教练关注:双手位置、按压深度、按压频率)
- 第 30 秒:双手掌根位置正确 → 「按压位置对了,继续」
- 第 50 秒:按压深度可能不足(高置信) → 弹窗 + 震动「按压深度要 5-6 厘米」
- 第 90 秒:按压频率稳定在 100-120/min → 「按压节奏控制得不错」
气道与通气阶段(教练关注:仰头抬颏、捏鼻吹气、胸廓起伏)
- 第 120 秒:仰头抬颏打开气道 → 「气道打开了,准备通气」
- 第 135 秒:吹气见胸廓起伏 → 「通气有效,继续」
- 第 145 秒:可能忘记捏鼻(中置信) → 顶部角标「吹气前记得捏住鼻子」
循环延续阶段(教练关注:30:2 比例、循环计数、再评估)
- 第 180 秒:30:2 比例保持正确 → 无提示(正向事件仅记录)
- 第 220 秒:完成 5 组循环 → 「5 组循环完成,准备再评估」
- 第 240 秒:再评估意识呼吸 → 「评估完成,做得不错」
Coach Voice 实现说明:所有教练话术来自 rubric 模板字符串(如 "对了,继续"),由阶段事件触发、模板填充生成,不经过 LLM 推理。确保零延迟、离线可用、行为完全可预测。
5. 结束练习 → 教练即时复盘(Instant Recap)
点击「结束练习」→ 结束仪式(亮点优先)。教练即时复盘基于规则聚合(统计 events 中各 confirmed/violation/phase_transition 事件),不评分、不依赖网络:
本次练习小结:
- 环境评估:环境安全确认 ✓ 呼救待确认 △「待考官确认」
- 胸外按压:按压深度有一次不足 ✗ 按压位置对 ✓ 频率稳定 ✓
- 气道与通气:气道打开 ✓ 通气有效 ✓
- 循环延续:30:2 比例正确 ✓ 5 组循环完成 ✓
[申请专家评分]
Instant Recap 与考官报告的区别:教练复盘是即时的、端侧的、不打分的、基于规则聚合的;考官报告是异步的、云端的、带评分的、基于 LLM + 全量证据分析的。
6. 可选:申请专家评分(Examiner Report)
用户点击「申请专家评分」→ events.jsonl 上传(< 25KB,秒传)→ 30 秒后收到考官报告:
- 总分 82/100
- 5 个维度详细评语(考官语气,引用时间戳)
- 按阶段分段评价
- 做得好的地方 + 改进建议
- 低置信维度标注「待考官确认」→ 可「一键云端复审」
7. 证据回放
点击某个扣分项 → 跳转到本地视频 50.2s 处回看按压深度不足场景。
Camera Quality Gate:独立可演示的创新
Camera Quality Gate 不只是「机位引导」的工程细节,而是一个独立可演示的技术创新点:
- 使用 Swift + AVFoundation + 轻量 CV(亮度/构图/稳定性检测),不依赖 VL 大模型
- 5 秒内完成画面质量判断:过暗/过曝/构图不达标/画面抖动 → 引导调整
- 端侧完成,零网络依赖,可独立 demo
- 确保后续 Perception Planner 获得高质量输入帧,直接影响全链路准确率
- 这是「端侧 AI 质量前置」的理念体现——不是拍完再说画质差,是开始前就确保条件达标
作为独立 demo 价值:即使不展示完整陪练流程,仅 Camera Quality Gate 的 5 秒引导就能作为「端侧智能感知」的独立演示。
感知栈三层分离(Perception Stack)
Camera Quality Gate 不是唯一的轻量感知——整个端侧感知拆为三层:
| 层级 | 技术栈 | 典型信号 | 特点 |
|---|---|---|---|
| L0 CQG | Swift + Core Image | 亮度/角度/遮挡 | 无模型,始终可用 |
| L1 Specialized CV | Swift Vision + 规则 | 双手位置/按压姿态 | 快速(< 50ms),高频安全信号 |
| L2 VL Model | Qwen2.5-VL-2B + MNN | 按压深度/回弹/通气量 | 语义理解,按需采样 |
三层独立降级:即使 L2 不可用,L1 仍能覆盖关键姿态检测,L0 保证基础引导可用。
置信度分层 UX(提醒光谱)
不做二元弹窗,做三层提醒光谱:
| 置信度 | 端侧教练行为 | 用户感知 |
|---|---|---|
| 高 (>0.8) | 强提醒 + haptic 震动 | 「确定有问题」 |
| 中 (0.6–0.8) | 弱提示(角标 / 轻文案) | 「可能要注意」 |
| 低 (<0.6) | 只记 events,不打扰 | 云端报告中再判 |
低置信时,考官报告中显示「一键云端复审」——把技术限制变成产品特性。教练复盘中对应条目标注「待考官确认」,诚实暴露不确定性。
阶段感知 Perception Planner
不是全程盯按压,而是按阶段聚焦:
练习阶段(环境评估 → 胸外按压 → 气道与通气 → 循环延续)
↓
每阶段只激活该阶段的 2-3 个信号
↓
降低误报、省电、叙事更清晰(「我现在在帮你检查按压环节」)CPR/BLS 的 rubric 已有 scene_assessment / chest_compression / airway_ventilation / cycle_continuation 维度,天然适配阶段机。这比「全程盯按压」更像真人教练,也是可讲清楚的创新点。
混合阶段切换(Hybrid Phase Switching):阶段切换支持两种方式——自动(Perception Planner 检测到阶段信号)和手动(用户点击「下一阶段」按钮)。若超时未检测到切换信号,教练轻声提示「是否准备进入下一环节?」。这避免了纯自动切换的误判风险,也不强迫用户全程手动。
价值阶梯
| 层级 | 内容 | 条件 | 付费 |
|---|---|---|---|
| L1 端侧教练 | 实时陪练 + 即时复盘 | 离线可用、永远可用 | 免费 |
| L2 云端考官 | 专家级多维评分 | 需联网、消耗配额 | 学校账号 / 配额 |
| L3 教师看板 | 班级数据 + Rubric 定制 | 全智评 Web 端 | 机构采购 |
MVP 可默认开启 L2,但产品叙事和设置页要体现「视频不上云,评分可选」。
Practice Summary Card(练习总结卡片)
练-评-教三角的最小闭合方案——不需要完整教师仪表盘,一张卡片就能连接学生和教师。
学生侧:练习结束后自动生成
- Instant Recap 亮点摘要
- Uncertainty Ledger 概要(N 项不确定)
- Skill Journey 进步指标(如"第 5 次练习,连续 3 次环境安全一次确认")
教师侧:扫 QR 码或点链接获取只读视图
- 看到学生的练习摘要(不含视频,仅事件统计)
- 可批注"已阅"或添加文字反馈
- 替代重型教师仪表盘,作为 L3 之前的轻量方案
隐私:教师看到的只是结构化统计数据,视频永远不离开学生手机。
与竞品的差异
| 维度 | 传统方式 | 纯云 AI | PracticeMate |
|---|---|---|---|
| 实时反馈 | ❌ 老师事后批改 | ❌ 上传后等评分 | ✅ 教练实时陪伴 |
| 隐私 | ✅ 本地 | ❌ 视频上云 | ✅ 视频不上云 |
| 评分深度 | ⭐ 老师主观 | ⭐⭐⭐⭐ 多维度 AI | ⭐⭐⭐⭐⭐ 三阶段 CCAE + 正向证据 |
| 离线可用 | ✅ | ❌ | ✅ 教练离线可用 |
| 正向反馈 | △ 看老师 | ❌ 只有评分 | ✅ 教练正向激励 |
| 成本 | 高(老师人力) | 中(API 费) | L1 免费 + L2 增值 |
| 诚实度 | △ 看老师 | ❌ 装确定 | ✅ 低置信可见、待确认标签 |
当前阶段与 MVP 边界
Dual Track 开发策略(第四轮重命名为 Replay Mode / Live Mode,UI 中透明展示)
当前采用 Dual Track 并行:
- Discovery Track:持续验证 Rubric Runtime 平台假设、多场景用户访谈、教师端需求挖掘
- Delivery Track:聚焦 Hero Story(CPR/BLS)端到端可运行 demo
两条轨道共享 events.jsonl 数据格式和 Rubric YAML schema,确保 Discovery 的洞察可直接落地到 Delivery。
做(v0.1)
- iOS App 基础框架(Swift/SwiftUI)
- MNN 集成 + Qwen2.5-VL-2B 端侧推理
- 1 个练习模板(医学 - CPR/BLS 心肺复苏),含阶段定义
- Camera Quality Gate 机位引导
- Perception Planner 阶段感知调度(含混合阶段切换)
- 正负事实流(violation + confirmed + phase_transition)
- 置信度三层提醒光谱
- 练习仪式层(3 秒专注引导 + 阶段切换 haptic + 亮点优先复盘)
- 教练即时复盘(端侧规则聚合,不依赖网络)
- 可选上传 events → 云端考官评分 → 展示报告
不做(v0.1)
- 多用户/账号系统(demo 级)
- 多个练习模板(路演 pitch 展示概念,不实现)
- 历史记录管理
- 教师端看板(在全智评侧)
- 社交分享
- App Store 上架
- Android 版