六维教程

Hermes 定时任务

定时任务(Cron)让 Hermes 按时间表自动执行工作,无需你每次手动触发。本篇覆盖创建、管理,以及与网关的联动。

两种创建方式

既可以用 CLI 直接建,也可以在对话里用自然语言建。

hermes cron create "every 2h" "Check server status"

对话里这样写也能生效:

/cron add "every 2h" "Check server status"

时间描述支持自然语言(如 every 2hdaily 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 等(即上文提到的 feishuwecom 等标识)。

这就要求网关处于运行状态。一般先 hermes gateway starthermes 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 的能力扩展到你自己的业务逻辑。

上一篇
Hermes 消息网关
下一篇
Hermes 插件开发