在这里插入图片描述

“一个你要主动去问的助手,只是一个工具。一个主动来找你的助手,才是真正的助手。”

本文面向已经对 AI 助手、自动化工作流有一定了解的开发者、研究者和技术爱好者,系统拆解 OpenClaw 中的自动化与记忆体系:如何用心跳(Heartbeat)、定时任务(Cron)和三层记忆系统,让你的 AI 助手从“你问它答”的高级搜索框,升级为真正可靠的“数字管家”。


一、从被动工具到主动管家

传统的 ChatGPT 式交互,本质上仍是“你问它答”的被动模式:用户不发起对话,助手什么都不会做。
这在许多场景里是致命限制:重要邮件堆积、会议即将开始、网站流量骤降,助手却不会主动提醒你任何事情。

在 OpenClaw 的设计中,这个问题被明确视为“助手是否真正算得上助理”的分水岭:

  • 只在被询问时响应,更像工具而不是助手
  • 会“定时醒来”检查世界变化、判断是否需要通知你,才称得上“主动管家”

OpenClaw 为此引入了三个关键能力:

  • 心跳机制 Heartbeat:让助手按固定间隔自动醒来巡检任务
  • 定时任务 Cron:在精确时间点触发自动化动作
  • 记忆系统 Memory:记录每天发生的事、稳定偏好与长期知识,让助手越用越懂你

接下来我将围绕这三者展开,既讲清原理,也给出可以直接照抄改造的实战模板。


二、心跳机制:让助手“按时醒来”

2.1 Heartbeat 的设计目标

Heartbeat 是 OpenClaw 的核心机制之一,它解决的是一个朴素但关键的问题:如果你不说话,助手该不该自己干点什么?
在 OpenClaw 中答案是:该,而且要有节制、有边界地干。

Heartbeat 的职责可以总结为四个动作:

  1. 在固定时间间隔被唤醒(默认 30 分钟一次)
  2. 读取 HEARTBEAT.md 中配置好的“巡检任务清单”
  3. 逐项检查(邮件、日历、网站、数据等)
  4. 有事就发消息提醒,无事只返回 HEARTBEAT_OK 安静退出

这个模式有两个隐含但非常重要的设计原则:

  • 用户完全掌控助手能主动做什么:所有主动行为都来自 HEARTBEAT.md 的显式配置
  • 无事不打扰:绝大多数心跳周期只会默默返回一个 HEARTBEAT_OK, 既保证覆盖,又控制噪音

2.2 配置 HEARTBEAT.md:定义你的巡检清单

Heartbeat 的行为全部由 ~/clawd/HEARTBEAT.md 决定,这个文件可以看作是“主动任务的声明式配置中心”。

示例配置:

# 心跳任务

# 每次检查
- 查看 Gmail 是否有重要邮件
- 查看日历,2 小时内有没有会议要提醒

# 每天检查 2-3 次
- 检查网站是否正常访问
- 查看 GSC 有没有异常数据波动

# 不需要主动做
- 天气查询(等我问再查)
- 社交媒体(除非被 @ 了)

这个结构非常简单,但表达力足够强:

  • “每次检查”:适合实时性要求高的项目,比如重要邮件、临近会议提醒
  • “每天检查 2–3 次”:适合趋势性、容忍一定延迟的数据,如网站可用性、搜索流量波动
  • “不需要主动做”:明确告诉助手哪些事情只在你主动询问时才触发,避免信息骚扰

作为开发者,你完全可以把这里当作 DSL(领域特定语言)来设计和扩展,例如:

  • 按项目分组:# 工作相关# 个人生活
  • 按优先级标注:[HIGH][LOW]
  • 为每条任务附加执行策略说明(如“仅工作日”、“仅 9–18 点”)

2.3 设置心跳间隔:效率与成本的平衡

Heartbeat 间隔可以通过命令行配置:

openclaw configure --section gateway

或直接修改配置文件中的 heartbeat.interval 字段。

常见选项及适用场景:

  • 15m:较高频率,适合工作日白天,需要高响应度的监控场景
  • 30m:默认值,兼顾覆盖度和成本,多数人可长期使用
  • 1h:偏节省,适合夜间或非工作时间

实战经验是:

  • 每次心跳助手实际工作时间约 10 秒
  • 一整天下来主动消息大约 3–5 条,既足够有用,又不会形成打扰感

