SSD Nodes Learn Hosting plans →
指南 Matt Connor作者: Matt Connor

Hermes Agent 与 OpenClaw:VPS 上怎么选

比较 Hermes Agent 与 OpenClaw 在 VPS 上的端口、安全沙箱、记忆、技能和 Claude 认证差异,基于 2026 年 9 月标签及最新文档,帮您选择持久化自托管 agent。

简要结论

Hermes Agent 和 OpenClaw 都可以在 VPS 上提供持久运行的 agent,您可以通过聊天应用访问它。若 agent 的主要任务是重复性工作,例如定时任务和需要学习一次、反复复用的流程,应选择 Hermes Agent。若主要需求是覆盖更多聊天渠道,应选择 OpenClaw:它可以在 WhatsApp、Telegram、Discord、Slack 以及其他 20 多个渠道上响应,并可通过公共 registry 中的软件包扩展。两者都支持 CLI(命令行界面)和聊天操作,因此选择取决于各项目优先解决哪一侧的问题,以及它们分别会在您的服务器上开放什么。

本文比较基于 Hermes Agent 标签 v2026.9.7(2026 年 9 月 7 日发布的 v0.21.1)和 OpenClaw 标签 v2026.9.4(2026 年 9 月 11 日),并于 2026 年 10 月 10 日根据两个项目的当前文档进行了复核。两个项目都经常发布新版本,因此如有内容发生变化,请以文档为准。OpenClaw 当前的最新稳定版本为 v2026.9.9(2026 年 10 月 8 日),Hermes 则已从日期标签改用版本标签,v0.21.6 于 2026 年 10 月 8 日发布。下文的每项结论都来自对应项目的官方文档,或来自使用相关结论处标明的 2 个外部来源。

各自的用途:以 agent 为中心还是以网关为中心

Hostinger 的对比将 Hermes Agent 称为“以 agent 为中心”,将 OpenClaw 称为“以网关为中心”。这种划分是合理的,也是理解这两个项目最快的方法。

Nous Research 开发的 Hermes Agent 围绕一个 worker 构建。您向它分配任务。它在终端后端中执行任务,并将学到的内容记录为技能。它还会保存少量持久事实。聊天只是提交任务的多种方式之一。CLI、cron 作业、消息网关和桌面应用都会将任务提交给同一个 agent,而网关是通过 hermes gateway setup 启用的功能,不是您需要安装的核心组件。

OpenClaw 围绕其 Gateway 构建。Gateway 是一个长期运行的进程,其文档称它是会话、路由和频道连接的唯一真实来源。模型和 agent harness 都是附加到 Gateway 的插件,README 将 Claude、Codex 和本地模型列为可替换的 harness。触达能力才是产品本身。agent 只是 Gateway 托管的一项功能。

两个项目都借鉴了对方的优点。现在,两者都会要求未知的聊天发送者先输入验证码,才能与 bot 对话。两者也都允许 agent 自行编写技能:Hermes 通过其 skill_manage 工具实现,OpenClaw 通过其 Skill Workshop 实现。核心划分仍然成立:Hermes 是带有聊天前端的 worker,而 OpenClaw 是后端托管 worker 的聊天中心。

安装路径和 VPS 资源占用

两个项目都没有记录 RAM 或 CPU 最低要求,因此本文不自行设定。与它们调用的模型相比,两个代理本身都很轻量。服务器的实际负载取决于您要求代理运行的任务。编码代理 VPS 需要多少 RAM 和 CPU根据工作负载估算资源,而不是根据代理本身估算。

有一个已记录的数值值得注意。Hermes 使用 Docker 终端后端时,其文档默认将沙箱容器的限制设置为 container_cpu: 1 和 container_memory: 5120(单位为 MB)。这些是容器限制,不是实测需求。但小于该容量的 VPS 无法满足这些限制。

