端侧闹钟最佳实践
端侧闹钟 Function Call 使用说明(最佳实践)
本文介绍如何使用端侧闹钟,包括 Function Call 如何配置、各参数含义,以及不同闹钟设置场景下参数之间的提取逻辑。
文档约定
所有随"当前日期"变化的日期值,统一用占位符 dddd-yy-mm 表示;多个日期用 、 分隔。实际取值由端侧/模型按下方规则结合系统时间计算。
时间统一 24 小时制、两位数 HH:mm(如 07:00、09:00)。
开关状态 enabled 取值统一为 ON / OFF。
前置条件 :必须向模型注入用户本地时区的当前系统时间,否则相对时间、今天/明天、跨年、"下周一"等均无法正确计算。
一、Function Call 配置
在控制台"添加 Function"面板中逐项配置。下面按面板字段说明填写规范,并给出本模板的推荐值。
1.1 配置项逐项说明
配置项
是否必填
填写规范 / 最佳实践
Function 描述
必填
采用"功能概括 + 命中条件",语言简洁(≤500字)。先一句话说明这个 Function 做什么,再列触发意图的关键动词;当与其他 Function 有语义冲突时,务必补充边界说明 。例:manage_pomodoro 描述里要写清"专注/番茄钟/学习计时命中本函数,纯计时器/倒计时/秒表命中 manage_countdown/manage_stopwatch"。
Function 例句
必填
覆盖该功能的典型说法与边界场景,建议每个 Function ≥10 条。要覆盖:单次/循环、多时间/多日期、相对时间、模糊时段、易混淆表达等。例句越贴近真实口语,命中越准。
快速匹配短语
选填
固定、高频的说法可配成快速短语,命中后跳过模型直接执行 ,降低延迟。适合"开始专注""重置倒计时""开始秒表"这类无参数、固定措辞的指令。
请求地址
必填
二选一:发送 SDK 消息 (命中后把结构化结果下发端侧、由端侧执行)或 HTTP 协议 (回调服务端)。本模板闹钟均由端侧管理,统一用 发送 SDK 消息 (callMode=SDK_MSG)。
执行前确认
必填
否=直接执行;是=先向用户确认命中的函数与参数再执行。建议对破坏性操作(delete_alarm、清空类)开启 是 ,避免误删;新增/查询/开关可用 否 保证流畅。
是否定时执行
必填
否=识别到意图立即下发;是=到指定时间才把消息下发端侧(如"5点帮我开窗帘")。闹钟的触发由端侧自行管理,此处统一选 否 。
函数参数
按需
逐个添加参数,填 paramName、类型、是否必填、参数描述。参数描述是命中质量的关键 ,提取规则、取值校验、示例都写在这里(见第二、三节)。
参数样例
选填
配置若干"query → 参数结果"样例作为 few-shot,能显著提升多参数、易混场景的抽取准确率。建议把本文场景表里的典型行配成样例。
1.2 各 Function 配置明细(逐个)
本模板共 10 个 Function ,全部 callMode=SDK_MSG、systemInternal=false。下面逐个列出配置;参数的完整提取规则见第二、三节,此处只给参数清单与一句话说明。
① set_alarm 创建闹钟
描述 :创建新闹钟或新的定时提醒。仅当用户表达"设置""新增""定一个""提醒我""叫我"等新建意图时命中。
执行设置 :执行前确认 否 · 定时执行 否
例句 :设置一个早上七点的闹钟;新增一个明天八点半的闹钟;10分钟后提醒我喝水;明天早上七点叫我起床;每天晚上十点提醒我吃药;周一和周三早上七点的闹钟;明天下午2点到4点有个会议日程。
参数
类型
必填
说明
time
String
是
触发时间 HH:mm;支持多值、时间段取开始、相对时间换算
date
String
否
单次日期 dddd-yy-mm;只给时间点时按今天/明天规则补
repeat_days
String
否
循环周期,仅"每…"循环意图填
label
String
否
提醒事项,不含"闹钟"等功能词
② delete_alarm 删除闹钟
描述 :删除一个或多个已有闹钟。仅当用户表达"删除""删掉""取消""清空""都删了"等删除意图时命中。
执行设置 :执行前确认 否 · 定时执行 否
例句 :删除今天和明天的闹钟;把闹钟都删了;清空所有闹钟;删除每天7点的闹钟;删除每周一早上7点的闹钟。
参数
类型
必填
说明
time
String
否
时间点或时间段筛选
date
String
否
日期筛选(未指定不补今天/明天)
repeat_days
String
否
循环周期筛选
type
String
否
单次/循环/全部;无任何参数时端侧也按全部
label
String
否
按提醒事项筛选
③ modify_alarm 修改闹钟
描述 :修改已有闹钟的触发时间/日期/星期/重复方式/提醒事项,或按相对量提前/推迟。命中"修改""调整""改成""改到""提前""推迟""延后"等意图。
执行设置 :执行前确认 否 · 定时执行 否
例句 :把7点的闹钟改成8点;把明天的闹钟推迟半小时;把明天下午3点的闹钟改到5点。
参数
类型
必填
说明
old_time
String
否
旧触发时间 HH:mm,定位目标;多值用、连接
new_time
String
否
新触发时间 HH:mm;与 time_offset 互斥
old_date
String
否
原日期 dddd-yy-mm,定位目标
new_date
String
否
新日期 dddd-yy-mm
old_weekday
String
否
原星期/周期,定位循环闹钟
new_weekday
String
否
新星期/周期
time_offset
String
否
相对调整量(分钟),正=推迟负=提前;与 new_time 互斥
④ query_alarm 查询闹钟
描述 :查询已有闹钟。仅当用户表达"查询""查看""有哪些""有没有""是几点""告诉我"等查询意图时命中。
执行设置 :执行前确认 否 · 定时执行 否
例句 :我现在有哪些闹钟;7点有闹钟吗;查询8点到10点的闹钟;明天10点以后有哪些闹钟;我有哪些循环闹钟;有吃药的闹钟吗。
参数
类型
必填
说明
time
String
否
时间点或时间段筛选
date
String
否
日期筛选(未指定不补今天/明天)
repeat_days
String
否
循环周期筛选
label
String
否
按提醒事项筛选
type
String
否
单次/循环/全部
⑤ set_alarm_enabled 打开/关闭闹钟
描述 :打开或关闭已存在的闹钟。命中"打开/启用/恢复/关闭/停用"等状态切换意图。不创建、不删除、不修改内容。
执行设置 :执行前确认 否 · 定时执行 否
例句 :打开明天早上8点的闹钟;关闭晚上10点的闹钟;停用每周三的闹钟;把循环的闹钟打开;打开所有闹钟。
参数
类型
必填
说明
enabled
String
是
目标状态 ON/OFF(核心意图,必填)
time
String
否
时间点或时间段筛选
date
String
否
日期筛选(未指定不补今天/明天)
repeat_days
String
否
循环周期筛选
label
String
否
按提醒事项筛选
type
String
否
单次/循环/全部
⑥ manage_countdown 倒计时
描述 :控制倒计时,支持开始(新建/打开/设置)、修改、增加、减少、重置(清空)。
执行设置 :执行前确认 否 · 定时执行 否
例句 :设置倒计时5分钟;打开倒计时;把倒计时修改为20分钟;增加倒计时2分钟;减少倒计时30秒;重置/清空倒计时。
参数
类型
必填
说明
operation
String
否
开始/修改/增加/减少/重置,默认开始
duration
Number
否
目标时长(秒),30–86400;创建未给时端侧补默认
relative_duration
Number
否
相对增减(秒),增加为正、减少为负
⑦ manage_pomodoro 番茄钟(专注)管理
描述 :管理当前番茄钟/专注计时,支持创建、继续、暂停、停止、查询。"专注/番茄钟/学习计时"语义命中本函数。
执行设置 :执行前确认 否 · 定时执行 否
例句 :开始专注;开始25分钟专注;半小时专注;暂停番茄钟;继续番茄钟;结束专注;已经专注多久了。
参数
类型
必填
说明
action
String
否
创建/继续/暂停/停止/查询,默认创建
duration
Number
否
本次专注时长(秒);创建时需要,未给则端侧补默认
⑧ get_pomodoro_stats 番茄钟统计查询(只读)
描述 :查询番茄钟统计数据,指标(数量/时长/状态/概览)× 时间(某天/累计总计)。只读,不改变状态。
执行设置 :执行前确认 否 · 定时执行 否
例句 :今天完成了几个番茄;我一共完成了多少个番茄;昨天专注了多长时间;查看今天的番茄任务完成情况;番茄钟用得怎么样。
参数
类型
必填
说明
statistic_type
String
否
数量/时长/状态/概览,默认概览
time_range
String
否
总计 或某天 dddd-yy-mm;未提时间默认今天
⑨ manage_stopwatch 正计时 / 秒表
描述 :管理正计时(从零累计、不设终点)。支持创建、继续、暂停、停止、查询。不提取时长;说了时长/要到点提醒则命中 manage_countdown,专注语义命中 manage_pomodoro。
执行设置 :执行前确认 否 · 定时执行 否
例句 :开始正计时;开始秒表;暂停秒表;恢复正计时;结束秒表;秒表计了多久。
参数
类型
必填
说明
action
String
否
创建/继续/暂停/停止/查询,默认创建
⑩ query_course_schedule 课程表查询(只读)
描述 :查询课程表或课程安排。
执行设置 :执行前确认 否 · 定时执行 否
例句 :查询今天的课程表;查询今天下午的课程;查看周三的课程;查询本周的英语课程;查询周一的英语课。
参数
类型
必填
说明
date
String
否
具体日期 dddd-yy-mm,按用户表达换算
time_period
String
否
上午/下午,未指定不填
subject
String
否
科目名(数学/英语…),未指定不填
weekday
String
否
周一…周日,仅用户说星期时填
意图路由的关键边界 (描述里要写清,避免串味):闹钟五件套靠"动词"区分(定/删/改/查/开关);倒计时=有时长要到点提醒、正计时=不设终点、番茄钟=专注语义;番茄钟"当前状态"用 manage_pomodoro、"历史累计"用 get_pomodoro_stats。
二、参数字典(通用)
闹钟四类操作(增/删/改/查)共用下列参数,含义一致:
参数
含义
格式 / 取值
提取逻辑要点
time
触发时间 / 时间条件
HH:mm;时间段 HH:mm-HH:mm;多值用 、
校验:小时 00–23、分钟 00–59,越界视为无效
date
具体日期
dddd-yy-mm;多值用 、
单次闹钟用;相对日期按系统时间换算,见下
repeat_days
循环周期
每天/周一…周日/工作日/周末,多值用 、
仅循环闹钟 (表达含"每")填写
type
闹钟类型
单次 / 循环 / 全部
全部=不限类型;未抽到任何参数时端侧也按"全部"处理
label
提醒事项
文本
只提取事项本身(吃药、开会),不含"闹钟"等功能词
enabled
目标状态
ON / OFF
仅 set_alarm_enabled 用,必填
贯穿全文的四条核心提取逻辑:
单次 vs 循环 :表达里带"每"(每天/每周三/每个工作日)→ 循环,周期填 repeat_days、date 留空;不带"每"的星期(周三/这周三/下周三)→ 单次,换算成具体日期填 date。
今天 / 明天判断(仅新增场景) :只给时间点、未提日期时,把该时刻与当前系统时间比较——晚于当前→今天,早于或等于→明天。删除/查询/开关等筛选类操作未指定日期时,date 留空、不自动补今天/明天 (否则会漏匹配其他日期的目标闹钟)。
相对日期换算 :明天/后天、"X月X日"(今年已过则取明年)等,均以系统时间为基准换算成 dddd-yy-mm。
本周 / 下周的界定 :单说某星期几(如"周三")时,该星期几本周已过→取下周那天,未过→取本周那天 ;"本周X"同此规则,"下周X"明确指下一周的那天。
"全部"的识别 :用户说"所有/全部"→模型抽出 type=全部;当什么参数都没抽到时,端侧同样按"全部"处理 (即"有 type=全部"或"无任何参数"都代表全部闹钟)。
三、场景及参数逻辑
场景 1:新增闹钟(set_alarm)
支持新增单次闹钟和循环闹钟。time 为必填。
query
预期命中
说明
设置一个早上7点的闹钟
{"time":"07:00","date":"dddd-yy-mm"}
只给时间点:7点晚于当前→date=今天;早于或等于当前→date=明天
新增一个明天8点半的闹钟
{"time":"08:30","date":"dddd-yy-mm"}
"明天"→当前日期+1
10分钟后提醒我喝水
{"time":"HH:mm","date":"dddd-yy-mm","label":"喝水"}
相对时间:以系统时间+10分钟换算;跨过24:00则date取明天
明天早上7点叫我起床
{"time":"07:00","date":"dddd-yy-mm","label":"起床"}
"起床"提取为 label
7月10日上午9点提醒我开会
{"time":"09:00","date":"dddd-yy-mm","label":"开会"}
明确月日:今年7月10日已过→端侧可取明年,或视为无效(二选一,见问题11)
设置一个工作日6点50的闹钟
{"time":"06:50","repeat_days":"工作日"}
"工作日"含循环意图→循环闹钟,周期填 repeat_days、date 留空
每天晚上10点提醒我吃药
{"time":"22:00","repeat_days":"每天","label":"吃药"}
"每天"→循环闹钟
每周一和周三早上7点的闹钟
{"time":"07:00","repeat_days":"周一、周三"}
星期前带"每"→循环;多个星期全部保留、用、分隔
设置明天8点和10点的闹钟
{"time":"08:00、10:00","date":"dddd-yy-mm"}
同一日期、多个时间:time 用、分隔
设置明天和后天上午8点的闹钟
{"time":"08:00","date":"dddd-yy-mm、dddd-yy-mm"}
同一时间、多个日期:date 用、分隔
设置周五下午5点的闹钟
{"time":"17:00","date":"dddd-yy-mm"}
单次星期"周五"→换算成本周即将到来的周五日期
设置这周三早上8点的闹钟
{"time":"08:00","date":"dddd-yy-mm"}
"这周三"无"每"→单次,换算成具体日期
设置今天的闹钟
引导补全
time 必填且缺失→反问"要设置几点的闹钟"
明天7点65分设置一个闹钟
告知无效
分钟 65 越界(>59),判为无效时间
明天下午2点到4点有个会议日程
{"time":"14:00","date":"dddd-yy-mm"}
时间段只取开始时间作为触发时间
2027年10月25日上午9点到11点提醒准备ppt
{"time":"09:00","date":"dddd-yy-mm","label":"准备ppt"}
明确年月日直接换算;时间段取开始时间
法定工作日的上午9点提醒我上班
{"time":"09:00","repeat_days":"工作日","label":"上班"}
"法定工作日"→工作日循环
(多轮)设置每周工作日的闹钟 → 早上8点
第一轮反问几点;第二轮 {"time":"08:00","repeat_days":"工作日"}
time 缺失先引导补全,补全后合并结果
场景 2:删除闹钟(delete_alarm)
支持从时间、闹钟类型、标签等维度删除;参数均为"定位要删哪些"的筛选条件。
query
预期命中
说明
删除所有闹钟
{"type":"全部"}
无任何限定条件、只有"所有/全部"→ type=全部
删除今天和明天的闹钟
{"date":"dddd-yy-mm、dddd-yy-mm"}
多个日期用、分隔
删除每天7点的闹钟
{"time":"07:00","repeat_days":"每天"}
"每天"→循环闹钟
删除每周一早上7点的闹钟
{"time":"07:00","repeat_days":"周一"}
"每周一"→循环,周期填 repeat_days
删除所有循环闹钟
{"type":"循环"}
按类型筛选
删除所有单次闹钟
{"type":"单次"}
按类型筛选
删除所有早上的闹钟
{"time":"06:00-08:59","type":"全部"}
模糊时段→时间段;"全部"表示不限类型
删除8点到10点的闹钟
{"time":"08:00-10:00"}
显式时间段
删除9点之前的闹钟
{"time":"00:00-08:59"}
开区间→时间段
删除下午3点和晚上8点的闹钟
{"time":"15:00、20:00"}
多个时间点
删除下周一的闹钟
{"date":"dddd-yy-mm"}
单次星期"下周一"→换算成日期
删除所有下周一的闹钟
{"date":"dddd-yy-mm","type":"全部"}
某范围内的全部:date 限范围 + type=全部 不限类型
删除9月20日所有的闹钟
{"date":"dddd-yy-mm","type":"全部"}
同上,date+全部
删除10号全部的闹钟
{"date":"dddd-yy-mm","type":"全部"}
"10号"→本月10日,若已过取次月
删除下周一和下周二全部的闹钟
{"date":"dddd-yy-mm、dddd-yy-mm","type":"全部"}
多日期 + 全部
删除下周一早上的全部闹钟
{"time":"06:00-08:59","date":"dddd-yy-mm","type":"全部"}
时段+日期+不限类型三重限定
删除今天所有单次闹钟
{"date":"dddd-yy-mm","type":"单次"}
指定"单次"类型时用 type=单次,不用全部
"全部"的用法 :全部一律用 type=全部 表达。无任何限定条件→单独 type:全部(即所有闹钟);有 time/date 等范围限定、只是不限类型→范围参数 + type:全部;明确单次/循环→type:单次/循环。
场景 3:查询闹钟(query_alarm)
查询维度:时间(点/段/日期)、闹钟类型(循环/单次/全部)、标签。查询为只读操作。
query
预期命中
说明
我现在有哪些闹钟
{"type":"全部"}
无限定、只有"所有/全部"→ type=全部
7点有闹钟吗
{"time":"07:00"}
单个时间点
查询8点到10点的闹钟
{"time":"08:00-10:00"}
显式时间段
下午有哪些闹钟
{"time":"14:00-17:59"}
模糊时段"下午"→时间段
告诉我明天10点以后有哪些闹钟
{"time":"10:00-23:59","date":"dddd-yy-mm"}
开区间"10点以后"+日期
7月15号有闹钟吗
{"date":"dddd-yy-mm"}
明确月日,今年已过取次年
周三有哪些闹钟
{"date":"dddd-yy-mm"}
单次"周三":本周三未过取本周、已过取下周
每周三有哪些闹钟
{"repeat_days":"周三"}
带"每"→查循环,用 repeat_days
我有哪些循环闹钟
{"type":"循环"}
按类型查
有吃药的闹钟吗
{"label":"吃药"}
按标签查
今天所有的闹钟提醒
{"date":"dddd-yy-mm"}
当天全部(未限类型可不填 type)
7点和8点有闹钟吗
{"time":"07:00、08:00"}
多个时间点
查看所有单次闹钟
{"type":"单次"}
按类型查
查看每周一和周三的闹钟
{"repeat_days":"周一、周三"}
多个循环星期
查询下周一全部的闹钟
{"date":"dddd-yy-mm","type":"全部"}
date 限范围 + 全部不限类型
后天一共有几个闹钟
{"date":"dddd-yy-mm"}
"一共/几个"为计数意图,按当天全部统计
查询下周一8点到10点的闹钟
{"time":"08:00-10:00","date":"dddd-yy-mm"}
时段+日期取交集
查询周一所有的闹钟
{"date":"dddd-yy-mm","type":"全部"}
有 date/time 限制时,为 date 与 type 的交集
查询明天循环的闹钟
{"date":"dddd-yy-mm","type":"循环"}
日期+类型取交集
场景 4:打开 / 关闭闹钟(set_alarm_enabled)
enabled 必填,取值 ON(打开/启用/恢复)或 OFF(关闭/停用);其余为定位闹钟的筛选条件。
query
预期命中
说明
打开明天早上8点的闹钟
{"enabled":"ON","time":"08:00","date":"dddd-yy-mm"}
明确"明天"→填 date
关闭晚上10点的闹钟
{"enabled":"OFF","time":"22:00"}
"晚上10点"是时间点→22:00;未指定日期不补 date
停用每周三的闹钟
{"enabled":"OFF","repeat_days":"周三"}
"每周三"→循环
把所有循环闹钟打开
{"enabled":"ON","type":"循环"}
按类型定位
关闭8点和10点的闹钟
{"enabled":"OFF","time":"08:00、10:00"}
多个时间点
打开所有闹钟
{"enabled":"ON","type":"全部"}
无限定、只有"所有"→ type=全部
关闭提醒吃药的闹钟
{"enabled":"OFF","label":"吃药"}
按标签定位
关闭晚上的闹钟
{"enabled":"OFF","time":"18:00-23:59"}
模糊时段"晚上"→时间段
打开9月20日全部的闹钟
{"enabled":"ON","date":"dddd-yy-mm","type":"全部"}
date 限范围 + 全部不限类型
打开下周一全部的闹钟
{"enabled":"ON","date":"dddd-yy-mm","type":"全部"}
同上
打开明天所有闹钟
{"enabled":"ON","date":"dddd-yy-mm","type":"全部"}
同上
打开下周一和下周二全部闹钟
{"enabled":"ON","date":"dddd-yy-mm、dddd-yy-mm","type":"全部"}
多日期用、分隔
打开下周一早上的闹钟
{"enabled":"ON","time":"06:00-08:59","date":"dddd-yy-mm"}
时段+日期
打开下周一8点的闹钟
{"enabled":"ON","time":"08:00","date":"dddd-yy-mm"}
时间点+日期
注意:开关是筛选类操作,用户未明说日期时不要自动补今天/明天 (那是新增闹钟专属逻辑),否则会漏匹配到其他日期的目标闹钟。
场景 5:倒计时(manage_countdown)
operation 默认 开始;duration 为目标时长(秒,30–86400);relative_duration 为相对增减(秒)。
query
预期命中
说明
设置5分钟倒计时
{"operation":"开始","duration":300}
5分钟换算为 300 秒
打开倒计时
{"operation":"开始"}
未给时长→端侧补默认倒计时时长 再启动
把倒计时修改为20分钟
{"operation":"修改","duration":1200}
绝对值:设为 1200 秒
增加倒计时2分钟
{"operation":"增加","relative_duration":120}
相对值:+120 秒
减少倒计时30秒
{"operation":"减少","relative_duration":-30}
相对值:-30 秒
延长倒计时至30分钟
{"operation":"修改","duration":1800}
"至X"为绝对值→修改
延长倒计时10分钟
{"operation":"增加","relative_duration":600}
"延长X"为相对值→增加
重置倒计时
{"operation":"重置"}
清零
清空倒计时
{"operation":"重置"}
同"重置"
区分绝对与相对:带"至/为/修改为"→ duration(绝对);带"增加/减少/延长X"→ relative_duration(相对,可为负)。
场景 6:查询番茄钟统计(get_pomodoro_stats)
statistic_type:数量/时长/状态/概览(默认概览);time_range:总计 或具体日期 dddd-yy-mm。
query
预期命中
说明
今天完成了几个番茄
{"statistic_type":"数量","time_range":"dddd-yy-mm"}
几个/数量→数量;今天→当天日期
我一共完成了多少个番茄
{"statistic_type":"数量","time_range":"总计"}
"一共/累计"→总计
昨天专注了多长时间
{"statistic_type":"时长","time_range":"dddd-yy-mm"}
多长时间→时长;昨天→当前-1
上周五专注了多久
{"statistic_type":"时长","time_range":"dddd-yy-mm"}
"上周五"→换算成具体日期
查看今天的番茄任务完成情况
{"statistic_type":"状态","time_range":"dddd-yy-mm"}
完成情况→状态
番茄任务总的完成情况
{"statistic_type":"状态","time_range":"总计"}
状态 + 总计
查看番茄钟使用情况
{"statistic_type":"概览","time_range":"dddd-yy-mm"}
未指定指标→概览;未指定时间→今天
查看历史番茄钟数据概览
{"statistic_type":"概览","time_range":"总计"}
"历史/累计"→总计
场景 7:管理番茄钟(manage_pomodoro)
action 默认 创建;duration 为本次专注时长(秒),action=创建 时需要。
query
预期命中
说明
开始专注
{"action":"创建"}
未给时长→端侧补默认专注时长 (如 1500 秒)
开始25分钟专注
{"action":"创建","duration":1500}
25分钟→1500 秒
半小时专注
{"action":"创建","duration":1800}
半小时→1800 秒
专注一小时
{"action":"创建","duration":3600}
一小时→3600 秒
暂停番茄钟
{"action":"暂停"}
—
继续番茄钟
{"action":"继续"}
—
结束专注
{"action":"停止"}
停止/结束/取消→停止
已经专注多久了
{"action":"查询"}
查当前进度
番茄钟还剩多久
{"action":"查询"}
查当前进度
场景 8:正计时 / 秒表(manage_stopwatch)
不设终点、不提取时长,仅一个 action(默认 创建)。
query
预期命中
说明
开始正计时
{"action":"创建"}
—
开始秒表
{"action":"创建"}
—
暂停秒表
{"action":"暂停"}
—
恢复正计时
{"action":"继续"}
恢复/继续→继续
结束秒表
{"action":"停止"}
—
秒表计了多久
{"action":"查询"}
查已计时长
场景 9:修改闹钟(modify_alarm)
用 old_* 定位目标,用 new_* 或 time_offset 应用改动;new_time 与 time_offset 互斥。
query
预期命中
说明
把7点的闹钟改成8点
{"old_time":"07:00","new_time":"08:00"}
old_time 定位、new_time 应用
把明天下午3点的闹钟改到5点
{"old_time":"15:00","old_date":"dddd-yy-mm","new_time":"17:00"}
定位用旧时间+旧日期
把明天的闹钟推迟半小时
{"old_date":"dddd-yy-mm","time_offset":"30"}
相对调整,推迟为正(分钟)
把7点的闹钟提前10分钟
{"old_time":"07:00","time_offset":"-10"}
提前为负;不与 new_time 同现
把8点和9点的闹钟都改成10点
{"old_time":"08:00、09:00","new_time":"10:00"}
多个旧时间全部保留
把每周三的闹钟改成每周五
{"old_weekday":"周三","new_weekday":"周五"}
循环闹钟改星期用 weekday 参数
场景 10:查询课程表(query_course_schedule)
只读查询。注意:课程表的星期用 weekday 参数(不换算成 date ,与闹钟不同)。
query
预期命中
说明
查询今天的课程表
{"date":"dddd-yy-mm"}
"今天"→date
查询今天下午的课程
{"date":"dddd-yy-mm","time_period":"下午"}
上午/下午→time_period
查看周三的课程
{"weekday":"周三"}
星期→weekday,不转 date
查询本周的英语课程
{"subject":"英语"}
科目→subject
查询7月29日的数学课
{"date":"dddd-yy-mm","subject":"数学"}
明确日期+科目
查询周一的英语课
{"weekday":"周一","subject":"英语"}
星期+科目