这一点很关键:Heartbeat 不是“轮询所有东西然后疯狂推送”,而是“以轮询为基础,通过策略和记忆把输出控制在可接受的频率内”。


三、Cron 定时任务:在正确的时刻做正确的事

如果说 Heartbeat 是助手的生物钟,Cron 就是精确到分钟的闹钟系统

3.1 适用场景:Cron 解决什么问题?

有些任务不适合“隔一会儿顺便看一眼”,而必须在确定时间点执行,例如:

  • 每天早上 8:00 的晨间简报
  • 每周一 9:00 的工作周报
  • 每月 1 号的账单检查和财务核对

Heartbeat 在这类场景会出现时间不确定、偏差较大等问题,而 Cron 可以精确到分钟,保证“必须在这个时间完成”的需求。

3.2 创建 Cron 任务:命令行即配置

OpenClaw 对 Cron 的封装延续了 Linux 用户熟悉的 crontab 语法,新增了 system-event 作为“要让助手做什么”的自然语言描述。

一个典型例子:

openclaw cron add --name "晨间简报" \
  --cron "0 8 * * *" \
  --system-event "生成今日简报:检查邮件、日历、网站数据,整理成一条消息发给我"

其中:

  • --name:任务名称,便于管理和回溯
  • --cron:标准 crontab 表达式
  • --system-event:用自然语言描述任务,交给助手去解析与执行, 极大降低自动化门槛

3.3 crontab 表达式速查

分 时 日 月 周

0 8 * * *        → 每天 8:00
0 9 * * 1        → 每周一 9:00
0 10 1 * *       → 每月 1 号 10:00
*/30 9-18 * * 1-5 → 工作日 9:00-18:00 每 30 分钟

如果你已经熟悉 crontab,这几乎是“零学习成本”;如果不熟悉,也可以把上面几条当作“模板库”,直接复制后只改时间和描述。

3.4 高价值 Cron 示例

三个实战模板非常值得工程化落地:

  1. 晨间简报(每天 8:00)

    • 汇总未读重要邮件、当日日历安排、网站数据异常情况
    • 让你早上打开手机第一眼就拥有“今天全局态势”
  2. 周报(每周一 9:00)

    • 汇总过去一周的重要事件、完成事项、网站数据变化、关键邮件等
    • 完全可以作为真实工作周报的草稿甚至成稿基础
  3. 健康提醒(工作日固定时间段)

    openclaw cron add --name "健康提醒" \
      --cron "0 10,12,14,16 * * 1-5" \
      --system-event "温馨提醒:起来活动一下,喝杯水。如果已经连续工作超过 2 小时,强烈建议休息 10 分钟。"
    
    • 从 AI 助手视角看,这是“跨业务域”的人性化设计,对日常健康管理非常友好

3.5 Heartbeat vs Cron:何时用谁?

一张简洁对比表:

维度 心跳(Heartbeat) 定时任务(Cron)
触发方式 固定时间间隔 精确到具体时间
适合任务 常规巡检、状态监控 报告、提醒、需要“准点”的动作
时间精度 存在几分钟级偏差 精确到分钟
上下文 拥有完整对话历史 作为独立任务执行,无历史上下文
资源成本 大部分周期仅返回 OK、近似空闲 每次触发都执行完整任务

可套用的一句经验法则:

  • “隔一会儿看一眼”的事情 → 用心跳
  • “必须在几点几分做”的事情 → 用 Cron

四、三层记忆系统:让助手越用越懂你

自动化让助手“会动起来”,而记忆系统决定它是“机械重复”,还是“越做越聪明”。

OpenClaw 将记忆设计为三层结构:每日笔记、长期记忆、灵魂记忆。

4.1 每日笔记:memory/YYYY-MM-DD.md

每日笔记是一个自动滚动的“工作日报”,记录当天发生的关键事件。

示例:

# 2025-07-20

# 上午
- 晨间简报已发送:3 封重要邮件,2 个会议
- 主人让我查了 morsecodetranslator.app 的搜索数据
- 发现 /converter 页面排名从 #8 降到 #12,已通知

# 下午
- 帮主人写了一个 API route
- 提醒了 14:00 的会议
- 主人说以后周报格式要加上 "本周学到的"

