Agent工坊

【Agent工坊】Hermes Cron Jobs 实战:用定时任务打造「24小时无人值守」AI内容工厂

你的 Hermes Agent 不是只能等你来问问题——它可以像 Linux crontab 一样,每到整点自动搜索热点、生成文章、提交草稿箱。今天带你从零上手 Hermes Cron Jobs,实现真正的「睡觉时也在挣钱」。

你肯定遇到过这个场景

你用 Hermes 搭了一套不错的内容流水线:研究员搜热点 → 大纲Agent写大纲 → 写作Agent出稿 → 发布到公众号。

但有一个问题:每次都要你手动触发

早上8点起床,打开终端,敲一条指令——流水线才开始跑。跑完10分钟,你才能验收。如果你睡过头了?今天的文章就没发。如果你出差在路上?手机根本没法操作。

你想过没有:为什么不能让 Hermes 自己定时跑?

Linux 有 crontab,GitHub 有 Actions,Airflow 有 DAG schedule——AI Agent 为什么不能有自己的定时任务?

答案是:它可以。Hermes Cron Jobs 就是做这件事的。

Hermes Cron Jobs 是什么?

Hermes 内置了一套轻量级的定时任务系统,完全复刻 Linux crontab 的语法,但执行的不是 shell 脚本——是 Hermes 的 Skill

┌─────────────────────────────────────────┐
│  Hermes Cron Job                         │
│                                          │
│  schedule: "0 */1 * * *"                 │
│  skill: ai-neican-hotspot                │
│  prompt: "扫描AI热点,产出简报"            │
│  profile: default                        │
│                                          │
│  → 每小时整点自动执行                      │
│  → 输出保存到 ~/.hermes/cron/output/      │
│  → 可通过邮件/webhook发送结果              │
└─────────────────────────────────────────┘

每条 cron job 由四个核心要素组成:

要素 说明 示例
schedule Cron 表达式,5段制 0 */6 * * *(每6小时)
skill 要加载的 Skill 名称 ai-neican-hotspot
prompt 给 Agent 的具体指令 "扫描最近1小时AI热点"
profile 使用的 Hermes 配置 default(可选)

Cron 表达式速查(5段制)

分钟  小时  日  月  星期
 0    */1   *   *    *      ← 每1小时整点
*/15  *     *   *    *      ← 每15分钟
 0    8     *   *    *      ← 每天早上8点
 0    9     *   *    1-5    ← 工作日早上9点
 0    0     *   *    0      ← 每周日凌晨

⚠️ 与 Linux crontab 的区别:Hermes 只支持5段制(分钟/小时/日/月/星期),不支持秒级精度。如果配置了6段表达式,解析会失败。

实战:搭建你的第一条定时任务

Step 1:创建 Cron Job 配置文件

Hermes 的 cron jobs 配置在 profile 目录下的 cron/ 文件夹中,每个 job 一个 .yaml 文件:

# 目录结构
~/.hermes/profiles/default/
├── cron/
│   ├── hotspot-scan.yaml       # 热点扫描任务   ├── daily-report.yaml       # 日报生成   └── publish-article.yaml    # 自动发布
├── skills/
└── memories/

创建第一条热点监控任务:

# ~/.hermes/profiles/default/cron/hotspot-scan.yaml
name: "AI热点扫描-整点执行"
description: "每小时扫描一次AI工具赛道最新动态"
schedule: "0 */1 * * *"
skill: ai-neican-hotspot
prompt: |
  扫描过去1小时内AI Agent工具赛道的最新动态。

  重点检查:
  1. GitHub Releases: Hermes Agent、OpenClaw 新版本
  2. Hacker News: AI 工具相关热帖(points > 50)
  3. 中文社区: 知乎/CSDN 上的一人公司案例

  发现重大新闻(融资/重大版本更新/平台政策变化)时,
  输出格式:【🚨 重大发现】标题 + 核心摘要。

  如果无新内容,输出 [SILENT]。
output:
  destination: file  # 输出保存到文件
  path: ~/.hermes/cron/output/  # 输出目录

Step 2:激活 Cron Job

配置文件创建后,Hermes 的调度引擎会自动检测 cron/ 目录的变化:

# 列出当前 profile 的所有定时任务
hermes cron list

# 输出示例:
# ✅ hotspot-scan     0 */1 * * *   下次执行: 2026-07-23 12:00
# ✅ daily-report     0 21 * * *    下次执行: 2026-07-23 21:00
# ⏸️ publish-article  0 8 * * 1-5   已暂停

不需要手动启动调度器——Hermes Agent 运行时自动激活 cron 引擎。只要你保持 Agent 进程在线,cron job 就会按时执行。

Step 3:查看执行结果

每次 cron job 执行后,输出会保存到指定目录:

# 查看最近的执行记录
ls -lt ~/.hermes/cron/output/

# 输出示例:
# hotspot-scan/2026-07-23_11-00-00.md
# hotspot-scan/2026-07-23_10-00-00.md
# hotspot-scan/2026-07-23_09-00-00.md

每个输出文件包含:
- Job ID(唯一标识)
- 执行时间戳
- 完整输出内容(Markdown)
- 执行状态(success/failure/timeout)
- API 调用统计

进阶:多任务流水线编排

单条 cron job 适合简单任务。但内容工厂需要多条任务协作。这里用一个完整案例演示:

场景:AI创业内参的每日发布流水线

