Token导航 LogoToken导航TokenDH.com
待分类需要联网github未标认证来源可访问许可证需确认审计通过

qqbot-cronQQbot 计划任务

Agent Skill

qqbot-cron 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

7,271

周安装

306

GitHub Stars

1,462

下载量

2,546
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:qqbot-cron(QQbot 计划任务)
来源仓库:https://github.com/sliverp/qqbot
仓库路径:skills/qqbot-cron
安装命令:
npx skills add https://github.com/sliverp/qqbot --skill qqbot-cron
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/sliverp/qqbot --skill qqbot-cron

简介

用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装。
  • 需确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。
  • qqbot-cron 属于待分类类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

QQ Bot 智能提醒

让 AI 帮用户设置、管理定时提醒,支持私聊和群聊。


⛔ 最重要的一条规则(读三遍)

调用 cron 工具时,payload.kind 必须是 "agentTurn"。绝对不能用 "systemEvent" systemEvent 只会在 AI 会话里插入一条文本,用户根本收不到 QQ 消息。 只有 agentTurn + deliver: true + channel: "qqbot" + to 才能真正把消息发到 QQ。

🛠️ 两种调用方式

方式一:cron 工具调用(推荐)

如果你的环境中有 cron 工具,使用 JSON 参数直接调用:

cron({
  "action": "add",
  "job": {
    "name": "喝水提醒",
    "schedule": { "kind": "at", "atMs": 1770734300000 },
    "sessionTarget": "isolated",
    "wakeMode": "now",
    "deleteAfterRun": true,
    "payload": {
      "kind": "agentTurn",
      "message": "暖心提醒内容",
      "deliver": true,
      "channel": "qqbot",
      "to": "qqbot:c2c:0DEBF031..."
    }
  }
})

方式二:exec 工具执行 CLI 命令(备用)

⚠️ 如果没有 cron 工具,使用 exec 工具调用 openclaw CLI 命令。

重要区别:CLI 参数名和 JSON API 不一样!

JSON API 字段CLI 参数
action: "add"openclaw cron add
job.schedule.kind: "at"--at "30s"--at "2026-03-14T10:00:00Z"
job.schedule.kind: "cron"--cron "0 8 * * *" --tz "Asia/Shanghai"
job.schedule.atMs--at "30s"(相对时间)或 ISO 时间字符串
job.sessionTarget: "isolated"--session isolated
job.wakeMode: "now"--wake now
job.deleteAfterRun: true--delete-after-run
job.payload.kind: "agentTurn"--message "..."
job.payload.message--message "..."
job.payload.deliver: true--announce
job.payload.channel: "qqbot"--channel qqbot
job.payload.to--to "qqbot:c2c:..."

CLI 命令示例(一次性提醒):

exec({
  command: 'openclaw cron add --name "喝水提醒" --at "30s" --session isolated --wake now --delete-after-run --announce --channel qqbot --to "qqbot:c2c:0DEBF031A9738F49D0194257976D7BAE" --message "你是一个暖心的提醒助手。请用温暖、有趣的方式提醒用户:该喝水了。要求:(1) 不要回复HEARTBEAT_OK (2) 不要解释你是谁 (3) 直接输出一条暖心的提醒消息 (4) 可以加一句简短的鸡汤或关怀的话 (5) 控制在2-3句话以内 (6) 用emoji点缀"'
})

CLI 命令示例(周期提醒):

exec({
  command: 'openclaw cron add --name "打卡提醒" --cron "0 8 * * *" --tz "Asia/Shanghai" --session isolated --wake now --announce --channel qqbot --to "qqbot:c2c:0DEBF031A9738F49D0194257976D7BAE" --message "你是一个暖心的提醒助手。请用温暖、有趣的方式提醒用户:该打卡了。要求:(1) 不要回复HEARTBEAT_OK (2) 不要解释你是谁 (3) 直接输出一条暖心的提醒消息 (4) 可以加一句简短的鸡汤或关怀的话 (5) 控制在2-3句话以内 (6) 用emoji点缀"'
})

查询提醒(CLI):

exec({ command: 'openclaw cron list --json' })

删除提醒(CLI):

exec({ command: 'openclaw cron rm <job-id>' })

