需采用替代方案实现hermes agent定时任务:一、系统crontab调用cli;二、systemd timer高可靠调度;三、yaml静态注册;四、telegram/飞书网关反向触发;五、tmux守护内置cron。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望 Hermes Agent 在指定时间自动执行代码、文件处理或消息推送等任务,则需通过其定时调度机制完成配置。由于内置 /cron 命令存在已知执行失败问题,当前需采用多种替代路径确保任务稳定触发。以下是可行的自动执行方法:
一、使用系统级 crontab 调用 Hermes CLI
该方式绕过 Hermes 内部调度器缺陷,直接利用操作系统原生定时能力,确保即使 Hermes 主进程重启或中断,任务仍可按时执行。所有调度逻辑由系统 crond 守护进程管理,不依赖 Hermes 后台心跳。
1、编写一个独立 shell 脚本,例如 ~/hermes-auto-task.sh,内容为:#!/bin/bash; cd ~/.hermes && hermes -c "每日数据同步"
2、赋予脚本执行权限:chmod +x ~/hermes-auto-task.sh
3、编辑当前用户 crontab:crontab -e
4、添加一行规则,例如每天凌晨2点执行:0 2 * * * /home/yourname/hermes-auto-task.sh >> /tmp/hermes-cron.log 2>&1
5、保存退出后,系统将立即加载新规则,无需重启任何服务。
二、配置 systemd timer 实现高可靠调度
该方式适用于生产环境,提供进程守护、开机自启、失败重试与日志追踪能力,比 crontab 更具鲁棒性。systemd 可监控 Hermes 进程状态,并在崩溃后自动拉起,确保长期无人值守运行。
1、创建定时器单元文件:sudo nano /etc/systemd/system/hermes-daily.timer
2、写入 timer 配置:[Unit] Description=Run Hermes daily task [Timer] OnCalendar=*-*-* 02:00:00 Persistent=true [Install] WantedBy=timers.target
3、创建对应 service 文件:sudo nano /etc/systemd/system/hermes-daily.service
4、写入 service 配置:[Unit] Description=Hermes daily task After=network.target [Service] Type=oneshot User=your_username WorkingDirectory=/home/yourname ExecStart=/usr/bin/hermes -c "每日数据同步" [Install] WantedBy=multi-user.target
5、启用并启动定时器:sudo systemctl daemon-reload && sudo systemctl enable hermes-daily.timer && sudo systemctl start hermes-daily.timer
三、通过 YAML 配置文件静态注册 cron 任务
该方式将任务定义持久化保存于本地 YAML 文件中,Hermes 启动时自动加载,适合长期稳定的批处理场景。任务结构清晰、支持完整 cron 表达式语法,且可嵌入环境变量与参数。
1、打开 Hermes 配置目录下的 cron 文件:nano ~/.hermes/config/cron.yaml
2、在 schedules: 区块下新增任务条目,注意缩进与冒号后空格:
3、插入如下格式内容:- name: "hourly-log-check" schedule: "0 * * * *" command: "/tools run check-logs --threshold=100" enabled: true
4、保存文件后,在 CLI 中执行重载命令:hermes cron reload
5、验证任务是否生效:hermes cron list
四、借助 Telegram 或飞书网关实现反向触发式自动执行
该方式不依赖 Hermes 主进程持续在线,而是由外部消息平台在指定时间主动推送触发指令,再由 Hermes 接收并执行。适用于网络受限、终端不可常驻或需人工确认的混合自动化场景。
1、确保已配置飞书网关:hermes gateway setup --platform feishu
2、在 CLI 中注册通知型定时任务:/cron add "weekly-review" "0 10 * * 1" "/notify send '请审核上周代码提交' --to feishu"
3、收到飞书消息后,在聊天窗口中直接输入:/run code-audit --week=last
4、Hermes 将解析指令并执行关联动作,全过程无需保持 CLI 会话活跃。
五、使用 tmux 会话守护 Hermes 进程并配合内置 cron
该方式适用于无 root 权限或临时部署环境,通过 tmux 保持 Hermes 进程后台常驻,规避终端关闭导致的调度中断。结合内置 cron 指令,可快速启用轻量级自动执行,无需修改系统级配置。
1、新建分离式 tmux 会话:tmux new-session -d -s hermes-auto
2、在该会话中启动 Hermes 并进入交互模式:tmux send-keys -t hermes-auto 'hermes' Enter
3、等待提示符出现后,发送自然语言指令:tmux send-keys -t hermes-auto '每天下午4点生成周报' Enter
4、确认任务注册成功:tmux send-keys -t hermes-auto '/cron list' Enter
5、断开 tmux 会话:tmux detach,Hermes 将持续在后台轮询并执行任务。











