AI日程陪伴
让自然语言先理解,再让用户确认。
对话式的日程创建流程,保存之前让每一步解析清晰可见。
- FORM
- Local-first mobile MVP
- ROLE
- 独立完成产品、交互与移动端实现
- TECHNOLOGY
- Expo / React Native / Zustand / LLM
- CORE FLOW
- 输入 → 解析 → 确认 → 本地保存 → 提醒

一句话,还不是一条日程
移动端表单的问题不只是输入慢。自然语言虽然更轻,却会带来新的不确定:没有说日期、时间只有“晚上”、同一时段已经有安排,或者一句“删掉下午的会”匹配到了多条记录。
因此我没有把聊天框做成一个直接执行指令的入口,而是把它设计成意图收集器:解析只有四种出口——单条草稿、多条草稿、继续追问、承认没懂,不存在第五种“看起来懂了”的静默写入。AI 负责理解与提取,规则负责日期解析、查询、冲突检查和动作边界。



语音和文字共用同一条解析链路:语音交给系统原生识别,按住说话,识别文本与打字输入从同一个入口进入解析。信息足够时生成结构化草稿;信息不足时追问缺失的日期、时段或时长,并附上可点选的建议;模型不可用时,回到中文日期与时段规则继续解析——从“大后天”“下周三”到“半小时后”,二十多种日常表达不依赖模型也能落成草稿。
确认卡是对话真正的落点


自然语言输入最容易制造一种错觉:系统好像已经“听懂了”。所以解析结果不会静默写入,而是转成一张可以检查的确认卡,把标题、日期、开始时间和时长重新交还给用户。模型输出要先过一道字段校验才够格成卡:没有标题、时间无法解析就不放行,时长缺失时按一小时补齐,把握不足的结果一律强制确认。
这张卡片也是确定性逻辑和对话界面的交界面:AI 输出可以变化,但用户最终确认的字段结构保持稳定,后续存储、提醒与日历展示只依赖这份结构化结果。时区在进入这一层之前就被钉在东八区,“明天下午 3 点”不会因为模型按 UTC 理解而偏移八小时。
冲突不是报错,而是下一步选择

发现时间重叠后,简单提示“创建失败”仍会把重新安排的工作留给用户。这里会保留原始意图,同时按 30 分钟一档在 8 点到 22 点之间向前搜索,给出几条可用的空闲时段;采用哪条只替换起止时间,其余字段原样保留。候选只是建议,用户仍可以忽略冲突,强制创建。
删除需要比创建更谨慎


删除复用查询的定位逻辑,结果只有四种:找不到时说明还缺什么条件;唯一命中也照样弹出确认卡;匹配多条就摊开逐项选,还能直接回复编号;批量删除必须带明确的范围才放行。回复“取消”随时中断,确认执行的那一刻,被删日程的提醒通知一并取消——一句不完整的指令,不会直接变成不可见的数据变化。
对话负责输入,时间线负责行动
如果所有信息都留在聊天记录里,用户仍然无法快速判断“现在该做什么”。首页把事件按状态重新分区:已逾期单独成组,进行中或接下来的一条升为主行动卡,刚完成的一条以删除线淡出留作记录,未确认的草稿永远置顶;状态随当前时间推导,每 30 秒刷新一次。逾期任务的完成按钮不叫“完成”,叫“还来得及”——时间线的语气也参与降低重启的成本。


周视图把未来七天按日分组,月视图在整月网格上用圆点标出有安排的日子,卡片配色随状态区分。对话里零散创建的日程,在这里重新变得可扫描、可管理——输入入口可以很轻,但信息架构必须稳定。
让坚持被看见,让设置有归处

对话负责创建,日历负责总览,完成之后呢?统计页把每次勾选完成的事件积累起来:今日成就给出已完成、专注时长和连续打卡三个数字,全部由本地完成事件推导,按时完成才计入专注时长;连续打卡的算法刻意宽容,今天还没完成不算中断。周度趋势把一周节奏连成可见的曲线,六枚成就徽章从“完成第一个任务”到“连续七天”,门槛都不高。设计立场写在页面顶部:看见进步,比盯着没完成的部分更重要。

这些数字同样出现在个人中心——同一份本地完成事件,不另算一套口径。成就进度排成一条轨道;设置项里深色模式真实切换并持久保存,其余入口先验证位置与文案。AI 助手的界面可以很轻,但身份、数据和权限需要固定的去处。
Local-first 带来的取舍
MVP 将日程、完成状态和统计事件保存在设备本地:持久化只保留事件与时间线两组数据,派生内容在下次启动时从事件重算,不存过期副本。提醒闭环同样挂在事件上——每条日程可选不提醒、提前 10 分钟、30 分钟或 1 小时,创建与编辑先取消旧通知再重新排期,完成或删除的瞬间通知同步取消。这个范围降低了部署成本,也让我能先验证最关键的“理解—确认—保存”流程。
统计反馈只根据本地完成事件计算趋势,用来帮助用户回看一周节奏,而不是把有限数据包装成对用户习惯的深度判断。
下一轮会把模型调用迁到服务端,接入系统日历,并用更多真实中文表达验证时间解析与冲突策略。等这些基础足够稳定,再考虑账号和跨设备同步,会比过早扩大产品范围更可靠。