mcpField
C
cron-helper

cron-helper

github.com/tclawde生产力0418 次安装38 周前更新
代码仓库

关于 cron-helper

cron-helper 是一项指导 Agent 使用 `openclaw cron` 命令行安排任务的技能。它区分在独立会话中执行任务与在主会话中发送简单通知,并说明何时记录任务变更。

主要功能

  1. 01指导创建和移除 cron 任务
  2. 02区分任务执行与通知
  3. 03支持单次及重复计划
  4. 04配置向聊天频道发送输出
  5. 05列出任务并查看运行历史

适用场景

  1. 01安排 Agent 定期执行任务
  2. 02设置一次性提醒
  3. 03将定时任务结果发送到聊天频道

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tclawde/openclaw-skills-user --skill cron-helper

安装后在 Claude Code 中输入/cron-helper确认已加载。

附带文件package.json

详细介绍

Cron Helper Skill

用途: 指导我使用 openclaw cron CLI 执行基于时间的任务,并在创建/移除任务时发送日志。

适用场景:

  • 用户请求周期性任务或提醒
  • 用户提到“每隔 X 提醒我”
  • 用户需要定时后台检查
  • 用户希望 Agent 在特定时间执行任务

核心原则

始终优先使用 cron,而不是手动计时。

原因:我没有内置时钟。手动“自己追踪时间”会失败,因为我可能沉浸在阅读/思考中而忘记时间。Cron 是可靠的外部时钟。


主会话与隔离会话

隔离会话(任务首选)✅ 最佳实践

当你希望 Agent 实际执行任务时,使用 --session isolated:

  • Agent 收到消息并执行任务
  • 可以使用工具(exec、read、message 等)
  • 可以将输出发送到频道
  • 不会污染主对话历史

格式:

openclaw cron add \
  --name "job_name" \
  --cron "0 9 * * *" \
  --session isolated \
  --message "Task instructions for the agent" \
  --deliver \
  --channel feishu
主会话(仅限简单通知)

仅用于简单通知时,使用 --session main 和 --system-event:

  • 只会在主聊天中显示一条消息
  • Agent 不会执行任何任务
  • 不会调用工具,也不会发送内容

格式:

openclaw cron add \
  --name "reminder" \
  --at "+30m" \
  --session main \
  --system-event "Reminder: check email"

我应该如何响应

第 1 步:识别请求

关键词:“每隔”“提醒”“安排”“定时”“每小时/每天/每周”“在 X 分钟后执行”

第 2 步:询问详情

向用户确认:

  • 内容 - 任务描述或通知消息
  • 时间 - 时间安排(例如,“每 2 小时”“每天上午 9 点”“10 分钟后”)
  • 发送方式 - 是否需要将输出发送到聊天?(默认:否)
  • 名称 - 任务名称(可选;未提供时自动生成)
第 3 步:创建 cron 任务

用于 Agent 任务(首选):

openclaw cron add \
  --name "task_name" \
  --at "+10m" \
  --session isolated \
  --message "Your task instructions here" \
  --deliver \
  --channel feishu

用于简单提醒:

openclaw cron add \
  --name "reminder" \
  --at "+10m" \
  --session main \
  --system-event "Your reminder message"

移除 cron 任务:

openclaw cron rm <job_id>

列出所有 cron 任务:

openclaw cron list

其他实用命令:

openclaw cron status          # 查看调度器状态
openclaw cron run <job_id>    # 立即触发任务
openclaw cron enable <job_id> # 启用任务
openclaw cron disable <job_id> # 禁用任务
openclaw cron runs <job_id>   # 查看执行历史

发送选项

使用 --session isolated 时,可以将输出发送到聊天:

选项说明
--deliver启用发送(向频道输出时必需)
--channel <name>频道:feishu、telegram、slack、whatsapp 等
--to <dest>频道特定的目标(聊天 ID、电话号码等)
--post-mode full发布完整输出,而非摘要

示例:

# Deliver to Feishu
--deliver --channel feishu

# Deliver to Telegram
--deliver --channel telegram --to "-1001234567890"

# Deliver with full output
--deliver --channel feishu --post-mode full

常用选项

