NVIDIA 开源 Alpha 阶段

NemoClaw

安全运行 OpenClaw 常驻助手的开源技术栈。基于 NVIDIA OpenShell 运行时,每个网络请求、文件访问和推理调用都由声明式策略管理。

推理通过 NVIDIA 云 路由,属于 NVIDIA Agent Toolkit 的一部分。

关于 NemoClaw

NemoClaw 是 OpenClaw 针对 NVIDIA OpenShell 的插件,将 OpenClaw 移入沙箱环境。

沙箱化 OpenClaw

预配置的 OpenShell 沙箱,从首次启动起就应用严格的文件系统和网络策略

路由推理

代理流量通过 build.nvidia.com 流向云端托管的 Nemotron 3 Super 120B

生命周期管理

蓝图版本控制、摘要验证和可重现的沙箱设置

核心优势

沙箱化执行

Landlock、seccomp 和网络命名空间隔离,默认不授予任何访问权限

NVIDIA 云推理

代理流量通过 build.nvidia.com 路由到云端托管的模型

声明式网络策略

出口规则在 YAML 中定义,未知主机被阻止并显示给操作员审批

单一 CLI 管理

nemoclaw 命令编排整个堆栈

典型用例

🤖

全天候助手

受控网络访问和操作员批准出口

🧪

沙箱化测试

在锁定环境中测试代理行为

🚀

远程 GPU 部署

部署到远程 GPU 实例进行持久运行

工作原理

NemoClaw 结合轻量级 CLI 插件和版本化蓝图,将 OpenClaw 移入受控沙箱。

组件角色
插件TypeScript CLI 命令,用于启动、连接、查看状态和日志
蓝图编排沙箱创建、策略和推理设置的版本化 Python 制品
沙箱运行 OpenClaw 的隔离 OpenShell 容器,具有策略强制的出站网络和文件系统访问控制
推理NVIDIA 云模型调用,通过 OpenShell 网关路由,对代理透明

蓝图生命周期

1

解析

定位蓝图构件并检查版本兼容性约束

2

验证

根据预期值检查构件摘要

3

计划

确定要创建或更新的 OpenShell 资源

4

应用

通过调用 openshell CLI 命令执行计划

5

状态

运行器报告当前状态

推理路由

Agent

(sandbox)

OpenShell

gateway

NVIDIA Cloud

build.nvidia.com

保护层

保护内容应用时机
网络阻止未经授权的出站连接运行时可热重载
文件系统防止在 /sandbox/tmp 之外进行读写操作沙箱创建时锁定
进程阻止权限提升和危险的系统调用沙箱创建时锁定
推理将模型 API 调用重定向到受控后端运行时可热重载

快速开始

按照以下步骤启动您的第一个沙箱化 OpenClaw 代理。

NemoClaw 目前需要全新安装的 OpenClaw。

先决条件

硬件

资源最低推荐
CPU4 vCPU4+ vCPU
内存8 GB16 GB
磁盘20 GB40 GB

软件

依赖项版本
LinuxUbuntu 22.04+
Node.js20+
npm10+
Docker已安装并运行
OpenShell已安装

安装 NemoClaw

下载并运行安装脚本,它会自动安装 Node.js(如尚未安装),然后运行引导向导。

terminal
$ curl -fsSL https://nvidia.com/nemoclaw.sh | bash

安装完成后,会显示运行环境的摘要:

output
──────────────────────────────────────────────────
Sandbox      my-assistant (Landlock + seccomp + netns)
Model        nvidia/nemotron-3-super-120b-a12b (NVIDIA Cloud API)
──────────────────────────────────────────────────
Run:         nemoclaw my-assistant connect
Status:      nemoclaw my-assistant status
Logs:        nemoclaw my-assistant logs --follow
──────────────────────────────────────────────────

[INFO]  === Installation complete ===

与代理聊天

连接到沙箱:

terminal
$ nemoclaw my-assistant connect

OpenClaw TUI

打开交互式聊天界面