Hermes 通过一个脚本安装。当前安装使用 Python 3.14。安装程序通过自带的、固定版本且经过校验和验证的 uv 获取 Python,而不是使用系统中的 Python。在 Linux 上,脚本首先需要 git、curl、tar 和 SHA-256 工具(sha256sum,来自 coreutils)。在 glibc 系统上,安装程序设置的 Node.js 需要 libatomic。如果该软件包不存在,安装程序会添加它。

sudo apt update && sudo apt install -y git curl tar coreutils
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
source ~/.bashrc
hermes doctor

代码会以可编辑的 git checkout 形式写入 ~/.hermes/hermes-agent/,命令位于 ~/.local/bin/hermes。所有数据都存放在 ~/.hermes/ 下。安装程序从不要求 root 权限:只有在非 root 用户缺少 libatomic 时,才会调用 sudo。文档要求使用代理实际运行所用的用户执行安装,因为该用户拥有 checkout、配置和启动器。文档页面没有说明如何固定版本,但安装程序脚本接受 --commit SHA。该参数会在 clone 或更新后将 checkout 固定到指定 commit;如果该 commit 不在要安装的分支上,安装程序会停止。获取标签背后的 commit,将其导出为 HERMES_SHA,然后通过以下方式传入:

git ls-remote --tags https://github.com/NousResearch/hermes-agent v2026.9.7
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --commit "$HERMES_SHA"

如果 ls-remote 输出两行,请使用以 ^{} 结尾的那一行。该 commit 是带注释标签所指向的 commit,而 --commit 需要 commit SHA,而不是标签对象。安装完成后,hermes model 选择 provider 和 model,hermes tools 启用工具,hermes setup 运行完整向导,hermes doctor 检查结果。

OpenClaw 同样可以通过一个脚本或 npm 安装,并且需要 Node。文档要求 Node 24.16 或更高版本,或者 Node 26.1 或更高版本,并说明 Linux 安装程序缺少 Node 时会获取 Node 24 LTS(长期支持版)。npm 路径支持指定精确版本,因此可用它固定版本。文档为 npm 12 或 11.16 及更高版本提供了 --allow-scripts=openclaw 标志;对于更早版本的 npm,请运行不带该标志的相同命令。

curl -fsSL https://openclaw.ai/install.sh | bash
# or, pinned:
npm install -g openclaw@2026.9.4 --allow-scripts=openclaw
openclaw onboard --install-daemon

openclaw onboard --install-daemon 运行设置向导,并在 Linux 上将 Gateway 安装为 systemd 用户服务。配置位于 ~/.openclaw/openclaw.json,其格式为 JSON5,因此允许注释和尾随逗号。OpenClaw 还发布了 Extended Stable 版本线,供希望每月减少变更的用户使用。截至 10 October 2026,其当前版本为 2026.8.35,于 2 October 2026 标记。文档说明了四个通道:stable、extended-stable、beta 和 dev,以及用于在通道之间切换的 openclaw update --channel <name>。

Hermes Agent VPS 指南和OpenClaw 隔离指南包含各自的完整安装步骤,以及每一步应通过的检查。

各自会在网络上开放什么

本节决定防火墙规则,因此必须最谨慎。

OpenClaw 按设计会开放一个端口。 Gateway 默认监听 TCP 18789,端口按以下顺序确定:--port,然后是配置中的 OPENCLAW_GATEWAY_PORT,再然后是 gateway.port,最后使用 18789。gateway.bind 默认为 loopback,其他值包括 auto、lan(表示 0.0.0.0)、tailnet 和 custom。Control UI 使用同一端口,并位于根路径:http://127.0.0.1:18789/。只有在通过反向代理路径提供 UI 时,gateway.controlUi.basePath 才会添加类似 /openclaw 的前缀。文档明确说明了其中的风险:“非 loopback 绑定需要 Gateway 身份验证。实际使用中,这意味着共享令牌/密码,或支持身份识别的反向代理。”gateway.auth.mode 可取 none、token、password 或 trusted-proxy,而 onboarding wizard 默认会生成令牌。将 bind 保持为 loopback,通过 SSH 隧道访问 UI,并运行 openclaw security audit,报告与这些默认值之间的任何偏差。

