--- name: "remind-me" description: "飞书加急提醒:设置定时提醒,到点自动通过飞书加急消息弹窗通知用户。支持\"X点提醒我XXX\"等自然语言。" --- # Remind Me — 飞书加急提醒 设置定时提醒,到点自动通过飞书加急消息弹窗通知用户。支持"X点提醒我XXX"等自然语言。 ## 触发条件 用户说出类似以下话语时触发: - "X点提醒我XXX" - "X分钟后提醒我XXX" - "今晚8点提醒我XXX" - "明天早上9点叫我XXX" ## 流程 ### 1. 解析时间和内容 从用户话语中提取: - **时间**:转换为 ISO-8601 UTC 时间戳(注意时区:用户在东八区 Asia/Shanghai,需减8小时转UTC) - **内容**:提醒的具体事项 - 如果时间表述模糊(如"明天早上"),确认具体时间 ### 2. 创建定时任务 用 `automations(action="add")` 创建(CLI 侧核对用 `openclaw cron list`)。⚠️ 不要用 `agentTurn` 类型:依赖 LLM,DeepSeek 高峰期会超时导致 job 失败(2026-08-12 踩坑)。也**不要**写 `payload.kind:"command"` + `argv`——该形状会被拒(实测报 `unexpected property 'command'`),现在只接受 `systemEvent` / `agentTurn` / `script`。 用 `script` 类型(code mode 里跑一次 exec),零 LLM 依赖: ```json { "name": "remind-me-{简短描述}", "schedule": { "kind": "at", "at": "{ISO-8601 UTC时间}" }, "sessionTarget": "isolated", "deleteAfterRun": true, "delivery": { "mode": "none" }, "payload": { "kind": "script", "script": "const r = await exec({command: \"python3 /root/.openclaw/workspace/scripts/feishu_urgent.py '⏰ {提醒内容}'\"});\nreturn {output: r.stdout ?? JSON.stringify(r)};", "timeoutSeconds": 60 } } ``` 关键字段: - `schedule.kind: "at"` — 一次性定时 - `schedule.at` — UTC 时间,北京时间20:00 = `2026-07-29T12:00:00.000Z` - `payload.kind: "script"` — code mode 里执行 shell,不走 LLM(同 daily-leetcode,用 `openclaw cron list` 查它当前 ID) - `sessionTarget: "isolated"` + `delivery.mode: "none"` — 脚本自己发飞书加急,不需要再 announce 一条 - `deleteAfterRun: true` — 一次性 job 成功投递后自动删 - 脚本内自读 `~/.openclaw/.env` 的 `FEISHU_USER_ID`,无需显式传 user_id - 提醒文本保持 10-30 字且不含引号,避免 JS/shell 嵌套转义出错 ### 3. 确认 创建成功后告诉用户: - 提醒时间(北京时间) - 提醒内容 - "到点会飞书加急弹窗哦~" 想先验证链路,另建一个 2 分钟后的测试提醒触发一次(别 force 正式那条,会立刻弹一次)。 ### 4. 修改/取消 用户说"取消提醒" → `automations(action="remove")` 删除最近创建的 remind-me-* 任务 ## 脚本依赖 `scripts/feishu_urgent.py` 已封装飞书加急全流程: ```bash python3 scripts/feishu_urgent.py "消息内容" [user_id] ``` 内部自动完成:读配置 → 获取 token → 发消息 → 加急弹窗 ## 时区换算 用户说的都是北京时间(Asia/Shanghai)。转为 UTC: - 北京时间 - 8 小时 = UTC - 例:今晚8点 = `2026-07-29T20:00:00+08:00` = `2026-07-29T12:00:00.000Z`