sandbox@my-assistant:~$ openclaw tui

OpenClaw CLI

发送单条消息并打印回复

sandbox@my-assistant:~$ openclaw agent --agent main --local -m "hello" --session-id test

推理配置

推理请求永远不会直接离开沙箱。OpenShell 拦截每个调用并路由到 NVIDIA 云提供者。

切换推理模型

在沙箱运行时更改活动推理模型,无需重启:

terminal
$ openshell inference set --provider nvidia-nim --model nvidia/nemotron-3-super-120b-a12b

可用模型

模型 ID标签上下文窗口最大输出
nvidia/nemotron-3-super-120b-a12bNemotron 3 Super 120B131,0728,192
nvidia/llama-3.1-nemotron-ultra-253b-v1Nemotron Ultra 253B131,0724,096
nvidia/llama-3.3-nemotron-super-49b-v1.5Nemotron Super 49B v1.5131,0724,096
nvidia/nemotron-3-nano-30b-a3bNemotron 3 Nano 30B131,0724,096

默认配置使用 Nemotron 3 Super 120B。可在运行时切换到任何模型。从 build.nvidia.com 获取 API 密钥。

网络策略

沙箱以严格的基线策略启动。仅允许策略中列出的端点。未知主机被阻止并显示给操作员审批。

操作员审批流程

1

代理向未列出的主机发出网络请求

2

OpenShell 阻止连接并记录尝试

3

TUI 显示被阻止的请求(主机、端口、请求二进制文件)

4

操作员批准或拒绝请求

5

如果批准,端点添加到当前会话的运行策略中

打开 TUI 监控沙箱活动:

terminal
$ openshell term

自定义网络策略

静态更改

编辑策略文件并重新运行引导向导,更改在重启间持久存在

$ nemoclaw onboard

动态更改

对运行中的沙箱应用策略更新,无需重启

$ openshell policy set <policy-file>

远程部署

通过 Brev 在远程 GPU 实例上运行 NemoClaw。

nemoclaw deploy 命令是实验性的,可能无法按预期工作。

terminal
$ nemoclaw deploy <instance-name>

部署脚本在 VM 上执行以下步骤:

  1. 安装 Docker 和 NVIDIA Container Toolkit(如果存在 GPU)
  2. 安装 OpenShell CLI
  3. 运行 nemoclaw 设置以创建网关、注册提供商并启动沙箱
  4. 启动辅助服务(Telegram 桥接、cloudflared 隧道)

配置 GPU 类型:

terminal
$ export NEMOCLAW_GPU="a2-highgpu-1g:nvidia-tesla-a100:2"
$ nemoclaw deploy <instance-name>

Telegram 桥接

在 Telegram 机器人和沙箱内运行的 OpenClaw 代理之间转发消息。

① 创建机器人

在 Telegram 中向 BotFather 发送 /newbot 并获取令牌。

② 设置环境变量

$ export TELEGRAM_BOT_TOKEN=<your-bot-token>

③ 启动服务

$ nemoclaw start

④ 限制访问(可选)

$ export ALLOWED_CHAT_IDS="123456789,987654321"
$ nemoclaw start

监控

使用 NemoClaw 状态、日志和 TUI 工具检查沙箱健康状况、跟踪代理行为并诊断问题。

检查健康状况

$ openclaw nemoclaw status

查看日志

$ openclaw nemoclaw logs -f

监控网络活动

$ openshell term

故障排除

症状解决方法
沙箱显示为已停止运行 nemoclaw onboard 重新创建沙箱
推理请求超时验证提供商端点可到达,检查 openclaw nemoclaw status
代理无法到达外部主机使用 openshell term 打开 TUI 并批准被阻止的请求
蓝图运行失败运行 openclaw nemoclaw logs --run-id <id> 查看错误
cgroup v2 错误运行 nemoclaw setup-spark 应用修复
沙箱内状态显示"未运行"在主机上运行 openshell sandbox status

架构