⚠️ CLI 时间格式特殊说明:

  • --at 参数支持:

- 相对时间:"30s", "5m", "1h"(推荐用于短时间提醒) - ISO 时间:"2026-03-14T10:00:00Z" - ❌ 不支持:毫秒时间戳(如 1770734300000

  • JSON API 的 schedule.atMs 必须是毫秒时间戳,需要自己计算
  • CLI 的 --at 可以直接用 "30s" 这样的相对时间,更方便

如何选择?

  1. 优先使用 cron 工具(如果可用)
  2. 如果 cron 工具不可用,用 exec 执行 CLI 命令
  3. 可以通过 openclaw cron add --help 查看完整参数列表

🤖 AI 决策指南

时间确认规则

设置提醒前,先确认当前系统时间(查看上下文中的时间信息,或执行 date)。 纯相对时间("5分钟后"、"1小时后")可以跳过确认,直接算 Date.now() + 延迟毫秒

用户意图识别

用户说法意图cron 工具 action
"5分钟后提醒我喝水"创建一次性提醒add(schedule.kind=at)
"每天8点提醒我打卡"创建周期提醒add(schedule.kind=cron)
"我有哪些提醒"查询list
"取消喝水提醒"删除remove
"修改提醒时间"删除+重建removeadd
"提醒我" (无时间)需追问询问具体时间

必须追问的情况

  1. 没有时间:"提醒我喝水" → "请问什么时候提醒你?"
  2. 时间模糊:"晚点提醒我" → "具体几点呢?"
  3. 周期不明:"定期提醒我" → "多久一次?每天?每周?"

📋 创建提醒(最重要)

🚨🚨🚨 工具调用参数模板(AI 必须严格遵循)

AI 调用 cron 工具时,传的是 JSON 参数,不是 CLI 命令。以下是唯一正确的 JSON 格式:

一次性提醒(N 分钟后)

{
  "action": "add",
  "job": {
    "name": "{任务名}",
    "schedule": {
      "kind": "at",
      "atMs": {当前时间戳毫秒 + 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}"
    }
  }
}

周期提醒(每天/每周)

{
  "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}"
    }
  }
}
🚨 绝对不可更改的 5 个字段(改了提醒就废了): 1. payload.kind 必须是 "agentTurn" — ❌ 绝对不能用 "systemEvent" 2. payload.deliver 必须是 true 3. payload.channel 必须是 "qqbot" 4. payload.to 必须是用户的 openid 5. sessionTarget 必须是 "isolated" 🚫 payload.kind: "systemEvent" 只会在 AI 会话中注入文本,不会发送 QQ 消息给用户! ⚠️ schedule.atMs 必须是绝对毫秒时间戳(如 1770733800000),不支持相对时间字符串如 "5m"! 需要自行计算:当前时间戳 + 延迟毫秒数。例如 5 分钟后 = Date.now() + 5 * 60 * 1000

查询提醒

使用 cron 工具 action: "list" 查询。

删除提醒

使用 cron 工具 action: "remove" + jobId


💬 用户交互模板

创建提醒后的反馈要简洁友好,不要啰嗦

创建成功反馈(推荐简洁版)

一次性提醒

⏰ 好的,{时间}后提醒你{提醒内容}~

周期提醒

⏰ 收到,{周期描述}提醒你{提醒内容}~

查询提醒反馈

📋 你的提醒:

1. ⏰ {提醒名} - {时间}
2. 🔄 {提醒名} - {周期}

说"取消xx提醒"可删除~

无提醒时反馈

📋 目前没有提醒哦~

说"5分钟后提醒我xxx"试试?

删除成功反馈

✅ 已取消"{提醒名称}"

⏱️ 时间格式

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

⚠️ schedule.atMs 只接受绝对毫秒时间戳,需要自己计算!
用户说法计算方式
5分钟后Date.now() + 5 * 60 * 1000
半小时后Date.now() + 30 * 60 * 1000
1小时后Date.now() + 60 * 60 * 1000
明天早上8点先确认当前日期,计算目标时间的毫秒时间戳

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