Hermes 的核心 Gateway 不开放端口。 Gateway 作为客户端向各个聊天平台发起出站连接。CLI 向模型端点和终端后端发起出站连接。Docker 后端连接本地 Docker socket。SSH 后端通过 22 端口向另一台主机发起出站连接。Hermes 文档提到的端口属于可选组件:webhook adapter(默认关闭,WEBHOOK_PORT 8644)、WhatsApp Business Cloud API webhook(默认使用 8090),以及 WhatsApp bridge,该组件在本机使用 3000 端口。WhatsApp 页面没有说明 bridge 绑定的地址,因此应在防火墙中关闭该端口。因此,Hermes 主机可以将入站策略保持为“仅允许 SSH”,无需修改 agent 的任何设置,除非启用两个 webhook 中的一个。

对于这两个项目,聊天平台通常都不需要入站端口。 两者的主通道都使用长轮询或出站 WebSocket。Hermes 的 Slack 集成使用 Socket Mode,其文档称实例“不需要公开访问”。Hermes 的 WhatsApp 集成运行一个模拟 WhatsApp Web 会话的 Node.js bridge,通过 QR 码配对,并要求主机安装 Node.js v18 或更高版本。OpenClaw 的 Telegram 通道说明“长轮询是默认传输方式。Webhook 模式是可选的”,其 WhatsApp 通道仅支持 QR 码,并通过 WhatsApp Web 运行,由 Gateway 管理 socket。例外是明确要求公网 URL 的路径:OpenClaw 的 Telegram webhook 模式(webhookUrl、webhookSecret、webhookPath)、Hermes 的通用 webhook adapter,以及 Hermes 单独提供的 WhatsApp Business Cloud API 选项。其文档说明,该选项需要 Meta Business 账户和公网 webhook URL。除非确有需要,否则不要启用这些功能。

两者默认都会拒绝未知的聊天发送者。 Hermes 按以下顺序检查:平台级 allow-all 标志、已批准的配对列表、平台级 allowlist(例如 TELEGRAM_ALLOWED_USERS)、全局 GATEWAY_ALLOWED_USERS、全局 allow-all 标志,最后执行拒绝。未知发送者会通过 DM(直接消息)收到一个 8 字符配对码,然后使用 hermes pairing approve <platform> <code> 批准。OpenClaw 的 dmPolicy 在 Telegram 和 WhatsApp 上默认设为 pairing,并使用 openclaw pairing approve <channel> <code> 批准。对于能够运行 shell 命令的 bot,绝不要设置 GATEWAY_ALLOW_ALL_USERS=true 或 dmPolicy: open。

Hermes 如何应用 OpenClaw 的隔离方案

OpenClaw 隔离指南中的隔离方案包括:使用专用的非特权用户,将 Gateway 固定在回环地址上并置于 VPS 防火墙之后,为工具执行使用 Docker 沙箱,将 agents.defaults.sandbox.mode 设置为 all,并要求所有非回环访问使用令牌。OpenClaw 自己的沙箱页面明确说明了边界:Gateway 进程本身始终在主机上运行,沙箱只隔离工具执行。tools.elevated 是一个可绕过沙箱、在其外部运行的入口。

用户和防火墙配置可以直接应用于 Hermes。专用用户提供相同的隔离边界,Hermes 的生产环境检查清单用 6 个词明确说明了这一点:“Never run the gateway as root”。防火墙配置更简单,因为核心 Gateway 没有需要固定的端口,令牌也没有需要保护的对象。

