问题描述
设置"1分钟后提醒喝茶",但一直没有收到提醒。
原因分析
最开始,openclaw使用 ❌ exec background 执行了 sleep && echo
效果:只在服务器本地打印,不会发送消息到 Feishu
✅ 正确方法:使用 OpenClaw 的定时任务功能,而且不少坑,折腾了1天,总算可以了:
将这段代码提示完整复制,写入你的agent.md中:
bash
## 所有定时提醒都用cron,(飞书)正确写法:
openclaw cron add \
--name "提醒名称" \
--at "10s" \
--message "提醒内容" \
--announce \
--to "user:<当前session的open_id>" \
--account <account_id> \
--timeout-seconds 30
**关键点:**
- `--to "user:<当前session的open_id>"`:目标用户
- `--account <account_id>`:必须与当前`session`使用的飞书应用一致(如 coder)
- `--announce`:将结果发送到聊天
- ⚠️ **重要**:open_id 是飞书应用级别的,必须使用同一个应用的 account_id,否则会报 "open_id cross app" 错误(99992361)
目前这个参数仍有bug:--session current ,在其它session中加入参数仍然会拿到main的session,看起来就像是,一个陌生人突然知道了你叫刚哥(其实不是),因此不加这个参数
查看定时任务
bash
openclaw cron list
参考资料:
bash
找到原因了。看 cron 运行日志:
原因是 cron 任务跑在隔离的 agent session 里(session key 显示是 agent:main:cron:...),那个 session 继承了主 agent 的 workspace 上下文。模型拿到"该喝茶了"这个简单的 prompt 后,自己"发挥"了一下------加上了"刚哥"(可能是从主 agent 的历史对话里推断的)和关于喝茶的建议。
简单说:模型把你的简单消息当成了创作 prompt,自己加了料。
有更好方法的朋友请评论区灌水