NemoClaw 由 TypeScript 插件和 Python 蓝图两个主要组件构成。

NemoClaw 插件

nemoclaw/
├── src/
│   ├── index.ts          // 插件入口
│   ├── cli.ts            // 子命令接线
│   ├── commands/
│   │   ├── launch.ts     // 全新安装到 OpenShell
│   │   ├── connect.ts    // 交互式 shell
│   │   ├── status.ts     // 运行状态 + 健康状况
│   │   ├── logs.ts       // 流式日志
│   │   └── slash.ts      // /nemoclaw 聊天命令
│   └── blueprint/
│       ├── resolve.ts    // 版本解析
│       ├── fetch.ts      // 从 OCI 注册表下载
│       ├── verify.ts     // 摘要验证
│       ├── exec.ts       // 子进程执行
│       └── state.ts      // 持久状态
├── openclaw.plugin.json
└── package.json

NemoClaw 蓝图

nemoclaw-blueprint/
├── blueprint.yaml        // 清单
├── orchestrator/
│   └── runner.py         // CLI 运行器
└── policies/
    └── openclaw-sandbox.yaml  // 基线策略
设计原则
  • 薄插件,版本化蓝图
  • 尊重 CLI 边界
  • 供应链安全 — 不可变、摘要验证
  • 可重现设置

命令参考

NemoClaw 提供插件命令(openclaw nemoclaw)和独立主机命令(nemoclaw)两个接口。

主机命令

命令描述
nemoclaw onboard交互式设置向导
nemoclaw list列出所有注册的沙箱
nemoclaw deploy <instance>通过 Brev 部署到远程 GPU 实例(实验性)
nemoclaw <名称> connect连接到沙箱的交互式 shell
nemoclaw <名称> status显示沙箱状态和推理配置
nemoclaw <名称> logs [--follow]查看沙箱日志
nemoclaw <名称> destroy停止 NIM 容器并删除沙箱
nemoclaw <名称> policy-add向沙箱添加策略预设
nemoclaw <名称> policy-list列出可用的策略预设
nemoclaw start / stop / status管理辅助服务
nemoclaw setup-spark在 DGX Spark 上设置(需 sudo)
openshell term启动 OpenShell TUI

插件命令

命令描述
openclaw nemoclaw launch [--profile ...]在 OpenShell 沙箱中引导 OpenClaw
openclaw nemoclaw status [--json]显示沙箱健康状况和推理信息
openclaw nemoclaw logs [-f] [-n] [--run-id]流式传输日志
/nemoclaw status聊天内斜杠命令显示状态

推理配置文件

NemoClaw 附带在 blueprint.yaml 中定义的推理配置文件。

default — NVIDIA 云

提供商类型

nvidia

端点

https://integrate.api.nvidia.com/v1

模型

nvidia/nemotron-3-super-120b-a12b

凭证

NVIDIA_API_KEY 环境变量

运行时切换模型
$ openshell inference set --provider nvidia-nim --model <model-name>

网络策略参考

基线策略定义在 nemoclaw-blueprint/policies/openclaw-sandbox.yaml 中。

文件系统

路径访问
/sandbox, /tmp, /dev/null读写
/usr, /lib, /proc, /dev/urandom, /app, /etc, /var/log只读

默认允许的端点

策略端点二进制文件规则
claude_codeapi.anthropic.com:443/usr/local/bin/claude所有方法
nvidiaintegrate.api.nvidia.com:443claude, openclaw所有方法
githubgithub.com:443gh, git所有方法
github_rest_apiapi.github.com:443ghGET, POST, PATCH, PUT, DELETE
clawhubclawhub.com:443openclawGET, POST
openclaw_apiopenclaw.ai:443openclawGET, POST
openclaw_docsdocs.openclaw.ai:443openclaw仅 GET
npm_registryregistry.npmjs.org:443openclaw, npm仅 GET
telegramapi.telegram.org:443任何GET, POST on /bot*/**

所有端点使用 TLS 终止并在端口 443 强制执行。