沙箱对应 ~/.hermes/config.yaml 中的 terminal.backend。Hermes 文档列出了 7 个后端:local、docker、ssh、singularity、modal、daytona 和 vercel_sandbox。使用 docker 时,容器以 --cap-drop ALL 运行,随后重新添加 DAC_OVERRIDE、CHOWN 和 FOWNER,并设置 --security-opt no-new-privileges 和 --pids-limit 256,同时在挂载到 tmpfs 的 nosuid 上启用 /tmp 和 /var/tmp。有一项差异很重要。Hermes 文档说明,在 docker、singularity、modal、daytona 和 vercel_sandbox 后端上会跳过危险命令检查,“因为容器本身就是安全边界”。因此,在 Hermes 中,每个后端只能依靠其中一个隔离边界。在 local 后端上,系统提供审批门禁,但不使用容器。在 docker 上,系统使用容器,但不提供审批门禁。

Hermes 文档还提供了自己的部署方式:使用 terminal.backend: ssh,“在单独的机器或 VM(虚拟机)上运行 Gateway”。Gateway 主机保存聊天令牌和模型密钥,但不执行任何命令。工作主机执行命令,不保存任何值得窃取的内容。用于编码代理的临时 VM适合作为这种架构中的工作主机,因为可以直接重建,而不必清理。

内存:两个小型冻结文件,或一个实时工作区

在这两者的比较中,内存模型的差异最大,而 mem0 对两者的比较 是对这一差异最清晰的说明。其总结是:Hermes“针对缓存稳定的长会话进行优化”,而“OpenClaw 针对即时可见性进行优化”。

图表Prompt-memory size limit per file, in characters
此图表背后的数据
[
  {
    "label": "Hermes MEMORY.md (hard cap)",
    "char_limit": "2,200"
  },
  {
    "label": "Hermes USER.md (hard cap)",
    "char_limit": "1,375"
  },
  {
    "label": "OpenClaw MEMORY.md (soft target)",
    "char_limit": "20,000"
  }
]

Hermes 的数据来自其内存文档。OpenClaw 的数据是 mem0 报告的软目标值。

Hermes 在 ~/.hermes/memories/ 下维护两个文件。MEMORY.md 保存 agent 自己的笔记,限制为 2,200 个字符。USER.md 保存关于您的事实,限制为 1,375 个字符。文档说明这些限制是严格的:超过限制写入时会返回错误,而不是静默截断。agent 使用三个动词编辑它们:add、replace 和 remove,其中 replace 和 remove 会按子字符串匹配。两个文件都会在会话开始时加载一次,作为 system prompt 中的冻结块,从而保持 prompt-cache 前缀稳定。这种设计的代价是,agent 在会话中途写入的内存会立即保存到磁盘,但要到下一次会话才会出现在其 prompt 中。对于较早的事实,session_search 会在 ~/.hermes/state.db 中的所有历史对话上运行 FTS5(SQLite 的全文搜索)。

OpenClaw 将内存视为工作区。~/.openclaw/workspace/MEMORY.md 是主文件,软目标约为 20,000 个字符;此外,memory/YYYY-MM-DD.md 中还保存每日笔记,其中今天和昨天的文件会自动加载。memory_search 工具会对全部内容执行混合检索,包括向量相似度和关键词匹配。mem0 指出,内存会在每轮重新注入,因此写入内容会在下一轮可见。

哪种方式更好取决于具体任务。每晚运行相同 cron 任务的 Hermes agent 需要稳定的 prompt,以及一组可以信任的少量事实。每天处理 100 次简短聊天的 OpenClaw 助手则希望无需重启,就能记住您一小时前说过的话。Hermes 将 Mem0 列为外部内存提供程序插件之一,您可以使用 hermes plugins install mem0 添加并使用 hermes memory setup 配置;mem0 也发布了适用于 OpenClaw 的 @mem0/openclaw-mem0 插件。自行托管 Mem0 内存服务器 可让两个 agent 使用相同的服务器端事实提取功能,并将大小限制从对话中移出。agent 写入的任何文件都会成为它之后信任的输入,因此agent 内存如何遭到污染同时适用于这两个项目,也适用于下一节中的 skills。

