Hermes 定时任务
定时任务(Cron)让 Hermes 按时间表自动执行工作,无需你每次手动触发。本篇覆盖创建、管理,以及与网关的联动。
两种创建方式
既可以用 CLI 直接建,也可以在对话里用自然语言建。
hermes cron create "every 2h" "Check server status"
对话里这样写也能生效:
/cron add "every 2h" "Check server status"
时间描述支持自然语言(如 every 2h、daily at 9am),也支持标准 cron 表达式(如 0 */2 * * *),方便精确控制。
管理已有任务
hermes cron list # 列出所有任务
hermes cron run 1 # 立即手动跑一次
hermes cron pause 1 # 暂停
hermes cron resume 1 # 恢复
hermes cron edit 1 # 编辑(时间或指令)
hermes cron remove 1 # 删除
hermes cron status # 查看调度器状态
暂停与恢复很实用,临时不想要某任务触发但又不想删,先 pause,需要时再 resume。
任务里的指令要自包含
定时任务是「开新会话」去跑的,拿不到你当次聊天的上下文。所以指令必须写清楚、能独立执行:
hermes cron create "daily at 9am" "读取 ~/reports/sales.csv,统计昨日新增订单数,结果发到飞书"
把路径、目标平台都写明,它才能无歧义地完成任务。模糊的「帮我看看情况」在定时任务里会失效。
结果投递到平台
定时任务常和网关搭配:任务跑完,把结论推到你指定的平台。投递目标支持 Telegram、飞书、钉钉、企业微信、微信、QQ 等(即上文提到的 feishu、wecom 等标识)。
这就要求网关处于运行状态。一般先 hermes gateway start 或 hermes gateway install(把网关装成系统服务,开机自启),定时任务的推送才能送达。
让任务携带技能
如果某任务依赖一套固定流程,可以先把它做成技能(见「技能系统」一篇),再在任务里引用。这样定时任务每次都按最佳实践执行,结果更稳。
一个完整例子
每隔两小时检查服务器,只有异常才打扰你:
# 先确保网关运行
hermes gateway start
# 建任务:正常静默,异常才发飞书
hermes cron create "every 2h" "SSH 到 192.168.1.100 检查 nginx 状态;若异常,把错误信息发到飞书,否则什么都不说"
本篇小结
- 创建:
hermes cron create "时间" "指令"或对话里/cron add。 - 管理:list/run/pause/resume/edit/remove/status。
- 时间支持自然语言与 cron 表达式。
- 指令要自包含;投递需网关运行,目标含飞书/钉钉等国内平台。
下一篇我们进入插件开发,把 Hermes 的能力扩展到你自己的业务逻辑。