← 返回 FEED
AGENT2026-05-18

Hermes 24 小时工作的秘密:Cron、Gateway 和 Heartbeat

核心洞察

你以为缺的是更强的 prompt,其实缺的是一个会按时叫醒它的 runtime。

问题现象

Agent 在一轮任务结束时说:

"下一步:继续收集案例,之后搭建模拟交易环境。无需老板决策,继续工作。"

然后它就真的不工作了。

嘴上说继续,身体很诚实地停在了当前回合。

误解根源

大多数 Agent 产品的基本交互单位是一个 turn。完成本轮回复后,系统不会自动发起下一轮。

没有外部调度器再次唤醒它,下一轮根本不会发生。

正确架构:短周期接力

不是让一个上下文窗口硬撑 24 小时。

每 30 分钟醒一次
  → 读取当前状态
  → 选择最高优先级任务
  → 推进一个明确工作单元
  → 更新任务队列
  → 写入运行日志
  → 等下一次 heartbeat

长期工作的秘密不是「不断说继续」,而是 Gateway + Cron + Heartbeat + 状态文件。

四个核心部件

1. Gateway:真正的后台闹钟

功能:到点检查、启动任务、创建 fresh agent session。

关键命令

hermes gateway install

没有 Gateway 的后果

  • cron 任务能 list 出来
  • 但不会自动跑
  • "闹钟列表写好了,但没有人在后台看表"

2. Cron:按时唤醒 Agent

定义:什么时候叫醒 Agent。

关键坑

写法含义结果
hermes cron create "30m"30 分钟后运行一次一次性任务
hermes cron create "every 30m"每 30 分钟运行一次循环任务

验证:列表里看 ScheduleRepeat 字段。

3. Heartbeat:每次醒来该做什么

文件HEARTBEAT.md

作用:交接班卡片,写清楚每次被唤醒后必须做什么。

示例结构

1. 读取连续工作规则
2. 读取当前状态
3. 读取任务队列
4. 检查是否存在阻塞
5. 推进一个实际工作单元
6. 更新状态文件
7. 写运行日志

关键约束

不要只输出计划。只要没有阻塞,就必须实际推进文件、研究、代码、报告或记录中的至少一项。

防止:Agent 每次醒来只说 "下一步我会继续",然后什么都没做。

4. 状态文件:替代聊天上下文

核心问题:Cron 新建 session 不继承当前聊天窗口上下文。

如果你在 cron prompt 里写

"继续刚才的工作。"

它大概率不知道「刚才」是什么。

解决方案:把上下文落到文件系统。

最小文件结构

文件用途
HEARTBEAT.md每次醒来做什么
config/continuity_policy.md长期运行规则
memory/current-state.md当前阶段、主任务、已完成事项
memory/task-queue.md任务队列(NOW / NEXT / LATER / BLOCKED / DONE)
memory/run-state.md最近一次运行类型、完成事项、当前 focus、下一步、是否被阻塞
logs/运行记录

关键原则

Agent 可以失去聊天上下文,但不能失去工作上下文。

通用 Work Heartbeat 模板

你是这个项目的长期工作 Agent。工作目录是 /path/to/project。

这是一次 Work Heartbeat。不要只汇报计划,必须实际推进一个工作单元,除非遇到明确阻塞。

先读取:
- HEARTBEAT.md
- config/continuity_policy.md
- memory/current-state.md
- memory/task-queue.md
- memory/run-state.md

然后执行:
1. 检查是否存在阻塞事项
2. 如果没有阻塞,从 memory/task-queue.md 选择最高优先级任务
3. 推进一个明确工作单元
4. 更新 memory/current-state.md、memory/task-queue.md、memory/run-state.md
5. 如有实质进展,在 logs/ 写一条简短运行记录

本轮回复只需要说明:
- 完成了什么
- 更新了哪些文件
- 下一轮继续什么
- 是否需要用户决策

注意:没有写 "继续刚才"——每次都从工作目录和状态文件恢复自己。

建议的 Cron 设置

三层调度

任务频率职责
Work Heartbeatevery 30m持续推进日常工作
Short Reviewevery 12h短周期复盘,避免只堆文件
Major Reviewevery 48h阶段性反思,更新方向和任务队列

入门建议

如果只是普通资料整理:

  • 先只开 Work Heartbeat every 30m
  • 确认能稳定接力
  • 再加 12h 和 48h 复盘

Git 使用原则

Git 应该是审计账本,不是运行日志。

操作频率规则
文件写入随时工作单元推进时
本地 commit明确工作单元结束后有实质进展时
push GitHub低频确认无敏感信息后

绝不提交进 Git

  • API key / cookie / token / 密码 / 私钥
  • 个人身份材料
  • 大体量原始数据
  • 高频变化的数据库文件

自检清单

如果你的 Agent 做完一轮就停,先问自己四个问题:

  1. 有没有后台 Gateway?
  2. Cron 是 once 还是 every?
  3. 每次唤醒的 prompt 是否自包含?
  4. 有没有状态文件承接上一轮工作?

四个答案都对,它才真的有可能 24 小时工作。

核心结论

长期工作的秘密,不是让 Agent 一口气跑更久,而是让它每次醒来都知道自己是谁、在哪、要接着做什么。

资源