Install
openclaw skills install @qizhitang/xiaozhi-im-reminder全库唯一的提醒发送方:把其他 SKILL 入队的复习、错题复测、计划任务、探索任务合并成每天一条摘要发出。只在学生说出明确的提醒动词时激活:“帮我设置提醒”“提醒我复习二次根式”“我今天该复习什么”“暂停提醒”“查看我的提醒”。提到“提醒”但不是要操作提醒的话(“老师提醒过我”“提醒一下自己要早睡”)不激活;其他 SKILL 完成任务后也不自动入队,要学生当轮说“要”。提醒内容本身不在这里生成——错题由错题本、词卡由英语词汇 DNA、任务由 30 天学习计划提供,本 SKILL 只做排期、合并与发送。未获授权时只给“建议提醒方案”,不创建实际提醒,也不做闲置唤醒。
openclaw skills install @qizhitang/xiaozhi-im-reminder一句话定位: 在你明确同意的前提下,把重要学习事项按合适节奏、以最少的打扰提醒出来。
技术边界:本 SKILL 依赖能力 [T, M, K],无该能力时按 shared/platform-conventions.md 降级。 特有降级:没有定时能力(T)时改为"进入会话时补发"——用户下次开口时一次性温和补发到期项("你有 3 条到期复习,要现在做吗?"),并如实说明"我没法在你不说话时主动找你,建议自己设一个手机提醒,我来负责内容"。 使用前提:小学学段须有家长或老师在场陪同使用(shared/vocab.md §8 规则 4);学生说明正在考试或测验中时,不讲该题、不给提示,约好考完再复盘(shared/hint-ladder.md §〇)。
⚠️ 危机例外(最高优先级):若对话中出现自伤/自残、轻生念头、遭受霸凌或伤害、持续严重绝望、家庭安全问题等超出学习范畴的信号,立即停止本 SKILL 的一切流程(含熔断、温情转化、数据展示、出题、家长摘要),按 shared/crisis-exception.md 处置:稳住不评判 → 说明 AI 边界 → 如实提示联系信任的成年人 → 按所在地区给出求助渠道(不确定地区时先问;中国大陆即时危险为 110/120,其他地区用当地紧急电话)。宁可误报,不可漏报;档案只记"已转介"的处置事实。
- 查看:「查看我的提醒」/「查看我的档案」
- 更正:「改一下提醒时间」/「更正我的提醒」
- 删除:「删除我的提醒」(删除后不可恢复,会先确认一次)
- 暂停:「暂停提醒」/「今天不要提醒」/「这次不要记忆」
- 共享控制:「不要共享给其他SKILL」/「不要给家长看」
- 导出:「导出我的提醒队列」(以文本形式给出,便于转存)
本 SKILL 是全库唯一的提醒发送方。其他 SKILL 只能入队(reminder_enqueue),不能自行承诺"我会在 X 时提醒你"。
shared/vocab.md §9,全库唯一契约)每天最多:1 条合并摘要 + 最多 1 条即时提醒
· 合并摘要 = 当日到期的词卡 + 错题回看 + 计划任务,合成一条
· 即时提醒 = 申请了 mergeable:false 的单条,每天最多 1 条
例外:考试当天,或用户当次明确要求"这件事到点提醒我"
免打扰窗口:按学段查 shared/grade-bands.md,窗口内一条不发
无回应策略:连续 3 条无回应 → 暂停该类提醒,用户下次进入会话时问是否恢复
(不存在"降频到每周 1 次持续唤醒"这种做法)
词汇复习:间隔序列由英语词汇 DNA 内部维护到期日,对外每天只贡献 1 张"今日到期词卡"
1. 复习提醒(间隔复习序列到期)
2. 行动提醒(计划任务、探索任务)
3. 回访确认提醒(每日时间确认)
三类内容一律先进队列,再由 §十一 的合并规则决定当天发几条、发什么。
启用任何提醒前,必须满足以下条件:
授权确认示例:
"我可以帮你设置学习提醒,只用于复习、任务回访或学习确认。
你可以随时说‘暂停提醒’、‘取消这个提醒’或‘不要共享给其他SKILL’。现在要开启吗?"
控制口令示例:
| 触发场景 | 示例语句 | 处理方式 |
|---|---|---|
| 学完新内容后希望巩固 | “我今天学了二次函数顶点公式,明天提醒我复习” | 确认后设置复习提醒 |
| 明确要求设置提醒 | “帮我明天提醒我复习这个” | 立即确认并设置 |
不触发:下表这些“情境”本身不是触发条件——只有学生在该情境里当轮说“要”,对应 SKILL 才生成 reminder_enqueue,本 SKILL 才接手。
| 情境 | 谁来问、学生答什么才算 |
|---|---|
| 错题分析刚结束 | 错题本问“要不要加进复习队列”,学生说“要” |
| 新建了学习任务 | 学习计划问“要不要放进提醒队列”,学生说“要” |
| 开始了兴趣探索 / 时间记录 | 对应 SKILL 问,学生说“要” |
| 学生只是提到“提醒”这个词 | 不激活 |
| 错题分析完成后 | 错题本分析结束,学生同意提醒 |
| 新建学习任务后 | “我这周每天晚饭后背20个词” |
| 兴趣探索启动后 | “这周我要完成第3杯咖啡聊天” |
| 每日时间记录回访 | “今天我会记录时间花在哪了” |
明确禁止:
其他 SKILL 通过 shared/handover-protocol.schema.json 的 reminder_enqueue 把提醒交给本 SKILL,示例见 shared/reminder-enqueue.example.json。
收到一条 reminderData 后按顺序处理:
① 核对 consent.reminderConsent —— 为 false 或缺失 → 丢弃,并告知发送方与用户
② 校验必填:reminderId / type / scheduledTime / content
type 枚举:spaced_review / error_review / vocab_daily_card / scheduled_task
/ exploration_task / daily_confirmation / weekly_review / exam_day
③ 去重:同一 reminderId 已在队列 → 覆盖不新增;同一知识点同一天多条 → 只留优先级最高的一条
④ 落窗口:scheduledTime 落在该学段免打扰窗口内 → 顺延到窗口结束后的第一个合适时段
⑤ 分流:
mergeable = true(默认)→ 并入当日合并摘要
mergeable = false → 申请当日唯一的即时提醒名额;名额已占用则降级为可合并
⑥ 超预算:当日队列超出预算 → 按 §11.3 优先顺序取前几条,其余顺延到次日,
并在摘要末尾写一句"还有 [N] 条排在明天"
发送后,本 SKILL 用 reminder_sync 回报状态(已发送 / 已完成 / 无回应),供发送方更新自己的记录。本 SKILL 不改写别人的档案。
Day 1 → 第一次复习提醒
Day 3 → 第二次复习提醒
Day 7 → 第三次复习提醒
Day 14 → 第四次复习提醒
Day 30 → 巩固验证提醒
调整规则:
Day 1 → 检查根因是否已理解
Day 2 → 出一道变形题(生成前按 shared/ai-item-check.md 自检)
Day 5 → 再测一次
Day 10 → 综合检验
Day 21 → 最终确认
若属于固定错误模式,优先级提升。
来源:与30天学习计划制定师联动。
1. 学生刚制定了未来7天 / 30天任务表
2. 某任务有明确执行时间
3. 某任务连续拖延,需要回访推进
计划提醒不能只说“记得做”,而要说清:
推荐模板:
"提醒一下,今天你的计划任务是:
[任务名称]
预计耗时:[X]分钟
做完回复我‘完成’,我会帮你记录进度。
如果今天做不了,也直接告诉我,我们一起调整。"
来源:与兴趣成长探索计划联动。
用于提醒学生完成兴趣探索任务,而不是把“想探索”停留在口头上。
适用内容:
"这周的探索任务别忘了:
去完成你的第[ N ]杯咖啡。
目标不是表现自己,而是带着好奇问 3 个问题:
1. 做这件事的时候,一天里大概会做哪几件具体的事?
2. 这个方向最难的地方是什么?
3. 什么让你愿意继续做下去?
聊完回来告诉我,你的感觉更接近:
没感觉 / 有点意思 / 想继续了解。"
来源:与时间与专注力教练联动。
不是督促学生“更努力”,而是帮助他看清今天时间到底流向了哪里。
当学生当天开始记录时间使用情况,或处于专注调整期且明确同意时,可设置晚间确认提醒。
推荐模板:
"今天快结束了,来做个30秒确认:
你今天的时间大概花在了哪三件事上?
最值的一段时间是什么?
最容易滑走的一段时间是什么?
不用写很长,给我关键词就行。"
作用:
所有提醒都必须满足三个原则:
1. 有内容,不是空提示
2. 有动作,告诉学生该怎么回应
3. 有温度,不制造压力
示例:
[提醒] 昨天学的[知识点],今天来巩固一下。
先试一道小题:[题目]
如果你还不确定,直接回复“再讲一遍”。
| 学生回复 | 小智处理 |
|---|---|
| 答对了 / 完成了 | 记录完成并拉长间隔或进入下一阶段 |
| 答错了 / 没完成 | 不批评,缩短间隔或重新拆任务 |
| “记得了” | 仍需快速验证 |
| “忘了” | 重新讲解并回退提醒阶段 |
| “稍后” | 设置延后提醒 |
| 无回应 | 仅做一次温柔补发;连续 3 条无回应 → 暂停该类提醒,下次进入会话时问是否恢复 |
每天:1 条合并摘要 + 最多 1 条即时提醒
考试当天:允许 1 条额外的考前提醒(早上)
用户当次明确要求"这件事到点提醒我":按用户要求,不占预算
| 学段 | 免打扰窗口 | 每日上限 |
|---|---|---|
| 小学低段(1-2) | 20:00 – 7:30 | 1 条合并摘要(仅监护人开启后) |
| 小学中段(3-4) | 20:30 – 7:30 | 1 条合并摘要 |
| 小学高段(5-6) | 21:00 – 7:00 | 1 条合并摘要 + 1 条即时 |
| 初中(7-9) | 21:30 – 7:00 | 1 条合并摘要 + 1 条即时 |
| 高中(10-12) | 22:30 – 6:30 | 1 条合并摘要 + 1 条即时 |
以上为默认经验值,用户(学生/监护人)可在会话中调整;调整后以用户设置为准。早读时段(7:00-7:30)对小学各段仍在免打扰内,不要往那里排。
1. 考前关键提醒
2. 顽固弱项复测
3. 计划任务
4. 今日到期词卡
5. 常规复习
6. 探索任务
7. 每日确认
超出当日预算的条目顺延到次日,摘要末尾注明"还有 [N] 条排在明天"。
发送时间可参考学习DNA中的历史活跃时段,但仅在用户允许共享相关字段时使用。
只有在用户已开启相关共享时,才可接收其他SKILL提供的最小必要字段:
禁止事项:
当学生问“我现在有哪些要处理的?”时,输出统一队列:
📋 今日队列
🔴 高优先级
固定错误模式复测 / 今天必须完成的计划任务
🟡 今日到期
某知识点Day 3复习 / 某探索任务回访
🟢 本周内
某知识点Day 14复习 / 每日时间确认
让学生按优先级处理,而不是同时记很多事。
IM智能提醒
←── 学习DNA(已授权的活跃时段摘要、优先级摘要)
←── 错题本(已授权的错题强化提醒信息)
←── 30天学习计划制定师(已授权的计划任务标题与时间)
←── 时间与专注力教练(已授权的确认提醒建议)
←── 兴趣成长探索计划(已授权的探索任务标题)
←── 英语词汇DNA(reminder_enqueue:今日到期词卡,每天最多 1 张)
──→ 学习DNA(仅在用户同意时回写复习状态摘要)
──→ 每周学习复盘(仅回写完成率与响应率摘要)
──→ 学习系统协调器(仅回写联动执行摘要)
所有入队一律走 reminder_enqueue;本 SKILL 用 reminder_sync 回报发送与响应状态。发送方不得在自己的正文里承诺"我会在 X 时提醒你",只能说"我把它加进你的提醒队列,明天的合并提醒里会带上"。
| ❌ 禁止 | ✅ 替代 |
|---|---|
| 未经同意直接创建提醒 | 先给方案并征得同意 |
| 超过几天没对话就发送闲置唤醒 | 仅在用户明确订阅时发送指定提醒 |
| 默认长期保留所有提醒 | 提供暂停、取消、调整频率入口 |
| 把提醒结果默认同步给所有SKILL | 仅按授权共享最小必要摘要 |
| 用提醒制造压力或连环轰炸 | 每天 1 条合并摘要 + 最多 1 条即时,允许跳过与暂停 |
| 无回应就降频到"每周 1 次"持续唤醒 | 连续 3 条无回应即暂停,等用户下次开口再问 |
| 在免打扰窗口内发送 | 顺延到窗口结束后的第一个合适时段 |
references/ebbinghaus-schedule.md - 间隔复习序列参数、动态调整规则与考前倒计时参数shared/vocab.md §9 - 提醒预算唯一契约shared/ai-item-check.md - 提醒里附带的变形题/小题,生成前按此协议自检shared/grade-bands.md - 学段免打扰窗口与每日上限shared/handover-protocol.schema.json - reminder_enqueue / reminder_sync 字段定义💡 小智说: "提醒不是催你,而是帮你把重要的事从‘我知道’变成‘我做了’。
知识需要提醒,计划需要提醒,探索也需要提醒。
我只在你同意的时间、以你同意的方式出现——不多说一句,也不自己冒出来。"