hermes agent支持cronjob定时任务,需kubernetes集群或docker compose高级部署、v2.3.0+版本,配置yaml后通过kubectl或web控制台部署并启用,验证状态、job及日志确认执行成功。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让Hermes Agent每天早上8点自动汇总昨日销售数据、每周一上午9点推送周报、或每5分钟检查一次新订单并触发通知——这些都不用守着电脑,靠Cronjob就能让它24小时自主运行。
确认Hermes Agent已支持Cronjob功能
登录Hermes Agent管理后台,在左侧导航栏找到「部署设置」→「运行模式」,确认当前模式为「Kubernetes集群部署」或「Docker Compose高级部署」;单机版Docker镜像默认不包含Cronjob调度能力,【必须切换为集群部署形态才能启用定时任务】。
进入「系统信息」页,查看Agent版本号:v2.3.0及以上才完整支持Cronjob YAML定义与Web界面触发绑定。
编写Cronjob配置文件(YAML格式)
在本地新建一个文本文件,命名为hermes-daily-report.yaml,粘贴以下内容:
apiVersion: batch/v1
kind: CronJob
metadata:
name: hermes-daily-report
namespace: hermes-system
spec:
schedule: "0 0 * * *" # 每天凌晨0点执行
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: runner
image: registry.hermes.ai/agent:v2.4.1
args: ["--task=report:daily", "--output=slack"]
env:
- name: HERMES_API_KEY
valueFrom:
secretKeyRef:
name: hermes-creds
key: api-key
注意:schedule字段使用标准Unix cron语法,"0 0 * * *"表示“分 时 日 月 周”,别写成"0 0 * * 1"想表达周一——那会漏掉其他六天;如果要每周一早8点运行,应写为"0 8 * * 1"。
将Cronjob部署到Kubernetes集群
方法一:kubectl命令行部署
确保已配置好kubeconfig且当前context指向目标集群,执行:kubectl apply -f hermes-daily-report.yaml
方法二:通过Hermes Agent Web控制台上传
进入「运维中心」→「定时任务」→「+新建Cronjob」→ 点击「上传YAML文件」→ 选择刚保存的hermes-daily-report.yaml → 点击「校验并提交」。【提交前务必勾选“启用”开关,否则YAML生效但不会触发任何调度】
验证Cronjob是否正常运行
第一步:检查Cronjob资源状态kubectl get cronjob -n hermes-system,输出中STATUS列应显示为Active,AGE大于0s。
第二步:查看最近一次生成的Jobkubectl get jobs -n hermes-system --sort-by=.status.startTime | tail -n 1,确认其名称以hermes-daily-report-开头且COMPLETIONS为1/1。
第三步:获取该Job对应Pod的日志
先查Pod名:kubectl get pods -n hermes-system --selector=job-name=hermes-daily-report-xxxxx,再执行:kubectl logs -n hermes-system <pod-name></pod-name>,日志末尾出现"Task completed: report:daily → sent to Slack"即表示执行成功。











