Hermes 装在自己电脑上是真好用,但有个很扎心的问题:电脑一休眠、一关机,它就跟着下班了。

我作为它的"老板",肯定希望自己睡觉、出门玩的时候,它还能继续盯着定时任务、监控消息、处理那些我懒得管的活。

可我又不想 24 小时开着家里的电脑费电。最省事的办法当然是丢到 VPS 上跑。但新问题马上来了——

Hermes 和 OpenClaw 这类 Agent 权限大得吓人,几乎能碰到服务器上任何文件。如果你的 VPS 里放着 SSH 私钥、钱包密钥、一些重要文档……我反正不太敢让它随便翻。

(当然,如果你愿意单独买一台空 VPS 只跑 Hermes,那下面这些可以跳过。但大多数人就一台机器,又想用又想安全,怎么办?)

我自己的方案是:VPS + Docker + 非 root 用户跑 Hermes

  • Docker 把 Hermes 关进容器里,碰不到宿主机其他东西

  • 再专门建一个普通用户跑容器,权限再降一档

下面是我实际跑通的步骤,尽量精简,不绕弯子。


关于 VPS 的选择

建议挑一台网络条件比较稳定的 VPS,跑 Hermes 时连接外部服务会顺畅一些。

Hermes Agent 本身很轻,尤其 Docker 部署时,主要开销就是 Python 进程、SQLite 内存数据库和 Gateway,不需要 GPU。

配置参考下表:

0-qzRC

1. 建一个专用用户(用户名:hermes)

sudo adduser --disabled-password --gecos "" hermes
sudo usermod -aG sudo hermes   # 加入 sudo 组

sudo passwd hermes # 设置密码

su - hermes # 切换到 hermes 用户

2. 安装 Docker(Ubuntu/Debian 示例)

官方一键脚本或者 apt 装一下 docker-ce + docker-compose-plugin 就行。

3. 克隆并启动

git clone https://github.com/NousResearch/hermes-agent.git

cd hermes-agent

HERMES_UID=$(id -u) HERMES_GID=$(id -g) docker compose up -d

注意全程在 hermes 用户下操作。跑完执行 docker compose ps,能看到两个容器在跑:

640-ojCk

一个 gateway,一个 dashboard。

4. 初始化设置

docker compose exec -it gateway bash -c "source /opt/hermes/.venv/bin/activate && hermes setup"

按自己的偏好配大模型、Telegram、微信。

注意:选 Nous Portal 当大模型时,要打开浏览器链接做认证。VPS 没图形界面,所以在自己的台式机或笔记本上打开那个链接完成认证就行。

5. 解决权限问题(最容易踩坑的一步)

你以为到这就完事了?没有。

通过 Telegram 或微信给 Hermes 发消息,会看到认证错误:

0-MICC

但用下面的命令进容器里跑 Hermes 命令行,大模型却是正常的:

docker compose exec -it gateway bash
source /opt/hermes/.venv/bin/activate && hermes

原因是权限。执行 ls -alh ~/ 会看到:

... drwx------ 18 10000 10000 4.0K Apr 27 15:31 .hermes ...

其他文件用户名和组都是 hermes,只有 .hermes 显示成 10000:10000。

先把所有者改回来:

sudo chown -R hermes:hermes ~/.hermes
chmod -R 755 ~/.hermes

执行下面命令拿到 hermes 用户的 UID 和 GID,记下来:

640-CTmO

编辑 ~/hermes-agent/.env,在最后加上:

HERMES_UID=1001 # 改成你 id -u hermes 的结果
HERMES_GID=1001 # 改成你 id -g hermes 的结果

再编辑 ~/hermes-agent/docker-compose.yml

0-XQcn

大部分应该和我一样,不一样的地方对着改就行。

然后重启:

docker compose down
docker compose up -d

现在再用 Telegram 或微信发消息,应该就通了。

到这一步,你就有了一个 7×24 小时不下班的 Hermes。随时随地喊它干活。


附录:常用命令速查

docker compose down   # 关闭镜像

docker compose up -d # 启动镜像

docker compose up -d --build # 强制重建镜像 + 启动

docker compose exec -it gateway bash # 进入 gateway 容器

docker compose restart gateway # 重启 gateway

docker compose logs gateway | tail -30 # 查看 gateway 最后 30 条日志

docker compose exec -it gateway bash -c "source /opt/hermes/.venv/bin/activate && hermes status"

docker compose exec -it gateway bash -c "source /opt/hermes/.venv/bin/activate && hermes model"

更新 Hermes:

cd ~/hermes-agent

git fetch

git rebase

docker compose up -d --build

官方文档:https://hermes-agent.nousresearch.com/docs/user-guide/docker