Openclaw qqbot-remind

QQBot 定时提醒。支持一次性和周期性提醒的创建、查询、取消。当通过 QQ 通道通信且涉及提醒/定时任务时使用。

install
source · Clone the upstream repo
git clone https://github.com/openclaw/openclaw
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/openclaw "$T" && mkdir -p ~/.claude/skills && cp -r "$T/extensions/qqbot/skills/qqbot-remind" ~/.claude/skills/openclaw-openclaw-qqbot-remind && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/openclaw "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/extensions/qqbot/skills/qqbot-remind" ~/.openclaw/skills/openclaw-openclaw-qqbot-remind && rm -rf "$T"
manifest: extensions/qqbot/skills/qqbot-remind/SKILL.md
source content

QQ Bot 定时提醒

⚠️ 强制规则

当用户提到「提醒」「闹钟」「定时」「X分钟/小时后」「每天X点」「叫我」等任何涉及延时或定时的请求时,你必须调用工具,绝对不能只用自然语言回复说"好的,我会提醒你"!

你没有内存或后台线程,口头承诺"到时候提醒"是无效的——只有调用工具才能真正注册定时任务。


推荐流程(优先使用
qqbot_remind
工具)

第一步:调用

qqbot_remind
工具,传入简单参数:

参数说明示例
action
操作类型
"add"
/
"list"
/
"remove"
content
提醒内容
"喝水"
to
目标地址(可选,系统自动获取,通常无需填写)
time
时间(相对时间或 cron 表达式)
"5m"
/
"1h30m"
/
"0 8 * * *"
jobId
任务 ID(仅 remove)
"xxx"

第二步

qqbot_remind
会返回
cronParams
,你必须立即
cronParams
的值作为参数调用
cron
工具。

第三步:根据

cron
工具的返回结果,回复用户。

示例

用户说:"5分钟后提醒我喝水"

  1. 调用
    qqbot_remind
    { "action": "add", "content": "喝水", "time": "5m" }
  2. 收到返回的
    cronParams
    → 立即调用
    cron
    工具,参数为该
    cronParams
  3. 回复用户:
    ⏰ 好的,5分钟后提醒你喝水~

备用方案(直接使用
cron
工具)

仅当

qqbot_remind
工具不可用时使用以下方式。

核心规则

payload.kind 必须是

"agentTurn"
,绝对不能用
"systemEvent"
systemEvent
只在 AI 会话内部注入文本,用户收不到 QQ 消息。

5 个不可更改字段

字段固定值原因
payload.kind
"agentTurn"
systemEvent
不会发 QQ 消息
payload.deliver
true
否则不投递
payload.channel
"qqbot"
QQ 通道标识
payload.to
用户 openid
To
字段获取
sessionTarget
"isolated"
隔离会话避免污染

schedule.atMs
必须是绝对毫秒时间戳(如
1770733800000
),不支持
"5m"
等相对字符串。 计算方式:
当前时间戳ms + 延迟毫秒

一次性提醒(schedule.kind = "at")

{
  "action": "add",
  "job": {
    "name": "{任务名}",
    "schedule": { "kind": "at", "atMs": "{当前时间戳ms + N*60000}" },
    "sessionTarget": "isolated",
    "wakeMode": "now",
    "deleteAfterRun": true,
    "payload": {
      "kind": "agentTurn",
      "message": "你是一个暖心的提醒助手。请用温暖、有趣的方式提醒用户:{提醒内容}。要求:(1) 不要回复HEARTBEAT_OK (2) 不要解释你是谁 (3) 直接输出一条暖心的提醒消息 (4) 可以加一句简短的鸡汤或关怀的话 (5) 控制在2-3句话以内 (6) 用emoji点缀",
      "deliver": true,
      "channel": "qqbot",
      "to": "{openid}"
    }
  }
}

周期提醒(schedule.kind = "cron")

{
  "action": "add",
  "job": {
    "name": "{任务名}",
    "schedule": { "kind": "cron", "expr": "0 8 * * *", "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}"
    }
  }
}

周期任务不加

deleteAfterRun
。群聊
to
格式为
"group:{group_openid}"


cron 表达式速查

场景expr
每天早上8点
"0 8 * * *"
每天晚上10点
"0 22 * * *"
工作日早上9点
"0 9 * * 1-5"
每周一早上9点
"0 9 * * 1"
每周末上午10点
"0 10 * * 0,6"
每小时整点
"0 * * * *"

周期提醒必须加

"tz": "Asia/Shanghai"


AI 决策指南

用户说法actiontime 格式
"5分钟后提醒我喝水"
add
"5m"
"1小时后提醒开会"
add
"1h"
"每天8点提醒我打卡"
add
"0 8 * * *"
"工作日早上9点提醒"
add
"0 9 * * 1-5"
"我有哪些提醒"
list
"取消喝水提醒"
remove
"修改提醒时间"
remove
add
"提醒我"(无时间)需追问

纯相对时间("5分钟后"、"1小时后")可直接计算,无需确认。时间模糊或缺失时需追问。


回复模板

  • 一次性:
    ⏰ 好的,{时间}后提醒你{内容}~
  • 周期:
    ⏰ 收到,{周期}提醒你{内容}~
  • 查询无结果:
    📋 目前没有提醒哦~ 说"5分钟后提醒我xxx"试试?
  • 删除成功:
    ✅ 已取消"{名称}"