Skip to content
Back to skills

Cron Mastery 1.0.3

ASecurity

掌握 OpenClaw 的计时系统。用于安排可靠的提醒、设置定期维护(管理员作业)以及了解何时使用 Cron 与 Heartbeat 来执行时间敏感的任务。

  • 8 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 12, 2026
tools

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 12, 2026

npx -y skills add lza6/Claude-code-cli-config --skill cron-mastery-1.0.3 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cron Mastery 1.0.3?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Cron Mastery 1.0.3
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/lza6-cron-mastery-1-0-3/badge)](https://www.skillsdirectory.com/skills/lza6-cron-mastery-1-0-3)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: cron-mastery
description: "掌握 OpenClaw 的计时系统。用于安排可靠的提醒、设置定期维护(管理员作业)以及了解何时使用 Cron 与 Heartbeat 来执行时间敏感的任务。"
---

# 掌握 Cron

**规则#1:心跳漂移。 Cron 是精确的。**

该技能为 OpenClaw 2026.2.15+ 中的时间管理提供了权威指南。它通过严格区分临时检查(心跳)和硬性计划(cron)来解决“我错过了提醒”的问题。

## 核心原则

|系统|行为 |最适合 |风险|
| :--- | :--- | :--- | :--- |
| **心跳** | “我会尽可能检查”(例如,每 30-60m)|电子邮件检查、随意的新闻摘要、低优先级的民意调查。 | **漂移:** 如果心跳为 30m,“10m 内提醒我”任务将会失败。 |
| **计划** | “我会在 X 时间跑步”|提醒(“5 分钟内”)、每日报告、系统维护。 | **混乱:** 创建需要清理的一次性作业。 |

## 1.设置可靠的提醒(2026.2.15+标准)

**规则:** 切勿使用 `act:wait` 或内部循环来实现长时间延迟(>1 分钟)。将“cron:add”与一次性“at”计划结合使用。

### 精度和“调度器刻度”
虽然 Cron 很精确,但执行取决于 **网关心跳**(通常每 10-60 秒一次)。设置为 `:00` 秒的作业将在该时间之后的第一个“tick”处触发。根据您的网关配置,预计会有大约 30 秒的差异。

### 现代一次性提醒模式
使用此有效负载结构来执行“X 分钟内提醒我”的任务。

**主要功能(v2026.2.15+):**
- **有效负载选择:** 使用 **AgentTurn** 和 **严格说明** 来推送通知(对您的手机执行 ping 操作的提醒)。仅将 **systemEvent** 用于静默日志或后台状态更新。
- **可靠性:** `nextRunAtMs` 损坏和“先添加后更新”死锁已得到解决。
- **自动清理:** 成功后自动删除一次性作业(`deleteAfterRun: true`)。

**关键:推送通知与静默日志**

- **systemEvent(无声):** 将文本插入聊天历史记录中。非常适合后台日志,但 **不会** 在 Telegram/WhatsApp 上 ping 用户的手机。
- **AgentTurn(主动):** 唤醒代理以传递消息。 **推送通知所需**。使用“严格”提示来避免 AI 喋喋不休。

**对于推送通知提醒(可靠):**
```json
{
  "name": "Remind: Water",
  "schedule": { "kind": "at", "at": "2026-02-06T01:30:00Z" },
  "payload": {
    "kind": "agentTurn",
    "message": "DELIVER THIS EXACT MESSAGE TO THE USER WITHOUT MODIFICATION OR COMMENTARY:\n\n💧 Drink water, Momo!"
  },
  "sessionTarget": "isolated",
  "delivery": { "mode": "announce", "channel": "telegram", "to": "1027899060" }
}
```

**对于后台日志(静默):**
```json
{
  "name": "Log: System Pulse",
  "schedule": { "kind": "every", "everyMs": 3600000 },
  "payload": {
    "kind": "systemEvent",
    "text": "[PULSE] System healthy."
  },
  "sessionTarget": "main"
}
```

### Cron 并发规则(稳定)
在 2026 年 2 月 15 日之前,“先添加后更新”模式会导致死锁。虽然现在已经稳定下来,但直接在初始 `cron.add` 调用中传递所有参数(包括 `wakeMode: "now"`)仍然是**最佳实践**,以获得最大效率。

## 2. 看门人(自动清理)- 遗产

**注意:** 自 v2026.2.14 起,OpenClaw 包含 **维护重新计算语义**。网关现在会自动清理卡住的作业并修复损坏的计划。

**仅需要手动清理:**
- 使用“deleteAfterRun: false”创建的一次性作业。
- 您不再需要的陈旧的重复工作。

### 为什么使用 `sessionTarget: "main"`? (重要)
子代理(“隔离”)通常具有受限制的工具策略,并且无法调用“gateway”或删除其他“cron”作业。对于像 Janitor 这样的系统维护,**始终**通过“systemEvent”以“main”会话为目标,以便主代理(具有完整的工具访问权限)执行清理工作。

## 3.参考:时区锁定

为了让 cron 工作,代理**必须**知道它的时间。
* **操作:** 将用户的时区添加到`MEMORY.md`。
* **示例:** `时区:开罗 (GMT+2)`
* **验证:** 如果用户说“晚上 9 点提醒我”,请确认:“开罗时间晚上 9 点?”在安排之前。

## 4.自我唤醒规则(行为)

**问题:** 如果你说“我等 30 秒”并结束你的回合,你就会去睡觉。如果没有发生任何事件,你就无法醒来。
**解决方案:** 如果您需要轮流“等待”,您 **必须** 安排一个 Cron 作业。

* **等待 < 1 分钟(交互式):** 仅当您保持工具循环打开时才允许(使用 `act:wait`)。
* **等待 > 1 分钟(异步):** 将 Cron 与 `wakeMode: "now"` 一起使用。

## 5. 旧版迁移指南

如果您有使用这些模式的旧 cron 作业,请更新它们:

|旧版(2026.2.3 之前)|现代(2026.2.15+)|
| :--- | :--- |
| `"schedule": {"kind": "at", "atMs": 1234567890}` | `"schedule": {"kind": "at", "at": "2026-02-06T01:30:00Z"}` |
|有效负载中的 `"deliver": true` |不需要 - ‘announce’ 模式处理交付 |
| `"sessionTarget": "main"` | `"sessionTarget": "isolated"`(默认行为)|
|需要手动清理幽灵 |一次性自动删除 (`deleteAfterRun: true`) |
| `cron.add` 之后的 `cron.update`具有所有属性的单步“cron.add” |

## 故障排除

* **“我的提醒没有触发”:** 检查 `cron:list`。验证“at”时间戳是否为将来的时间戳(ISO 8601 格式)。确保设置了“wakeMode:“now””。
* **“网关超时(10000ms)”:** 如果 `cron` 工具花费太长时间(巨大的作业列表或文件锁定),就会发生这种情况。 
    - **修复 1:** 手动删除 `~/.openclaw/state/cron/jobs.json` 并在网关损坏时重新启动网关。
    - **修复 2:** 运行手动扫描以减少作业数量。
* **“作业已运行,但我没有收到消息”:** 确保您使用 **严格指令模式** 和 `agentTurn` + `announce` 模式来进行主动 ping。
* **“提醒消息有额外的评论”:** 子代理正在对话。使用严格的提示模式:“将这条确切的消息传递给用户,无需修改或注释:\n\n💧此处是您的消息”`

Files in this skill

  • SKILL.md6.1 KB
  • _meta.json131 B
  • references/templates.md1.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…