Heartbeat(心跳)

Heartbeat(心跳)

Heartbeat 是一种“周期性意识”(periodic awareness):它会在主会话中按固定间隔触发一次检查,让 Agent 把多个轻量的例行检查合并到同一轮里。

如果你要做“精确到某个时间点”的任务(比如 9:00 准时发送),优先用 Cron;选择建议见:/docs/automation/cron-vs-heartbeat/

Heartbeat 怎么工作

  • Heartbeat 默认会读取工作区中的 HEARTBEAT.md(如果存在),把它当作“检查清单”。
  • 如果没有需要处理的事项,Agent 通常会返回 HEARTBEAT_OK,并且不会对外发送消息。

建议把 HEARTBEAT.md 写得很短,避免每次心跳都消耗过多 token。

HEARTBEAT.md:推荐写法

在工作区创建/编辑 ~/.openclaw/workspace/HEARTBEAT.md

# Heartbeat checklist

- 扫描是否有需要立刻处理的未读消息
- 检查接下来 2 小时是否有日程冲突
- 如果有后台任务完成,给出一句话总结

配置(间隔与投递)

~/.openclaw/openclaw.json 中配置默认心跳策略(示例):

{
  agents: {
    defaults: {
      heartbeat: {
        every: "30m",
        target: "last",
        activeHours: { start: "08:00", end: "22:00" },
      },
    },
  },
}

如果你希望心跳也发送单独的 Reasoning: 消息,可启用:

  • agents.defaults.heartbeat.includeReasoning: true
  • 或按 Agent 覆盖:agents.list[].heartbeat.includeReasoning: true

相关:/docs/tools/thinking/#heartbeats