心跳(网关)

*心跳 vs Cron? 请参?Cron vs 心跳 了解何时使用各自的指南?

心跳在主会话中运?定期代理回合*,以便模型可以显示任何需要关注的内容,而不会刷屏您?

故障排除:/zh/docs/automation/troubleshooting

快速开始(入门?

  1. 保持心跳启用(默认是 30m,或对于 Anthropic OAuth/setup-token ?1h)或设置您自己的节律?
  2. 在代理工作区创建一个小型的 HEARTBEAT.md 检查清单(可选但推荐)?
  3. 决定心跳消息应该去哪里(target: "none" 是默认设置;设置 target: "last" 路由到最后联系人)?
  4. 可选:启用心跳推理投递以提高透明度?
  5. 可选:将心跳限制在活跃时间(本地时间)?

示例配置?

{
  agents: {
    defaults: {
      heartbeat: {
        every: "30m",
        target: "last", // 明确投递到最后联系人(默认是 "none"?
        directPolicy: "allow", // 默认:允许直?DM 目标;设?"block" 抑制
        // activeHours: { start: "08:00", end: "24:00" },
        // includeReasoning: true, // 可选:也发送单独的 `Reasoning:` 消息
      },
    },
  },
}

默认?

  • 间隔:30m(或当检测到 Anthropic OAuth/setup-token 是认证模式时?1h)。设?agents.defaults.heartbeat.every 或每代理 agents.list[].heartbeat.every;使?0m 禁用?
  • 提示正文(可通过 agents.defaults.heartbeat.prompt 配置): 如果存在 HEARTBEAT.md,请阅读它(工作区上下文)。严格遵循。不要从之前的聊天中推断或重复旧任务。如果不需要关注,请回?HEARTBEAT_OK。
  • 心跳提示作为用户消息原样发送。系统提示包?心跳”部分,并在内部标记该运行?
  • 活跃时间(heartbeat.activeHours)在配置的时区中检查。在窗口之外,心跳会被跳过,直到窗口内的下一?tick?

心跳提示的用?

默认提示故意宽泛?

  • 后台任务?考虑待处理任?提醒代理查看跟进(收件箱、日历、提醒、排队的工作)并显示任何紧急内容?
  • 人工签到?白天偶尔检查您的人?提醒发送轻量的”有什么需要吗?消息,但通过使用配置的本地时区避免夜间刷屏(请参?/zh/docs/concepts/timezone)?

如果您希望心跳做非常具体的事情(例如”检?Gmail PubSub 统计”?验证网关健康”),请设?agents.defaults.heartbeat.prompt(或 agents.list[].heartbeat.prompt)为自定义正文(原样发送)?

响应契约

  • 如果不需要关注,请回?HEARTBEAT_OK?
  • 在心跳运行期间,?HEARTBEAT_OK 出现在回复的开头或结尾时,OpenClaw 将其视为确认。令牌被剥离,如果剩余内??ackMaxChars(默认:300),则丢弃回复?
  • 如果 HEARTBEAT_OK 出现在回复的中间,则不会特别对待?
  • 对于告警?*不要**包含 HEARTBEAT_OK;仅返回告警文本?

在心跳之外,消息开?结尾的游?HEARTBEAT_OK 被剥离并记录;仅包含 HEARTBEAT_OK 的消息被丢弃?

配置

间隔

{
  agents: {
    defaults: {
      heartbeat: {
        every: "30m", // 30 分钟
      },
    },
  },
}

活跃时间

{
  agents: {
    defaults: {
      heartbeat: {
        activeHours: {
          start: "08:00",
          end: "22:00",
          timezone: "America/New_York",
        },
      },
    },
  },
}

投递目?

{
  agents: {
    defaults: {
      heartbeat: {
        target: "last", // 最后联系人
        // 或特定目标:
        // target: "+15551234567",
      },
    },
  },
}

自定义提?

{
  agents: {
    defaults: {
      heartbeat: {
        prompt: "检?Gmail 获取新邮件。如果有新邮件,发送摘要,
      },
    },
  },
}

HEARTBEAT.md

在工作区创建 HEARTBEAT.md 文件?

# Heartbeat 检查清?

- 检查收件箱中的紧急邮?
- 查看日历上接下来 2 小时的事?
- 检查任何待处理的任?
- 如果安静 8 小时以上,发送轻度签?

故障排除

心跳不运?

  • 检查心跳是否启用:heartbeat.every 不应?0m
  • 检查活跃时间设?
  • 检查日?

心跳消息被跳?

  • 检?HEARTBEAT.md 是否存在
  • 验证 HEARTBEAT_OK 响应

消息未发?

  • 检查目标配?
  • 验证频道状?

相关链接