OpenClaw 中的 Heartbeat(心跳) 是其核心机制之一,让 AI Agent 从“被动响应”变成“主动执行”的关键设计。它让智能体能够定时“醒来”检查任务、监控事件、处理提醒,而不需要你每次手动发消息。
Heartbeat 是什么?
- 简单比喻
:像 AI 的“生物钟”或“巡逻员”。 每隔一段时间(默认 30 分钟),AI 在主会话中自动运行一次完整思考轮次(agent turn)。 它会读取预设指令、检查上下文(邮件、日历、任务、知识库等),判断是否有需要处理的事项。 如果没事,它通常只回复 HEARTBEAT_OK(系统会自动识别并静默丢弃,不打扰你)。 如果有重要事情,它才会主动发送提醒、执行工具或通知你。
这让 OpenClaw 从一个普通的聊天机器人,升级为真正能“自己找活干”的 24/7 智能助手。
Heartbeat 的触发与运行机制
- 触发方式
(零成本调度): 主要靠内置定时器(Cron-like)。 默认间隔:30m(Anthropic OAuth/setup-token 模式下可能是 1h)。 可以全局配置(agents.defaults.heartbeat.every)或针对单个 Agent 配置。 设置为 "0m" 可完全禁用。 - 运行流程
: 触发后,系统加载主会话上下文 + HEARTBEAT.md 文件的指令。 AI 使用指定模型(可单独配置 heartbeat.model 以节省成本)进行推理。 执行工具调用、检查状态、决定是否行动。 只有产生“新鲜、有意义”的结果时,才会推送消息到聊天界面(避免刷屏)。 支持 activeHours(活跃时间段)限制,避免半夜打扰。 - HEARTBEAT.md 文件的作用
(最常用自定义方式): 在工作区(通常 ~/.openclaw/workspace/)创建这个 Markdown 文件。 里面用自然语言写检查清单,例如: text
# HEARTBEAT.md每次 heartbeat 检查以下内容:1. 检查邮箱:如果有新邮件或“紧急”关键词,总结并提醒我。2. 查看日历:今天/明天待办事项,如果快到期就推送。3. 同步知识库:git pull 更新共享内容并学习。4. 监控任务:未完成事项是否需要续跑或报警。AI 会严格遵循这些指令,结合记忆(MEMORY.md、SOUL.md 等)做出智能判断。 文件不存在时,心跳仍会运行(模型自行决定做什么);文件为空或只有标题时,可能跳过以节省 token。
Heartbeat vs Cron(定时任务)
很多人会混淆两者,简单区分:
- Heartbeat(心跳)
:巡逻式,需要判断、带上下文。适合“检查是否有事要做”“批量多个监控”“只在必要时提醒”。 - Cron
:闹钟式,固定时间精确执行。适合“每天早上生成报告”“每周总结”等不需要复杂判断的任务。
推荐组合使用:把复杂判断放 Heartbeat,把固定动作放 Cron,能更好控制成本和噪声。
配置示例(openclaw.json 或类似配置文件)
JSON
{ "agents": { "defaults": { "heartbeat": { "every": "30m", // 间隔,0m 禁用 "target": "last", // 推送目标(last/none 等) "activeHours": { "start": "08:00", "end": "22:00" }, "model": "anthropic/claude-haiku-3" // 可单独用便宜模型节省费用 } } }}注意事项与最佳实践
- 成本控制
:Heartbeat 会消耗 LLM 调用,建议用轻量模型(Haiku 等)跑心跳;只在必要时升级到强模型。无事时返回 HEARTBEAT_OK 可大幅降低噪声和费用。 - 避免循环
:指令要清晰,避免 AI 每次都重复相同动作。 - 进阶玩法
:结合长效记忆、子 Agent(sub-agents)、工具链,实现自动学习、邮件处理、股票监控、代码仓库同步等。 - 常见问题
:如果 HEARTBEAT.md 不存在或配置有误,心跳可能不按预期运行;部分版本有 bug(如模型覆盖失效),建议查官方 docs 或 GitHub issues。
Heartbeat 是 OpenClaw 最能体现“主动性”的设计之一,让 AI 真正像一个有“脉搏”的智能伙伴。
如果你有具体的使用场景(比如想监控邮件、股票、学习任务),或者遇到配置/运行问题,可以提供更多细节,我可以帮你细化 HEARTBEAT.md 示例或排查!
夜雨聆风