引言
OpenClaw的心跳模式(Heartbeat)是其自动化系统中一个非常独特且强大的功能,这也是为什么很多人被它吸引而"入坑"的原因。本文将详细介绍心跳模式的工作原理、使用方法和实际应用场景。
心跳模式的核心概念
心跳模式是OpenClaw在主会话(main session)中定期运行的周期性意识检查机制。默认情况下,每30分钟运行一次,让AI代理主动检查各种状态并决定是否需要向用户汇报。
与传统的定时任务不同,心跳模式具有以下特点:
- 上下文感知:拥有完整的主会话上下文,能理解最近的对话和用户需求
- 批量处理:可以同时检查多个事项(邮件、日历、通知等)
- 智能抑制:如果没有重要事项,只会回复
HEARTBEAT_OK而不发送消息 - 自然时序:时间略有漂移,但对监控任务来说完全足够
心跳 vs Cron:两种调度机制的区别
OpenClaw提供了两种调度机制,各有适用场景:
心跳模式(Heartbeat)适用场景:
- 多任务批处理:比如同时检查邮箱、日历、项目状态
- 上下文相关决策:需要了解用户最近在做什么才能判断优先级
- 低开销监控:一个心跳替代多个小的轮询任务
- 对话连续性:保持在同一会话中,记忆之前的交互
Cron任务适用场景:
- 精确时间要求:必须在特定时间点执行(如"每天9点准时")
- 独立任务:不需要主会话上下文的独立操作
- 不同模型需求:需要使用不同的AI模型或思考级别
- 一次性提醒:如"20分钟后提醒我"
心跳模式的实际工作方式
配置文件:HEARTBEAT.md
心跳模式通过HEARTBEAT.md文件来定义检查清单:
# HEARTBEAT.md - 心跳检查清单
# 保持此文件为空(或仅包含注释)以跳过心跳API调用
# 在下面添加您希望代理定期检查的任务
- 检查WordPress新闻和AI行业动态更新
- 监控日历中未来2小时内的事件
- 查看是否有后台任务已完成并汇总结果
- 如果超过8小时没有互动,发送简短的问候
- 检查天气情况(如果用户可能外出)
每次心跳时,AI代理会读取这个文件并按清单执行所有检查项。
智能行为规则
- 活跃时间控制:可以设置只在特定时间段(如8:00-22:00)运行
- 安静模式:深夜或用户忙碌时不打扰
- 频率控制:避免重复检查(如30分钟内刚检查过就不重复)
- 重要性判断:只有真正重要的信息才会汇报
如何使用和触发心跳模式
自动触发(默认行为)
心跳模式默认每30分钟自动运行一次,无需任何手动操作。您只需要:
- 在工作区根目录创建
HEARTBEAT.md文件 - 在文件中添加您希望定期检查的任务清单
- OpenClaw会自动读取并执行这些检查
手动触发
您也可以随时手动触发心跳检查:
# 触发立即心跳检查
openclaw system heartbeat now
或者通过Webhook API触发:
# 立即触发心跳
curl -X POST http://localhost:18789/webhook -d '{"message":"检查重要事项","wakeMode":"now"}'
# 等待下一次定期心跳时触发
curl -X POST http://localhost:18789/webhook -d '{"message":"检查重要事项","wakeMode":"next-heartbeat"}'
配置心跳参数
您可以通过配置文件调整心跳行为:
{
"agents": {
"defaults": {
"heartbeat": {
"every": "30m", // 心跳间隔(默认30分钟)
"target": "last", // 消息发送目标(last=最后使用的渠道)
"activeHours": { // 活跃时间段
"start": "08:00",
"end": "22:00"
}
}
}
}
}
配置方法:
# 设置心跳间隔为20分钟
openclaw config set agents.defaults.heartbeat.every "20m"
# 设置活跃时间段
openclaw config set agents.defaults.heartbeat.activeHours.start "09:00"
openclaw config set agents.defaults.heartbeat.activeHours.end "21:00"
实际应用示例
基础配置(HEARTBEAT.md)
# HEARTBEAT.md - 心跳检查清单
# 保持此文件为空(或仅包含注释)以跳过心跳API调用
# 在下面添加您希望代理定期检查的任务
- 检查WordPress新闻和AI行业动态更新
- 监控日历中未来2小时内的事件
- 查看是否有后台任务已完成并汇总结果
- 如果超过8小时没有互动,发送简短的问候
- 检查天气情况(如果用户可能外出)
- 监控重要项目的Git仓库状态
- 检查服务器健康状况和性能指标
高级应用场景
内存维护
- 定期整理memory/YYYY-MM-DD.md文件
- 将重要信息提炼到MEMORY.md长期记忆中
- 清理过时的临时记忆文件
开发者工作流
- 检查GitHub PR和issue更新
- 监控CI/CD构建状态
- 跟踪依赖包的安全更新
- 汇总代码质量报告
个人助理功能
- 检查待办事项截止日期
- 跟踪习惯养成进度
- 监控健康数据(如果有连接的健康设备)
- 汇总社交媒体重要提及
技术架构优势
从架构角度看,心跳模式体现了OpenClaw的几个核心设计理念:
- 主会话为中心:所有智能决策都在主会话中进行,保持上下文连贯性
- 事件驱动:通过系统事件触发,而不是轮询
- 可扩展性:通过简单的Markdown文件就能扩展功能
- 安全性:所有操作都在受控的主会话环境中进行
最佳实践建议
- 保持HEARTBEAT.md简洁:避免过多检查项导致性能问题
- 合理设置检查频率:不是所有事情都需要每30分钟检查一次
- 结合Cron使用:心跳处理日常监控,Cron处理精确调度
- 定期优化:根据实际使用情况调整检查清单
- 利用上下文:心跳模式的最大优势是能理解您的当前状态和需求
故障排除
如果心跳模式没有按预期工作,可以检查:
# 查看最后一次心跳状态
openclaw system heartbeat last
# 检查配置
openclaw config get agents.defaults.heartbeat
# 常见问题:
# - empty-heartbeat-file: HEARTBEAT.md存在但没有可执行内容
# - quiet-hours: 当前时间不在活跃时间段内
# - requests-in-flight: 主会话正忙,心跳被推迟
总结
心跳模式是OpenClaw区别于其他AI代理平台的一个重要特色,它将自动化与人性化完美结合,让用户既能享受自动化的便利,又不会被无关紧要的通知打扰。通过合理配置HEARTBEAT.md文件,您可以将OpenClaw打造成一个真正智能、贴心的个人助理。


评论