SSD Nodes Learn
指南 Matt Connor作者: Matt Connor · 更新于 2026-07-19

在 VPS 上自托管 Hermes Agent

Hermes Agent 是一款一条命令即可安装的自托管 AI 智能体。用非特权用户、防火墙、密钥隔离和 systemd,在 VPS 上安全地部署它。

Hermes Agent 是什么

Hermes Agent 是 Nous Research 于 2026 年 2 月发布的一款自托管 AI 智能体。它运行在您自己的服务器上,会持久记住您的项目,在工作过程中自行编写可复用的技能,并通过 Telegram、Discord 等聊天应用与您沟通。它与模型无关,因此您可以将它指向任何您偏好的语言模型;它足够轻量,可以运行在每月 5 美元的 VPS 上,也可以通过 Docker 或 SSH 运行。

和任何智能体一样,它的价值在于代您行事,而这也正是您要谨慎部署它的原因。一个会记忆、会学习、会执行任务的智能体,是一个常驻进程,对您的服务器拥有实际的操作权限。本指南以安全的方式安装它,这里的加固措施与安全运行 OpenClaw时采用的完全相同。

一条命令完成安装,以及为什么要先读一遍脚本

Hermes 用一条命令即可安装:

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

这很方便,同时也是一种值得警惕的模式。把一个脚本直接从互联网通过管道传给 shell,会以运行它的那个用户的身份执行脚本中的任何内容。在真实服务器上运行它之前,请先下载下来,读一遍,并以一个专用用户而非 root 的身份运行:

curl -fsSL https://hermes-agent.nousresearch.com/install.sh -o hermes-install.sh
less hermes-install.sh

这并不是特别针对 Hermes 的不信任。而是一种习惯,能防止任何 curl | bash 式的安装悄悄成为您整套配置中最薄弱的一环。

给它一个非特权用户

以 Hermes 自己的系统账户运行它,绝不要用 root,这样一个 bug 或一条恶意指令就无法波及机器的其余部分。创建一个没有登录 shell 的用户:

sudo useradd --system --home /opt/hermes --shell /usr/sbin/nologin hermes

将 Hermes 安装在 /opt/hermes 下,并让该账户作为属主。官方安装程序会为运行它的那个用户安装,因此请以 hermes 用户的身份运行您下载好的脚本,例如 sudo -u hermes bash hermes-install.sh,这样文件就会落在该用户的主目录里,而不是您的目录里。这里的道理与以非特权用户运行服务中的一致:智能体运行所用的账户,就是它能造成破坏的上限。

给服务器设置防火墙并隔离其密钥

Hermes 的工作方式是主动向模型以及您连接的聊天应用发起请求,因此它不需要接受来自互联网的入站连接。在服务器前面放置一个默认拒绝的防火墙:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enable

请留意这里的IPv6 防火墙缺口,因为一套只覆盖 IPv4 的规则可能让某个服务在 IPv6 上暴露。把模型的 API 密钥和任何聊天令牌放在一个只有 hermes 用户可读的文件里(权限 600),并将其加载进服务,而不要粘贴在命令行上,因为那样会留在您的 shell 历史记录中。

把 Hermes 作为一个加固过的 systemd 服务运行

一个 systemd 单元能让 Hermes 在您登出后、在重启后继续运行,在它崩溃时重启它,还能让您加上内核级的沙箱来限制它可以接触的范围。开启 NoNewPrivilegesProtectSystem=strictPrivateTmpProtectHome,这样即使被攻破也能被控制在有限范围内。

在这里生成一个加固过的单元,然后把它复制到 /etc/systemd/system/hermes.service。该单元启动的是 hermes gateway,也就是连接您聊天应用的那个长期运行的进程;在启用服务之前,请在安装后运行 hermes --help,确认您所用版本上的这条命令以及该二进制文件的路径:

Tool为该智能体生成一个加固过的 systemd 单元

这些指令,以及 daemon-reloadenable --now 这些步骤,都在将程序作为 systemd 服务运行中有介绍:

sudo systemctl daemon-reload
sudo systemctl enable --now hermes

加固它周围的服务器

最后加固好大门。把 SSH 改成仅密钥认证并禁用 root 登录,正如VPS 上的 SSH 加固中所述,这样您用来管理机器的账户就无法被猜到。一个保有持久记忆的智能体值得保护,而最廉价的保护,就是确保没有人能登录它所在的服务器。

如果您更愿意理解其中的原理,而不是运行一个打包好的智能体,那么在 VPS 上构建您自己的 AI 智能体会一步步把它讲清楚。

FAQ

Hermes Agent 能跑在便宜的 VPS 上吗?

可以。Hermes 就是为在小型服务器上运行而设计的,每月 5 美元的 VPS 足以支撑一个个人的、始终在线的智能体。它是主动向语言模型和您的聊天应用发起请求,而不是承载繁重的流量,因此对资源占用很低。给它配一个专属用户、一个防火墙和一个 systemd 服务,一台小型 VPS 就能从容应对。

那条单行安装脚本运行起来安全吗?

curl | bash 式的安装很方便,但安全的习惯是先把脚本下载下来读一遍再运行,并以一个专用用户而非 root 的身份运行。这样,来自任何项目的管道式安装程序,都不可能做出超过那个受限账户所允许范围的事。这里没有任何东西是 Hermes 独有的;对每一个这种形式的安装来说,这都是好做法。

我如何不用 root 运行 Hermes?

创建一个没有登录 shell 的专用系统用户,把 Hermes 安装在该用户拥有的目录下(例如 /opt/hermes),并以该账户运行服务。如果智能体某天被攻破,损害也会被限制在那一个账户所能触及的范围内。

我登出后如何让 Hermes 保持运行?

把它作为一个 systemd 服务运行。一个单元文件会在开机时启动 Hermes,在它崩溃时重启它,并在您的 SSH 会话结束后继续让它运行,同时 systemd 的沙箱选项会限制该进程可以接触的范围。用上面的工具生成一个加固过的单元,再用 systemctl enable --now hermes 启用它。

Hermes Agent 需要 GPU 吗?

不需要。Hermes 是智能体的运行时,而不是语言模型本身,因此它在一台只有 CPU 的小型 VPS 上也能良好运行。繁重的计算发生在模型运行的地方,通常是您连接的一个托管 API。如果您还想在同一台机器上自托管模型,那就按模型而不是按 Hermes 本身的需求来配置机器。关于只用 CPU 托管模型,Ollama 指南中的数字同样适用。