-
Notifications
You must be signed in to change notification settings - Fork 6
New Product Design Report
TimeFlow 是一款以语音为主要操作方式的个人日程与智能提醒产品。客户端采用单一首页结构:页面顶部展示当前月份,右上角提供设置入口;页面中部展示实体月历;用户选择某一天后,月历下方展示该日期对应的日程;页面底部中央只有一个语音输入按钮,用于完成日程与提醒规则的创建、查询、修改和删除。
TimeFlow 当前只管理 Schedule,不再提供独立待办对象。系统中只有一个 Agent,负责理解用户表达、通过有限多轮对话补全必要参数、定位目标日程,并在执行条件满足后调用确定性业务能力直接完成操作;不存在主 Agent、子 Agent 或多 Agent 编排。
TimeFlow 不是普通日历,也不是单纯的语音转文字工具,更不是持续采集用户位置的定位软件。它解决的核心问题是:
用户需要通过最少的操作快速记录、查询和调整日程,并在时间临近、位置临近或完成前置到达动作后收到符合执行场景的提醒;当用户表达缺少必要参数或目标不唯一时,Agent 通过有限多轮对话补全和消歧,条件满足后直接执行并返回明确结果。
与普通日历和通用语音助手相比,TimeFlow 的关键差异有六个:
-
单页完成查看:用户进入应用后直接看到月历,点击日期即可查看当日日程,不需要在多个 Tab 之间切换。
-
语音是统一操作入口:用户通过底部中央的语音按钮完成日程和提醒规则的查询、创建、修改与删除,不需要理解复杂表单和功能入口。
-
系统只有一个 Agent:同一个 Agent 负责日程相关意图识别、有限多轮补参、对象定位、消歧和执行请求生成,不引入主从 Agent 或多 Agent 协作。
-
提醒覆盖三个执行阶段:支持时间临近提醒、位置临近提醒,以及先进入指定区域、再离开该区域时触发的两阶段位置提醒。
-
通知按客户端状态分层触达:应用前台可交互时使用应用内弹窗与本地 TTS;应用在后台或进程被系统回收时,由操作系统本地通知、声音和震动兜底。
-
有限多轮后直接执行:信息完整且目标唯一时不再增加独立确认步骤,Agent 直接调用受控业务能力执行创建、修改或删除,并展示执行结果;可撤销操作提供撤销入口。
例如用户说:
明天早上八点到公司打卡,快到公司时提醒我;如果我先进入公司停车区,就在我离开停车区时再提醒一次。
系统需要识别并补全以下执行信息:
-
创建一个明天早上八点开始的 Schedule;若结束时间缺失,Agent 只追问结束时间。
-
标题为“到公司打卡”。
-
日程地点关联用户已经保存或明确选择的“公司”。
-
创建一条
LOCATION_APPROACHReminder,在进入“公司”的临近范围时触发。 -
创建一条
LOCATION_ARRIVE_EXITReminder,先等待用户进入“公司停车区”,满足最短停留条件后,再等待用户离开停车区并触发。 -
两条地点提醒都具有明确的生效时间、失效时间、地点、半径和触发次数。
-
必要信息完整、地点唯一且业务校验通过后,系统直接创建日程和提醒规则,并返回创建结果及可用的撤销入口。
对应的有限多轮交互示例:
用户:明天早上八点到公司打卡,快到公司时提醒我。
Agent:这个日程几点结束?
用户:九点。
系统:已创建明天 08:00—09:00 的“到公司打卡”,并设置快到公司时提醒。
这里第二轮只用于补全结束时间;补全后系统直接执行,不再追加“是否确认创建”的步骤。
本期产品判断是:第一版不建设完整智能时间管理平台,而是验证以下闭环是否成立:
单页月历查看
→ 选择日期查看日程
→ 语音或手动输入
→ 单 Agent 识别意图与必要参数
→ 信息不足时进行有限追问,对象不唯一时要求选择
→ 参数完整且目标唯一后直接执行
→ Schedule / Place / Reminder 写入并返回结果
→ 客户端同步提醒规则
→ 时间临近、位置临近或到达后离开条件满足
→ 前台弹窗 + TTS,或系统本地通知兜底
现有日历产品已经能够完成基础记录、查询和固定时间提醒,但用户通常仍需手动填写标题、日期、开始时间、结束时间、地点和提醒方式。在以下场景中,这种方式的操作成本较高:
-
通勤途中临时想到一项安排。
-
开会过程中需要快速记录后续日程。
-
用户正在走路、做饭、整理物品或驾驶途中,不方便填写表单。
-
用户只想快速查询某一天的安排。
-
用户需要修改已有日程,但不记得具体时间或入口。
-
用户希望在日程时间快到时,而不是到点以后才收到提醒。
-
用户希望在接近公司、学校、商场等地点时提前收到提醒。
-
用户到达目的地后还需要先停车、取物或办理前置事项,希望完成“先到达”动作并离开特定区域后再提醒。
传统时间提醒无法覆盖所有执行场景。例如“会议前十分钟提醒”“快到公司提醒打卡”“进入停车区后,离开停车区再提醒打卡”,分别对应时间临近、位置临近和两阶段地点状态。单一的“到点”或“进入地点”无法准确表达这些差异。
通知送达也存在运行状态差异。应用在前台时可以主动弹窗并朗读内容;应用在后台或进程被系统回收时,不能把提醒可靠性建立在应用进程持续存活或服务端实时推送上。提醒规则应提前同步并注册到移动操作系统,使已经注册的提醒在断网或进程死亡时仍有本地兜底。
这指向四个产品机会:
-
用单页月历降低查看日程的入口成本。
-
用一个 Agent 和一个语音入口降低日程完整 CRUD 的操作成本。
-
用三类提醒覆盖时间、接近地点和到达后离开的真实执行场景。
-
用客户端本地注册和分层通知提高断网、后台和进程死亡情况下的提醒可用性。
TimeFlow 按行为条件而非身份标签定义本期目标用户:
-
日常需要管理多个明确时间段的日程。
-
经常产生临时记录、查询或修改需求。
-
不愿意频繁填写复杂表单。
-
经常在移动状态下操作手机。
-
有公司、家、学校、健身房、停车区或商场等相对稳定地点。
-
对固定时间提醒不满足实际执行时机的场景有明确需求。
-
希望 Agent 降低操作成本,同时通过必要追问、对象消歧和执行后撤销降低误操作风险。
| 用户类型 | 典型场景 | 主要痛点 | 本期匹配能力 |
|---|---|---|---|
| 职场用户 | 打卡、会议、提交汇报、拜访客户 | 临时日程多,手动录入步骤多 | 语音 CRUD、时间临近、公司临近和停车区离开提醒 |
| 学生 | 上课、考试、答辩、图书馆学习 | 课程和活动多,查看与修改频繁 | 单页月历、语音日程、学校地点提醒 |
| 高频出行用户 | 到公司、客户现场、车站、机场 | 移动中不方便操作表单 | 语音输入、位置临近提醒、到达后离开提醒 |
| 规律生活用户 | 健身、取快递、就医、购物预约 | 提醒时机与实际位置相关 | 多类型 Reminder、常用地点 |
| 普通日历用户 | 查看每天安排、临时改期 | 查询、修改和提醒配置入口分散 | 日期选择、语音完整 CRUD、有限多轮直接执行 |
本期核心成功判据以“高频日程记录 + 移动使用场景 + 智能提醒需求”的用户为主。
| 场景小故事 | 功能 | 价值 | 模块 | 对应人群 |
|---|---|---|---|---|
| 我打开应用直接看到本月日历 | 单页月历 | 无需寻找日历入口 | 首页/月历 | 全部 |
| 我点击 7 月 30 日,下方立即展示当天日程 | 日期联动 | 一处看清当天安排 | 首页/日程列表 | 全部 |
| 我点击底部语音按钮说“明天下午三点到四点开项目会” | 语音创建 Schedule | 不必填写完整表单 | 语音输入/日程 | 全部 |
| 我只说“明天下午开项目会” | 有限多轮补参 | 只追问缺失的开始和结束时间,信息完整后直接创建 | 语音输入/Agent | 全部 |
| 我说“明天有什么安排” | 语音查询 | 快速查看指定日期内容 | 语音输入/查询 | 全部 |
| 我说“把明天的项目会改到四点” | 语音修改 | 降低修改成本 | 语音输入/日程 | 全部 |
| 我说“取消明天的项目会” | 语音删除 | 目标唯一时直接软删除,并提供撤销入口 | 语音输入/日程 | 全部 |
| 我给项目会议设置提前十分钟提醒 | 时间临近提醒 | 在事项开始前提醒 | Reminder | 全部 |
| 我说“快到公司时提醒我打卡” | 位置临近提醒 | 在到达前提醒用户准备执行 | Reminder/Place | 移动用户 |
| 我说“进入公司停车区后,离开停车区时提醒我打卡” | 到达后离开提醒 | 覆盖停车后再步行到公司的场景 | Reminder/Place | 职场用户 |
| 我给一个日程同时设置时间和地点提醒 | 多提醒规则 | 提高关键日程触达概率 | Reminder | 全部 |
| 提醒触发时应用正在前台 | 弹窗 + TTS | 无需查看通知栏即可感知 | 通知触达 | 全部 |
| 提醒触发时应用进程已被系统回收 | 系统通知兜底 | 不依赖应用持续运行 | 通知触达 | 全部 |
| 手机断网但提醒已同步 | 离线本地执行 | 网络异常时仍能收到提醒 | 提醒执行 | 全部 |
| 我拒绝定位权限 | 权限降级 | 月历、日程和时间提醒仍然可用 | 权限管理 | 全部 |
| 我修改或删除日程 | 提醒同步 | 旧通知和旧地理围栏自动失效 | 提醒执行 | 全部 |
| 我点击右上角设置 | 设置入口 | 管理地点、权限、TTS 和默认提醒 | 设置 | 全部 |
| 痛点 | 具体表现 | 调研/设计依据 | 对应人群 |
|---|---|---|---|
| 查看入口复杂 | 不同视图和功能入口分散 | 单页信息架构设计判断 | 全部 |
| 录入步骤多 | 用户需要填写多个字段 | 高频移动场景操作审查 | 全部 |
| 自然语言存在歧义 | “明天下午”“公司”“快到”等信息不完整 | Agent 输入的不确定性 | 全部 |
| Agent 误操作风险 | ASR 或语义识别错误可能写入错误日程 | 用户控制与可信边界 | 全部 |
| 固定时间提醒不符合实际时机 | 到点时用户可能尚未到达执行地点 | 地点型执行场景 | 移动用户 |
| 进入地点提醒仍可能过早 | 用户进入停车区后还需要停车、下车和步行 | 停车与前置动作场景 | 职场用户 |
| 地点名称不能直接执行 | “公司”可能没有坐标或存在多个地点 | 地点实体设计 | 地点提醒用户 |
| 位置临近语义不明确 | 不同场景对“快到”的距离理解不同 | 提醒参数设计 | 地点提醒用户 |
| 定位权限敏感 | 用户担心应用持续追踪 | 隐私与权限边界 | 全部 |
| 修改后旧提醒残留 | 日程改期后旧通知仍可能触发 | 提醒生命周期设计 | 全部 |
| 后台或进程死亡导致通知失效 | 应用内逻辑无法保证一直运行 | 移动操作系统限制 | 全部 |
| 断网导致规则不能更新 | 新建或修改提醒未同步到当前设备 | 端云一致性边界 | 全部 |
| TTS 无法在所有状态可靠运行 | 后台和进程死亡时无法保证主动朗读 | 系统能力边界 | 全部 |
| 网络或 Agent 故障 | 智能能力不可用时影响基本使用 | 核心功能稳定性要求 | 全部 |
一句话价值主张:
TimeFlow 让用户在一个月历首页中查看和管理日程,通过底部单一语音入口与一个 Agent 完成操作;信息不足时进行有限多轮补参和消歧,条件满足后直接执行,并在时间临近、位置临近或到达后离开指定区域时获得分层通知。
产品结构:
flowchart TD
HOME[单页首页] --> MONTH[月份与月历]
HOME --> DAY[所选日期日程区]
HOME --> VOICE[底部中央语音按钮]
HOME --> SETTING[右上角设置]
VOICE --> ASR[语音转写与文本校正]
ASR --> AGENT[单 Agent]
AGENT --> QUERY[查询日程]
AGENT --> DIALOGUE[有限多轮补参与消歧]
DIALOGUE --> EXECUTE[执行条件校验]
EXECUTE --> SERVICE[确定性业务能力]
SERVICE --> RESULT[执行结果与撤销入口]
SERVICE --> SCHEDULE[Schedule]
SERVICE --> PLACE[Place]
SERVICE --> REMINDER[Reminder]
REMINDER --> TIME[TIME 时间临近]
REMINDER --> GEO_APPROACH[LOCATION_APPROACH 位置临近]
REMINDER --> GEO_ARRIVE_EXIT[LOCATION_ARRIVE_EXIT 到达后离开]
TIME --> DELIVERY[通知触达]
GEO_APPROACH --> DELIVERY
GEO_ARRIVE_EXIT --> DELIVERY
DELIVERY --> FOREGROUND[前台弹窗 + 本地 TTS]
DELIVERY --> SYSTEM[系统本地通知 + 声音/震动]
SETTING --> PLACE
SETTING --> PERMISSION[麦克风、通知、定位、TTS]
核心链路:
打开应用
→ 默认选中今天
→ 月历下方展示今天的日程
→ 用户选择其他日期时更新日程列表
→ 用户点击底部语音按钮或使用手动入口
→ 语音转写并允许用户校正文本
→ 单 Agent 识别意图、对象、时间、地点和提醒参数
→ 查询操作直接展示结果
→ 写操作参数不足时进行有限追问,对象不唯一时要求选择
→ 参数完整、目标唯一且校验通过后直接调用确定性业务能力
→ 展示执行结果、影响范围和可用的撤销入口
→ 客户端同步 Reminder
→ 注册本地时间通知或系统地理围栏
→ 条件满足后选择前台弹窗 + TTS 或系统通知兜底
| 七个流程 | 市面上常见解决方案总结 |
|---|---|
| 捕获 | 手动表单、自然语言文字输入、语音输入、快捷指令、聊天内容转日程 |
| 组织 | 日历、分类、标签、地点、参与人、重复规则 |
| 查看 | 月视图、周视图、日视图、议程列表、搜索 |
| 提醒 | 固定时间、提前若干分钟、重复提醒、进入或离开地点提醒 |
| 执行 | 通知跳转详情、延后、忽略、手动标记结果 |
| 调整 | 表单编辑、拖拽改期、自然语言修改、批量操作 |
| 流程环节 | 市场格局与代表方案 | 主要结论 |
|---|---|---|
| 捕获 | 传统日历依赖表单,部分产品支持自然语言或语音创建 | 捕获能力较成熟,关键差异是能否覆盖完整 CRUD、有限多轮补参和执行反馈 |
| 组织 | 日历产品以明确时间占用为核心 | 本期只保留 Schedule,避免日程与其他事项模型混杂 |
| 查看 | 多数产品提供月、周、日和列表视图 | 第一版不需要堆叠多个视图,月历加日期日程区即可验证核心需求 |
| 提醒 | 固定时间提醒成熟,地点提醒通常只支持简单进入或离开 | 位置临近和“先进入再离开”的状态提醒仍有差异化空间 |
| 通知 | 系统通知成熟,应用内弹窗和语音朗读通常不是统一策略 | 需要按前台、后台、进程死亡和断网状态设计触达降级 |
| Agent 操作 | 部分产品只支持创建,修改和删除仍需手动 | TimeFlow 应覆盖查询、创建、修改、删除和提醒配置 |
| 用户控制 | Agent 直接执行可以减少步骤,但误操作风险高 | 通过必要追问、对象唯一性校验、结果回显、软删除和撤销控制风险 |
| 信息架构 | 日历、AI 和统计常被拆成多个一级页面 | TimeFlow 使用单页月历和一个语音按钮,降低入口负担 |
| 市场空缺 | 用户需求 | 竞品不足 | 数据/设计支撑 | TimeFlow 机会 |
|---|---|---|---|---|
| 语音只负责创建 | 用户还需要查询、修改和删除 | 创建后仍需手动维护 | 完整 CRUD 用户故事 | 单一语音入口覆盖完整日程 CRUD |
| Agent 直接执行缺少控制 | 用户担心识别错误 | 缺参、同名对象和 ASR 错误可能导致误操作 | 可信 Agent 设计边界 | 有限多轮补参和消歧,执行后展示结果并提供撤销 |
| 提醒主要依赖固定时间 | 部分日程的执行时机取决于实际移动进度 | 固定时间与现实位置不一致 | 通勤和到店场景 | 支持 LOCATION_APPROACH
|
| 简单进入围栏仍过早 | 用户到达停车区后还有前置步骤 | 单次进入事件不能表达两阶段行为 | 停车后步行场景 | 支持 LOCATION_ARRIVE_EXIT 状态机 |
| 提醒送达依赖应用状态 | 前台、后台和进程死亡能力不同 | 只做应用内弹窗会漏提醒 | 移动端运行边界 | 前台弹窗 + TTS,系统通知兜底 |
| 断网时提醒可靠性不清 | 用户希望已设置提醒继续执行 | 依赖服务端实时推送时会失败 | 本地规则执行边界 | 已同步规则离线执行,变更等待同步 |
| 地点提醒参数难理解 | 用户无法准确配置半径和有效期 | 专业参数暴露过多 | 用户理解测试 | 提供场景默认值,并在有限多轮中仅追问必要参数 |
| 提醒失败不可见 | 用户不知道提醒是否真正生效 | 设备注册状态不透明 | 可靠性要求 | 展示 pending_sync、active、failed 等状态 |
| 复杂 Agent 架构超出当前需要 | 核心业务动作有限 | 主从或多 Agent 会增加链路和调试成本 | 当前能力范围 | 一个 Agent + 确定性业务能力 |
| 定位权限说明不清 | 用户担心连续轨迹被采集 | 权限范围不透明 | 隐私设计要求 | 不保存连续轨迹,仅处理必要围栏事件 |
| 节点 | 深度 | 本期做法 | 理由 |
|---|---|---|---|
| 捕获/交互 | 深耕核心 | 单一语音按钮、语音转写、一个 Agent、有限多轮补参、消歧和直接执行 | 验证低摩擦输入价值 |
| 组织/展示 | 基础但完整 | 单页月历、日期选择、日程列表 | 用最少页面承载主流程 |
| 日程管理 | 基础但完整 | Schedule 手动和语音 CRUD | 保证产品独立可用 |
| 时间提醒 | 完整实现 | 时间临近、提前若干分钟和自定义触发时间 | 提供基础可靠提醒 |
| 位置临近提醒 | 深耕差异化 | 进入保存地点的临近区域时提醒 | 验证“快到”场景价值 |
| 到达后离开提醒 | 实验性深耕 | 先进入目标区域,再离开时触发 | 验证停车等两阶段场景 |
| 通知触达 | 完整实现 | 前台弹窗 + TTS,后台/进程死亡系统通知兜底 | 不把可靠性建立在进程常驻上 |
| 权限与降级 | 完整实现 | 通知、定位和麦克风按需申请;失败可见 | 避免权限成为单点 |
| 多端与外部集成 | 不投入 | 当前设备执行提醒,不接第三方日历 | 控制第一版工程范围 |
| 复杂智能规划 | 不投入 | 不做自动排期、任务拆解和多 Agent 编排 | 聚焦日程与提醒闭环 |
单页首页主链:
用户打开应用 → 默认选中今天并展示本月月历 → 下方展示今天的 Schedule → 用户点击其他日期后更新下方内容 → 用户可以点击日程手动查看或编辑 → 用户点击底部语音按钮完成查询或 CRUD → 必要信息完整后直接执行写操作 → 返回执行结果并刷新月历和日程列表。
单 Agent 语音闭环:
用户点击底部语音按钮并说出需求 → 客户端完成语音转写 → 转写文本进入一个 Agent → Agent 识别日程操作、时间、地点和提醒参数 → 必要参数不足时进行最少量追问 → 对象不唯一时要求用户选择 → 查询操作直接返回 → 创建、修改和删除在参数完整、目标唯一且校验通过后直接调用确定性业务接口 → 返回执行结果、影响范围和可用撤销入口。
时间临近提醒闭环:
用户通过语音或日程详情设置提前时间 → 后端保存 TIME Reminder → 客户端同步规则 → 向操作系统注册本地通知 → 触发时间到达 → 应用前台时弹窗并 TTS,其他状态由系统通知兜底 → 客户端记录触达结果。
位置临近提醒闭环:
用户选择或创建 Place → 为 Schedule 创建 LOCATION_APPROACH Reminder → Agent 补全地点、临近半径、生效时间、失效时间和触发次数等必要参数 → 参数完整后后端直接保存规则 → 客户端注册地理围栏或等价系统位置能力 → 用户进入临近区域 → 触发通知 → 一次性提醒转为 triggered。
到达后离开提醒闭环:
用户选择或创建代表前置区域的 Place,例如“公司停车区” → 为 Schedule 创建 LOCATION_ARRIVE_EXIT Reminder → Agent 补全进入半径、离开半径、最短停留时间、生效时间和失效时间等必要参数 → 参数完整后客户端注册相关地理围栏 → 用户先进入区域 → 状态变为 inside → 满足最短停留后等待离开 → 用户离开区域 → 触发通知 → 提醒转为 triggered。
通知触达闭环:
提醒条件满足 → 客户端判断应用是否在前台且可交互 → 若可交互,展示应用内弹窗并调用本地 TTS;若在后台、进程被系统回收或不具备前台展示条件,由操作系统本地通知、声音和震动兜底 → 用户点击通知进入日程详情 → 客户端记录触达渠道和结果。
断网处理闭环:
设备断网 → 已同步并注册的 Reminder 继续由本地操作系统执行 → 新建或修改的数据保存本地待同步状态 → 网络恢复后重新同步和校验版本 → 若规则尚未注册则显示 pending_sync,不伪装为已生效。
设置闭环:
用户点击首页右上角设置按钮 → 管理常用地点、默认提醒偏好、通知权限、定位权限、TTS 开关和隐私设置 → 设置变化后重新校验或同步相关 Reminder。
| 不做事项 | 理由 | 依据 |
|---|---|---|
| 独立待办或任务清单 | 当前产品对象只保留 Schedule | 最新产品范围 |
| 主 Agent、子 Agent 或多 Agent 编排 | 当前业务由一个 Agent 即可覆盖,避免额外链路复杂度 | 新版架构边界 |
| 日程完成状态、完成统计与复盘 | 当前版本只验证日程管理和智能提醒,不采集或总结日程完成情况 | 最新产品范围 |
| 底部多 Tab 导航 | 第一版主流程可以由单页首页承载 | 减少信息架构复杂度 |
| 独立 AI 页面或聊天首页 | 语音是快捷操作方式,不替代日历主界面 | 产品定位 |
| 语音记录和语音笔记 | 与日程管理主链无关 | 产品减法 |
| Goal、Task、长期目标拆解 | 不属于当前版本核心问题 | 范围调整 |
| 自动排期与智能重排 | 工程和产品复杂度高 | 第一版资源约束 |
| 自动识别用户已停车或已经下车 | 地理围栏只能判断区域事件,不能可靠识别真实动作 | 能力边界 |
| 自动读取聊天、邮件和图片 | 接入与隐私风险高 | 工程和权限边界 |
| 第三方日历同步 | 非当前差异化重点 | 工程范围 |
| 多地点任意布尔条件组合 | 规则引擎复杂度高 | MVP 约束 |
| 天气、交通和设备状态提醒 | 依赖外部数据和更多权限 | MVP 约束 |
| 服务端持续获取位置 | 耗电、隐私和后台运行风险高 | 技术与隐私边界 |
| 连续位置轨迹 | 地点提醒不需要完整轨迹 | 最小数据原则 |
| 后台或进程死亡时强制 TTS | 移动操作系统无法稳定保证主动朗读 | 系统能力边界 |
| 团队日历与多人协作 | 引入权限和共享语义 | 用户定位 |
| Web 与桌面端 | 第一版聚焦移动端 | 工程范围 |
| 多设备提醒去重 | 当前设备即可验证提醒价值 | 工程范围 |
| 服务端实时推送作为唯一提醒方式 | 断网和进程状态会影响可靠性 | 本地提醒边界 |
| 能力 | 状态 | 本期关系 |
|---|---|---|
| 周视图和日视图 | P1 | 月视图验证后补充更细时间展示 |
| 重复日程 | P1 | 在 Schedule 模型上扩展周期规则 |
| 延后提醒和再次提醒 | P1 | 在通知交互上扩展 |
| 动态临近半径 | P1 | 根据步行、驾车或用户偏好调整 |
| 更精细的停留提醒 | P1 | 在到达后离开状态机上扩展 |
| 地点与时间组合规则 | P1 | 在现有 Reminder 模型上扩展 |
| 智能推荐提醒方式 | P1 | Agent 给出建议;用户继续补充或调整时进入同一有限多轮任务 |
| 系统日历同步 | P2 | 需要独立同步和冲突方案 |
| 天气提醒 | P2 | 接入天气条件 |
| 交通时间提醒 | P2 | 接入路线和预计到达时间 |
| 蓝牙/Wi-Fi 状态提醒 | P2 | 扩展场景感知能力 |
| 多设备同步与去重 | 后续 Proposal | 需要统一执行权和状态同步 |
| 智能排期和冲突调整 | 后续 Proposal | 需要单独产品和架构设计 |
| 多 Agent 架构 | 仅在出现真实复杂协作需求后评估 | 当前明确不引入 |
-
用户首次打开应用,系统默认展示当前月份并选中今天。
-
月历下方展示今天的 Schedule。
-
用户可以点击其他日期,查看对应日期的日程。
-
用户点击日程进入详情页,完成手动查看和编辑。
-
用户点击底部中央语音按钮,通过语音表达查询或操作意图。
-
客户端将语音转为文字;麦克风或 ASR 不可用时允许文字输入。
-
转写文本进入系统中唯一的 Agent。
-
Agent 识别操作类型、目标 Schedule、时间、地点和 Reminder 参数。
-
参数不足或对象不唯一时,Agent 在调用写能力前进行追问或要求选择。
-
查询操作直接读取事实并展示结果。
-
参数完整、目标唯一且确定性校验通过后,Agent 直接调用业务能力执行创建、修改或删除。
-
系统展示执行结果、字段变化、受影响 Reminder 和可用撤销入口。
-
首页月历和所选日期日程列表刷新。
-
创建或修改 Reminder 后,客户端同步最新规则。
-
TIMEReminder 注册为本地时间通知。 -
LOCATION_APPROACHReminder 注册为临近区域地理围栏或等价系统规则。 -
LOCATION_ARRIVE_EXITReminder 注册进入与离开事件,并维护本地状态机。 -
时间或位置条件满足后,客户端选择触达渠道。
-
应用前台可交互时展示弹窗并使用本地 TTS。
-
应用后台或进程被系统回收时,由操作系统通知、声音和震动兜底。
-
用户点击通知进入对应 Schedule 详情。
-
客户端上报提醒注册、触发、触达、失败、取消或过期状态。
-
日程修改或删除时,旧通知和旧地理围栏必须取消。
-
权限或系统能力失败时,不回滚 Schedule,但 Reminder 必须显示失败或未生效状态。
| # | 假设类型 | 核心假设 | 验证方式 | 通过标准 | 失败退路 |
|---|---|---|---|---|---|
| 1 | 单页首页 | 月历加日期日程列表可以承载核心查看需求 | 原型统一任务测试 | ≥6/8 用户无需讲解完成日期查看 | 调整日期日程区信息密度 |
| 2 | 单一事项模型 | 只保留 Schedule 能覆盖本期目标场景 | 标准场景归类测试 | ≥7/8 场景无需额外对象即可表达 | 重新审查对象边界,不直接恢复复杂模型 |
| 3 | 单一语音入口 | 底部一个语音按钮可以降低操作成本 | 语音与手动操作对照 | ≥4/8 认为语音更快或更省步骤 | 语音先收缩到创建和查询 |
| 4 | 单 Agent | 一个 Agent 能稳定完成本期意图和参数处理 | 标准意图集与回归测试 | 核心意图准确率达到目标且链路可排查 | 减少意图范围,不引入多 Agent 作为第一退路 |
| 5 | 完整语音 CRUD | 用户需要的不只是语音创建 | 创建、查询、修改、删除用例 | ≥4/8 主动使用修改或删除 | 删除和复杂修改保留手动 |
| 6 | 有限多轮直接执行 | 必要追问和消歧能够在不增加独立确认步骤的情况下控制误操作 | 缺参、同名对象、修改和删除任务测试 | ≥6/8 能理解追问原因并成功完成操作;独立确认步骤出现率为 0 | 缩小可直接执行的语音操作范围,加强结果回显和撤销 |
| 7 | 时间临近提醒 | 本地通知可以覆盖基础提醒需求 | 多设备受控测试 | 标准用例注册和触发率达到目标 | 增加重新同步和权限诊断 |
| 8 | 位置临近提醒 | “快到地点”在部分场景优于固定时间 | 公司、学校、商场用例 | ≥4/8 认为至少一个场景有明显价值 | 降级为实验能力 |
| 9 | 到达后离开提醒 | 停车等场景需要两阶段触发 | 停车区实地测试 | 目标场景下误触发和漏触发可接受 | 收缩为普通离开提醒或手动设置 |
| 10 | 地点参数理解 | 用户能够理解地点、半径和有效时间 | 原型操作测试 | ≥6/8 正确完成配置 | 使用默认半径和默认时间窗口 |
| 11 | 前台弹窗 + TTS | 前台语音触达比普通通知更容易感知 | 受控对照测试 | ≥4/8 明确偏好且无明显打扰 | 默认关闭 TTS 或只保留弹窗 |
| 12 | 系统通知兜底 | 进程死亡时本地注册仍能提供基本通知 | 后台、杀进程和重启测试 | 受支持设备达到目标触发率 | 加强权限诊断和启动重建 |
| 13 | 离线执行 | 已同步提醒在断网时仍可执行 | 飞行模式测试 | 标准时间提醒和围栏提醒按平台能力触发 | 明确显示仅支持已同步规则 |
| 14 | 权限接受 | 用户在理解用途后愿意授予定位权限 | 首次创建地点提醒时申请 | ≥4/8 完成授权 | 推荐改用时间提醒 |
| 15 | 权限降级 | 拒绝定位后核心产品仍然可用 | 权限拒绝测试 | 月历、CRUD、时间提醒可继续 | 保持地点提醒完全可选 |
| 16 | 提醒同步 | 日程变化后旧提醒能够正确失效 | 修改、删除、重启用例 | 不出现稳定复现的旧规则触发 | App 启动时全量重建规则 |
| 17 | 隐私理解 | 不保存连续轨迹能够降低用户顾虑 | 权限说明访谈 | ≥6/8 理解产品不记录轨迹 | 强化权限说明和规则列表 |
| 18 | 手动兜底 | Agent 不可用时产品仍然可独立使用 | 断网和模型异常测试 | 手动 CRUD 成功率达到目标 | Agent 不作为唯一入口 |
说明:5—8 人原型测试使用实际完成人数报告,不把小样本比例解释为统计显著;运营指标需要在不少于 30 名真实试用用户后统计。
功能边界:
-
平台:移动端,Android 优先;具体客户端技术实现以架构文档为准。
-
用户:单用户个人工具,不支持团队和多人协作。
-
语言:P0 仅支持中文。
-
一级结构:只有一个首页,不使用日程、Agent 等底部 Tab。
-
首页:顶部月份、右上角设置、中部月历、下方日期日程区、底部中央语音按钮。
-
日历:P0 以月视图为主,不要求周视图和日视图。
-
事项对象:P0 只有
Schedule,没有独立 Todo、Task 或 Goal 对象。 -
Schedule:正式对象必须具有标题、开始时间和结束时间。
-
Schedule 可以绑定 Place 和零个或多个 Reminder。
-
Schedule 的时间状态由系统计算,例如未开始、进行中和已结束,用于展示和提醒生命周期判断。
-
Reminder 必须绑定一个 Schedule。
-
一个 Schedule 可以绑定零个或多个 Reminder。
-
P0 Reminder 类型为
TIME、LOCATION_APPROACH和LOCATION_ARRIVE_EXIT。 -
LOCATION_APPROACH必须绑定用户已经保存或明确选择的 Place,并具有临近半径。 -
LOCATION_ARRIVE_EXIT必须绑定用户已经保存或明确选择的前置区域 Place,例如停车区。 -
地点提醒默认一次性触发。
-
地点提醒必须具有明确生效时间和失效时间。
-
位置提醒只能判断进入或离开地理区域,不能声称识别“停车完成”“已经下车”或其他真实世界动作。
-
语音查询直接展示结果。
-
语音创建、修改和删除不设置独立确认步骤;在必要参数完整、目标唯一且业务校验通过后直接执行。
-
手动表单保存后直接执行;单对象删除采用软删除并展示影响范围和撤销入口,批量删除与大范围修改不在 P0 自动执行。
-
不保存连续位置轨迹。
-
不通过服务端高频轮询用户位置。
-
当前设备负责执行本地提醒。
-
不承诺第一版多设备提醒去重。
-
Reminder 失败不回滚 Schedule,但必须显示失败状态。
-
系统可能延迟位置事件,不承诺精确到秒。
-
系统中只有一个 Agent,不区分主 Agent、子 Agent 或专项 Agent。
-
Agent 负责意图识别、参数解析、必要追问、对象定位、有限多轮上下文维护和结构化执行请求生成。
-
Agent 可以通过受控查询能力读取 Schedule、Place 和 Reminder。
-
Agent 不直接生成 SQL,不绕过业务接口写数据库。
-
当必要参数完整、目标唯一且校验通过后,Agent 调用确定性业务能力直接执行写操作。
-
确定性业务能力负责权限、版本、冲突、事务、对象归属和字段合法性校验。
-
查询结果由数据库事实和确定性逻辑产生;Agent 只负责理解用户请求和组织展示内容。
-
一个有限多轮任务只处理一个明确业务动作;创建、修改、删除、取消、执行完成或超时后结束当前任务。
-
多对象批量修改和删除不在第一版自动执行,避免在没有独立确认步骤时扩大误操作影响。
-
Agent 的多轮上下文只保存完成当前任务所需的意图、槽位、匹配对象和最近回答,不作为开放聊天记忆。
-
用户回答必须优先补充当前任务;若用户明确提出新的业务动作,系统结束或挂起原任务,并以新动作开始新的有限多轮任务。
-
用户可以在执行前说“取消”结束当前任务;这属于取消未完成交互,不是写操作确认。
-
ASR 负责把语音转换为文本,不负责决定业务意图,也不属于另一个 Agent。
-
提醒执行模块和通知模块是确定性业务模块,不是 Agent。
| 架构或实现用语 | 产品统一用语 | 本期解释 |
|---|---|---|
| Event | Schedule | 具有完整起止时间的日程 |
| Agent | Agent | 系统中唯一的自然语言业务处理单元 |
| Speech-to-Text / ASR | 语音转写 | 把音频转换为可校正文本,不做业务决策 |
| Action Request | 执行请求 | 有限多轮补参和消歧完成后,由 Agent 生成并立即交给确定性业务能力校验执行 |
| Location Rule | 地点 Reminder | 基于用户已保存或明确选择的 Place 和围栏事件的提醒规则 |
| Geofence | 地理围栏 | 由客户端向操作系统注册的地点范围 |
| Reminder Registration | 提醒注册 | 当前设备上的本地通知或地理围栏 |
| Reminder Execution | 提醒执行记录 | 注册、触发、触达、失败、取消和过期状态 |
-
P0 只做当前设备本地触达。
-
应用在前台且界面可交互时,优先展示应用内弹窗,并按用户设置调用本地 TTS。
-
网络不是前台弹窗和本地 TTS 的必要条件;只要规则已同步且本地数据可用,断网时仍可触达。
-
应用在后台、进程被系统回收或无法展示应用内弹窗时,由操作系统本地通知、声音和震动兜底。
-
P0 不承诺进程死亡时执行 TTS,因为系统通常不允许应用稳定主动朗读。
-
时间提醒由客户端向操作系统注册本地时间通知。
-
地点提醒由客户端向操作系统注册地理围栏或平台等价能力。
-
通知点击进入对应 Schedule 详情。
-
用户可以关闭 TTS、声音或震动,但应保留至少一种可见通知方式提示风险。
-
通知权限关闭后,Schedule 仍然保留,Reminder 标记 failed 或 disabled。
-
地点权限关闭后,只影响地点提醒。
-
系统杀后台、设备重启和厂商后台策略可能影响送达,不承诺 100%。
-
客户端需要在启动、登录恢复、权限变化和设备重启后校验 Reminder 注册状态。
pending_sync
registered
active
inside
waiting_exit
triggered
delivery_failed
failed
cancelled
expired
| 状态 | 说明 |
|---|---|
| pending_sync | 后端或本地业务数据已保存,等待当前设备同步 |
| registered | 规则已经在当前设备完成系统注册 |
| active | 规则处于有效时间内并等待触发 |
| inside | 两阶段地点提醒已经检测到进入目标区域 |
| waiting_exit | 已满足最短停留条件,正在等待离开区域 |
| triggered | 触发条件已经满足 |
| delivery_failed | 条件已触发,但用户可见通知或 TTS 触达失败 |
| failed | 规则注册或位置能力执行失败 |
| cancelled | 用户、日程或规则变更导致取消 |
| expired | 超过有效期且未触发 |
waiting_enter
→ inside
→ waiting_exit
→ triggered
状态约束:
-
waiting_enter:等待用户首次进入目标区域。 -
inside:检测到进入,但尚未满足最短停留或稳定性条件。 -
waiting_exit:已检测到稳定进入并满足停留条件,等待离开区域。 -
triggered:检测到离开并完成一次提醒触发。 -
为减少 GPS 漂移,进入半径和离开半径可以不同,并设置最短停留时间和事件去抖。
-
若提醒超过 expires_at 仍未完成状态迁移,则转为 expired。
-
修改 Place、半径、有效期或绑定日程后,旧状态机必须取消并重新注册。
| 场景 | 系统必须如何处理 |
|---|---|
| 语音无法识别 | 提示重新说或切换文字输入 |
| 转写文本有误 | 允许用户编辑后再提交给 Agent |
| Schedule 缺少开始或结束时间 | 追问必要时间,不创建正式 Schedule |
| 时间表达模糊 | 通过有限多轮追问获得明确时间;未补全前不执行 |
| 查询对象不存在 | 明确告知未找到 |
| 修改对象不唯一 | 展示匹配 Schedule 供用户选择 |
| 删除对象不唯一 | 不执行删除 |
| Place 不存在 | 引导用户搜索、地图选点并保存 Place |
| Place 存在多个同名项 | 要求用户选择 |
| “快到”未给半径 | 使用可见的场景默认值并直接执行;用户可以继续说“改成 300 米”或手动修改 |
| 停车区未保存 | 要求用户单独搜索或选择停车区 Place,不把公司中心点自动当作停车区 |
| 通知权限被拒绝 | 保存 Schedule,Reminder 标记 failed,并提供设置入口 |
| 定位权限被拒绝 | 不注册地点提醒,可切换为 TIME Reminder |
| 后台定位权限不足 | 提示授权原因并提供系统设置入口 |
| TTS 不可用或被关闭 | 保留弹窗或系统通知,不阻塞 Reminder |
| 应用前台但断网 | 已同步规则仍使用弹窗和本地 TTS;新变更保持 pending_sync |
| 应用后台或进程死亡 | 依赖系统本地通知兜底,不承诺 TTS |
| 地理围栏注册失败 | Reminder 标记 failed,不持续高频轮询位置 |
| 时间提醒已经过期 | 不注册,提示用户修改时间 |
| 注册地点提醒时用户已在临近范围内 | 不承诺立即触发;执行结果中说明,并允许用户继续增加 TIME Reminder |
| 两阶段规则注册时用户已在区域内 | 默认从 inside 或待用户离开后重新进入开始,具体策略必须可见 |
| GPS 漂移导致频繁进出 | 使用不同进出半径、最短停留和事件去抖 |
| Schedule 被修改 | 取消旧 Reminder Registration,注册新版本 |
| Schedule 被删除 | 取消全部关联 Reminder |
| Place 被删除 | 若存在关联 Reminder,先通过有限多轮让用户选择取消相关提醒或保留地点;选择完成后直接执行 |
| App 长期未同步 | 状态保持 pending_sync,并提示打开 App 或联网 |
| Agent 服务不可用 | 手动 CRUD 和已有提醒继续工作 |
| 网络不可用 | 已注册本地提醒继续执行,业务修改等待同步 |
| 提醒触发延迟 | 不展示虚假的精确触发承诺 |
| 决策点 | 备选方案 | 选择 | 理由 |
|---|---|---|---|
| 一级信息架构 | 多 Tab / 单页 | 单页首页 | 当前核心查看与操作可以由一个页面承载 |
| 首页主内容 | Agent 对话 / 列表 / 月历 | 月视图日历 | 日历是产品的主要信息载体 |
| 日期详情 | 独立详情页 / 月历下方联动 | 月历下方联动 | 点击日期即可查看当日日程 |
| 事项模型 | Schedule + Todo + Task / 仅 Schedule | 仅 Schedule | 当前范围只管理明确起止时间的日程,减少对象歧义 |
| Agent 架构 | 主从 Agent / 多 Agent / 单 Agent | 单 Agent | 当前意图范围有限,单 Agent 更简单、更易观测和测试 |
| 语音入口 | 独立 Agent Tab / 悬浮按钮 / 多个语音功能 | 底部中央单一语音按钮 | 强化统一、低成本入口 |
| 语音记录和语音笔记 | 保留 / 删除 | 删除 | 不属于日程管理核心闭环 |
| 设置入口 | 底部 Tab / 首页右上角 | 首页右上角 | 设置低频,不占用一级导航 |
| Agent 写入 | 独立确认 / 有限多轮后直接执行 | 有限多轮后直接执行 | 减少无意义确认步骤;通过补参、消歧、校验、结果回显和撤销控制风险 |
| 对话形态 | 严格单轮 / 开放多轮 / 任务型有限多轮 | 任务型有限多轮 | 只围绕当前业务动作补参和消歧,执行、取消或超时后结束 |
| 误操作恢复 | 不提供 / 操作前确认 / 操作后撤销 | 操作后撤销 | 不恢复通用确认步骤,同时降低创建、修改和删除的不可逆风险 |
| Agent 查询 | 额外确认 / 直接展示 | 直接展示 | 查询不改变业务事实 |
| 手动表单提交 | 提交后执行 / 二次确认 | 提交后直接执行 | 与语音直接执行保持一致;删除使用软删除和撤销控制风险 |
| Schedule 时间要求 | 只需开始时间 / 完整起止时间 | 完整起止时间 | 保证日历展示、冲突判断和提醒有效期计算一致 |
| 时间提醒执行 | 服务端推送 / 客户端本地 | 客户端本地 | 断网和服务端异常时仍可执行 |
| 位置临近 | 实时轨迹计算 / 地理围栏临近区 | 系统地理围栏或等价能力 | 降低耗电和隐私风险 |
| 到达后离开 | 识别停车动作 / 两阶段围栏状态机 | 两阶段围栏状态机 | 系统只能可靠获得区域事件,不能承诺动作识别 |
| 停车区域 | 自动使用公司坐标 / 单独 Place | 单独选择或保存停车区 Place | 公司中心点不一定代表停车区域 |
| 地点提醒时间范围 | 永久有效 / 明确有效期 | 明确 active_from 与 expires_at | 避免未来误触发 |
| 地点提醒次数 | 默认重复 / 默认一次 | 默认一次 | 降低重复打扰和状态复杂度 |
| 前台通知 | 系统通知 / 弹窗 / 弹窗 + TTS | 弹窗 + 可配置 TTS | 提高前台状态下的感知效率 |
| 后台和进程死亡 | 强行保活 / 系统通知兜底 | 系统通知兜底 | 不依赖不可靠的应用常驻 |
| TTS 兜底 | 所有状态都保证 / 仅前台保证 | 仅前台或系统允许状态下保证 | 符合移动操作系统能力边界 |
| 网络依赖 | 无网不提醒 / 已同步规则离线执行 | 离线执行已同步规则 | 提醒可靠性不应依赖实时网络 |
| 地点数据 | 名称字符串 / 独立 Place | 独立 Place | 地点提醒需要确定坐标和半径 |
| 位置数据 | 连续轨迹 / 围栏事件 | 只处理必要围栏事件 | 最小权限与最小数据原则 |
| 提醒失败 | 静默失败 / 状态可见 | 状态可见 | 用户需要知道提醒是否生效 |
| 提醒与日程关系 | 独立提醒 / 绑定 Schedule | 绑定 Schedule | 保证跳转、修改和删除生命周期一致 |
| 第三方日历 | 首版接入 / 后续接入 | 后续 | 不是当前差异化重点 |
| 设备范围 | 多设备 / 当前设备 | 当前设备 | 控制同步和去重复杂度 |
-
功能:首页只包含当前月份、右上角设置、月视图、所选日期日程区,以及底部中央语音按钮。
-
满足价值:用户进入应用后立即看到时间信息和当天安排,不需要理解多个一级页面。
-
典型场景:用户打开应用,默认选中今天,直接看到今天的三个日程和其中两个提醒状态。
-
详细设计:
-
页面顶部显示年份和月份。
-
右上角固定设置按钮。
-
月历是页面主要视觉区域。
-
月历下方显示当前选中日期和日程列表。
-
底部中央语音按钮固定,不随列表滚动消失。
-
首页不显示独立 Agent 对话流、语音记录或语音笔记。
-
-
功能:展示当前月份的实体月历,支持切换月份、选择日期、返回今天和显示日程密度标记。
-
满足价值:用户能够快速建立日期上下文,并以日期为中心查看安排。
-
典型场景:用户点击 8 月 3 日,日程区立即更新为 8 月 3 日的 Schedule。
-
详细设计:
-
默认展示当前月份并选中今天。
-
当前日期和选中日期必须有不同视觉状态。
-
支持左右滑动或月份切换按钮。
-
切换月份后保留明确的选中日期逻辑。
-
有日程的日期显示轻量标记,不在月格中堆叠完整标题。
-
提供返回今天入口。
-
日期变化只更新查询范围,不改变任何业务数据。
-
-
功能:月历下方展示当前选中日期的 Schedule。
-
满足价值:用户在一个页面中看清当天安排,并快速进入日程详情。
-
典型场景:7 月 30 日下方按开始时间展示当天的三条日程。
-
详细设计:
-
顶部展示日期和星期。
-
Schedule 按开始时间升序排列。
-
日程显示时间、标题、地点和提醒状态标记。
-
点击日程主体进入详情。
-
当天无日程时展示空状态并提示使用语音按钮。
-
列表较长时允许纵向滚动,语音按钮保持固定。
-
-
功能:底部中央语音按钮是唯一语音入口,支持录音、语音转写、文字兜底、一个 Agent 的意图识别、有限多轮补参、对象定位、消歧和条件满足后的直接执行。
-
满足价值:用户不用理解字段和页面结构,即可通过自然语言完成高频管理;架构链路保持简单、可测试。
-
典型场景:用户说“把明天下午的项目会改到四点”,Agent 找到多个同名日程时要求用户选择;目标唯一后直接修改,并展示修改前后时间、受影响 Reminder 和撤销入口。
-
详细设计:
-
点击或长按语音按钮进入录音。
-
录音中展示波形、转写文本、取消和完成操作。
-
支持文字编辑转写结果。
-
ASR 只负责转写,不负责业务意图判断。
-
系统仅存在一个 Agent。
-
Agent 支持 Schedule 查询、创建、修改、删除和 Reminder 配置。
-
查询操作直接展示。
-
创建、修改和删除在必要参数完整、目标唯一且校验通过后直接执行。
-
参数不足时仅追问当前操作必需参数,不进行开放式闲聊。
-
当前任务在执行成功、用户取消、切换为新意图或超时后结束。
-
不设置固定轮数,但必须以完成当前操作所需的最少轮次为目标。
-
对象不唯一时展示匹配 Schedule 供用户选择;该选择属于消歧,不属于写操作确认。
-
单对象删除采用软删除,直接执行后展示将取消的 Reminder,并提供短时间撤销入口。
-
Agent 生成结构化 Action Request;确定性业务能力完成权限、字段、对象归属、版本和冲突校验后执行,不允许模型直接生成 SQL 或绕过业务接口。
-
执行后必须回显实际写入结果,而不是只回复自然语言成功。
-
创建、修改和软删除等支持恢复的操作应返回撤销入口;撤销本身是一个新的确定性写操作。
-
不设置“主 Agent”“子 Agent”“语音记录”“语音笔记”等概念或入口。
-
-
功能:支持 Schedule 的创建、查询、修改、删除和详情查看;Schedule 必须具有完整开始时间和结束时间,可以绑定 Place 和多个 Reminder。
-
满足价值:用户可以管理会议、预约、上课、出行、打卡、健身和其他明确占用时间的安排。
-
典型场景:用户创建“明天下午三点到四点项目会议”,并设置提前十分钟提醒。
-
详细设计:
-
必填:标题、开始时间、结束时间。
-
可选:地点、备注、全天状态和提醒。
-
创建时检查开始时间早于结束时间。
-
存在冲突时提示,但第一版不自动调整。
-
修改时间后,关联 TIME Reminder 需要重新计算和注册。
-
修改地点后,关联地点 Reminder 必须重新校验。
-
删除 Schedule 时采用软删除并取消全部 Reminder 和设备注册。
-
删除完成后提供可配置短时间撤销入口;撤销成功时恢复 Schedule,并按当前有效性重新注册 Reminder。
-
删除操作采用软删除,保留必要操作日志,并支持在可撤销窗口内恢复 Schedule 及其有效 Reminder。
-
详情页展示提醒状态和最近一次触达结果。
-
-
功能:为 Schedule 创建基于具体时间的 Reminder,支持开始时、提前若干分钟和自定义触发时间。
-
满足价值:覆盖会议、预约、打卡和其他需要提前准备的场景。
-
典型场景:项目会议开始前十分钟收到提醒。
-
详细设计:
-
Reminder 类型为
TIME。 -
核心参数包括 trigger_at 或 lead_minutes、时区、触达内容和触发次数。
-
后端保存统一时间和用户时区。
-
客户端同步后注册操作系统本地通知。
-
修改 Schedule 时间时旧通知必须取消。
-
时间已经过去时不注册无效提醒。
-
通知点击进入对应 Schedule 详情。
-
无网络时,已经注册的本地提醒仍可执行。
-
前台触发时优先弹窗 + TTS,其他状态使用系统通知。
-
-
功能:当用户进入目标 Place 的临近区域时触发 Reminder,用于表达“快到某地时提醒”。
-
满足价值:比固定时间更贴近用户真实移动进度,并比到达后提醒更早提供准备时间。
-
典型场景:用户距离公司约 500 米时提醒打卡。
-
详细设计:
-
Reminder 类型为
LOCATION_APPROACH。 -
必须绑定用户已经保存或明确选择的 Place。
-
核心参数包括 approach_radius、active_from、expires_at、trigger_limit 和通知内容。
-
“快到”没有统一距离,系统应提供场景默认值,并在执行结果中明确展示。
-
用户可以修改默认半径。
-
客户端使用系统地理围栏或等价低功耗能力执行。
-
不通过服务端持续获取位置。
-
一次性规则触发后取消注册。
-
当前已在临近范围内时,不承诺注册后立即触发。
-
定位权限不足时允许切换为 TIME Reminder。
-
-
功能:用户先进入指定 Place,稳定停留后再离开该区域时触发 Reminder。
-
满足价值:覆盖“先到停车区停车,再离开停车区去公司”“先进入取货区,再离开时提醒检查物品”等两阶段场景。
-
典型场景:用户进入公司停车区,停车后离开停车区时提醒打卡。
-
详细设计:
-
Reminder 类型为
LOCATION_ARRIVE_EXIT。 -
必须绑定代表前置区域的 Place,不自动使用最终目的地中心点。
-
核心参数包括 enter_radius、exit_radius、min_dwell_seconds、active_from、expires_at 和 trigger_limit。
-
状态机为 waiting_enter → inside → waiting_exit → triggered。
-
进入和离开半径可以设置不同值,降低边界抖动。
-
进入后必须满足最短停留时间,避免路过触发。
-
对连续进入/离开事件做去抖和幂等处理。
-
系统只声称检测区域进入和离开,不声称识别停车、下车或步行。
-
一次性规则触发后立即取消相关围栏。
-
规则过期、日程取消或 Place 修改后状态机必须失效。
-
-
功能:保存和管理用户通过地图选择或明确保存的公司、家、学校、健身房、停车区等 Place,为地点提醒提供稳定坐标和默认半径。
-
满足价值:用户不需要每次重新搜索地点,Agent 也不会仅凭地点名称猜测坐标。
-
典型场景:用户首次说“公司停车区”,系统要求用户搜索或地图选点并保存;后续可以直接复用。
-
详细设计:
-
Place 至少包含名称、经纬度、地址文本和默认半径。
-
支持地图搜索、当前位置选择和手动移动地图选点。
-
同名地点需要用户选择。
-
“公司”和“公司停车区”可以是两个独立 Place。
-
删除 Place 前展示受影响 Reminder。
-
Place 不保存用户实时位置。
-
用户可以修改名称、坐标和默认半径。
-
修改 Place 后关联地点 Reminder 需要重新注册。
-
-
功能:在 Reminder 触发后,根据应用运行状态和用户设置选择应用内弹窗、本地 TTS 或系统通知进行触达。
-
满足价值:提高前台使用时的感知效率,并为后台、进程死亡和断网状态提供可靠降级。
-
典型场景:应用在前台时弹出“快到公司了,记得打卡”并朗读;应用被杀时由系统通知和声音提醒。
-
详细设计:
-
前台且界面可交互:应用内弹窗 + 可配置本地 TTS。
-
前台但 TTS 被关闭或失败:保留弹窗,并按设置播放系统声音或震动。
-
后台:系统本地通知 + 声音/震动。
-
进程死亡:依赖预先注册的系统本地通知或地理围栏事件,不承诺 TTS。
-
断网:已同步规则照常本地执行;网络不是本地弹窗和 TTS 的必要条件。
-
通知内容默认简短,避免朗读完整敏感备注。
-
用户可以设置是否朗读标题、地点和自定义提醒文本。
-
锁屏或耳机状态等隐私场景可以自动降级为只显示通知,具体策略后续验证。
-
同一 Reminder 的多个触达渠道必须幂等,避免弹窗和系统通知重复打扰。
-
记录实际触达渠道、时间和结果。
-
-
功能:同步后端或本地业务库中的 Reminder 与当前设备上的本地通知、地理围栏和两阶段状态机,记录注册、触发、触达、失败、取消和过期状态。
-
满足价值:用户能够知道提醒是否真正生效,并避免修改后旧规则继续触发。
-
典型场景:用户把会议从三点改到四点,客户端取消原三点通知并注册新的三点五十分通知。
-
详细设计:
-
每个 Reminder 具有版本号。
-
客户端按版本删除旧注册并创建新注册。
-
App 启动、恢复前台或网络恢复时执行一致性检查。
-
权限变化后重新同步失败规则。
-
设备重启后按平台能力恢复注册。
-
注册失败不回滚 Schedule。
-
用户可以看到 pending_sync、registered、active 和 failed 等状态。
-
条件触发与通知触达分别记录,避免把触达失败误判为条件未触发。
-
两阶段地点提醒需要保存最小本地状态,以便系统事件到达后继续状态迁移。
-
同一版本的重复事件必须幂等处理。
-
-
功能:右上角设置入口承载常用地点、默认提醒、麦克风权限、通知权限、定位权限、TTS 和隐私选项。
-
满足价值:低频配置不干扰主页面,同时权限状态清晰可见。
-
典型场景:用户发现公司提醒未生效,进入设置查看后台定位权限并跳转系统设置。
-
详细设计:
-
权限按使用场景申请。
-
首次语音输入时申请麦克风。
-
首次创建提醒时申请通知。
-
首次创建地点提醒时申请定位。
-
前台 TTS 首次启用时说明朗读范围和隐私影响。
-
权限拒绝后提供明确降级能力。
-
默认不保存连续位置。
-
原始音频默认不长期保存,具体策略需在隐私规则中明确。
-
用户可以删除保存的地点和语音数据。
-
提供提醒诊断页面或状态入口,显示通知、定位、后台限制和注册状态。
-
| 概念 | 定义 | 作用 | 边界 |
|---|---|---|---|
| Home | 产品唯一一级页面 | 展示月历和日期日程 | 不作为独立聊天页面 |
| Selected Date | 当前用户选中的日期 | 决定下方日程查询范围 | 不改变日程本身 |
| Agent | 系统中唯一的自然语言业务处理单元 | 理解意图、维护有限多轮任务上下文、补参、定位对象和生成执行请求 | 不直接操作数据库实现 |
| Schedule | 有完整起止时间的安排 | 表示明确时间占用 | P0 唯一事项对象 |
| Schedule Time State | 由当前时间计算的未开始、进行中、已结束 | 帮助展示日程进度 | 不代表是否完成 |
| Place | 用户通过地图选择或明确保存的地点 | 支持地点提醒复用 | 不表示实时位置 |
| Reminder | 绑定 Schedule 的提醒规则 | 描述时间或地点触发条件 | 不改变 Schedule 本身 |
| Voice Command | 一次语音或文字请求 | 承载查询或操作意图 | 转写文本不等于业务事实 |
| Interaction Context | 当前有限多轮任务上下文 | 保存当前意图、已收集参数、缺失参数和匹配对象 | 执行、取消或超时后结束 |
| Action Result | 一次写操作的执行结果 | 展示新值、旧值、受影响提醒和撤销能力 | 不替代正式业务对象 |
| Reminder Registration | 设备上的系统提醒注册 | 实际执行通知或围栏 | 与业务规则可能短暂不同步 |
| Reminder Execution | 提醒执行记录 | 追踪条件和触达状态 | 不保存连续轨迹 |
| Device | 当前移动设备 | 执行本地提醒 | P0 不做多设备去重 |
User
├─ Device
├─ Place
├─ Schedule
│ └─ Reminder
│ ├─ Reminder Registration
│ └─ Reminder Execution
├─ Voice Command
├─ Interaction Context(临时)
├─ Action Result / Operation Log
约束:
-
P0 业务事项只有 Schedule。
-
Reminder 必须且只能绑定一个 Schedule。
-
一个 Schedule 可以绑定零个或多个 Reminder。
-
LOCATION_APPROACH和LOCATION_ARRIVE_EXITReminder 必须绑定 Place。 -
TIMEReminder 不要求绑定 Place。 -
Reminder Execution 必须关联原 Reminder 和执行 Device。
-
删除 Schedule 时取消其全部 Reminder。
-
删除 Place 前必须处理关联地点提醒。
-
Interaction Context 仅服务于当前一次任务;执行、用户取消或超时后结束,不作为开放式长期聊天记忆。
-
Action Request 必须经过确定性业务校验后才能写入;系统不设置独立的用户确认对象或待确认写操作。
-
可撤销写操作需要记录 Action Result 或 Operation Log,以支持恢复和问题排查。
| 状态 | 产生方式 | 作用 | 是否持久化 |
|---|---|---|---|
| UPCOMING | 当前时间早于 start_at | 表示日程尚未开始 | 通常运行时计算 |
| IN_PROGRESS | 当前时间位于 start_at 与 end_at 之间 | 表示日程正在进行 | 通常运行时计算 |
| ENDED | 当前时间晚于 end_at | 表示日程时间已经结束 | 通常运行时计算 |
| CANCELLED | 用户取消或删除日程 | 表示日程不再执行 | 需要持久化或保留审计记录 |
时间状态只用于日历展示、查询过滤和提醒生命周期判断。本期不记录日程完成结果,也不据此生成完成情况统计。
| 对比项 | TIME | LOCATION_APPROACH | LOCATION_ARRIVE_EXIT |
|---|---|---|---|
| 触发条件 | 到达具体时间 | 进入目标 Place 的临近范围 | 先进入目标区域并稳定停留,再离开区域 |
| 执行方 | 移动端操作系统 | 移动端操作系统或平台等价能力 | 移动端系统事件 + 本地状态机 |
| 是否依赖 Place | 否 | 是 | 是 |
| 是否需要定位权限 | 否 | 是 | 是 |
| 有效时间 | 由 trigger_at 决定 | 必须有 active_from 和 expires_at | 必须有 active_from 和 expires_at |
| 关键参数 | trigger_at / lead_minutes | approach_radius | enter_radius、exit_radius、min_dwell_seconds |
| 默认次数 | 一次 | 一次 | 一次 |
| 典型场景 | 会议前十分钟 | 快到公司时打卡 | 离开停车区时打卡 |
| 主要风险 | 系统调度延迟 | 定位精度和已在范围内 | GPS 抖动、状态丢失和漏事件 |
| 客户端状态 | 首选触达 | 兜底 | TTS 承诺 | 网络要求 |
|---|---|---|---|---|
| 前台且可交互 | 应用内弹窗 + 本地 TTS | 系统通知或声音/震动 | 可支持,但受用户设置影响 | 已同步规则不要求网络 |
| 前台但 TTS 不可用 | 应用内弹窗 | 系统声音/震动 | 不承诺 | 已同步规则不要求网络 |
| 后台且进程存活 | 系统本地通知 | 声音/震动 | 默认不承诺 | 不要求实时网络 |
| 进程被系统回收 | 预注册系统通知或围栏通知 | 应用下次启动显示记录 | 不承诺 | 不要求实时网络 |
| 无网络但规则已同步 | 按当前运行状态选择本地触达 | 状态本地记录,联网后上报 | 前台可用时可支持 | 不要求网络 |
| 无网络且规则未同步 | 无法保证新规则触发 | 显示 pending_sync,联网后注册 | 不适用 | 需要恢复网络完成同步 |
| 页面区域 | 承载内容 | 作用 | 说明 |
|---|---|---|---|
| 顶部月份 | 当前年份和月份 | 表达当前日历范围 | 支持切换和返回今天 |
| 设置按钮 | 地点、权限、默认提醒、TTS、隐私 | 低频配置入口 | 位于右上角 |
| 月视图 | 日期和日程标记 | 选择日期、查看整月密度 | 首页主体 |
| 日期日程区 | Schedule 列表 | 查看所选日期具体内容 | 日期变化后联动 |
| 语音按钮 | 语音 CRUD 和提醒配置 | 唯一智能操作入口 | 固定在底部中央 |
| 能力 | 出现位置 | 作用 | 说明 |
|---|---|---|---|
| 手动 CRUD | 日程列表和详情 | Agent 不可用时兜底 | 调用同一确定性业务能力 |
| 语音 CRUD | 底部语音按钮 | 查询和管理日程 | 缺参时有限追问,条件满足后直接执行 |
| 单 Agent 处理 | 语音请求链路 | 理解意图、补参、消歧并生成执行请求 | 不直接持有数据库实现权 |
| 有限多轮上下文 | 当前语音任务 | 保存必要槽位和目标对象 | 执行、取消或超时即结束 |
| 结果回显与撤销 | 写操作完成后 | 展示真实变更并恢复可撤销操作 | 不等同于执行前确认 |
| 日期联动 | 月历和日程列表 | 更新当前查看范围 | 不改变业务数据 |
| 提醒配置 | 有限多轮语音交互、日程详情 | 创建三种 Reminder | 一个日程可有多个规则 |
| 地点管理 | 设置、地点提醒流程 | 保存和复用 Place | 坐标必须由用户地图选择或明确保存 |
| 通知触达 | 前台弹窗、TTS、系统通知 | 让用户感知 Reminder | 按客户端状态降级 |
| 权限诊断 | 设置、提醒失败提示 | 修复麦克风、通知、定位和后台问题 | 权限按需申请 |
| 提醒同步 | 客户端全局能力 | 保持业务规则与设备注册一致 | 启动、联网和变化时校验 |
| 状态追踪 | 日程详情、设置 | 展示提醒是否生效 | 失败不回滚日程 |
| 隐私保护 | 地点、语音、通知 | 限制敏感数据处理 | 不保存连续位置轨迹 |
统一用例:
用户需要在一个工作日内管理以下日程:
-
明天早上八点到九点到公司打卡,快到公司时提醒。
-
为打卡日程增加“进入公司停车区后,离开停车区时提醒”。
-
用户先说“明天下午开项目会”,Agent 追问必要时间;用户回答“三点到四点,提前十分钟提醒”,系统直接创建日程和提醒。
-
明天晚上七点到八点健身。
-
将项目会议改到下午四点到五点。
-
查询明天全部安排。
-
删除打卡日程,验证系统直接软删除并使两个地点提醒失效。
-
点击或说出“撤销刚才的删除”,验证日程恢复,并按规则重新注册有效提醒。
说明:信息结构通过单页原型验证;单 Agent、任务型有限多轮、无独立确认的直接执行、结果回显与撤销,以及语音 CRUD、三类提醒、通知触达、权限和同步通过统一用例实测。
统一输入:
| 输入项 | 内容 |
|---|---|
| 首页 | 当前月份月历,默认选中今天 |
| Schedule 1 | 明天 08:00—09:00 到公司打卡 |
| Place 1 | 公司,地图选点并保存,临近半径 500 米 |
| 位置临近提醒 | 明天 06:00—10:00 进入公司临近区域时提醒一次 |
| Place 2 | 公司停车区,地图选点并保存,进入半径 150 米,离开半径 220 米 |
| 到达后离开提醒 | 明天 06:00—10:00 进入停车区并停留 60 秒后,离开时提醒一次 |
| Schedule 2 多轮输入 | 第一轮“明天下午开项目会”;第二轮“三点到四点,提前十分钟提醒” |
| 时间提醒 | 提前十分钟 |
| Schedule 3 | 明天 19:00—20:00 健身 |
| 修改 | 项目会议改到 16:00—17:00 |
| 查询 | 明天有什么安排 |
| 删除 | 删除到公司打卡,目标唯一后直接软删除 |
| 撤销 | 撤销刚才的删除,恢复日程和仍有效的提醒 |
| 验证目标 | 单页首页、日期联动、单 Agent、有限多轮、直接执行、结果回显、软删除与撤销、三类提醒、通知降级、权限和同步 |
现状:
-
用户需要填写多个字段。
-
“快到公司提醒”难以通过固定时间表达。
-
简单进入公司范围不能覆盖停车后再离开的场景。
-
应用前台、后台、进程死亡和断网时的触达方式不一致。
-
修改日程后需要人工检查旧提醒。
-
通用语音助手通常只支持部分创建能力。
提议后形态:
| 验收项 | 通过标准 | 说明 |
|---|---|---|
| 单页首页 | ≥6/8 能理解月份、月历、日期日程、设置和语音按钮 | 信息结构可理解 |
| 日期选择 | 点击日期后正确更新 Schedule | 查看逻辑稳定 |
| 无底部 Tab | 首页不存在额外一级导航 | 保持单页心智 |
| 单一语音入口 | 只存在底部中央一个语音按钮 | 统一操作入口 |
| 单 Agent | 请求链路只经过一个 Agent,不出现主从或子 Agent 调用 | 符合新版架构 |
| 有限多轮 | 缺少必要参数或对象不唯一时只追问当前任务所需信息;执行、取消或超时后结束 | 交互边界清晰 |
| 无独立确认 | 不出现通用“是否确认创建/修改/删除”步骤 | 符合最新产品决策 |
| 语音创建 | 信息完整后直接创建 Schedule,并返回准确结果 | 捕获有效 |
| 语音查询 | 查询结果与数据库事实一致 | 查询可信 |
| 语音修改 | 目标唯一后直接修改,并展示实际前后变化、受影响 Reminder 和撤销入口 | 修改可控 |
| 语音删除 | 目标唯一后软删除,并取消关联规则;支持撤销恢复 | 高风险边界 |
| TIME Reminder | 正确注册本地时间通知 | 基础提醒有效 |
| LOCATION_APPROACH | 正确注册公司临近区域规则 | 临近提醒有效 |
| LOCATION_ARRIVE_EXIT | 正确完成进入、稳定停留、离开和触发状态迁移 | 两阶段提醒有效 |
| 多提醒规则 | 同一 Schedule 可同时绑定多个 Reminder | 模型可扩展 |
| 前台通知 | 触发时显示弹窗并按设置执行 TTS | 前台触达有效 |
| 后台兜底 | 应用后台或进程死亡时系统通知仍可触发 | 兜底有效 |
| 断网执行 | 已同步规则在断网时继续本地执行 | 不依赖实时网络 |
| 提醒同步 | 修改和删除后旧规则失效 | 生命周期一致 |
| 权限降级 | 拒绝定位后日程和时间提醒继续使用 | 核心不中断 |
| Agent 故障 | 手动 CRUD 和已有提醒继续可用 | Agent 非单点 |
| 隐私 | 不上传连续位置轨迹 | 权限边界明确 |
| 撤销 | 可撤销窗口内能够恢复最近一次支持撤销的创建、修改或软删除 | 误操作可恢复 |
| 可追踪性 | 请求、有限多轮上下文、执行请求、操作结果、Schedule、Reminder 版本、状态迁移和触达渠道可关联 | 问题可排查 |
边界与非法情况:
| 场景 | 系统必须如何处理 |
|---|---|
| Schedule 没有完整起止时间 | 不允许创建正式 Schedule |
| 时间表达存在歧义 | 继续追问直到时间明确;用户取消或超时则结束且不执行 |
| 修改对象不唯一 | 要求选择 |
| 删除对象不唯一 | 不执行删除 |
| Place 未保存 | 要求用户搜索或地图选点并保存 |
| Place 有多个同名地点 | 要求选择 |
| 停车区只提供“公司”名称 | 追问或要求用户选择停车区,不能擅自复用公司坐标 |
| 位置临近没有半径 | 采用可见的场景默认半径并执行,结果中展示该值,允许继续修改 |
| 通知权限拒绝 | 保存 Schedule,Reminder 标记失败 |
| 定位权限拒绝 | 地点提醒不可用,可改为时间提醒 |
| TTS 不可用 | 保留弹窗或系统通知 |
| 提醒规则未同步 | 显示 pending_sync |
| 日程改期 | 取消旧注册并注册新规则 |
| 日程删除 | 取消全部关联 Reminder |
| Place 删除 | 展示并处理关联地点提醒 |
| 用户已在围栏内 | 不承诺注册后立即触发 |
| 两阶段提醒未检测到进入 | 不能直接用一次离开事件触发 |
| 位置事件延迟 | 不承诺精确到秒 |
| GPS 边界抖动 | 去抖并使用不同进入/离开半径 |
| Agent 服务不可用 | 手动 CRUD 和已有提醒继续 |
| 网络中断 | 已注册本地提醒继续,新变更等待同步 |
| 进程死亡 | 使用系统通知兜底,不承诺 TTS |
| 本期不验收 | 独立待办、多 Tab、语音笔记、Goal、日程完成状态、复盘、自动排期、重排、多 Agent、团队协作、第三方日历和多设备去重 |
| 模块 | 验收标准 | 详细设计 |
|---|---|---|
| 单页首页信息架构 | 首页只包含月份、设置、月历、日期日程区和单一语音按钮 | 单页首页模块 |
| 月历与日期选择 | 正确展示月份、星期、日期、选中状态和日程标记 | 月历模块 |
| 日程展示 | 所选日期下展示 Schedule,按开始时间排序 | 日期日程模块 |
| 语音入口与有限多轮 | 单一语音按钮、语音转写、参数补全、对象消歧、直接执行和结果回显 | 语音输入模块 |
| 单 Agent | 全部自然语言业务请求由一个 Agent 处理,不存在主从或子 Agent 调用 | Agent 模块 |
| 有限多轮上下文 | 只保存当前任务的意图、已收集参数、缺失参数和匹配对象;执行、取消或超时后结束 | 交互上下文模块 |
| 直接执行与结果回显 | 参数完整、目标唯一且校验通过后直接执行,并返回真实写入结果 | 语音输入模块 |
| 撤销 | 支持符合条件的创建、修改和软删除恢复 | 操作日志与撤销模块 |
| Schedule | 支持手动和语音 CRUD,正式对象具有完整起止时间 | 日程模块 |
| TIME Reminder | 支持开始前、开始时和自定义时间提醒 | 时间临近提醒模块 |
| LOCATION_APPROACH | 支持进入用户已保存或明确选择的 Place 临近区域时提醒一次 | 位置临近模块 |
| LOCATION_ARRIVE_EXIT | 支持进入、停留、离开后提醒一次 | 两阶段地点提醒模块 |
| Place | 支持地图搜索、当前位置、坐标选择与保存和常用地点管理 | 常用地点模块 |
| 前台触达 | 应用内弹窗和可配置 TTS 正常工作 | 通知触达模块 |
| 系统兜底 | 后台、进程死亡和断网场景按平台能力触发系统通知 | 通知触达模块 |
| 提醒同步 | 新建、修改和删除后设备注册与业务规则一致 | 提醒同步模块 |
| 提醒状态 | 展示 pending_sync、registered、active、triggered、failed 等状态 | 状态模块 |
| 设置与权限 | 右上角入口可查看和管理权限、地点、TTS 和默认提醒 | 设置模块 |
| 权限降级 | 麦克风、通知、定位或 TTS 不可用时有明确替代路径 | 权限模块 |
| 隐私 | 不保存或上传连续位置轨迹,TTS 不朗读敏感长文本 | 隐私模块 |
| 手动兜底 | Agent 或 ASR 不可用时手动 CRUD 正常工作 | 全局业务能力 |
| 数据边界 | Agent 不直接操作数据库实现;条件满足后调用确定性业务能力直接执行 | Agent 与业务边界 |
| 可追踪性 | 请求、有限多轮上下文、执行请求、操作结果、业务对象、Reminder 版本、状态迁移和触达方式可关联 | 日志与撤销边界 |
| 用户需要能回答的问题 | 通过标准 |
|---|---|
| TimeFlow 和普通日历有什么区别? | ≥4/8 能说出语音完整 CRUD 或三类智能提醒 |
| TimeFlow 现在管理哪些事项? | 8/8 知道只有日程,没有独立待办 |
| 系统中有几个 Agent? | 8/8 知道只有一个 Agent |
| 打开应用后首先看到什么? | ≥6/8 能说出月历和当天日程 |
| 如何查看其他日期? | ≥6/8 知道点击月历日期 |
| 日程显示在哪里? | ≥6/8 知道位于月历下方 |
| 如何使用 Agent? | ≥6/8 能找到底部中央语音按钮 |
| 是否有语音记录或语音笔记? | 8/8 知道没有这些独立功能 |
| Agent 什么时候会执行写操作? | 8/8 知道缺参或对象不唯一时会追问,信息完整且目标唯一后直接执行并返回结果 |
| 是否还会询问“确认创建/修改/删除”? | 8/8 知道不会设置通用确认步骤 |
| 执行错了怎么办? | ≥6/8 知道可以查看实际结果,并对支持撤销的操作立即撤销 |
| “快到公司提醒”如何工作? | ≥6/8 知道需要保存公司地点、临近半径和定位权限 |
| “到停车区后离开再提醒”如何工作? | ≥6/8 知道要先进入停车区、稳定停留并再离开 |
| 它能自动判断我停车或下车了吗? | 8/8 知道不能,只能判断地理围栏事件 |
| 应用前台时怎么提醒? | ≥6/8 知道使用弹窗并可 TTS |
| 应用被杀后怎么提醒? | ≥6/8 知道依赖系统本地通知,不保证 TTS |
| 没有网络还能提醒吗? | ≥6/8 知道已同步规则可本地执行,新规则需联网同步 |
| App 是否持续记录位置? | ≥6/8 知道不保存连续轨迹 |
| 拒绝定位后还能用吗? | ≥6/8 知道月历、日程和时间提醒仍可用 |
| 日程改期后旧提醒怎么办? | ≥4/8 知道系统会取消旧规则 |
| 地点提醒是否保证精确到秒? | ≥6/8 理解可能受系统和定位环境影响 |
指标用于不少于 30 名真实试用用户;5—8 人原型测试只报告完成情况和失败原因。
| 指标 | 目标值 | 说明 |
|---|---|---|
| 首页日期查看成功率 | ≥95% | 用户正确选择日期并看到对应 Schedule |
| 语音输入到执行完成率 | ≥70% | 从开始语音到成功执行或得到明确不可执行结果 |
| 标准意图识别准确率 | ≥90% | Schedule CRUD 与 Reminder 配置 |
| 单 Agent 请求完成率 | ≥90% | 不依赖其他 Agent 完成标准业务请求 |
| 语音 CRUD 任务成功率 | ≥85% | 用户最终完成目标操作 |
| 查询事实一致率 | 100% | 查询结果与数据库一致 |
| 独立确认步骤出现率 | 0 | P0 不展示“是否确认创建/修改/删除”的通用确认步骤 |
| 有限多轮任务完成率 | ≥85% | 缺参或对象不唯一的标准任务最终完成或被用户明确取消 |
| 可撤销操作恢复成功率 | 100% | 处于可撤销窗口内的单对象创建、修改或软删除能够恢复 |
| 错误对象修改率 | ≤2% | 修改不作用于错误 Schedule |
| 时间提醒注册成功率 | ≥95% | 权限和系统能力正常设备 |
| 时间提醒受控触发率 | ≥95% | 测试环境中的有效规则 |
| 位置临近围栏注册成功率 | ≥90% | 权限和设备能力正常 |
| 位置临近受控触发率 | ≥85% | 考虑平台与定位环境 |
| 两阶段规则注册成功率 | ≥90% | 权限和设备能力正常 |
| 两阶段状态迁移成功率 | ≥80% | 完成进入、停留、离开和触发 |
| 两阶段误触发率 | ≤10% | 未完成有效进入时不应触发离开提醒 |
| 重复地点提醒率 | ≤5% | 一次性规则不应反复提醒 |
| 过期地点提醒误触发率 | 0 | 超出有效期不得触发 |
| 前台弹窗触达率 | ≥95% | 应用前台可交互时 |
| 前台 TTS 成功率 | ≥90% | TTS 已开启且系统能力正常 |
| 后台系统通知受控触发率 | ≥90% | 权限与系统能力正常设备 |
| 进程死亡时间提醒触发率 | ≥90% | 本地时间通知标准测试 |
| 断网已同步规则触发率 | 与联网受控测试差异≤5% | 验证本地执行 |
| 提醒更新一致率 | ≥95% | 修改后旧规则正确失效 |
| 提醒删除一致率 | ≥95% | 删除日程后旧规则不触发 |
| 提醒失败可见率 | 100% | 注册或触达失败必须显示 |
| 手动兜底成功率 | ≥95% | Agent 不可用时完成 CRUD 和状态更新 |
| 连续位置轨迹上传量 | 0 | P0 不上传连续轨迹 |
| 失败信号 | 可能原因 | 收缩方案 |
|---|---|---|
| 用户看不懂单页结构 | 月历与日程层级不清 | 强化日期标题和日程卡片视觉 |
| 月历下方内容过多 | 同一天日程数量高 | 增加折叠和查看全部 |
| 用户很少使用语音 | 转写慢、多轮过长或直接执行结果不可信 | 先聚焦创建和查询,减少必填参数并加强结果回显 |
| 语音修改错误率高 | 对象定位复杂 | 对象不唯一时强制选择;执行后展示前后值并提供撤销 |
| 语音删除风险高 | 同名日程过多或用户表达错误 | 坚持单对象、目标唯一、软删除和撤销;仍不达标则将语音删除移出 P0 |
| 单 Agent 意图过多导致稳定性下降 | 意图分类或参数结构不清 | 缩小 P0 意图集、加强结构化工具和回归测试,不立即引入多 Agent |
| 用户不理解位置临近半径 | 专业参数暴露过多 | 使用场景化默认值并隐藏高级参数 |
| 位置临近价值低 | 场景不足或精度不稳定 | 降级为实验能力,保留时间提醒 |
| 到达后离开漏触发高 | 系统围栏事件不稳定或状态丢失 | 增加本地状态恢复;仍不达标则收缩为普通离开提醒或手动设置 |
| 到达后离开误触发高 | GPS 抖动或路过目标区域 | 增加最短停留、不同进出半径和去抖 |
| 用户误以为系统能识别停车 | 文案夸大能力 | 统一改为“进入区域后离开提醒”,强化边界说明 |
| 前台 TTS 打扰用户 | 内容过长或场景不合适 | 默认只朗读短标题,允许全局关闭 |
| 后台通知漏触发 | 权限、厂商后台策略或未注册 | 增加诊断和启动重建;不承诺不可控设备 100% |
| 断网时新提醒未生效 | 用户不理解同步状态 | 强化 pending_sync 标识和联网提示 |
| 用户拒绝定位权限 | 隐私顾虑或价值不清 | 强化用途说明并推荐 TIME Reminder |
| 提醒同步不稳定 | 版本和设备注册不一致 | App 启动时全量重建当前有效规则 |
| 手动兜底使用困难 | 过度依赖 Agent | 补齐表单入口和详情编辑能力 |
| 用户只需要普通日历 | 差异化能力没有价值 | 优先保留最稳定的单页日程与时间提醒,暂停地点实验 |