选项说明
--cron <expr>Cron 表达式(5 字段,或带秒的 6 字段)
--every <duration>每隔指定时长运行(例如,10m、1h)
--at <when>在指定时间运行一次(ISO 格式或 +时长,支持 m/s)
--tz <iana>时区(默认:本地)
--session main|isolated目标会话(默认:main)
--system-event <text>系统事件载荷(仅限主会话)
--message <text>Agent 消息载荷(仅限隔离会话)
--delete-after-run成功后删除一次性任务
--disabled创建处于禁用状态的任务

第 4 步:发送日志

仅在创建/移除时:

创建或移除 cron 任务后,发送一条包含确切命令的日志:

日志格式:

# 新增任务
[HH:MM] CRON ✅
$ openclaw cron add \
  --name "job_name" \
  --at "+10m" \
  --session isolated \
  --message "task description" \
  --deliver \
  --channel feishu

# 删除任务
[HH:MM] CRON ❌
$ openclaw cron rm <job_id>

示例:

# 新增
[21:30] CRON ✅
$ openclaw cron add \
  --name "daily-summary" \
  --cron "0 9 * * *" \
  --tz "Asia/Shanghai" \
  --session isolated \
  --message "总结今天的工作" \
  --deliver \
  --channel feishu

# 删除
[21:41] CRON ❌
$ openclaw cron rm 983a0f0e-0976-414a-b3d0-fd09c533e301

要点:

  • 仅在创建/移除时发送日志,执行时不发送
  • 保持精简:一个命令块,不添加额外文本

Cron → 人类可读时间映射(五位 - 分时日月周):

  • */5 * * * * → 每 5 分钟
  • */30 * * * * → 每 30 分钟
  • 0 * * * * → 每 1 小时
  • 0 */2 * * * → 每 2 小时
  • 0 9 * * * → 每天 1 次(09:00)
  • 0 10,22 * * * → 每天 2 次(10:00、22:00)
  • 0 9 * * 1 → 每周 1 次(周一 09:00)

Cron → 人类可读时间映射(六位 - 秒分时日月周):

  • */1 * * * * * → 每 1 秒
  • */5 * * * * * → 每 5 秒
  • */30 * * * * * → 每 30 秒

最佳实践总结

使用场景会话载荷发送
Agent 执行任务isolated--message--deliver ✅
简单通知main--system-event❌

经验法则: 如果你希望 Agent 执行某项操作(使用工具、发送消息),请使用 --session isolated + --message。


不要做的事

❌ 不要说“我会自己设置提醒” ❌ 不要尝试手动跟踪时间 ❌ 需要 Agent 执行任务时,不要使用 --system-event ❌ 需要将输出发送到聊天时,不要忘记 --deliver ❌ 不要发送执行日志(仅在创建/移除时记录日志)

✅ 始终使用 openclaw cron CLI ✅ 对于 Agent 任务,使用 --session isolated ✅ 仅对于简单通知,使用 --session main ✅ 仅在创建/移除时发送日志 ✅ 保持日志简洁清晰


常见的定时计划模式

五位 Cron(分 时 日 月 周)
频率Cron 表达式CLI 标志
每 5 分钟*/5 * * * *--cron "*/5 * * * *"
每 30 分钟*/30 * * * *--cron "*/30 * * * *"
每小时0 * * * *--cron "0 * * * *"
每 2 小时0 */2 * * *--cron "0 */2 * * *"
每天上午 9 点0 9 * * *--cron "0 9 * * *"
每天两次(上午 10 点、晚上 10 点)0 10,22 * * *--cron "0 10,22 * * *"
每周(周一上午 9 点)0 9 * * 1--cron "0 9 * * 1"
六位 Cron(秒 分 时 日 月 周)
频率Cron 表达式CLI 标志
每 1 秒*/1 * * * * *--cron "*/1 * * * * *"
每 5 秒*/5 * * * * *--cron "*/5 * * * * *"
每 30 秒*/30 * * * * *--cron "*/30 * * * * *"

持续时间标志:

频率CLI 标志
每 10 分钟--every "10m"
每 2 小时--every "2h"
20 分钟后执行一次--at "+20m"
20 秒后执行一次--at "+20s"

安装技能后自动加载。

评论

支持 Markdown