技能:自行编写的流程,或公共注册表

Hermes 会自行编写技能。技能目录位于 ~/.hermes/skills/ 下,包含 SKILL.md,并可选包含 scripts/、references/、templates/ 和 examples/ 目录,格式遵循 agentskills.io。该代理提供 skill_manage 工具,其系统提示词列出了编写技能的3个触发条件:完成了值得重复使用的多步骤流程、在出错后找到了解决方法,或采纳了您的纠正。文档将目标描述为“经验,而不是日志”。如果您不希望代理未经审核就修改自己的指令集,请设置 skills.write_approval: true;新技能随后会暂存于 ~/.hermes/pending/skills/,直到您批准。Hermes 还可以通过 hermes skills install <identifier> 从外部安装技能:从 anthropics/skills 等 GitHub 仓库安装,从 skills.sh 安装,从指向 SKILL.md 的直接 URL 安装,或直接从 ClawHub 安装。文档称,每次从 hub 安装时,都会扫描数据外泄、提示注入和破坏性命令。对于不危险的社区发现结果,可以使用 --force 覆盖;但“危险扫描判定”即使配合 --force 也会阻止安装。

OpenClaw 从其公共注册表 ClawHub 获取技能和插件。openclaw skills search "calendar" 用于查找技能,openclaw skills install @openclaw/demo 用于安装,openclaw skills update --all 用于保持更新,代码插件则会经过 openclaw plugins install clawhub:<package>。技能从一组按优先级排列的目录加载:<workspace>/skills 优先于 <workspace>/.agents/skills 和 ~/.agents/skills,然后是受管控的 <state-dir>/skills,再然后是代理学习得到的工作区技能,最后是捆绑的技能集。技能的 SKILL.md 可以声明 metadata.openclaw.requires.bins 和 requires.env;如果缺少相应二进制文件或变量,OpenClaw 会在加载时过滤掉该技能。这比技能只能部分运行后才失败更可靠。代理也会自行编写技能。Skill Workshop 用于保存这些学习得到的技能,其文档称:“每次更改都会立即生效,并先保存上一版本,而且可以撤销。”使用默认的 skills.workshop.autonomous.mode: auto 时,后台审核会自行创建和修补技能;您可以在聊天中回复“undo”、从 Control UI 操作,或使用 openclaw skills workshop restore <name> 撤销更改。将模式设置为 off 会停止后台审核,但您要求时,代理仍会编写技能。

不同审核模型的区别在于检查执行的位置。ClawHub 文档称,它“会对已发布的技能和插件版本执行自动检查”;被扫描暂留或被阻止的版本可能从公共目录中消失;登录用户可以举报软件包,版主可以将其隐藏;发布还需要使用注册时间足够长、能够通过上传门槛的 GitHub 账户。这属于注册表审核。Hermes 在您的计算机上安装时执行扫描,写入审批门槛则适用于其代理自行编写的技能。OpenClaw 学习得到的技能没有审批步骤;其中的检查机制是撤销历史。OpenClaw 的技能页面最后仍保留着对两者都适用的一句话:“将第三方技能视为不受信任的代码。启用前先阅读。”

模型和身份验证选项,以及 Claude 订阅问题

这两个项目都支持 API key 或本地模型,并且都通过 OpenRouter 路由。两者的区别在于订阅接入方式,这正是大多数搜索该主题的用户想了解的内容。

