心跳(网关)
*心跳 vs Cron? 请参?Cron vs 心跳 了解何时使用各自的指南?
心跳在主会话中运?定期代理回合*,以便模型可以显示任何需要关注的内容,而不会刷屏您?
故障排除:/zh/docs/automation/troubleshooting
快速开始(入门?
- 保持心跳启用(默认是
30m,或对于 Anthropic OAuth/setup-token ?1h)或设置您自己的节律? - 在代理工作区创建一个小型的
HEARTBEAT.md检查清单(可选但推荐)? - 决定心跳消息应该去哪里(
target: "none"是默认设置;设置target: "last"路由到最后联系人)? - 可选:启用心跳推理投递以提高透明度?
- 可选:将心跳限制在活跃时间(本地时间)?
示例配置?
{
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响应
消息未发?
- 检查目标配?
- 验证频道状?