把 Hermes 放进 NVIDIA OpenShell 沙箱:NemoClaw 上手与取舍

你把终端、SSH 密钥、家目录和装包的权限都交给了一个 agent——它确实好用,直到你想把它跑在一台“重要的机器”上。一台常驻的共享机器、一台旁边就有生产凭据的工作站,或者同事也会登录的服务器:这时候每一句“你就跑一下这个”都变成了一次爆炸半径的评估。NVIDIA 的做法不是继续纠结权限,而是干脆把整个 agent 塞进容器,给它一份网络白名单,再把 API Key 留在主机上,让 agent 根本读不到。
NemoClaw 是什么
NVIDIA NemoClaw 是一套开源(Apache-2.0)参考栈,用来把常驻 AI agent 更安全地跑在 NVIDIA OpenShell 沙箱里。它自己的简介里点了三个支持的 agent,Hermes 是其中之一:
Run agents like Hermes, LangChain Deep Agents, and OpenClaw more securely inside NVIDIA OpenShell with managed inference
它不是 Hermes 的分支,也不改变你使用 Hermes 的方式。它包在外面的是:一个主机端 CLI(nemohermes 就是预选好 Hermes 的 NemoClaw CLI)、一份带版本号的容器 blueprint、一个引导式 onboarding,以及针对不同 agent 的集成层。在投入一个晚上之前,值得先记住它自己的定位:
NemoClaw is an early-preview reference stack for a trusted operator on one host. It is not a hosted service, a multi-tenant enterprise control plane, or an enterprise identity system.
翻译过来:它是给“一个主机、一个可信操作者”用的早期预览参考栈,不是托管服务,也不是多租户的企业控制面。
沙箱到底拦住了什么
| 能力 | 实际含义 |
|---|---|
| 沙箱化执行 | agent 在 OpenShell 里运行,文件系统、进程和网络控制从第一次开机就生效 |
| 推理路由 | agent 在沙箱内访问 inference.local,OpenShell 转发到你选的供应商,推理凭据留在主机上 |
| 运维可控的出口流量 | YAML 网络策略加预设。未批准的出口被拦下,并以“待审请求”的形式呈现给你 |
| 托管 MCP 服务器 | 带认证的 HTTPS Streamable HTTP MCP 服务器,凭据占位符由 OpenShell 在获准的出口边界替换 |
| 生命周期 | 带版本号、经过摘要校验的 blueprint;状态、日志、重建、恢复、快照与还原 |
| 状态迁移 | 跨机器迁移 agent 状态时剥离凭据并校验完整性 |
对 Hermes 用户来说最关键的一点是推理链路:你的供应商密钥不在沙箱里。agent 访问的是一个本地端点,OpenShell 决定它真实去向,而密钥由运维侧保管。这样即便 agent 被提示注入、把自己的环境变量全打印出来,它看到的也只是一个端点名,不是秘密。
把 Hermes 放进沙箱
在受支持的主机上,安装就是一条命令,过程中会问你要哪个 agent。注意 express install 默认装 OpenClaw,所以看到预设提示时要回答 n,才能交互地选 Hermes、沙箱名、供应商和模型:
curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
如果要做脚本化安装,就把答案提前写好,不再走交互:
export NEMOCLAW_AGENT=hermes
export NEMOCLAW_NON_INTERACTIVE=1
export NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE=1
export NEMOCLAW_SANDBOX_NAME=my-hermes
export NVIDIA_INFERENCE_API_KEY=<your-key>
curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
之后可以用 nemohermes onboard 重新进入向导——这也是在真正写配置之前,快速看看你这台机器上有哪些选项的最快方式。
供应商列表相当宽,其中有一项是 Hermes 专属的:除了 NVIDIA Endpoints(NEMOCLAW_PROVIDER=build)、OpenRouter、OpenAI、Anthropic、Gemini、Model Router(routed)、OpenAI 兼容与 Anthropic 兼容端点,以及已就绪的本地 vLLM 服务器之外,还有 NEMOCLAW_PROVIDER=hermes-provider,文档明确标注为 Hermes only。本地 Ollama 在已安装、已在运行或可安装时,对 OpenClaw 和 Hermes 都会提供。
onboarding 结束后,向导会打印你真正会用到的两个地址:
NemoHermes is ready
Sandbox: my-hermes
Model: nvidia/nemotron-3-super-120b-a12b (NVIDIA Endpoints)
Hermes Agent Dashboard
Port 18789 must be forwarded before opening this URL.
http://127.0.0.1:18789/
Hermes Agent OpenAI-compatible API
Port 8642 must be forwarded before connecting.
http://127.0.0.1:8642/v1
这两个端口都是从主机转发出来的,而不是沙箱对外发布的——所以想从另一台机器访问面板,是一个需要你显式去做的动作,而不是默认结果。
两个 Hermes 专属的细节
基础网络策略是按 Hermes 写的,不是通用策略。 NemoClaw 给每个 agent 配了自己的策略;对 Hermes 来说,它允许 Hermes 二进制和 Python 运行时访问必需的目标:Nous Research 的服务端点、PyPI、NVIDIA 推理端点,以及若干消息平台 API。如果你想启用消息通道,先读策略再动手——文档专门把你引到消息通道和网络策略两页,就是这个原因。
浅色终端会拿到一个托管皮肤。 当你从一个对比度处理较差的终端连接 Hermes 沙箱时,NemoClaw 可能会装上一个托管的 nemoclaw-light 皮肤,让回答文字保持可读。终端不再需要它时会自动移除此托管状态,同时保留你自己选的皮肤。
这个 preview 到哪儿为止
把边界说清楚,能省掉你一个糟糕的下午:
- 平台: Linux 和 DGX Spark 是主要测试平台。macOS、WSL、DGX Station 和无头 Linux 服务器都有各自被记录下来的限制,而不是被承诺可用。
- 规模: 一个可信操作者、一台主机。没有多租户,也没有企业身份体系。
- 隔离强度取决于主机。 文档直言不同主机的强制能力不同——沙箱的强度上限就是底下内核特性的强度。
- 它是 preview。 摘要校验的 blueprint 和完整的生命周期是实打实的,但这套栈很年轻,文档自己也把它叫 early preview。
还有一句实话:如果你真正的问题是“agent 总是在跑我没批准的命令”,Hermes 自己的审批门禁和 deny 列表就是干这个的,而沙箱解决的是另一类威胁。两者配合得很好——沙箱决定 agent 能碰什么,审批决定它可以做什么。
你该不该用它
如果你在笔记本上跑 Hermes、每一轮都盯着看,NemoClaw 对你来说是重型装备。它开始回本的时刻,是 agent 变成无人值守的时候:工作站上长期运行的网关、家里的服务器,或者别人也会登录的机器。即使你永远不装它,也有几个设计思路值得借鉴——把推理绕到本地端点,让密钥永远进不了 agent 的世界;把出口流量当成需要审阅的白名单,而不是防火墙的脚注;让秘密在边界上被替换,而不是交到进程手里。
NemoClaw 文档里有主机就绪检查、供应商选择和网络策略的完整说明。离本站更近的部分:沙箱和 Hermes 自己的审批机制是两回事,如果你打算让 Hermes 长期跑在某台机器上,网关自愈和 loop 看门狗两篇讲了让无人值守安装活下去的那些机制。
来源:NemoClaw 仓库 README 与 NVIDIA NemoClaw 官方文档(Hermes quickstart、overview 两页);仓库元数据(Apache-2.0、约 2.27 万星、截至 2026 年 10 月 16 日仍在活跃提交);Hermes 基础网络策略与 nemohermes CLI 细节来自 NemoClaw 的 Hermes quickstart。