API key。 Hermes 从 ANTHROPIC_API_KEY、OPENROUTER_API_KEY、OPENAI_API_KEY 以及 ~/.hermes/.env 中的许多其他变量读取配置。hermes model 以交互方式选择 provider 和 model,hermes config get model.default 显示当前选择。Nous Portal 是独立的 provider:hermes setup --portal 是一次 OAuth 登录,同时提供模型 provider 和托管工具网关。OpenClaw 通过 openclaw onboard --anthropic-api-key "$ANTHROPIC_API_KEY" 获取 ANTHROPIC_API_KEY,openclaw models list --provider anthropic 显示它可以访问的内容。其文档称,全新的 API 和 Claude CLI 配置默认使用 Opus 5.5(anthropic/claude-opus-5-5),并同时列出 anthropic/claude-sonnet-5-5 和 anthropic/claude-fable-5-1,需要显式选择。

通过 Ollama 使用本地模型。 两个项目指向 Ollama 的方式不同,混淆这两种方式确实会导致失败。Hermes 使用兼容 OpenAI 的 endpoint:在 config.yaml 中设置 model.provider: custom 和 model.base_url: http://localhost:11434/v1,或在 hermes model 中选择 "Custom endpoint"。其文档还说明,Hermes“要求 agent 使用工具时至少有 64,000 个 token 的上下文”,而 Ollama 的默认值低得多,因此应使用 OLLAMA_CONTEXT_LENGTH=64000 ollama serve 启动 Ollama。OpenClaw 则相反。其 Ollama 页面写道:“不要使用 /v1 OpenAI-compatible URL(http://host:11434/v1)。这会破坏工具调用,模型可能会将原始工具调用 JSON 作为普通文本输出。” OpenClaw 默认通过 Ollama 原生的 /api/chat 通信;指定 base URL 时不要包含路径,例如 http://host:11434,模型名称使用 ollama/<model>。省略 base URL 时,它会使用本地默认主机。同一个 daemon,URL 方向相反。

Claude 订阅。 以下内容完全依据两个项目截至 2026 年 10 月的文档,不作额外推断。

Hermes:可通过 hermes model(选择 Anthropic OAuth)或 hermes auth add anthropic --type oauth 进行 OAuth 登录,之后 Hermes 会“以 Claude Code 的方式使用您的 Anthropic account”。文档补充说明:“只有 Claude Max plan 用户购买额外使用 credits 后,此方式才有效。”不会消耗 Max 的基础额度;使用量会从额外 credits 中扣除。Claude Pro 不能使用此方式,文档建议 Pro 订阅者使用 ANTHROPIC_API_KEY,并按标准 API 价格计费。

OpenClaw:文档介绍了通过同一主机上已安装的可执行文件复用“现有 Claude Code 登录”的方式。先在 VPS 上安装 Claude CLI,运行 claude auth login,然后在 openclaw onboard 中选择 "Claude CLI"。另一种方式使用 setup token:运行 claude setup-token,然后运行 openclaw models auth login --provider anthropic --method setup-token。同一页面中的两句话说明了限制:“Claude Code 管理其现有登录和订阅;OpenClaw 不会持久化或刷新该登录”,并且通过 Agent SDK、claude -p 和第三方应用使用订阅计划的额度,“仍会从已登录订阅的使用限制中扣除”。

两个项目对该使用量的计费描述不同,而且两个页面都不是 Anthropic 的官方页面。在使用订阅登录构建每晚运行的工作负载前,请阅读 Anthropic 当前关于第三方使用 Claude plan 的条款。两个项目都记录了一种接入方式,并且两种方式都使用 Claude Code 的身份,而不是普通的 claude.ai 登录。Hermes 将其方式限定为 Max 加额外 credits;OpenClaw 则将其方式限定为与 Claude CLI 登录相同的主机。

其他订阅。 Hermes 还记录了通过 device-code OAuth 使用 OpenAI Codex 和 ChatGPT plan,以及通过 device flow 使用 GitHub Copilot。不过,Codex 页面称,哪些 plan tier 符合条件“目前尚未记录”。OpenClaw 将 Codex 列为可替换的 harness。如果您已经为其中一种服务付费,这确实是选择已记录该接入方式的项目的理由。

