OpenClaw 核心配置文件:HEARTBEAT.md — 周期性任务

我们在使用 OpenClaw 时都有过这样的困惑:明明安装了许多强大的 Skills(技能),API 也是最贵的,但代理的表现却依然笨拙,只能被动响应,无法主动思考,甚至经常重复提问。这并不一定是大模型本身的能力不足,也不是插件质量问题,核心原因在于忽略了系统底层的“灵魂”配置。真正决定 OpenClaw 智商上限的,不是昂贵的模型调用,而是那些藏在 /.openclaw/workspace/ 目录下不起眼的 .md 配置文件。本文将深入拆解这些核心文件的功能与配置逻辑,带你通过修改底层配置,彻底告别 AI 代理的机械感。
OpenClaw 的所有核心逻辑都存储在工作空间目录(**
/.openclaw/workspace/** )下。如果不熟悉命令行界面的话,也可以在 Web UI 中查看和编辑。位置如下图:
alt text
打开这个目录,我们会看到如下层级的文件结构,每个文件都承担着不同的职责:

  • AGENTS.md:LLM的工作手册,代理调度规则与标准作业程序。
  • BOOTSTRAP.md:初始化序列与核心系统提示词。
  • HEARTBEAT.md:定时执行逻辑与主动任务状态自检。
  • IDENTITY.md:代理身份定义与系统边界约束。
  • MEMORY.md:长期上下文数据与既定规则的持久化存储。
  • SOUL.md:LLM的性格,响应语气、行为特征及输出格式配置。
  • TOOLS.md:工具授权注册表及调用参数规范。
  • USER.md:用户(你的)画像数据,包含特定偏好与交互限制配置。
  • memory/:存储日常运行日志与短期上下文。
  • skills/:已安装的第三方技能扩展目录。
    今天我们介绍 HEARTBEAT.md 文件,这是 OpenClaw 的核心文件。

什么是 HEARTBEAT.md?

HEARTBEAT.md 是 OpenClaw 中用于定义周期性任务的配置文件。它的作用类似于给智能体设定一个“心跳节拍”,让它在指定时间自动执行某些动作,比如每日总结、定时提醒、健康检查等。

  • 生命周期:Agent 启动时会读取该文件,并根据其中定义的规则创建定时任务。该文件持久存在,你可以随时编辑修改,Agent 会在下次心跳周期生效时应用变更。

核心功能

HEARTBEAT.md 允许你通过简单的 Markdown 列表定义多个定时任务,每个任务包含:

  • 触发时间:支持 cron 表达式或自然语言描述(如“每30分钟”、“每天上午9点”)。
  • 执行动作:一段自然语言指令,告诉 Agent 要做什么。
    示例结构:
1
2
3
4
5
6
7
8
9
10
# HEARTBEAT.md
## 每日站会提醒
- 时间:每天 09:30
- 动作:发送一条消息:“站会时间到!请更新昨天进度和今日计划。”
## 每周复盘
- 时间:每周五 17:00
- 动作:总结本周完成的工作,生成报告并存储到 `weekly_reviews/` 目录。
## 系统健康检查
- 时间:*/30 * * * * # 每30分钟
- 动作:检查 CPU/内存使用率,若超过阈值则发送告警。

工作原理

  1. 解析:Agent 启动时读取 HEARTBEAT.md,将每个任务转换为内部的定时触发器。
  2. 执行:到达指定时间时,Agent 会独立执行该任务的“动作”指令,就像你亲自向它发送了一条消息一样。
  3. 并发:多个心跳任务可以并发执行,互不干扰。

编写规范

  • 使用二级标题(##)分隔不同的任务。
  • 在每个任务块中,使用列表项定义 时间动作 两个属性。
    • 时间:支持标准的 cron 表达式(5 个字段:分 时 日 月 周),也支持自然语言短语(如“每小时”、“每5分钟”、“每月1号 08:00”)。
    • 动作:任意自然语言指令,Agent 会按照你的描述执行。
  • 文件采用 UTF-8 编码,仅支持纯文本 Markdown。

注意事项

  • 避免过于频繁:不要设置间隔太短(如每秒)的任务,以免影响系统性能。
  • 权限安全:动作指令会以当前 Agent 的权限执行,注意不要写入危险命令(如删除文件)。
  • 调试方法:如果某个心跳未执行,可以先检查 cron 表达式是否正确,或查看 Agent 的日志输出(通常在工作区 logs/ 目录)。
  • 动态更新:修改 HEARTBEAT.md 后,通常需要重启 Agent 才能生效(部分实现支持热加载,取决于具体版本)。

与其他配置文件的区别

文件 作用
BOOTSTRAP.md 一次性初始化引导,完成后自动删除
HEARTBEAT.md 定义周期性任务,持久存在
SOUL.md / AGENTS.md 定义智能体的人格、行为边界和角色
USER.md 存储用户偏好和习惯

如果你想自定义一个定时任务,但不确定如何编写 cron 表达式,可以告诉我你的需求(比如“每天下午3点提醒我喝水”),我可以帮你生成对应的配置片段。

-------------本文结束感谢您的阅读-------------