工作日下班提醒
name: workday-reminder
by artwebs · published 2026-04-01
$ claw add gh:artwebs/artwebs-workday-reminder---
name: workday-reminder
description: 工作日下班提醒技能。提供工作日下班时间(默认 17:30)的定时提醒、倒计时查询和提醒管理功能。当用户提到"下班提醒"、"下班倒计时"、"还有多久下班"、"设置下班时间"等相关需求时触发。支持工作日和周末区分提醒。
metadata: {"openclaw":{"emoji":"🏃","requires":{"config":["channels.qqbot"]}}}
---
# 工作日下班提醒
⚠️ 强制规则
**当用户提到「下班提醒」「下班时间」「还有多久下班」「几点下班」「查看倒计时」等任何涉及下班时间的请求时,必须调用 `cron` 工具来设置定时提醒或计算倒计时,绝对不能只用自然语言回复说"好的"!**
你没有内存或后台线程,口头承诺"到时候提醒"是无效的——只有调用 `cron` 工具才能真正注册定时任务。
---
核心规则
1. 下班提醒设置
**默认下班时间:17:30(工作日)**
**payload.kind 必须是 `"agentTurn"`,绝对不能用 `"systemEvent"`!**
**5 个不可更改字段:**
| 字段 | 固定值 | 原因 |
|------|--------|------|
| `payload.kind` | `"agentTurn"` | `systemEvent` 不会发 QQ 消息 |
| `payload.deliver` | `true` | 否则不投递 |
| `payload.channel` | `"qqbot"` | QQ 通道标识 |
| `payload.to` | 用户 openid | 从上下文获取 |
| `sessionTarget` | `"isolated"` | 隔离会话避免污染 |
**提醒消息模板:**
{
"message": "你是一个暖心的下班提醒助手。请用温暖、有趣的方式提醒用户:下班时间到了!要求:(1) 不要回复HEARTBEAT_OK (2) 不要解释你是谁 (3) 直接输出一条暖心的提醒消息 (4) 可以加一句简短的关心或鸡汤的话,比如'辛苦了,好好休息'、'今天也很棒,明天继续加油' (5) 控制在2-3句话以内 (6) 用🏃、🎉、✨等emoji点缀,让提醒更有活力"
}**完整的 job 配置:**
{
"action": "add",
"job": {
"name": "工作日下班提醒",
"schedule": {
"kind": "cron",
"expr": "30 17 * * 1-5",
"tz": "Asia/Shanghai"
},
"sessionTarget": "isolated",
"wakeMode": "now",
"payload": {
"kind": "agentTurn",
"message": "你是一个暖心的下班提醒助手。请用温暖、有趣的方式提醒用户:下班时间到了!要求:(1) 不要回复HEARTBEAT_OK (2) 不要解释你是谁 (3) 直接输出一条暖心的提醒消息 (4) 可以加一句简短的关心或鸡汤的话,比如'辛苦了,好好休息'、'今天也很棒,明天继续加油' (5) 控制在2-3句话以内 (6) 用🏃、🎉、✨等emoji点缀,让提醒更有活力",
"deliver": true,
"channel": "qqbot",
"to": "{用户的openid}"
}
}
}> **注意:**周期任务(cron)**不加** `deleteAfterRun`,否则每次触发后都会被删除。
---
2. 查看下班倒计时
**计算逻辑:**
1. 获取当前时间(Asia/Shanghai 时区)
2. 确定今天是工作日还是周末
3. 如果是工作日,计算当前时间到 17:30 的剩余时间
4. 如果是周末,告知用户今天不用上班,提示距离下一个工作日下班时间
5. 如果当前时间已过 17:30,提示已经下班
**回复模板:**
```
🕐 今天是工作日,下班时间 17:30
⏰ 距离下班还有:X小时Y分钟
💪 加油,马上就可以下班啦!
```
```
🎉 今天已经下班啦!
💤 好好休息,明天见~
```
```
😌 今天是周末,不用上班哦~
📅 距离下个工作日下班还有:X天Y小时
```
**计算示例(使用 Python 脚本):**
python3 scripts/countdown.py --offtime "17:30"脚本返回 JSON 格式的倒计时信息:
{
"today": "工作日",
"current_time": "13:45",
"off_time": "17:30",
"countdown": "3小时45分钟",
"already_off": false,
"message": "🕐 今天是工作日,下班时间 17:30\n⏰ 距离下班还有:3小时45分钟\n💪 加油,马上就可以下班啦!"
}---
3. 提醒管理
#### 查询提醒
使用 `cron` 工具的 `list` 功能:
{ "action": "list" }**回复模板:**
#### 取消提醒
先 `list` 找到 jobId,然后 `remove`:
{ "action": "remove", "jobId": "{jobId}" }**回复模板:**`✅ 已取消下班提醒~`
#### 修改下班时间
需要先取消旧提醒,再创建新提醒。注意 cron 表达式的格式:
---
用户交互场景
场景 1:设置下班提醒
**用户说:**
**AI 行为:**
1. 调用 `cron` 工具创建工作日 17:30 的定时提醒
2. 回复:`🏃 收到!工作日每天 17:30 会提醒你下班~`
---
场景 2:查看倒计时
**用户说:**
**AI 行为:**
1. 调用 `scripts/countdown.py` 计算倒计时
2. 输出格式化的倒计时信息
---
场景 3:管理提醒
**用户说:**
**AI 行为:**
---
自定义下班时间
用户可以指定自定义下班时间,格式为 `HH:MM`(24小时制):
**示例:**
**解析逻辑:**
1. 从用户输入中提取时间
2. 转换为 cron 表达式(分 时 * * 1-5)
3. 创建定时提醒
4. 回复确认消息
**cron 表达式生成公式:**
"{分钟} {小时} * * 1-5"---
Cron 表达式参考
| 下班时间 | Cron 表达式 |
|---------|-------------|
| 17:00 | `"0 17 * * 1-5"` |
| 17:30 | `"30 17 * * 1-5"` |
| 18:00 | `"0 18 * * 1-5"` |
| 18:30 | `"30 18 * * 1-5"` |
| 19:00 | `"0 19 * * 1-5"` |
**字段说明:**
---
回复模板总结
| 场景 | 回复 |
|------|------|
| 设置提醒成功 | `🏃 收到!工作日每天 {时间} 会提醒你下班~` |
| 查询有提醒 | `📋 你的下班提醒已设置:每天 {时间}(工作日)` |
| 查询无提醒 | `📭 目前还没有设置下班提醒哦~ 说"设置下班提醒"就可以啦!` |
| 取消提醒成功 | `✅ 已取消下班提醒~` |
| 修改提醒成功 | `✅ 下班提醒已更新为:每天 {时间}(工作日)` |
| 倒计时(未下班) | `🕐 今天是工作日,下班时间 {时间}\n⏰ 距离下班还有:{倒计时}\n💪 加油,马上就可以下班啦!` |
| 倒计时(已下班) | `🎉 今天已经下班啦!\n💤 好好休息,明天见~` |
| 倒计时(周末) | `😌 今天是周末,不用上班哦~\n📅 距离下个工作日下班还有:{倒计时}` |
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...