必须加 "tz": "Asia/Shanghai"
用户说法schedule.expr
每天早上8点"0 8 * * *"
每天晚上10点"0 22 * * *"
每个工作日早上9点"0 9 * * 1-5"
每周一早上9点"0 9 * * 1"
每周末上午10点"0 10 * * 0,6"
每小时整点"0 * * * *"

📌 参数说明

工具调用 job 对象必填字段

字段说明示例
job.name任务名"喝水提醒"
job.schedule.kind"at""cron""at"
job.schedule.atMs绝对毫秒时间戳(不支持 "5m"!)1770734100000
job.sessionTarget必须 "isolated""isolated"
job.wakeMode推荐 "now""now"
job.payload.kind必须 "agentTurn"(❌ 不能用 "systemEvent""agentTurn"
job.payload.message[直接输出] 开头"[直接输出] 💧 喝水时间到!"
job.payload.deliver必须 truetrue
job.payload.channel必须 "qqbot""qqbot"
job.payload.to用户 openid从系统消息获取
job.deleteAfterRun一次性任务必须 truetrue

payload.message 暖心提醒模板

💡 payload.message 是一个 prompt,告诉 AI 以暖心方式生成提醒。每次触发时 AI 会自由发挥,生成不重复的、有温度的提醒消息。

统一模板(把 {提醒内容} 替换成具体事项):

你是一个暖心的提醒助手。请用温暖、有趣的方式提醒用户:{提醒内容}。要求:(1) 不要回复HEARTBEAT_OK (2) 不要解释你是谁 (3) 直接输出一条暖心的提醒消息 (4) 可以加一句简短的鸡汤或关怀的话 (5) 控制在2-3句话以内 (6) 用emoji点缀

效果举例(每次触发内容都不同):

  • 喝水提醒 → 💧 嘿,该喝水啦~身体是革命的本钱,水是身体的燃料!
  • 开会提醒 → 📅 会议时间到~带上你的好想法,闪亮登场吧!
  • 吃饭提醒 → 🍜 干饭时间到!再忙也要好好吃饭,你值得被善待~
  • 打卡提醒 → 🌅 新的一天,记得打卡哦~每一天都是新的开始!

为什么用 prompt 而不是固定文本?

  • 固定文本太死板,每次都一样,像机器人
  • 用 prompt 让 AI 自由发挥,每次提醒都暖心且不重复

🎯 使用场景示例

场景1:一次性提醒

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

AI 调用 cron 工具(假设当前时间戳为 1770734000000):

{
  "action": "add",
  "job": {
    "name": "喝水提醒",
    "schedule": { "kind": "at", "atMs": 1770734300000 },
    "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}"
    }
  }
}
atMs = 当前时间戳 + 5 * 60 * 1000 = 1770734000000 + 300000 = 1770734300000

AI 回复: ⏰ 好的,5分钟后提醒你喝水~


场景2:每日周期提醒

用户: 每天早上8点提醒我打卡

AI 调用 cron 工具:

{
  "action": "add",
  "job": {
    "name": "打卡提醒",
    "schedule": { "kind": "cron", "expr": "0 8 * * *", "tz": "Asia/Shanghai" },
    "sessionTarget": "isolated",
    "wakeMode": "now",
    "payload": {
      "kind": "agentTurn",
      "message": "[直接输出] 🌅 打卡时间到!",
      "deliver": true,
      "channel": "qqbot",
      "to": "{openid}"
    }
  }
}
周期任务不加 deleteAfterRun

AI 回复: ⏰ 收到,每天早上8点提醒你打卡~


场景3:工作日提醒

用户: 工作日下午6点提醒我写日报

AI 调用 cron 工具:

{
  "action": "add",
  "job": {
    "name": "日报提醒",
    "schedule": { "kind": "cron", "expr": "0 18 * * 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}"
    }
  }
}

AI 回复: ⏰ 收到,工作日下午6点提醒你写日报~


场景4:会议提醒

用户: 3分钟后提醒我开会

AI 调用 cron 工具(假设当前时间戳为 1770734000000):

{
  "action": "add",
  "job": {
    "name": "开会提醒",
    "schedule": { "kind": "at", "atMs": 1770734180000 },
    "sessionTarget": "isolated",
    "wakeMode": "now",
    "deleteAfterRun": true,
    "payload": {
      "kind": "agentTurn",
      "message": "[直接输出] 📅 开会时间到!",
      "deliver": true,
      "channel": "qqbot",
      "to": "{openid}"
    }
  }
}
atMs = 当前时间戳 + 3 * 60 * 1000

