> 真正的 AI 管家不是你找它才干活,而是它自己知道该干什么。 ## Heartbeat vs Cron:两种自动化哲学 OpenClaw 有两种定时机制,设计哲学完全不同。 ### Heartbeat:定期"醒来看看" Heartbeat 是主会话里的定期轮询。每隔 30 分钟,AI 会"醒来",读 HEARTBEAT.md 里的检查清单,看看有没有需要处理的事。 ```json5 { "agents": { "defaults": { "heartbeat": { "every": "30m", "target": "last", "activeHours": { "start": "08:00", "end": "22:00" } } } } } ``` 优势: - **批量处理**:一次心跳检查收件箱 + 日历 + 通知,比 3 个独立 cron 省钱 - **上下文感知**:在主会话里跑,能看到最近的对话上下文 - **智能抑制**:没事就回 `HEARTBEAT_OK`,不打扰你 我的 HEARTBEAT.md 检查清单: ```markdown - [ ] Agent health: 确认所有 agent 在线 - [ ] 检查 sub-agent 任务状态 - [ ] 上下文使用情况,是否需要总结 - [ ] 回顾 memory/ 是否有值得提升到 MEMORY.md 的内容 - [ ] 对话沉淀:有价值的内容写入思源 DailyNote ``` ### Cron:精确定时任务 Cron 是独立的定时任务,在隔离的 session 里跑。适合: - 精确时间("每天早上 8:00 整") - 需要和主会话隔离 - 可以用不同的模型 - 一次性提醒("20 分钟后提醒我") ## 我的定时任务全景 一周下来,我搭了这些自动化任务: ### 每日早间简报(8:00) 最先创建的 cron,除夕夜就上线了。 ```json { "schedule": { "kind": "cron", "expr": "0 8 * * *", "tz": "Asia/Shanghai" }, "payload": { "kind": "agentTurn", "message": "抓取今日新闻,分类整理后推送。分类:世界政治经济 / 法律监管 / AI 进展 / AI 眼镜。用 target='your-telegram-id' 发送。", "model": "anthropic/claude-sonnet-4-6" }, "sessionTarget": "isolated" } ``` **踩坑**:第一版 prompt 里写的是 `to='your-telegram-id'`,但 isolated session 里的 message 工具要求用 `target` 参数。报错信息是 "Use target instead of to/channelId"。改了 prompt 就好了。 另一个问题是新闻重复——连续几天推送相同的新闻。需要加去重逻辑,这个还在 TODO 里。 ### Vaultwarden 每日备份(3:00) 我自建了 Vaultwarden 密码管理器,每天凌晨 3 点自动备份: ```bash # ~/scripts/vaultwarden-backup.sh # 1. sqlite3 .backup 全量备份 # 2. GPG AES256 加密 # 3. Python SMTP 发送到邮箱 ``` 为什么用邮件而不是 S3?因为邮件是免费的,而且邮箱附件存储相当于免费的异地备份。 ### Typecho 每月备份(每月 1 号 4:00) 博客数据库每月备份一次: ```bash # ~/scripts/typecho-backup.sh # mysqldump → GPG 加密 → 邮件发送 ``` **踩坑**:发现原有备份脚本的 mysqldump 命令缺少 `-h127.0.0.1` 参数,导致数据库备份文件**长期为 0 字节**。也就是说,之前的"备份"一直是空的。 这种 bug 最可怕——看起来在跑,实际上没用。发现后立即修复,加了 `-h127.0.0.1` 和 `--no-tablespaces`。 ### email-send Skill 备份需要发邮件,但 himalaya(CLI 邮件客户端)发附件不稳定。最终写了一个 `email-send` skill,用 Python SMTP 直接发: ```python import smtplib from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase # ... 标准 SMTP 发送逻辑 ``` 简单粗暴但可靠。 ### 密码管理器漏洞追踪(9:00 / 18:00) ETH Zürich 发现了 25 个影响 Bitwarden/LastPass/Dashlane 的漏洞,约 6000 万用户受影响。我创建了一个 cron 每天两次搜索最新动态: ```json { "schedule": { "kind": "cron", "expr": "0 9,18 * * *", "tz": "Asia/Shanghai" }, "payload": { "kind": "agentTurn", "message": "搜索 ETH Zürich 密码管理器漏洞最新动态,有新进展才通知" } } ``` 关键是"有新进展才通知"——不是每次都推送,而是有变化才说。 ### 晚间日记提醒(21:30) 每天晚上 9:30,AI 会: 1. 读当天思源 DailyNote 已有内容 2. 对比当天的聊天记录 3. 提示我遗漏了什么值得记录的 这个提醒帮我养成了每天写日记的习惯。 ### 月度日记摘要(每月 1 号 10:00) 自动读取上个月所有日记,生成月度摘要,写入思源笔记的 `YYYY-MM` 文档。渐进式摘要的自动化一环。 ### 每日 Token 报告(8:00) 统计前一天的 API 调用次数、token 消耗、模型分布。有数据才能优化。 ## Heartbeat vs Cron 选择指南 | 场景 | 用 Heartbeat | 用 Cron | | ----------------- | ------------ | ------- | | 多个检查批量处理 | ✅ | | | 需要对话上下文 | ✅ | | | 时间可以有偏差 | ✅ | | | 精确时间很重要 | | ✅ | | 需要 session 隔离 | | ✅ | | 想用不同模型 | | ✅ | | 一次性提醒 | | ✅ | | 输出直接发频道 | | ✅ | 经验法则:**把类似的定期检查批量放到 HEARTBEAT.md,cron 用于精确调度和独立任务**。 ## 小结 自动化是 OpenClaw 从"聊天工具"变成"AI 管家"的关键。Heartbeat 负责日常巡检,Cron 负责精确任务,两者配合覆盖了大部分自动化需求。 最重要的经验:**备份一定要验证**。跑着不等于有用——Typecho 的 0 字节备份就是血的教训。 Loading... > 真正的 AI 管家不是你找它才干活,而是它自己知道该干什么。 ## Heartbeat vs Cron:两种自动化哲学 OpenClaw 有两种定时机制,设计哲学完全不同。 ### Heartbeat:定期"醒来看看" Heartbeat 是主会话里的定期轮询。每隔 30 分钟,AI 会"醒来",读 HEARTBEAT.md 里的检查清单,看看有没有需要处理的事。 ```json5 { "agents": { "defaults": { "heartbeat": { "every": "30m", "target": "last", "activeHours": { "start": "08:00", "end": "22:00" } } } } } ``` 优势: - **批量处理**:一次心跳检查收件箱 + 日历 + 通知,比 3 个独立 cron 省钱 - **上下文感知**:在主会话里跑,能看到最近的对话上下文 - **智能抑制**:没事就回 `HEARTBEAT_OK`,不打扰你 我的 HEARTBEAT.md 检查清单: ```markdown - [ ] Agent health: 确认所有 agent 在线 - [ ] 检查 sub-agent 任务状态 - [ ] 上下文使用情况,是否需要总结 - [ ] 回顾 memory/ 是否有值得提升到 MEMORY.md 的内容 - [ ] 对话沉淀:有价值的内容写入思源 DailyNote ``` ### Cron:精确定时任务 Cron 是独立的定时任务,在隔离的 session 里跑。适合: - 精确时间("每天早上 8:00 整") - 需要和主会话隔离 - 可以用不同的模型 - 一次性提醒("20 分钟后提醒我") ## 我的定时任务全景 一周下来,我搭了这些自动化任务: ### 每日早间简报(8:00) 最先创建的 cron,除夕夜就上线了。 ```json { "schedule": { "kind": "cron", "expr": "0 8 * * *", "tz": "Asia/Shanghai" }, "payload": { "kind": "agentTurn", "message": "抓取今日新闻,分类整理后推送。分类:世界政治经济 / 法律监管 / AI 进展 / AI 眼镜。用 target='your-telegram-id' 发送。", "model": "anthropic/claude-sonnet-4-6" }, "sessionTarget": "isolated" } ``` **踩坑**:第一版 prompt 里写的是 `to='your-telegram-id'`,但 isolated session 里的 message 工具要求用 `target` 参数。报错信息是 "Use target instead of to/channelId"。改了 prompt 就好了。 另一个问题是新闻重复——连续几天推送相同的新闻。需要加去重逻辑,这个还在 TODO 里。 ### Vaultwarden 每日备份(3:00) 我自建了 Vaultwarden 密码管理器,每天凌晨 3 点自动备份: ```bash # ~/scripts/vaultwarden-backup.sh # 1. sqlite3 .backup 全量备份 # 2. GPG AES256 加密 # 3. Python SMTP 发送到邮箱 ``` 为什么用邮件而不是 S3?因为邮件是免费的,而且邮箱附件存储相当于免费的异地备份。 ### Typecho 每月备份(每月 1 号 4:00) 博客数据库每月备份一次: ```bash # ~/scripts/typecho-backup.sh # mysqldump → GPG 加密 → 邮件发送 ``` **踩坑**:发现原有备份脚本的 mysqldump 命令缺少 `-h127.0.0.1` 参数,导致数据库备份文件**长期为 0 字节**。也就是说,之前的"备份"一直是空的。 这种 bug 最可怕——看起来在跑,实际上没用。发现后立即修复,加了 `-h127.0.0.1` 和 `--no-tablespaces`。 ### email-send Skill 备份需要发邮件,但 himalaya(CLI 邮件客户端)发附件不稳定。最终写了一个 `email-send` skill,用 Python SMTP 直接发: ```python import smtplib from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase # ... 标准 SMTP 发送逻辑 ``` 简单粗暴但可靠。 ### 密码管理器漏洞追踪(9:00 / 18:00) ETH Zürich 发现了 25 个影响 Bitwarden/LastPass/Dashlane 的漏洞,约 6000 万用户受影响。我创建了一个 cron 每天两次搜索最新动态: ```json { "schedule": { "kind": "cron", "expr": "0 9,18 * * *", "tz": "Asia/Shanghai" }, "payload": { "kind": "agentTurn", "message": "搜索 ETH Zürich 密码管理器漏洞最新动态,有新进展才通知" } } ``` 关键是"有新进展才通知"——不是每次都推送,而是有变化才说。 ### 晚间日记提醒(21:30) 每天晚上 9:30,AI 会: 1. 读当天思源 DailyNote 已有内容 2. 对比当天的聊天记录 3. 提示我遗漏了什么值得记录的 这个提醒帮我养成了每天写日记的习惯。 ### 月度日记摘要(每月 1 号 10:00) 自动读取上个月所有日记,生成月度摘要,写入思源笔记的 `YYYY-MM` 文档。渐进式摘要的自动化一环。 ### 每日 Token 报告(8:00) 统计前一天的 API 调用次数、token 消耗、模型分布。有数据才能优化。 ## Heartbeat vs Cron 选择指南 | 场景 | 用 Heartbeat | 用 Cron | | ----------------- | ------------ | ------- | | 多个检查批量处理 | ✅ | | | 需要对话上下文 | ✅ | | | 时间可以有偏差 | ✅ | | | 精确时间很重要 | | ✅ | | 需要 session 隔离 | | ✅ | | 想用不同模型 | | ✅ | | 一次性提醒 | | ✅ | | 输出直接发频道 | | ✅ | 经验法则:**把类似的定期检查批量放到 HEARTBEAT.md,cron 用于精确调度和独立任务**。 ## 小结 自动化是 OpenClaw 从"聊天工具"变成"AI 管家"的关键。Heartbeat 负责日常巡检,Cron 负责精确任务,两者配合覆盖了大部分自动化需求。 最重要的经验:**备份一定要验证**。跑着不等于有用——Typecho 的 0 字节备份就是血的教训。 最后修改:2026 年 02 月 24 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