1. OpenClaw Heartbeat 功能概述
OpenClaw的Heartbeat功能是系统自动化运维的核心组件之一,它通过周期性运行智能体会话来主动监测系统状态。与传统的定时任务(cron)不同,Heartbeat运行在主会话上下文中,能够保持对话连贯性,同时避免产生过多的后台任务记录。
在实际运维场景中,我发现Heartbeat特别适合以下两类需求:
- 持续性状态检查(如网关健康监测)
- 低频率的主动关怀(如每日工作提醒)
2. 核心配置参数详解
2.1 基础配置项
{ agents: { defaults: { heartbeat: { every: "30m", // 执行间隔 target: "last", // 消息投递目标 model: "anthropic/claude-opus-4-6" // 指定模型 } } } }关键参数说明:
- every:支持的时间单位包括:
m:分钟(默认)h:小时d:天
- target投递策略:
last:最近联系渠道none:不投递(仅运行)- 指定渠道ID(如
telegram)
2.2 高级配置技巧
2.2.1 会话隔离配置
isolatedSession: true, // 每次在新会话中运行 lightContext: true // 仅加载HEARTBEAT.md这种组合可以显著降低token消耗,实测可减少60-70%的成本。
2.2.2 活跃时间窗口
activeHours: { start: "09:00", end: "22:00", timezone: "Asia/Shanghai" }重要提示:避免设置相同起止时间,这会导致Heartbeat完全跳过
3. HEARTBEAT.md 最佳实践
3.1 文件结构建议
# 每日检查清单 - [ ] 检查未读紧急邮件 - [ ] 验证API网关状态 tasks: - name: db-backup-check interval: 4h prompt: "检查最近数据库备份状态"3.2 任务块使用技巧
- 每个任务独立设置interval
- 空任务列表会自动跳过本次执行
- 任务状态会持久化保存
4. 消息投递控制
4.1 渠道级配置示例
channels: telegram: heartbeat: showOk: true # 显示成功确认 whatsapp: accounts: ops: showAlerts: false # 对该账号禁用提醒4.2 投递行为矩阵
| 场景 | showOk | showAlerts | 效果 |
|---|---|---|---|
| 静默监控 | false | false | 仅记录日志 |
| 告警模式 | false | true | 只发送异常 |
| 完整反馈 | true | true | 发送所有状态 |
5. 性能优化方案
5.1 成本控制措施
- 使用轻量级模型(如ollama/llama3.2:1b)
- 设置isolatedSession+lightContext
- 精简HEARTBEAT.md内容
- 适当延长检查间隔
5.2 典型配置对比
| 配置类型 | 月均成本 | 延迟 | 适用场景 |
|---|---|---|---|
| 全功能 | 高 | 低 | 关键业务监控 |
| 基础版 | 中 | 中 | 常规检查 |
| 精简版 | 低 | 高 | 低频巡检 |
6. 故障排查指南
6.1 常见问题处理
问题1:Heartbeat未按计划执行
- 检查
openclaw system heartbeat last - 验证时区设置是否正确
- 查看是否有冲突的cron任务
问题2:消息未送达
- 确认target渠道配置正确
- 检查accountId是否匹配
- 验证渠道权限设置
6.2 诊断命令集
# 查看最后执行记录 openclaw system heartbeat last # 手动触发测试 openclaw system event --text "测试心跳" --mode now # 查看执行日志 journalctl -u openclaw -f7. 实际应用案例
7.1 运维监控场景
{ heartbeat: { every: "15m", prompt: "检查网关状态,验证API响应时间<500ms", timeoutSeconds: 120 } }7.2 团队协作场景
# 团队待办事项 - 每日站会纪要确认 - 紧急问题跟进 tasks: - name: standup-followup interval: 1d prompt: "检查站会行动项完成情况"8. 进阶使用技巧
8.1 动态调整配置
通过API实时修改参数:
import requests requests.patch("/api/v1/config", json={ "heartbeat.every": "1h" })8.2 与其他模块集成
- 与Alertmanager联动实现分级告警
- 通过Webhook对接第三方监控系统
- 集成Prometheus实现指标可视化
在实际部署中,建议先以30分钟间隔运行测试1-2天,观察系统负载和效果后,再调整到最终配置方案。对于关键业务系统,可以设置多级Heartbeat检查,比如高频的5分钟基础检查配合1小时的深度检查。