定时任务和主动推送
大多数 AI 助手是被动式的——你不说话,它就不响应。
Moltbot 支持主动推送。它可以按计划自动执行任务并发送消息。
例如:早上 8 点推送天气和日程概览,每小时检查 GitHub 是否有新的 PR 需要 review,晚上 10 点发送提醒。
Heartbeat Engine
Moltbot 的主动推送依赖 Heartbeat Engine——一个内置的心跳机制,定期检查是否有需要执行的任务。
Heartbeat Engine 与 cron job 配合使用。你通过 cron 设定时间和任务内容,Heartbeat Engine 在到点时唤醒 Moltbot 执行。
配置定时任务
最直接的方式是用自然语言告诉 Moltbot:
每天早上8点给我发一份天气预报和今天的日程安排每周一上午9点提醒我写周报每30分钟检查一下 GitHub 上的 moltbot 仓库有没有新 IssueMoltbot 会自动将这些转化为 cron 任务。
也可以通过配置文件手动配置:
# ~/.moltbot/config.yaml
cron:
jobs:
morning-briefing:
schedule: "0 8 * * *" # 每天早上8点
prompt: "查看今天的天气和我的日程,给我一份简短的早间简报"
channel: telegram # 推送到 Telegram
weekly-report-reminder:
schedule: "0 9 * * 1" # 每周一早上9点
prompt: "提醒我该写周报了,顺便帮我回顾一下这周我们聊过的工作内容"
channel: telegram
github-check:
schedule: "*/30 * * * *" # 每30分钟
prompt: "检查 GitHub 上有没有需要我处理的 PR 或 Issue"
channel: telegramschedule 使用标准 cron 表达式格式,五个位置分别为:分钟、小时、日、月、星期几。
常用 cron 表达式参考:
| 效果 | cron 表达式 |
|---|---|
| 每天早上8点 | 0 8 * * * |
| 每小时 | 0 * * * * |
| 每30分钟 | */30 * * * * |
| 每周一早上9点 | 0 9 * * 1 |
| 工作日早上9点 | 0 9 * * 1-5 |
| 每月1号上午10点 | 0 10 1 * * |
也可以直接描述你需要的频率,让 Moltbot 帮你生成表达式。
早间简报
这是最常见的使用场景。
一份完整的早间简报可以包含:
- 今日天气(需配置网页搜索,参见 MCP 工具)
- 今日日程(如果接入了日历 MCP)
- 未读重要邮件摘要
- GitHub 待处理事项
- 前一天设置的提醒
cron:
jobs:
morning-briefing:
schedule: "0 8 * * 1-5" # 工作日早上8点,周末不推送
prompt: |
给我准备一份早间简报,包含:
1. 今天的天气预报
2. GitHub 上需要我 review 的 PR
3. 昨天有没有设置过什么提醒
简短一点,不要太长。
channel: telegramprompt 中的内容相当于你发给 Moltbot 的消息。到达设定时间后,Moltbot 会处理这段 prompt 并将结果推送到指定渠道。
提醒
除了定时任务,还可以直接设置提醒:
3个小时后提醒我给客户发邮件明天下午2点提醒我开会每天晚上10点提醒我喝水一次性提醒和循环提醒均支持。
事件告警
这是一个较为高级的应用场景。
配合 MCP 工具,可以让 Moltbot 定期检查特定状态,发现异常时主动告警。
例如:
cron:
jobs:
server-health:
schedule: "*/10 * * * *" # 每10分钟
prompt: "检查一下服务器的健康状态,如果有异常立即告诉我"
channel: telegram
api-usage:
schedule: "0 18 * * *" # 每天下午6点
prompt: "查看今天的 API 调用量,如果超过日均水平50%就提醒我"
channel: telegram这些场景需要 Moltbot 能够访问对应的数据源(通过 MCP 工具或内置 browser 工具)。
推送渠道
channel 字段指定消息推送的目标渠道,填写已配置的渠道名:telegram、discord、slack、whatsapp。
如果配置了多个渠道,不同任务可以推送到不同目标。例如工作相关推送到 Slack,个人事项推送到 Telegram。
cron:
jobs:
work-reminder:
schedule: "0 9 * * 1-5"
prompt: "今天有什么工作需要处理"
channel: slack
personal-reminder:
schedule: "0 21 * * *"
prompt: "提醒我明天要做的私人事项"
channel: telegramHeartbeat 间隔
Heartbeat Engine 默认检查间隔为 1 分钟,即 cron 任务的最小精度为 1 分钟。
可以调整:
heartbeat:
interval: 60 # 秒,默认60缩短间隔会提高检查频率,但也会增加资源消耗。通常保持默认值即可。
调试定时任务
查看所有定时任务及其下次触发时间:
moltbot cron list手动触发某个任务进行测试:
moltbot cron trigger morning-briefing该命令会立即执行指定任务,无需等待定时触发。
注意事项
Moltbot 必须保持运行。 定时任务依赖 Heartbeat Engine,Moltbot 停止后任务不会触发。如果部署在服务器上,建议使用 systemd 或 pm2 等工具保持进程常驻。
Token 消耗。 每次定时任务触发都会执行一轮 AI 对话,消耗 Token。如果设置了多个高频任务(如每 5 分钟一次),Token 费用会累积。请根据实际需求合理规划。
时区。 cron 表达式使用系统本地时区。如果服务器时区与你的生活时区不同,注意换算。