各项目对安全态势的表述

Hermes 会对命令进行控制。approvals.mode 在 config.yaml 中默认设置为 smart:辅助模型会评估每条命令。低风险命令会执行,明显危险的命令会被拒绝。无法确定的命令会询问您。manual 遇到危险匹配项时始终询问,off 会禁用该控制。扫描器会匹配递归删除、chmod 777 及其同类命令、mkfs、dd if=、重定向到 /etc/、systemctl stop、restart、disable 或 mask 的操作、DROP TABLE、curl ... | sh 以及 fork bomb。在聊天中,网关会发送命令并等待 yes、y、approve、ok 或 go;使用 no、n、deny 或 cancel 可拒绝命令。默认超时时间为 300 秒,超时后命令会被拒绝。--yolo 标志(会话中使用 /yolo,或使用 HERMES_YOLO_MODE=1)会跳过提示,但即使如此,硬性阻止列表仍然生效:rm -rf / 及其明显变体、fork bomb、在已挂载的根文件系统上执行的 mkfs、从 /dev/zero 向磁盘执行的 dd,以及通过管道传给 sh 的不受信任 URL。请注意,隔离部分已经说明,这项控制在容器后端上处于关闭状态。

OpenClaw 会划定边界。其安全页面称,Gateway 是“每个 Gateway 一个受信任边界”,并且“不是供彼此敌对的用户使用的恶意多租户安全边界”。因此,互不信任的两名用户应使用两个 Gateway,并分别配置两套凭据。工具允许和拒绝策略会在沙箱规则之前检查,因此全局拒绝的工具在沙箱内仍然会被拒绝。按代理配置的访问配置文件和只读模式可以进一步限制代理能够操作的对象。openclaw security audit 会将当前配置与安全默认值进行比较。技能相关的安全措施包括上文介绍的 ClawHub 审核、Skill Workshop 的撤销历史,以及启用第三方技能前先阅读其内容的要求。

两个项目都没有作出超出这些范围的保证。Hermes 没有声称其扫描器能够捕获所有问题;当风险升高时,其文档会建议您使用容器或第二台计算机。OpenClaw 也没有声称沙箱能够隔离 Gateway 本身,并在沙箱页面中明确说明了这一点。两者的文档都比较诚实。对于需要无人值守持续运行的软件,这是一个积极信号。

决策矩阵

重复性工作流:Hermes。 支持记忆的 Cron 作业;同一任务执行第 3 次后会生成相应技能;记忆不会超出限制;还可按风险级别选择终端后端。如果代理每周主要执行作业,只偶尔进行对话,这种形态更合适。

消息覆盖范围:OpenClaw。 一个 Gateway 可接入 20 多个渠道;Telegram 和 WhatsApp 默认通过 DM 配对;同一端口提供 Control UI;还带有现成技能和插件的注册表。如果代理每周主要在多个应用中进行对话,只偶尔执行作业,这种形态更合适。

单机部署:两者均可,取决于你能接受的边界。 在一台 VPS 上部署 OpenClaw,使用专用用户、gateway.bind: loopback、令牌和 sandbox.mode: all。在一台 VPS 上部署 Hermes,并使用 terminal.backend: docker;但要注意,容器内的审批门禁处于关闭状态。也可以使用 terminal.backend: local 和 approvals.mode: manual;但要注意,错误的审批操作会在主机上执行。

双机部署:Hermes,按照其文档的建议。 在一台 VPS 上运行 Gateway,通过 terminal.backend: ssh 连接到工作节点 VPS。聊天令牌和模型密钥只放在第一台 VPS 上,第二台不保存任何重要数据。OpenClaw 可以通过带有 trusted-proxy 认证的反向代理提供服务,但 Gateway 仍会在自己的主机上执行,除非为每个代理启用沙箱。