# 晚上
- 21:00 例行检查,一切正常
- 主人 23:30 还在工作,已提醒休息

可以看到这里混合了:

  • 自动任务结果(晨间简报发送、SEO 排名变化)
  • 用户显式指令(查数据、写 API)
  • 用户偏好与习惯线索(周报增加“本周学到的”、深夜仍在工作)

从工程视角看,每日笔记是一个天然的可审计日志

  • 帮你回溯某天发生了什么、助手做过什么
  • 为后续生成周报、月报提供数据源
  • 为长期记忆的“信息蒸馏”提供原材料

4.2 长期记忆:MEMORY.md

每日笔记记录的是“今天”,长期记忆记录的是“长期稳定有价值的知识”。
助手会定期回顾最近的每日笔记,提炼出值得长期保留的内容写入 MEMORY.md

示例:

# 长期记忆

# 主人的工作习惯
- 偏好在下午做深度工作,上午处理琐事
- 写代码时不喜欢被打扰,除非是紧急邮件
- 周报格式要包含 "本周学到的"(7 月 20 日确认)

# 项目状态
- kirkify.net — 重点关注 /generator 页面 SEO
- morsecodetranslator.app — /converter 页面排名下降,需持续监控

# 经验教训
- GSC 数据有 2-3 天延迟,别对比昨天和今天的数据
- 主人不喜欢太长的消息,重要信息用加粗 + 列表

这层记忆非常接近人类“工作经验库”的概念,它让助手在后续交互中具备这些能力:

  • 自动按你的节奏安排提醒(比如下午才推深度工作相关建议)
  • 针对特定项目持续地、具备上下文地跟踪状态
  • 根据过往反馈,优化表达方式和信息粒度(比如更善用加粗和列表)

4.3 灵魂记忆:SOUL.md + USER.md

第三层记忆是不会随日期改变的“核心设定”:

  • SOUL.md:定义助手是谁,它的性格、说话风格、边界感
  • USER.md:定义用户是谁,他的基本信息、价值观、偏好等

这两个文件本身也是记忆的一部分,它们与前两层的关系大致是:

  • SOUL.md + USER.md不变的核心设定 —— 我是谁,你是谁
  • MEMORY.md缓慢积累的长期知识 —— 我对你的了解与经验
  • memory/日期.md每天更新的事实日志 —— 今天发生了什么

这套结构的结果是:

  • 第一周,助手只知道 USER.md 里你主动写的那点信息
  • 一个月后,它开始理解你的作息、表达风格、项目优先级与常见工作流
  • 三个月后,它可能比你更清楚你自己是怎么工作的,因为它几乎不会遗漏任何一次信号

用户因为嫌助手太“话多”,直接在 SOUL.md 里加了一条“没有重要的事不要发消息”,从此主动行为显著收敛,这是一个优雅的“通过设定调行为”的例子。


五、实战:一个真正“活着”的助手的一天

为了把 Heartbeat、Cron 和记忆体系的组合效果讲清楚,接下来看几个示例

5.1 晨间简报(每天 8:00,Cron)

  • 自动检查 Gmail、日历和搜索数据(如 GSC)
  • 汇总成一条消息,让用户一眼看到当天重要邮件、会议安排和网站状态
  • 用户早上打开手机,无需切换 App,即可把握全局

5.2 会议提醒(每次心跳)

  • 每 30 分钟查看一次日历
  • 若 2 小时内有会议,提前提醒
  • 还能根据邮件和记忆推断可能需要准备的材料(比如前次会议记录、相关文档链接)

5.3 邮件监控(每次心跳)

这里重点在于“重要 vs 普通”的区分策略:

  • 重要邮件:立刻通知
  • 普通邮件:攒到下一次简报中统一呈现

“重要”的判断条件包括:

  • 发件人身份(合作方、关键同事、系统告警等优先级更高)
  • 主题和内容中的关键词(如 urgent、发票、回复 等)
  • 历史行为模式(某人邮件你总是秒回 → 下次来就默认视为重要)

这是记忆系统与自动化结合的一个教科书式例子:规则初始可以是静态的,但优先级可根据长期记忆动态调整。

5.4 数据异常告警(每天 2–3 次心跳)

  • 通过心跳定期查看几个重点网站的 GSC 数据
  • 当流量波动超过 ±20% 时触发告警

