让你的 AI 助手自己上班:Hermes Agent Cron 定时任务完全指南

凌晨三点,手机震动。监控告警:核心服务延迟飙升,数据库连接池耗尽。你迷迷糊糊爬起来,打开笔记本,准备登录服务器排查。这是运维工程师再熟悉不过的场景。
但如果你有一个 AI 助手,它能在你睡觉的时候自动检测异常、分析日志、执行预定义的修复脚本,甚至把处理结果和诊断报告推送到你的聊天工具里,你是不是就不用从床上爬起来了?
这不是科幻。Hermes Agent 的 Cron 系统就是为这个场景设计的。
什么是 Hermes Agent Cron 系统#
Hermes Agent 是 Nous Research 开发的开源 AI 智能体框架。它的 Cron 系统允许你为 AI 助手配置定时任务,在指定的时间点自动执行一系列操作。与传统的 Linux cron 不同,Hermes Cron 调度的是一个完整的 AI 工作流:你的助手可以调用工具、搜索信息、生成内容、操作文件、推送消息,全程不需要人工干预。
任何一个 Hermes Agent 的 profile 目录下,都可以有一个 cron/ 文件夹。里面存放的每一对 prompt.md 和 config.toml 文件,就是一个独立的定时任务。
五分钟上手:你的第一个 Cron 任务#
假设你想每天早上 8 点让 AI 助手抓取 Hacker News 头条,生成摘要,然后推送到你的飞书群。
第一步:创建配置文件#
在 ~/.hermes/profiles/default/cron/daily-digest/config.toml 中:
schedule = "0 8 * * *"
timezone = "Asia/Shanghai"
enabled = true
deliver = "origin"
retry = { max_attempts = 3, backoff_seconds = 60 }
schedule 使用标准的 cron 表达式。deliver = "origin" 表示任务的输出(AI 助手的最终回复)会自动投递回触发任务的来源,比如飞书机器人或命令行。
第二步:编写任务提示词#
在 config.toml 同目录下创建 prompt.md:
你的任务是抓取 Hacker News 首页的前 10 条热门文章,用中文列出标题和链接。
最后用飞书支持的 Markdown 格式输出。文章标题加粗,每条附上一句话摘要。
第三步:启用并验证#
hermes cron enable daily-digest
hermes cron list # 查看所有任务状态
hermes cron run daily-digest # 手动触发一次,验证效果
就这么简单。每天早上 8 点,你的 AI 助手会自动运行这个任务。
Headless 模式:当没人盯着屏幕时#
Cron 任务天然运行在 Headless(无头)模式下。这意味着:
- 没有交互式终端:AI 助手不能停下来问"你想选方案 A 还是方案 B",它必须自主决策
- 没有浏览器 OAuth:不能用"打开浏览器登录"的方式完成认证,所有凭证必须预先配置好
- 超时是硬约束:每个任务有默认的超时时间(通常 600 秒),超时意味着任务失败
这听起来像是一种限制。但实际上,Headless 模式迫使你思考一个问题:如果完全没有人介入,这个流程应该怎么跑?
这种思维转变很有价值。你会发现很多"看起来简单"的流程其实暗含了大量人工判断点。把那些判断显式化、规则化,本身就是一种工程提升。
Headless 模式的关键设计考量#
在编写 Cron 提示词时,有几个原则特别重要:
1. 消除歧义
不要写"选一个好的方案"。写"选择 star 数最高的仓库"或"选择发布时间最近的文章"。AI 在 Headless 模式下没有机会追问你"哪种算好"。
2. 明确失败路径
如果 Hacker News 网站无法访问,使用 Reddit r/programming 作为备用源。
如果两个源都失败,输出一条"今日数据源不可用"的消息。
3. 输出格式精确指定
输出格式:Markdown,第一行 `## 📊 Hacker News 日报 {日期}`,
然后一个三列表格:序号 | 标题(带链接)| 分数。
实战案例:自动化博客发布#
Codexer 博客(你现在读的这个)的每一篇文章,都是通过 Hermes Cron 自动生成的。工作流程是这样的:
每天上午 9:00 → Cron 触发
↓
搜索近期 Codex 相关英文技术文章
↓
AI 提炼核心内容,原创中文重写
↓
Pillow 生成封面图 → 上传七牛云 CDN
↓
保存为 Hugo Markdown 文件
↓
git commit → git push
↓
CI/CD 自动构建部署到 codexer.com
↓
结果推送到飞书群
整个流程中有六个环节涉及外部服务调用、文件操作、版本控制。任何一个环节失败,AI 助手需要知道如何降级处理,而不是傻等。
输出投递机制:任务跑完了,结果去哪了#
Hermes Cron 支持三种投递模式:
| 模式 | 说明 | 适用场景 |
|---|---|---|
origin | 投递回触发源(飞书机器人、Slack 等) | 聊天机器人触发的定时任务 |
silent | 静默执行,不投递任何输出 | 纯副作用任务(如数据清理) |
file | 将输出写入指定文件 | 生成报告存档 |
对于聊天机器人场景,deliver = "origin" 是最佳选择。任务的最终回复会自动作为一条消息推送到群聊中。
注意:
deliver = "origin"要求 Cron 任务是通过 Hermes Gateway 的消息机制触发的。如果你只是通过 CLI 手动hermes cron run,输出仍然会显示在终端。
进阶技巧:多步骤任务编排#
简单的 Cron 任务可能只需要 AI 完成一件事。但复杂场景下,你需要编排多个步骤。
Hermes 的做法不是提供 DAG 编排器,而是利用 AI 本身的理解能力。你只需要在提示词中描述步骤:
按以下步骤执行:
第一步:用 web_search 搜索"OpenAI Codex 最新动态",获取 5 篇近期文章链接。
第二步:逐一访问这 5 篇文章,提取标题、作者、核心观点。
第三步:综合分析 5 篇文章,写一篇 800 字的中文综述。
第四步:将综述保存到 /tmp/codex-news-{date}.md。
第五步:用 MEDIA: 指令在回复中附上今天的数据可视化截图。
AI 助手会自动按步骤执行,遇到错误会尝试替代方案。
陷阱与最佳实践#
经过几个月的生产环境使用,总结几条经验:
1. Token 预算管理#
Cron 任务通常运行时间较长(搜索、处理、生成),容易消耗大量 token。建议在提示词中明确限制范围:
只抓取前 10 条数据,每条的描述不超过 50 字。
如果文章超过 5000 字,只阅读前 2000 字和最后 500 字。
2. 幂等性设计#
定时任务可能因为网络抖动、服务重启等原因重复执行。确保任务是幂等的:
在保存文件前,检查该日期的文章是否已经存在。如果存在,跳过本次任务。
3. 凭证管理#
Headless 模式无法完成 OAuth 流程。所有 API 密钥、Token 需要预先配置在环境变量或配置文件(如 ~/.hermes/ 下以 _token 结尾的文件)中。
4. 监控与告警#
Cron 任务失败时,你不会收到报错邮件(除非你配置了)。建议在任务末尾添加健康检查:
执行完成后,用 curl 检查博客的 HTTP 状态码。
如果返回的不是 200,在回复中以 "⚠️ 部署异常" 开头输出详细错误信息。
这样,当 deliver = "origin" 把结果推到飞书群时,你一眼就能看到警报。
5. 不要滥用#
Cron 系统很强大,但请节制使用。每分钟触发一次的 AI 任务,API 费用会超乎你的想象。大多数场景下,每天一次或每小时一次就足够了。
跟传统 Cron 的对比#
| 维度 | 传统 Cron | Hermes Cron |
|---|---|---|
| 执行内容 | Shell 脚本 | AI 工作流(自然语言驱动) |
| 灵活性 | 固定逻辑 | 根据上下文动态调整 |
| 错误处理 | 依赖脚本自身 | AI 自动分析错误并尝试修复 |
| 输出 | 日志文件、邮件 | 聊天消息、文件、CDN 等 |
| 门槛 | 需要编程能力 | 用自然语言描述即可 |
传统 Cron 像一个忠诚的闹钟,到点就响。Hermes Cron 像一个会思考的助理,到点了不仅知道该做事,还知道怎么做、做错了怎么补救。
写在最后#
Hermes Agent 的 Cron 系统不是要替代 Linux Cron,而是拓展了"定时任务"的边界。在传统 Cron 里,你安排的是命令;在 Hermes Cron 里,你安排的是意图。
当你把意图交给 AI 助手,它会用工具调用、搜索、推理和生成能力来完成。你不需要把每个边界情况都写成代码,只需要告诉它目标是什么、约束有哪些。
凌晨三点,手机没有震动。你翻了个身,继续睡觉。AI 助手已经帮你把服务器修好了,报告也发到了群里。这就是 Cron 系统给开发者最好的礼物。
参考来源:Hermes Agent 官方文档 (https://hermes-agent.nousresearch.com/docs), Nous Research, 2026.