Hermes Agent全自动配置指南:三步实现无人值守运行
如果你的Hermes Agent已经安装部署完毕,但每次都需要手动启动、登录或干预才能响应任务,那说明距离真正的“无人值守”还差最后一步。别担心,实现全自动运行并不复杂,这里为你梳理了几条清晰、独立的配置路径,你可以根据自身环境选择最合适的一种。
一、启用系统级服务自启(Linux/macOS)
这是最彻底、最可靠的方式。通过将Hermes Agent注册为系统服务,可以实现开机自启、崩溃自动恢复,完全无需人工登录终端操作。
首先,创建一个systemd服务文件:sudo nano /etc/systemd/system/hermes.service
接着,将以下配置内容写入文件。注意,你需要根据实际情况替换其中的your_username(你的用户名)和Hermes的实际执行路径:
[Unit]
Description=Hermes Agent Service
After=network.target
[Service]
Type=simple
User=your_username
WorkingDirectory=/home/your_username
ExecStart=/usr/bin/python3 -m hermes
Restart=always
RestartSec=10
Environment=PATH=/usr/bin:/usr/local/bin
Environment=PYTHONUNBUFFERED=1
[Install]
WantedBy=multi-user.target
保存退出后,依次执行以下命令来重载配置、启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable hermes
sudo systemctl start hermes
最后,用sudo systemctl status hermes命令验证一下。如果看到active (running)的状态提示,并且没有报错信息,那就大功告成了。
二、配置无影云电脑全天候运行策略
如果你是在阿里云的无影云电脑上部署的Hermes Agent,那么需要特别注意一点:默认的断连休眠策略可能会中断你的服务。调整一下,就能让它7×24小时在线。
操作很简单:登录无影控制台,找到你部署Agent的那台云电脑实例。点击卡片右下角的管理按钮,在左侧导航栏选择策略。找到断连定时关机/休眠这个选项,把开关关掉即可。
设置完成后,最好回到云电脑桌面,打开终端执行一下ps aux | grep hermes,确认一下Hermes Agent的进程依然在活跃运行。
三、使用tmux会话守护进程(通用终端方案)
没有root权限,或者只是想临时部署一下?那么tmux这个终端复用工具会是你的好帮手。它可以让进程在后台稳定运行,即使你关闭了终端窗口也不会退出。
首先,创建一个命名为hermes-agent的分离会话:
tmux new-session -d -s hermes-agent
然后,向这个会话发送启动Hermes的命令:
tmux send-keys -t hermes-agent 'hermes' Enter
你可以通过tmux ls命令查看会话状态,只要能看到hermes-agent这个会话名,无论是(attached)还是(detached)状态,都表示它在后台运行着。
如果需要查看或操作这个会话,使用tmux attach-session -t hermes-agent附加进去;要安全地退到后台,先按Ctrl+B,松开后再按D键即可。
四、配置Docker容器自动重启策略
对于使用Docker部署的用户来说,实现无人值守几乎是最轻松的。Docker引擎本身就提供了强大的容器生命周期管理能力。
首先,确保你已经有了Hermes的镜像。然后,在运行容器时,最关键的一步就是加上--restart=always这个参数:
docker run -d --restart=always --name hermes-prod -v ~/.hermes:/root/.hermes -p 8000:8000 ghcr.io/nousresearch/hermes-agent:latest
这样一来,无论容器是因为什么原因退出(宿主机重启除外),Docker都会尝试重新启动它。你可以用docker ps | grep hermes-prod检查容器状态,确认其STATUS显示为Up X hours(运行了若干小时)。
五、配置微信/Telegram等IM通道的后台网关守护
当Hermes Agent通过微信、Telegram等即时通讯工具接入时,除了Agent本身,还需要确保连接这些平台的“网关”服务稳定可靠。这主要涉及网络重连和健康检查配置。
打开Hermes的配置文件:nano ~/.hermes/config.yaml,找到或创建gateway配置部分,添加或修改如下几项:
reconnect_interval: 30
max_reconnect_attempts: 0
enable_webhook_health_check: true
这里的配置意思是:连接断开后,每30秒尝试重连一次;最大重试次数为0代表无限重试;同时启用健康检查机制。
保存配置后,重启一下Hermes服务(如果用了systemd,就是sudo systemctl restart hermes)。之后,你可以尝试发送一条消息,并通过journalctl -u hermes -f | grep -i "gateway\|connected"命令观察日志,应该能看到稳定的连接状态信息,而没有频繁的断开记录。