AI 回复: ⏰ 好的,3分钟后提醒你开会~


场景5:群组提醒

用户(群聊): 每天早上9点提醒大家站会

AI 调用 cron 工具:

{
  "action": "add",
  "job": {
    "name": "站会提醒",
    "schedule": { "kind": "cron", "expr": "0 9 * * 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": "group:{group_openid}"
    }
  }
}
群组使用 "group:{group_openid}" 格式

场景6:查询提醒

用户: 我有哪些提醒?

AI 调用 cron 工具{"action": "list"}

AI 回复(根据返回结果):

📋 你的提醒:

1. ⏰ 喝水提醒 - 3分钟后
2. 🔄 打卡提醒 - 每天08:00

说"取消xx提醒"可删除~

场景7:取消提醒

用户: 取消打卡提醒

AI 执行:

  1. 先用 {"action": "list"} 找到对应任务 ID
  2. 再用 {"action": "remove", "jobId": "{id}"} 删除

AI 回复:

✅ 已取消"打卡提醒"

⚙️ 消息发送说明

定时提醒(cron add)

定时提醒只能发送主动消息,因为:

  • 提醒执行时,原始 message_id 通常已超过 1 小时有效期
┌─────────────────────┐
│ 定时任务触发         │
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│ AI 通过 agentTurn   │
│ 在隔离会话中执行     │
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│ deliver=true 投递    │
│ channel="qqbot"     │
│ to="{openid}"       │
└──────────┬──────────┘
           ↓
    ✅ 用户收到提醒

即时回复

即时消息发送支持被动回复(如果 message_id 有效):

                ┌─────────────────────┐
                │ 发送即时消息         │
                └──────────┬──────────┘
                           ↓
         ┌──────────────────────────────┐
         │ message_id 在 1 小时内有效? │
         └──────────────────────────────┘
               ↓                ↓
              是               否
               ↓                ↓
    ┌───────────────┐  ┌─────────────────┐
    │ 被动消息回复   │  │ 发送主动消息     │
    │ (引用原消息)   │  │ (直接发送)      │
    └───────────────┘  └─────────────────┘

⚠️ 重要限制

限制说明
message_id 有效期1 小时内有效,超时自动降级
回复次数限制同一 message_id 最多回复 4 次
主动消息权限⚠️ QQ 机器人需要申请主动消息权限,否则定时提醒会发送失败
主动消息限制只能发给与机器人交互过的用户(24小时内)
消息内容payload.message 不能为空

⚠️ 主动消息权限说明

定时提醒功能依赖主动消息能力,但 QQ 官方默认不授予此权限。

常见错误

  • 错误码 40034102:"主动消息失败, 无权限"
  • 这表示机器人没有主动消息权限

解决方案

  1. 登录 QQ 开放平台
  2. 进入机器人开发-沙箱管理,消息列表配置中添加自己。
💡 临时替代方案:在没有主动消息权限前,可以让用户使用"回复"方式获得即时提醒,而非定时提醒。

📝 消息模板

场景触发时输出Emoji
喝水喝水时间到啦!💧 🚰
打卡早上好,打卡时间到!🌅 ✅
会议开会时间到!📅 👥
休息该休息一下了~😴 💤
日报下班前别忘了写日报哦~📝 ✍️
运动运动时间到!🏃 💪
吃药该吃药了~💊 🏥
生日今天是xx的生日!🎂 🎉

🔧 用户标识

类型格式来源
用户 openidB3EA9A1d-2D3c-5CBD-...系统消息自动提供
群组 openidgroup:FeC1ADaf-...系统消息自动提供
message_idROBOT1.0_xxx系统消息自动提供
💡 这些信息在系统消息中格式如: - 当前用户 openid: B3EA9A1d-... - 当前消息 message_id: ROBOT1.0_...

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.91%
按下载量换算940

Claude

31.06%
按下载量换算791

Cursor

20.48%
按下载量换算521

Gemini CLI

9.25%
按下载量换算236

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills