Install
openclaw skills install smart-reminder智能定时提醒助手,支持:1) 多人格提醒风格(可爱/元气/认真/毒舌/温柔),2) 多频次任务进度追踪(本周已完成训练 1/3),3) 上下文感知的鼓励/反馈(上次没完成则下次鼓励)。集成 cron 调度。触发词:'提醒我' '定个提醒' '定时提醒' 'remind me' '帮我记着' '设置提醒' '设定提醒'
openclaw skills install smart-reminder本技能提供四个维度的提醒能力:
| 场景 | 用户说 | 你应该 |
|---|---|---|
| 单次提醒 | "提醒我 30 分钟后喝水" | 创建 cron at 任务,存储 config,带上人格发送提醒 |
| 单次指定时间 | "明天下午 3 点提醒我开会" | 同上 |
| 多频次任务+人格 | "设定每周一三五晚 8 点运动,要可爱的提醒风格" | 创建 3 个 cron 任务(或一个 cron 表达式),存储 task config,包含 progress |
| 指定人格(5种任选) | "元气风格提醒我每天早上跑步" | 同上,人格设为 "energetic" |
| 无指定人格 | "提醒我多喝水" | 默认用 "gentle" 风格 |
| 设置昵称 | "叫我小可爱" / "别叫我名字了" | 更新 config.nickname,后续所有提醒使用该昵称 |
| 名称 | key | 特点 | 颜文字风格 |
|---|---|---|---|
| 🎀 可爱 | cute | 软萌、撒娇、使用大量颜文字 | (。>ω<。) ♡~ |
| ⚡ 元气 | energetic | 热血、干劲满满、感叹号多 | 💪🔥✨ |
| 📋 认真 | formal | 正经、简洁、称呼礼貌 | 少用emoji |
| 🗡️ 毒舌 | sarcastic | 傲娇、调侃、激将法 | 😒~哼 |
| 🌸 温柔 | gentle | 暖心、体贴、知心大姐姐/哥哥 | ☺️💗 |
解析用户的自然语言请求,提取:
将任务写入状态文件:memory/smart-reminder-tasks.json
文件结构:
{
"config": {
"nickname": "小可爱"
},
"tasks": {
"task_<shortId>": {
"id": "task_abc123",
"name": "运动训练",
"schedule": {
"type": "cron",
"expression": "0 20 * * 1,3,5",
"tz": "Asia/Shanghai"
},
"personality": "cute",
"delivery": {
"channel": "openclaw-weixin",
"sessionKey": "agent:main:openclaw-weixin:direct:...@im.wechat"
},
"tracking": {
"totalSessions": 3,
"completedSessions": 0,
"weekStart": "2026-05-11",
"history": [],
"sinceLastCompletion": 0
},
"createdAt": "2026-05-11T12:00:00+08:00",
"enabled": true
}
}
}
config.nickname — 用户昵称,所有提醒消息的 {nickname} 占位符替换为此值字段说明:
schedule.type — "at"(单次)或 "cron"(重复)personality — 人格 keydelivery — 必需字段!
channel — 目标频道 ID(如 "openclaw-weixin"、"telegram"、"main" 表示当前会话)sessionKey — 目标会话 key(从 openclaw sessions 获取,用于 sessions_send)tracking.totalSessions — 每周目标次数(仅多频次)tracking.completedSessions — 本周已完成次数tracking.weekStart — 当前追踪周的周一 YYYY-MM-DDtracking.history — 数组,每项 {date, completed, feedback?}tracking.sinceLastCompletion — 连续未完成次数(用于鞭策)⚠️ 警告:存储 task 配置后必须同时创建 cron 任务! 光存 config 不会触发任何提醒。
必须使用 cron 工具创建任务(不是 CLI!CLI 有设备范围限制)。
调用 cron(add) 工具:
schedule: {kind: "at", at: "ISO-8601 with offset"}schedule: {kind: "cron", expr: "...", tz: "Asia/Shanghai"}payload: {kind: "systemEvent", text: "SMART_REMINDER task_id"}deleteAfterRun: truecron 的 systemEvent 文本格式: cron 触发后发送 systemEvent 给主 session,文本必须包含 task ID。
SMART_REMINDER task_abc123
cron 调用示例(工具调用):
{
"action": "add",
"job": {
"name": "SMART_REMINDER_task_abc123",
"schedule": {
"kind": "at",
"at": "2026-05-12T20:00:00+08:00"
},
"payload": {
"kind": "systemEvent",
"text": "SMART_REMINDER task_abc123"
},
"sessionTarget": "main",
"deleteAfterRun": true
}
}
重要:
openclaw cron add CLI 命令cron 函数工具(tool),它是 OpenClaw Gateway 原生支持的当收到 SMART_REMINDER task_xxx 系统事件时(同频道提醒):
skills/memory/smart-reminder-tasks.json 加载该 taskconfig.nickname 获取;若无则按人格使用默认称呼tracking.history 和 sinceLastCompletion{nickname} 替换为用户昵称⚠️ 只有需要跨频道投递时用此方式! 同频道提醒用 Step 4 的 systemEvent 方式。
如果用户通过 Control UI(网页)设定提醒但想在微信接收,需要使用 cron 的 delivery 机制。
不需要 systemEvent! 直接创建 agentTurn 类型的 cron job,通过 delivery 投递到微信:
cron 调用示例:
{
"action": "add",
"job": {
"name": "SMART_REMINDER_task_xxx",
"schedule": {"kind": "at", "at": "ISO-8601"},
"payload": {
"kind": "agentTurn",
"message": "用温柔风格告诉昵称该喝糖水了,发完就结束",
"timeoutSeconds": 120,
"lightContext": true
},
"sessionTarget": "isolated",
"deleteAfterRun": true,
"delivery": {
"mode": "announce",
"channel": "openclaw-weixin",
"to": "用户的xxx@im.wechat",
"accountId": "微信bot的AccountId"
}
}
}
关键参数:
sessionTarget: "isolated" — 必须用孤立 sessiontimeoutSeconds: 120 — agent 启动可能需要一些时间,给充足超时lightContext: true — 轻量标记,减少加载时间delivery.mode: "announce" — 投递模式delivery.channel: "openclaw-weixin" — 目标频道delivery.to: "用户@im.wechat" — 微信用户的 ID(从微信 session key 获取)delivery.accountId: "bot的AccountId" — 微信 bot 的 account ID(从 channels status 获取)注意:
delivery.to 和 delivery.accountId 缺一不可sessions_send 不可行(受 visibility=tree 限制),必须用 delivery 机制提醒消息结构模板:
[人格化问候/开场]
[提醒主题 + 时间/周期]
[进度显示(仅多频次任务)]
[上下文延续(上次没完成则鼓励)]
[询问完成状态]
用户回复完成状态后:
completedSessions++,添加 {date, completed:true} 到 history,sinceLastCompletion = 0,发送风格化祝贺sinceLastCompletion++,添加 {date, completed:false} 到 history,发送风格化鼓励enabled = false特殊逻辑 — 周重置:
weekStart = 当前周一, completedSessions = 0, history = []用户可随时问:
enabled = falsepersonalityskills/memory/smart-reminder-tasks.json
不存在时自动创建。所有任务共享这一个文件。
注意: 脚本自动解析路径相对于脚本所在目录,最终路径为 skills/memory/smart-reminder-tasks.json。不要手动在其他目录创建同名文件。
获取真实路径的命令:
python -c "import os; from manage_tasks import _ensure_state; print(os.path.abspath(STATE_FILE))"
openclaw cron add 创建实际调度openclaw sessions --agent main --active 60 --json 查看最近的 session0 20 * * 1,3,5gentle(温柔)确定性任务状态管理脚本,支持 CRUD 和进度更新。可在 SKILL.md 逻辑中直接调用,避免手动编辑 JSON。
Windows 注意: 调用时需设置环境变量 $env:PYTHONIOENCODING='utf-8' 否则中文会报错。
# 创建(带追踪,带微信投递)
python scripts/manage_tasks.py create "运动训练" "0 20 * * 1,3,5" "cute" 3 "openclaw-weixin" "agent:main:openclaw-weixin:direct:xxx@im.wechat"
# 标记完成
python scripts/manage_tasks.py complete task_xxx true
# 标记未完成
python scripts/manage_tasks.py complete task_xxx false
# 列出所有
python scripts/manage_tasks.py list
# 更新人格
python scripts/manage_tasks.py update task_xxx personality energetic
# 删除
python scripts/manage_tasks.py delete task_xxx
# 设置昵称
python scripts/manage_tasks.py set-nickname "小可爱"
# 查看昵称
python scripts/manage_tasks.py get-nickname
# 查看完整配置
python scripts/manage_tasks.py config