Hermes Agent定时任务需绕过存在故障的/cron命令,当前可用五种方法:一、基础hermes cron(稳定性差);二、系统crontab调用脚本;三、systemd timer高可靠方案;四、企业微信/飞书网关反向触发;五、Python APScheduler灵活调度。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望 Hermes Agent 按照指定时间自动执行任务,例如每日推送行情、定时发送日报或周期性检查股票异动,则需依赖其内置的 Cron 定时调度器。但需注意:截至2026年4月18日,Hermes 的自然语言定时任务(/cron 命令)存在已知执行失败问题,任务创建后常无响应且无日志记录。以下是当前可用的多种定时任务设置方法:
一、使用 hermes cron 命令(基础方式,存在稳定性风险)
该方式通过自然语言描述触发定时任务,由 Hermes 解析并注册至本地调度器,适用于轻量级、非关键任务。其原理是将用户输入转为 Cron 表达式并写入内部调度队列,但实际执行依赖于后台守护进程的持续运行与正确心跳。
1、启动 Hermes Agent 并进入交互界面:hermes
2、输入自然语言指令,例如:今天 17:30 推送 3 条 AI 新闻,每条包含标题、一句话总结、来源链接
3、等待返回任务 ID(如 cron_abc123),表示注册成功
4、保持 Hermes 进程不退出,且终端未被挂起或休眠,否则调度器将停止轮询
二、绕过 /cron,直接编辑 crontab(Linux/macOS/WSL2 推荐)
该方式跳过 Hermes 内部调度器,改用系统级 crontab 调用 hermes CLI 执行预设命令,规避官方 Cron 模块缺陷。原理是利用操作系统原生定时能力,确保即使 Hermes 主进程重启,任务仍可按时触发。
1、编写一个可复用的 shell 脚本,例如 ~/hermes-daily-report.sh,内容为:#!/bin/bash; cd ~/.hermes && hermes -c "企业微信日报"
2、赋予执行权限:chmod +x ~/hermes-daily-report.sh
3、编辑当前用户 crontab:crontab -e
4、添加一行,例如每日下午5点执行:0 17 * * * /home/yourname/hermes-daily-report.sh >> /tmp/hermes-cron.log 2>&1
5、保存退出,系统将自动加载新规则
三、使用 systemd timer(Linux/WSL2 长期稳定方案)
该方式适用于需要高可靠性、进程守护与失败重试机制的场景。systemd timer 可监控 Hermes 进程状态,支持开机自启、依赖管理及日志追踪,比 crontab 更适合生产级自动化。
1、创建定时器服务文件:sudo nano /etc/systemd/system/hermes-daily.timer
2、填入触发配置:[Unit] Description=Hermes Daily Report Timer [Timer] OnCalendar=*-*-* 17:30:00 Persistent=true [Install] WantedBy=timers.target
3、创建对应 service 文件:sudo nano /etc/systemd/system/hermes-daily.service
4、填入执行逻辑:[Unit] Description=Run Hermes Daily Report After Timer [Service] Type=oneshot ExecStart=/usr/bin/hermes -c "企业微信日报" WorkingDirectory=/home/yourname/.hermes User=yourname
5、启用并启动:sudo systemctl daemon-reload && sudo systemctl enable hermes-daily.timer && sudo systemctl start hermes-daily.timer
四、通过外部消息平台网关触发(企业微信/飞书场景专用)
该方式不依赖 Hermes 本地调度器,而是利用企业微信或飞书的定时消息能力反向驱动 Hermes。原理是让外部平台在设定时间向 Hermes 接入的机器人发送固定指令,Hermes 收到后立即执行对应 Skill 或命令,实现“平台托管+Agent 执行”的解耦架构。
1、确保 Hermes 已完成企业微信网关接入:hermes gateway setup 并选择企业微信
2、在企业微信管理后台创建「定时消息」应用,设置每日 17:30 向机器人发送文本:/run daily_report
3、在 Hermes 中定义该指令对应的 Skill:~/.hermes/skills/daily_report.md,内容为完整日报生成逻辑
4、验证消息可达性:手动在企微中发送该指令,确认 Hermes 正确响应并输出报表
5、启用平台侧定时任务开关,交由企业微信服务器保障触发精度
五、使用 Python 脚本 + APScheduler(跨平台灵活控制)
该方式适用于需动态计算触发时间、条件判断或与其他 Python 生态工具(如数据库、API)联动的复杂自动化流程。APScheduler 是纯 Python 的先进调度库,支持内存/SQLAlchemy/Redis 多种后端,可完全绕开 Hermes 自身调度模块。
1、安装依赖:pip install apscheduler
2、新建脚本 hermes_scheduler.py,导入 Hermes CLI 执行模块
3、定义作业函数,调用 subprocess 运行:subprocess.run(['hermes', '-c', '查一下本月销售数据'])
4、添加定时规则,例如每天 17:30 触发:scheduler.add_job(report_job, 'cron', hour=17, minute=30)
5、启动调度器并保持主进程运行:scheduler.start(); try: while True: time.sleep(3600) except KeyboardInterrupt: scheduler.shutdown()











