心跳机制完全指南:让你的 AI 助理学会主动找你

· CeeCore Team
使用教程 心跳机制

之前 Agent 是被动的——你问它答,沉默的时候它就真的在沉默。v0.2 引入的心跳机制改变了这个局面:Agent 可以按设定的时间间隔主动醒来,检查环境、推送消息、执行例行任务。

这篇教程带你从零开始配置心跳,看完就能用。

心跳是什么

心跳是一组定时触发的规则。每隔一段时间,Agent 会被唤醒,执行你预设的指令,然后回去睡觉。

类比一下:之前 Agent 像是一个等电话的客服,现在它变成了一个会主动汇报的助理。

第一个心跳:每天早上推送天气

先从一个最简单的例子开始——每天早上 8 点推送天气和日程。

打开 Agent 配置文件(通常在 ~/.openclaw/openclaw.json),找到 agents 数组,在对应 Agent 的配置中加入 heartbeat

{
  "heartbeat": {
    "every": "6h",
    "prompt": "检查今天的天气和日程,如果有重要事项提醒我。"
  }
}

every 字段支持以下格式:

格式示例说明
Nh6h每 N 小时
Nm30m每 N 分钟
cron 表达式0 8 * * *每天 8 点

如果要用 cron 实现每天 8 点:

{
  "heartbeat": {
    "every": "0 8 * * *",
    "prompt": "推送今天的天气、日程和待办事项。"
  }
}

心跳的典型用法

1. 定时信息汇总

每天早上推送一次聚合信息:

{
  "heartbeat": {
    "every": "0 8 * * *",
    "prompt": "整理今天的天气、日程、待办事项,用简洁的方式推送给我。"
  }
}

2. 网页监控

每小时检查一次指定网页是否有更新:

{
  "heartbeat": {
    "every": "1h",
    "prompt": "检查 https://example.com/changelog 页面内容是否有变化,有变化就通知我。"
  }
}

3. 每日工作总结

每天晚上生成当日工作总结:

{
  "heartbeat": {
    "every": "0 20 * * *",
    "prompt": "回顾今天和我的对话,生成一份简洁的工作总结,包括完成的事项和待跟进的事项。"
  }
}

4. 定期数据巡检

每 6 小时检查一次设备状态:

{
  "heartbeat": {
    "every": "6h",
    "prompt": "检查设备运行状态:磁盘使用率、内存占用、CPU 温度、网络连接。有异常直接告警。"
  }
}

心跳的三种响应模式

心跳醒来后,Agent 的行为取决于你配置的 mode

模式行为适用场景
silent(默认)执行任务,只在有结果时才通知定期巡检、网页监控
always每次醒来都发消息每日推送、早间问候
never执行任务但不通知纯后台任务

配置示例:

{
  "heartbeat": {
    "every": "6h",
    "prompt": "检查系统状态",
    "mode": "silent"
  }
}

实用技巧

给心跳加上上下文

心跳的 prompt 可以引用文件和记忆。比如:

检查今天的日程(参考 ~/.openclaw/workspace/heyumo/MEMORY.md 中的偏好),
如果有需要关注的事项,列出优先级。

避免心跳泛滥

几个原则:

  • 不要设太短间隔:心跳间隔不建议低于 30 分钟,频繁唤醒浪费资源
  • 合并同类任务:能在一个心跳里做的事不要拆成多个
  • silent 优先:没事就别吵你,这是好助理的基本素养

调试心跳

如果想看心跳的执行记录:

openclaw heartbeat list    # 查看所有心跳配置
openclaw heartbeat log     # 查看最近执行记录

常见问题

Q: 心跳会消耗很多 API 额度吗?

A: 心跳醒来后如果没有实际任务需要执行,只是简单的状态检查,消耗很小。建议大部分心跳用 silent 模式,只在有结果时生成通知。

Q: 能设多个心跳吗?

A: 可以。每个 Agent 可以配置多个心跳规则,通过 heartbeats 数组配置:

{
  "heartbeats": [
    { "every": "0 8 * * *", "prompt": "早上推送", "mode": "always" },
    { "every": "6h", "prompt": "巡检状态", "mode": "silent" }
  ]
}

Q: 心跳和 cron 定时任务有什么区别?

A: 心跳是 Agent 的主动唤醒机制,醒来后 Agent 可以根据上下文智能判断要做什么;cron 是精确的定时任务,执行固定的指令。心跳更灵活,cron 更精确。两者可以配合使用。


配置好心跳了?来社区分享你的心跳玩法。

讨论

加载中…

发表评论

提交即表示你同意社区行为规范