这类告警足以替代许多手动登录控制台的动作,让开发者更集中精力在策略调整而非数据轮询上。

5.5 晚间复盘(每天 21:00,Cron)

  • 每天固定时间将重要事件写入每日笔记
  • 同步刷新 MEMORY.md 中的长期记忆
  • 保证“明天醒来的助手仍然是今天那个了解你的助手”,而非无状态的全新实例

从系统设计角度看,这一步是“持久化 & 累积学习”过程的关键一环。


六、主动但不打扰:自动化的边界设计

“主动工作”和“疯狂骚扰”之间只有一线之隔。
“如何不过度打扰用户”单独作为一节来讨论,这一点对于任何想构建 AI 助手产品的人都极具参考价值。

6.1 原则一:重要立即说,不重要攒起来

简单但有效的分级策略:

  • 紧急邮件 → 立即推送通知
  • 普通邮件 → 汇总进下一次简报
  • 低价值信息(如日常天气、未被 @ 的社交内容)→ 默认不主动说

面对“信息过载”时代,这样的分层机制是任何自动化系统的必备能力。

6.2 原则二:尊重安静时间

  • 深夜 23:00–08:00 默认不主动推送,除非紧急事件
  • 周末主动消息频率降低
  • 若用户明确说“这几个小时别打扰我”,助手则严格遵守

技术上,这可以通过在 Heartbeat / Cron 逻辑中增加时间窗口过滤来实现。

6.3 原则三:频率递减策略

  • 刚开始可以略微“话多”一点,让用户感受到助手的能力边界
  • 之后根据用户反馈逐步收紧通知频率,找到舒适区
  • 实战经验:每天 3–5 条主动消息对大多数人比较合适

这是一种典型的“探索 - 利用”策略:先放大覆盖,再根据真实反馈调参。

6.4 原则四:一切都可配置

最重要的一条是:

  • 所有主动行为都必须写在 HEARTBEAT.md 和 Cron 配置里
  • 用户可以随时修改任务列表、时间间隔、检查内容,甚至删除某类主动行为

“助手太积极”的教训:

  • 助手在每次心跳后都汇报大量内容,导致用户不堪其扰
  • 用户在 SOUL.md 中加了一句“没有重要的事不要发消息”,助手随即调低主动行为频率

这说明:把“行为规范”也纳入记忆与配置,是构建高可控 AI 系统的一条重要经验法则。


七、工程实践建议与扩展思路

  1. 从最小闭环开始

    • 先配置 Heartbeat + Gmail + 日历 + 单个网站监控
    • 再逐步加入更多数据源和通知通道
  2. 把“重要性判断”做成可学习的策略

    • 以关键词/发件人为初始规则
    • 利用长期记忆记录“哪些通知被快速响应”,持续调整权重
  3. 让 Cron 任务倾向生成“人类可用的文档”

    • 晨间简报、周报、晚间复盘都可以直接产出 Markdown
    • 后续仅需轻微编辑即可交付团队或自用沉淀
  4. 明确“不可自动化”的边界

    • 比如涉及资金划转、敏感权限变更等,只允许助手给出建议,不允许自动执行
  5. 把记忆文件纳入版本管理

    • 使用 Git 管理 SOUL.mdUSER.mdMEMORY.md 的演化
    • 便于回溯“这个助手是如何逐渐了解你”的全过程

八、结语:你的 AI 助手从今天开始“活了”

Heartbeat、Cron 和三层记忆系统,完成了从“智能对话工具”到“主动私人助手”的质变。
配好心跳、定时任务和记忆后,你基本可以放心把“检查邮件、看日历、监控网站、记录每天发生的事”这些琐碎工作交给助手。

当你再也不用对自己说“记得去看一下邮箱 / GSC / 日历”,而是心里知道“有人在帮我盯着,有事会叫我”,那一刻,你的 AI 助手才真正算是“活”了起来。

如果你已经完成了 OpenClaw 之前几天的配置,那么 Day 6 的内容几乎可以看作是“正式启用你的数字管家”的开关:

  • Heartbeat 让它定期醒来
  • Cron 让它在关键时刻行动
  • 记忆系统让它每天都比昨天更懂你

剩下要做的,就是在实际使用中不断调整规则和习惯,让这个系统越来越像一个真正可靠、安静高效的“个人 CTO + 私人秘书”。

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