- 文档
- 教程
- 人工智能
- 大模型
【免费下载链接】awesome-generative-ai-guide
A one stop repository for generative AI research updates, interview resources, notebooks and much more!
OpenClaw 的核心突破之一是让 Agent 从"等你提问才回答"的被动工具,进化为"到点主动联系你"的常驻助手。本篇以本仓库 OpenClaw Mastery for Everyone 课程 Day 4 为核心,系统讲解守护进程与调度器的运行原理、HEARTBEAT.md的触发机制、隔离会话的成本与质量设计,并完整复现"每日定时反思推送 Telegram"的实战构建流程。读完你将理解 OpenClaw 主动行为的底层架构,并能独立配置一个精确到分钟的 cron 定时任务。
从被动到主动:OpenClaw 的第三时代模式
如果你用过 Claude Code、Cursor、Codex 或 ChatGPT,会发现交互模式永远相同:打开工具、输入内容、得到响应、关闭窗口、一切停止。每一次交互都由你主动发起。这类工具在 AI 社区被称为reactive agents(被动响应式 Agent)。
OpenClaw 引入了proactive agent(主动式 Agent):它可以主动向你发起消息。你的 Claw 可以在你设定的时间主动检查状态、向你提问、保存你的回答,并把它认为值得你知道的事情推送给你。当你正在做饭或躺在沙发上,手机震动,是 Claw 主动开始了你并未发起的对话。
这种"主动联系"能力是 OpenClaw 走红的重要原因之一,而 Day 4 正是把这项能力真正开启的日子。在本仓库课程中,Day 1 到 Day 3 依次完成了 安装加固、身份文件 与 Telegram 通道,Day 4 的成果是:Claw 第一次在你没有请求的情况下,按你设定的时间主动把"晚间反思"推送到你的 Telegram。
服务器如何在休眠时运行任务:守护进程与调度器
守护进程(Daemon):一直在后台运行的程序
你的电脑(和服务器)此刻正在后台运行着几十个你从未见过的程序:一个检查软件更新,一个管理 Wi-Fi 连接,一个为文件搜索建立索引。这些就是daemons(守护进程):设计为无需人类交互、持续运行的程序。这个名字源于希腊神话中在幕后工作的守护精灵,计算机领域沿用了同样的含义。
这个概念远比想象中古老。Cron——Unix 上的原始调度器——从 1970 年代起就在运行后台任务。每当服务器在凌晨 3 点备份数据库、在周日清理旧日志文件、或检查某个网站是否还在响应,都是 cron 在工作:它每分钟醒来一次,检查调度文件,运行所有到期任务。五十多年过去,它依然是自动化计算的骨干。
OpenClaw Gateway:一个 24/7 的守护进程
你在 Day 1 配置的 OpenClawgateway正是这样一个守护进程:它随 VPS 启动而启动,崩溃后自动重启,无论你是否在线都持续运行。Day 3 时它在 Telegram 服务器上保持了一条持久连接,等待你的消息;这条连接在你阅读本文时依然开着。
关键点在于:gateway 还内置了自己的调度器。可以把它想象成住在 gateway 内部的 cron——每 30 分钟(或你配置的任何间隔),这个内部调度器醒来,检查是否有任务到期。任务清单存放在一个名为HEARTBEAT.md的文件中。
Heartbeat 与 Cron:两种互补的调度模型
OpenClaw 同时支持两种自动化方式:
| 机制 | 定位 | 适用场景 |
|---|---|---|
| Heartbeat | 周期性后台循环,由 gateway 内部调度器驱动 | "每隔一会儿检查一下,判断是否有值得关注的事情" |
| Cron | 精确到分钟的定时任务 | "每周一早上 9 点整,精确执行某件事" |
理解心跳机制是理解 cron 的前提:两者共享同一个"主动运行"模型。在 Day 4 的构建中你会用到 cron,因为反思推送需要在你选择的精确时间到达。
HEARTBEAT.md:让 Claw 拥有"脉搏"
HEARTBEAT.md是位于工作区中的一个纯 Markdown 文件,内容是用自然语言编写的任务清单,每个任务带有一个调度时间。gateway 的内部调度器在每个 tick 读取该文件,并处理所有到期的任务。
名字起得很贴切:心跳是节律性的、自动的、恒定的,无论你是否关注它都在运行。这正是这个文件的作用——它给了你的 Claw 一个脉搏。
完整的运行循环如下:
gateway 的调度器 tick → 读取HEARTBEAT.md→ 运行所有到期任务 → 投递输出 → 回到等待状态。如果没有任何任务到期,则直接跳过本轮循环。你还可以配置active hours(活跃时段),让调度器只在你的清醒时段内 tick;窗口之外保持静默。
任务本身用纯英文/自然语言书写,例如:"Send reflection prompts to Telegram. Wait for replies. Save answers to today's journal file."(向 Telegram 发送反思提示;等待回复;把答案保存到今天的日志文件。)AI 模型阅读这些指令并使用可用工具执行——它是一条交给"能推理、能适应、能做判断"的 Agent 的灵活指令。
选择建议:Heartbeat 最适合"周期性感知"类任务("隔一段时间检查一次,判断是否有值得处理的事")。如果需要某个动作在精确时间发生,则使用 cron。
隔离会话(The Clean Room):成本与质量的关键设计
上图的循环中有一个容易被忽略的设计决策:"isolated session"(隔离会话)。
为什么要隔离:会话上下文累积的成本问题
当你通过 Telegram 与 Claw 对话时,对话会不断累积上下文:你们讨论过的所有内容、引用过的文件、做过的决策。这份上下文让对话保持连贯——Claw 记得你十句话前说的话,因为它们仍加载在同一个会话里。
现在设想一个 heartbeat 任务运行在这个会话内部:它会继承你全部的对话历史。每条消息、每个文件、每段跑题内容都在其中。心跳任务为了"判断现在是否该给你发反思提示",就必须处理所有这些上下文。这是昂贵的:单次加载数周对话的心跳运行可能消耗约 0.50 美元的 token。按每天 48 次运行计算,成本会迅速累积。
质量问题的另一面
这还会造成质量问题:心跳任务的输出会混入你的对话,聊天历史被自动化检查日志塞满;个人对话中的上下文也会泄漏进一个与它无关的定时任务。
隔离会话如何同时解决两个问题
每个 heartbeat 任务都获得自己的"干净房间":一个没有先前历史的全新会话。它只加载自己需要的内容(HEARTBEAT.md与你的身份文件),对你主对话中讨论的内容一无所知。任务结束后会话关闭,你的对话保持原样。
成本差异是戏剧性的:一个发现无事可报的隔离心跳,花费只有几分之一美分;同一个任务跑在主会话里,成本要高几个数量级。OpenClaw 官方文档估计,隔离会话可将心跳任务的 token 用量降低约 90%。
与 Day 2 身份文件机制的衔接
这一点还连接到你在 Day 2 配置的内容:四个身份文件(SOUL.md、USER.md、AGENTS.md、MEMORY.md)在每个消息轮次都会从磁盘重新加载。同一机制让隔离心跳会话保持"落地"——尽管会话以零对话历史启动,它仍会加载你的身份文件。Claw 的性格、你的偏好和它的操作规则都在场。这是一个仍然知道自己是谁、知道你是谁的无菌室。
每日反思:一个典型的心跳任务示例
下面是一个 heartbeat 任务能做的事情。每天晚上,你的 Claw 会发送几条反思提示:
Time to reflect on your day. 1. What went well today? 2. What felt harder than it should have? 3. What's one thing you want to carry into tomorrow? Reply whenever you're ready. I'll save your answers to today's journal.你通过 Telegram 回复,Claw 将条目保存到每日日志文件中。随着时间推移,这些条目累积成有用的记录:你当时的想法、遇到的困难、想做出的改变——全程无需打开任何日记应用。
在 Day 4 的实际构建中,由于反思需要在你选择的精确时间到达,使用 cron 而不是 heartbeat。
实战构建:用 cron 创建每日反思任务
Day 4 的实操入口是 build.md,操作步骤交给 claw-instructions-create-daily-reflection-cron.md 指导你的 Claw 完成。整个课程采用"两文件/天"的模式:learn.md讲原理,build.md讲实操,你的 Claw 会读取指令文件并自行完成配置。
开始前的前置条件
- Day 1 完成:OpenClaw 已安装并加固
- Day 2 完成:身份文件已创建并正确加载
- Day 3 完成:Telegram 已连接并可用
- 能通过 Web 聊天访问你的 Claw
- 手机上有 Telegram
Step 1:在 Web 聊天中启动设置
将以下消息复制粘贴到 Web 聊天中:
Read
claw-instructions-create-daily-reflection-cron.mdand follow every step. Ask me only for the decisions you still need, create the cron job, and stop when you're done.
指令文件会告诉 Claw:
- 复用它已经知道的关于你的上下文
- 基于已知信息提议几个反思问题选项,而不是让你从零开始
- 在你选择的时间创建一个循环 cron 任务
- 将该任务绑定到当前会话
- 将反思明确投递到 Telegram
整个流程中你只需做两件事:选择反思到达的时间,挑选一个最合用的反思模板,剩下的交给 Claw 调度、创建并汇报配置详情。
Claw 创建 cron 任务时的硬性要求
根据 claw-instructions-create-daily-reflection-cron.md,Claw 在创建任务时必须满足以下约束:
- 使用 cron 工具或
openclaw cron add命令创建,严禁直接编辑 cron 存储文件 - 在用户所在时区、按用户选择的时间每日运行
- 绑定到当前会话(session binding)
- 使用已知的
to目标显式投递到 Telegram - 发送选定的反思提示,并将下一条回复保存到
memory/YYYY-MM-DD.md的## Reflection小节下 - 任务提示保持简洁,避免重复的后续催促(follow-up nudges)
- 在创建前向用户明确说明"即将创建循环 cron 任务并将消息显式投递到 Telegram",等待用户明确确认后再创建
- 复用
USER.md、MEMORY.md与当前会话上下文,只询问缺失的决策;设置过程中不写临时的中途笔记
创建完成后,Claw 必须向你报告:任务名称(job name)、任务 ID(job ID)、cron 调度表达式、时区、Telegram 投递目标。
验证清单
Day 4 结束后,以下各项应为 true:
- 每日反思的循环 cron 任务已存在
- 调度时间与你选择的时间一致
- 任务时区与你的时区一致
- 任务绑定到当前会话
delivery.channel设置为telegramdelivery.to设置为你的 Telegram 接收者/聊天 ID
你可以在 Web 聊天中向 Claw 验证:
Tell me the cron job you just created: the schedule, timezone, session target, and where it delivers.如果需要在 Hostinger 面板中人工检查或手动运行,也可以使用Cron Jobs标签页:
常见故障排查
| 现象 | 排查方向 |
|---|---|
| 手动运行时没有消息到达 | 请 Claw 检查 cron 任务的投递目标,并确认测试用的是任务本身而非一条单独的一次性消息 |
| 反思到达了,但你的回复未被保存 | 请 Claw 确认任务绑定到当前会话,且反思提示确实要求把下一条回复保存到今天的日志文件 |
| 任务在错误的时间运行 | 请 Claw 一起检查 cron 表达式和时区——大多数时间错误都出在这两者之一 |
| 开始收到重复的反思 | 请 Claw 列出所有活跃 cron 任务,查找应被禁用或移除的旧反思任务 |
Quick Win:让主动行为融入你的日程
反思任务创建后,可以在 Web 聊天中继续让 Claw 扩展主动能力:
Based on what you know about me so far, suggest one other exact-time cron job worth adding next. Keep it lightweight and useful.这正是 Claw 从"聊天窗口"变成"排进你日程的一部分"的时刻。
深入实践建议
- 心跳间隔可配置。社区经验:个人使用 30 分钟是良好默认值;监控关键系统可以缩短到 5 分钟,但会显著增加 API 调用成本。建议将
HEARTBEAT.md的任务数控制在5–8 个以内;超过 20 个后处理速度下降、成本上升。 - 守护进程架构意味着韧性。你的 Claw 能扛过重启和数周无人关注。如果 gateway 进程崩溃,操作系统会在数秒内自动重启它。你的笔记本合盖就休眠,而服务器不会。
- cron 适合精确调度的高级场景:精确时间(如"每周一早上 9 点整")以及按任务选择不同模型。对大多数用户而言,
HEARTBEAT.md已能满足全部需求;需要精确到分钟的任务再转向 cron。
课程上下文:前置依赖与下一步
Day 4 建立在完整的课程链路上:Day 1 安装与加固 提供了常驻 VPS 与 gateway;Day 2 身份文件 让隔离会话"知道自己是谁";Day 3 Telegram 通道 让主动消息能触达你的手机。Day 4 之后,Day 5: Give It Skills 将扩展 Claw 超越出厂能力——这是"主动 + 能力"组合的开始。课程其余资源(FAQ、获取 API Key 指南、OpenClaw 资源精选)都可在仓库中继续查阅。
- 文档
- 教程
- 人工智能
- 大模型
【免费下载链接】awesome-generative-ai-guide
A one stop repository for generative AI research updates, interview resources, notebooks and much more!
相关推荐
ClawX 过滤 OpenClaw 内部心跳轮询会话:Host 会话摘要链路的 heartbeat-only 识别与侧边栏隔离实战
ClawX 过滤 OpenClaw 内部心跳轮询会话:Host 会话摘要链路的 heartbeat only 识别与侧边栏隔离实战 本文以 ClawX 开源仓库
人工智能AI 应用桌面应用交互助手OpenClaw Mastery Day 4:用 cron 打造每日反思定时任务,让 Claw 第一次主动找你
OpenClaw Mastery Day 4:用 cron 打造每日反思定时任务,让 Claw 第一次主动找你 导读 Day 4 是 OpenClaw Mast
文档教程人工智能大模型agent-orchestrator 会话 Kill 状态隔离:用 React key 绑定 TopbarKillButton 与 session.id 的完整实践
agent orchestrator 会话 Kill 状态隔离:用 React key 绑定 TopbarKillButton 与 session.id 的完整
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考