仅使用本地模型:检查 URL 两次。 Hermes 要求使用 /v1 和 64k 上下文。OpenClaw 不接受 /v1,而是要求使用原生 API。

已经购买 Claude Max 并额外购买额度:Hermes 仅针对这一方案提供了有限文档。 如果已经在同一主机上运行 Claude Code,OpenClaw 提供了复用它的文档。如果购买的是 Claude Pro:在任一系统上使用 API key。

如果仍在这两者与其他产品之间犹豫: 自托管代理综述使用相同维度,将两者与 Agent Zero、OpenHands 及其他产品进行比较。

FAQ

Hermes Agent 可以使用 Claude Max 订阅吗?

Hermes 的文档说明可以,但适用范围有限。通过 hermes model(Anthropic OAuth)或 hermes auth add anthropic --type oauth 登录后,Hermes 会以 Claude Code 的方式使用您的账户。文档指出,这“仅适用于 Claude Max 方案,并且您已购买额外使用额度”;用量会从这些额外额度中扣除,而不是从基础额度中扣除。Claude Pro 订阅者必须改用 ANTHROPIC_API_KEY。截至 2026 年 10 月,在将其用于无人值守任务前,请先阅读 Anthropic 自己的条款。

OpenClaw 需要在我的 VPS 上开放端口吗?

正常使用不需要。Gateway 监听 TCP 18789,但 gateway.bind 默认为 loopback,因此只响应 127.0.0.1 上的请求。通过 SSH 隧道访问 http://127.0.0.1:18789 上的 Control UI。Telegram 使用长轮询,WhatsApp 则通过 Gateway 自行打开的 WhatsApp Web 会话运行,因此除非选择 Telegram 的可选 webhook 模式,否则不需要任何通道开放入站端口。如果将服务绑定到 lan 或 tailnet,文档要求启用 Gateway 身份验证:使用共享令牌或密码,或者在前面部署身份感知代理。

哪一个更适合在无人值守状态下持续运行?

在关闭审批的 local 后端上运行时,两者都不安全。最安全的 Hermes 部署方式是使用两台服务器:在一台 VPS 上运行 Gateway,通过 terminal.backend: ssh 连接到工作节点 VPS。Hermes 自己的文档建议这样做,以“实现最高安全性”。OpenClaw 最安全的配置是使用专用的非特权用户、gateway.bind: loopback、令牌和 agents.defaults.sandbox.mode: all。对于这两种情况,都应将 agent 的记忆文件和 skills 目录视为攻击者可通过聊天消息写入的输入。

可以在同一台 VPS 上运行 Hermes Agent 和 OpenClaw 吗?

可以。两者不共享端口或目录。Hermes 将所有内容保存在 ~/.hermes/ 下,其核心 Gateway 不开放监听端口,可选的 WhatsApp bridge 使用端口 3000。OpenClaw 将所有内容保存在 ~/.openclaw/ 下,并监听 127.0.0.1:18789。为每个 agent 分配独立的 Linux 用户,避免某个遭入侵的 agent 读取另一个 agent 的聊天令牌。不要让两者使用同一个 Telegram bot token,因为 Telegram 每个 bot 只允许一个长轮询客户端,第二个客户端会收到 409 Conflict: terminated by other getUpdates request。

如何将每个项目固定到某个版本?

OpenClaw 的 npm 安装路径接受精确版本号:npm install -g openclaw@2026.9.4 --allow-scripts=openclaw;npm view openclaw versions 会列出已发布的版本。Hermes 的安装程序接受 --commit SHA,因此请使用 git ls-remote --tags https://github.com/NousResearch/hermes-agent v2026.9.7 获取 v2026.9.7 对应的提交,并将其作为 bash -s -- --commit <sha> 传入。两个项目每月都会发布多个版本。Hermes 现在按版本号而不是日期标记发布版本,因此请记录测试所使用的标签。

#hermes-agent#openclaw#self-hosted-ai-agents#ai-agents#vps