Hermes Agent cron 定时任务使用教程
每天定时汇总数据、检查服务器状态、推送周报——这些重复性工作,占据大量时间,却又不得不做。Hermes Agent 内置 cron 定时任务系统,支持自然语言调度、标准 Cron 表达式、任务全生命周期管理,自动执行数据汇总、系统监控、消息推送等重复性工作,让你彻底告别人工值守。本文从快速创建、生命周期管理、高级配置到场景实践,带你全面掌握定时任务用法,实现自动化办公与运维。

一、核心功能概览
Hermes cron 的所有定时任务,都统一通过 cronjob 工具来管理。先给个全景图,看看它到底能做什么:
多格式调度:支持自然语言、标准 Cron 表达式、相对延迟、ISO 时间戳。也就是说,你用“每天早上9点”也行,用“0 9 * * *”也行。
全生命周期:创建、暂停、恢复、立即执行、删除、状态查询,一个不落。任务的状态流转,后面会详细拆解。
技能集成:任务执行时自动加载技能,复用成熟工作流,复用已有的Agent能力。
多渠道投递:结果可以发送到 CLI、文件、飞书、钉钉、Telegram 等渠道,覆盖面很广。
环境隔离:支持指定工作目录、用户配置文件,每个任务独立会话运行,互不干扰。
低成本模式:支持纯脚本执行,无需 LLM 参与,节约资源。这点在生产环境部署时非常实用。
二、快速创建定时任务
创建任务的方式有好几种,按便捷程度排序,大概是这样:
2.1 自然语言创建(最便捷)
直接用日常语言描述任务与调度时间,Hermes 会自动解析。比如:
每天早上9点汇总AI行业新闻,发送到飞书
每隔30分钟检查服务器CPU使用率,超过90%发钉钉告警
每周五下午6点生成本周工作周报,保存到本地
这种方式的门槛最低,几乎就是打字就能用。
2.2 斜杠命令创建(对话内)
在交互式会话里边,用 /cron 命令可以快速创建任务:
# 间隔任务:每2小时检查接口状态
/cron add "every 2h" "检查https://api.example.com接口可用性"
# 每日任务:工作日9点发送日报
/cron add "0 9 * * 1-5" "汇总昨日数据,生成日报"
# 一次性任务:30分钟后提醒会议
/cron add 30m "提醒10点项目会议"
这种方式适合在聊天窗口中快速操作,不用切到终端。
2.3 CLI 命令创建(终端)
当然,最正统的做法还是在终端里用 CLI 命令创建:
# 基础间隔任务
hermes cron create "every 6h" "备份数据库"
# 带技能任务:加载博客监控技能
hermes cron create "0 8 * * *" "汇总新博客" --skill blogwatcher
# 指定工作目录与配置文件
hermes cron create "every 1d" "审计代码" --workdir ~/project --profile dev
CLI 的好处是可以精细控制参数,比如加载哪个技能、使用哪个配置。
2.4 调度格式大全
支持的调度格式其实挺多的,这里整理一下:
1. 相对延迟(一次性任务)
30m:30 分钟后执行2h:2 小时后执行1d:1 天后执行
2. 间隔调度(重复任务)
every 30m:每 30 分钟every 2h:每 2 小时every 1d:每天
3. 标准 Cron 表达式
# 格式:分 时 日 月 周
0 9 * * * # 每天9点
0 9 * * 1-5 # 工作日9点
0 */6 * * * # 每6小时
30 8 1 * * # 每月1日8:30
4. ISO 时间戳(一次性任务)
2026-12-31T18:00:00 # 2026年12月31日18点执行
三、任务生命周期管理
图1:Cron 任务生命周期流程
graph LR
A[创建任务] --> B[运行中]
B -->|暂停| C[已暂停]
C -->|恢复| B
B -->|立即执行| D[执行一次]
D --> B
B -->|删除| E[已删除]
C -->|删除| E
任务的生命周期其实不复杂,无非就是创建→运行→暂停→恢复→删除这么几个状态。具体怎么管理,看下面的命令。
3.1 查看任务列表
# 简要列表
hermes cron list
# 详细状态(含上次/下次执行时间)
hermes cron status
用 list 看个概览,用 status 看具体细节。
3.2 编辑任务
# 修改调度时间
hermes cron edit <任务ID> --schedule "every 4h"
# 修改任务内容
hermes cron edit <任务ID> --prompt "更新数据备份脚本"
# 追加技能
hermes cron edit <任务ID> --add-skill database
# 移除技能
hermes cron edit <任务ID> --remove-skill blogwatcher
3.3 暂停 / 恢复任务
# 暂停(保留配置,停止调度)
hermes cron pause <任务ID>
# 恢复(重新计算下次执行时间)
hermes cron resume <任务ID>
3.4 立即执行任务
# 跳过调度,立即运行
hermes cron run <任务ID>
3.5 删除任务
# 单个删除
hermes cron remove <任务ID>
# 批量删除已暂停任务
hermes cron remove --paused
四、高级核心配置
除了基本的创建和管理,Hermes cron 还提供了一些更高级的配置,能帮你搭建更加复杂和自动化的流程。
4.1 技能集成(复用工作流)
一个任务可以加载 1 个或多个技能,自动复用成熟流程。这意味着你不需要在每次创建任务时重新定义所有行为:
# 加载单个技能
hermes cron create "0 9 * * *" "汇总资讯" --skill news-watcher
# 加载多个技能
hermes cron create "every 12h" "生成报告" --skill data-process --skill report-generate
4.2 指定执行环境
有些任务对运行环境有特殊要求,Hermes 也考虑了这一点:
1. 工作目录
指定任务运行目录,会自动加载目录下的 AGENTS.md 规范:
hermes cron create "every 1d" "审计代码" --workdir ~/my-project
2. 用户配置文件
绑定指定 Profile,使用独立配置或密钥:
hermes cron create "0 2 * * *" "备份数据" --profile prod
4.3 结果投递配置
默认情况下,任务结果会返回创建会话。但你也可以把它投递到其他地方:
# 发送到飞书
hermes cron create "0 9 * * *" "发送日报" --deliver feishu
# 保存到本地文件
hermes cron create "every 6h" "备份日志" --deliver local
# 发送到指定Telegram群组
hermes cron create "every 1h" "监控告警" --deliver telegram:-100123456
4.4 静默模式(仅异常通知)
日常巡检类任务,如果一切正常,其实不需要每次都通知,只有在失败或异常时才告警更合理。Hermes 支持这种模式:
每5分钟检查Nginx状态,正常输出,异常发送告警
4.5 无 Agent 模式(纯脚本)
如果不想用 LLM,只想直接执行 Shell/Python 脚本,可以启用无 Agent 模式:
# 每5分钟检查内存,脚本路径~/.hermes/scripts
hermes cron create "every 5m" --no-agent --script memory-check.sh
这种模式的好处是省资源,适合对成本敏感的生产环境。
4.6 任务串联(依赖执行)
有些场景下,多个任务之间是有先后依赖关系的,比如先抓数据再汇总。Hermes 支持后一个任务继承前一个任务的输出:
# 任务1:每日7点抓取新闻
hermes cron create "0 7 * * *" "抓取新闻" --name news-fetch
# 任务2:7:30汇总任务1结果
hermes cron create "30 7 * * *" "汇总新闻" --context-from news-fetch
这就是一个典型的迷你流水线了。
五、工作原理与安全
5.1 调度机制
定时任务由 Gateway 守护进程 统一调度,每隔 60 秒扫描一次到期任务。工作流程如下:
从
~/.hermes/cron/jobs.json加载任务列表对比当前时间,筛选出到期的任务
在独立会话中运行任务,确保上下文隔离
执行完成后投递结果,更新下次执行时间
5.2 安全防护
安全性方面,Hermes 也做了不少防御工作:
提示注入扫描:拦截包含恶意指令、凭证泄露的任务创建。
脚本沙箱:无 Agent 模式的脚本,只允许在
~/.hermes/scripts目录下执行。任务隔离:每个任务拥有独立的会话,相互不干扰。
六、场景实践示例
理论说再多不如直接看例子。以下几个场景,基本覆盖了绝大多数日常需求:
6.1 日常数据汇总
# 工作日9点汇总昨日业务数据,发送飞书
hermes cron create "0 9 * * 1-5"
"查询数据库,汇总订单、用户数据,生成Markdown报表"
--deliver feishu
6.2 系统监控告警
# 每10分钟检查服务器CPU/内存,超阈值发钉钉告警
hermes cron create "every 10m"
"检查CPU(>90%)、内存(>85%),异常发送告警"
--deliver dingtalk
6.3 自动化备份
# 每日2点备份数据库,保存到本地+同步到云
hermes cron create "0 2 * * *"
"执行PostgreSQL备份,保存到~/backup并同步到阿里云OSS"
--workdir ~/scripts
6.4 内容自动生成
# 每周五18点生成本周技术周报,保存到本地
hermes cron create "0 18 * * 5"
"汇总本周代码提交、接口变更,生成Markdown周报"
--deliver local
七、常见问题排查
实际使用中,如果遇到问题,可以从这几个方面入手排查:
任务不执行:先检查 Gateway 守护进程是否在运行(
hermes gateway status)。技能加载失败:确认对应技能是否已经安装(
hermes skills list)。投递失败:检查渠道配置是否正确,比如飞书的 AppID 或密钥。
无 Agent 模式报错:确认脚本文件存在,且有执行权限。
八、总结
Hermes cron 的核心价值在于:自然语言调度、全生命周期管理、高可用集成。你不需要复杂的配置,就能实现各类自动化任务。无论是日常办公、系统运维还是数据处理,简单指令就可以完成。结合技能集成、环境隔离、任务串联这些高级能力,完全可以构建出一套完整的自动化流水线,真正实现“无人值守”的效率提升。
