会记忆的定时任务:Cron 的记忆与连续性(Memory & Continuity)


今天早上 9 点,你的简报任务又复读了那三件事——和昨天一样,前天也一样。不是因为它笨:每次运行都从零开始,完全不知道已经告诉过你什么,于是本该“盯变化”的任务把整段历史又汇报了一遍。定时任务都是金鱼。v0.21.0 从记忆侧改写了这个故事:cron agent 现在和其他 agent 一样加载并更新持久记忆;新的 --continuity 旗标把每次运行自己的上一次输出注入下一次;每个任务都有持久便签本,CLI 可读写;monitor 模式任务在无变化时完全跳过 LLM

三个变化

1. 记忆被加载,而不是被无视。 Cron agent 现在会把 MEMORY.md / USER.md 读进系统提示词,并且可以跨运行更新持久记忆——和交互式 agent 用的是同一套机制。任务某天学到的东西,第二天真的还记得。

2. --continuity 把上一次运行带到下一次。 调度器会把任务自己上一次的输出注入新一轮的提示词:“用于连续性——避免重复汇报已经说过的事。“这正是监控任务去重需要的。创建时开启,或事后切换:

hermes cron create --schedule "0 9 * * *" \
  --prompt "总结状态页上的新动态" \
  --continuity
hermes cron edit <job_id> --continuity     # 或 --no-continuity 关闭

第一次运行不受影响;从第二次起,任务醒来就知道自己上次说过什么。帮助文本把适用场景总结得很到位:哨兵、监控、增量摘要。

3. 一个任务和你都能读写的便签本。 每个任务都有一个持久的键值草稿本:

hermes cron notepad <job_id> list
hermes cron notepad <job_id> set last_sync "2026-09-01"
hermes cron notepad <job_id> get last_sync
hermes cron notepad <job_id> delete last_sync

便签本内容每次运行都会注入任务提示词,agent 可以自己在两次运行之间更新状态——比如记录已经处理到哪了,而不必动用记忆系统的语义。

Monitor 模式:没变化,就不烧 token

配套的还有 monitor 模式的精进:监控脚本或 URL 的任务使用哈希抑制的变化检测,什么都没变时任务可以完全跳过 LLM——不用为了汇报一句“和上次一样”烧 token。看门狗从“每次检查花几分钱”变成“有动静才花钱”。

边缘的配套升级

这个窗口还带来一堆实用邻居:运行前配置校验(坏任务在触发前就失败,而不是触发时);失败签名确认(一次确认后任务不再反复打扰你同一件事);按任务固定推理档位--reasoning-effort none|low|medium|… 只覆盖这一个任务);以及**“立即触发”马上执行**而不是排队。再加上同一窗口的 cron doctor 健康检查,定时任务从“设了就不管”变成了一套会记忆、会去重、坏了自己会说的系统。

组合起来用

一个典型模式:夜间任务用 --monitor-url 盯竞品的更新日志页,便签本记录上次看到的 commit,再配上 --continuity——于是它只汇报真正的新条目;即使漏跑了一次,下一次也知道自己上次看到哪。cron 的其他面——调度、投递、纯脚本任务——完整巡览见我们的cron 自动化指南monitor + 便签本深度文则覆盖预检机制。