┌──────────────────┐
│ 07:00 热点扫描    │ ← 扫描过去12小时的动态
│ (hotspot-scan)   │
└────────┬─────────┘
         │ 输出: hotspot-report.md
         ▼
┌──────────────────┐
│ 07:30 内容创作    │ ← 读取热点报告,写作
│ (content-write)  │     产出草稿到 content/
└────────┬─────────┘
         │ 输出: draft-*.md
         ▼
┌──────────────────┐
│ 08:00 自动发布    │ ← 从草稿箱选文,三审后
│ (auto-publish)   │     提交微信公众号草稿箱
└──────────────────┘

配置文件:

# cron/hotspot-scan.yaml
name: "早间热点扫描"
schedule: "0 7 * * *"
skill: ai-neican-hotspot
prompt: |
  扫描过去12小时的AI热点。输出3-5个候选选题到 
  ~/.hermes/projects/ai-neican/research/outputs/hotspot-scan-{date}.md
# cron/content-write.yaml
name: "自动内容创作"
schedule: "30 7 * * *"
skill: ai-neican-content-pipeline
prompt: |
  读取最新的热点报告文件,执行完整流水线:
  researcher → outliner → writer → reviewer → 终稿保存到 content/

  重要:执行前先检查 content/ 目录,如果当日已有3篇以上草稿,
  则检查热点报告是否还有未被覆盖的高价值选题,有则写,无则 [SILENT]。
# cron/auto-publish.yaml
name: "自动发布到公众号"
schedule: "0 8 * * *"
skill: wechat-public-account-draft
prompt: |
  扫描 /home/agent/.hermes/projects/ai-neican/content/ 中最新的草稿,
  执行三审流程(rate_article ≥60 + rate_layout ≥80 + rate_images ≥70),
  通过后提交到微信公众号草稿箱,验证草稿存在后输出"发布成功"。

关键技巧:让你的 Cron Job 更可靠

1. [SILENT] 机制避免噪音

Cron job 每次执行都会产生输出。如果每小时都收到一封"无新内容"的报告,你很快会忽略真正重要的通知。

Hermes 内置了 [SILENT] 协议:如果 Agent 输出恰好是 [SILENT](不含任何其他内容),调度器会静默丢弃这次输出,不发送通知。

prompt: |
  扫描AI热点...

  规则:
  - 有新发现 → 正常输出报告
  - 无新内容 → 只输出 [SILENT](不发送通知)

2. 超时与重试策略

Cron job 不是 fire-and-forget。你需要处理 Agent 执行超时的情况:

# cron/publish-article.yaml
name: "文章发布(带重试)"
schedule: "0 8 * * *"
skill: wechat-public-account-draft
prompt: |
  发布文章到公众号草稿箱。
  如果获取 stable_token 失败(40001错误),重试最多3次,间隔10秒。
  如果图片上传失败,跳过该图继续发布(不要全流程中断)。
timeout: 600  # 10分钟超时
retry: 3       # 失败重试3次

3. 防重复执行

同一条 cron job 理论上不会重叠执行(调度器有互斥锁),但跨 job 的重复是常见的:

prompt: |
  创作新文章前,必须执行防重复检查:
  1. ls /home/agent/.hermes/projects/ai-neican/content/draft-{today}*
  2. 检查今日草稿标题,避免同一事件重复写
  3. 如果发现同一话题今日已覆盖 → [SILENT]

4. 输出传递:用文件而非内存

不同 cron job 之间共享状态,最简单可靠的方式是文件

Job A → 写入 research/outputs/hotspot-report.md
Job B → 读取 research/outputs/hotspot-report.md → 写 content/draft.md
Job C → 读取 content/draft.md → 发布到公众号

不需要消息队列、不需要数据库——Markdown 文件就是最简单、最可靠的 IPC(进程间通信)。

常见问题

Q: Cron job 需要 Hermes 一直运行吗?

A: 是的。Hermes 的 cron 引擎内嵌在 Agent 进程中。如果你关闭了终端,cron 就不会执行。对于生产环境,建议用 tmuxsystemd 保持 Hermes 常驻后台。

Q: Cron job 执行时能调用工具吗?

A: 可以。Cron job 执行的 Agent 拥有完整的工具权限(文件读写、网络请求、API调用等),与手动交互模式相同。关键是 Skill 里要声明需要的 toolsets

Q: 我能用 cron job 调用外部 API 吗?

A: 完全没问题。比如定时调用 OpenAI API 做内容生成、调用微信 API 发布文章——实际上,AI创业内参的每日发布就是靠 cron job 驱动 WeChat API 完成的。

Q: 多个 profile 的 cron job 会互相干扰吗?

A: 不会。每个 profile 的 cron job 独立运行,有各自的执行上下文和输出目录。框架保证了 profile 之间的隔离性。

总结

能力 实现方式
定时触发 Cron 表达式(5段制)
任务定义 YAML 配置文件
工作流串联 文件传递(Markdown IPC)
结果通知 文件输出 + [SILENT] 降噪
错误处理 超时 + 重试 + 日志

三条核心原则:
1. 文件是通用契约:Agent 之间通过 Markdown 文件传递状态
2. [SILENT] 是降噪开关:没新内容就不要吵我
3. 防重复是基本功:每次执行前先检查历史输出

用好这三条,你就能把 Hermes 从一个「对话工具」变成一个「24小时运转的 AI 员工」。


AI创业 #Agent工坊 #Hermes #CronJobs #一人公司 #自动化运营