NVIDIA/NemoClaw
GitHub: NVIDIA/NemoClaw
NVIDIA 开源的安全运行时参考栈,为 OpenClaw 自主 Agent 提供沙箱隔离、策略管控和托管推理能力。
Stars: 14446 | Forks: 1397
# NVIDIA NemoClaw:在 OpenShell 中运行 OpenClaw 的参考技术栈
[](https://github.com/NVIDIA/NemoClaw/blob/main/LICENSE)
[](https://github.com/NVIDIA/NemoClaw/blob/main/SECURITY.md)
[](https://github.com/NVIDIA/NemoClaw/blob/main/docs/about/release-notes.md)
NVIDIA NemoClaw 是一个开源参考技术栈,旨在简化更安全地运行 [OpenClaw](https://openclaw.ai) 常驻助手的过程。
它安装了 [NVIDIA OpenShell](https://github.com/NVIDIA/OpenShell) 运行时(NVIDIA Agent Toolkit 的一部分),为运行自主 agent 提供了额外的安全保障。
它还包含诸如 [NVIDIA Nemotron](https://build.nvidia.com) 等开源模型。
## 快速开始
按照以下步骤开始使用 NemoClaw 并创建您的第一个沙箱化的 OpenClaw agent。
### 前置条件
开始之前请检查前置条件,以确保您拥有运行 NemoClaw 所需的软件和硬件。
#### 硬件
| 资源 | 最低要求 | 推荐配置 |
|----------|----------------|------------------|
| CPU | 4 vCPU | 4+ vCPU |
| RAM | 8 GB | 16 GB |
| Disk | 20 GB 可用空间 | 40 GB 可用空间 |
沙箱镜像压缩后约为 2.4 GB。在镜像推送期间,Docker daemon、k3s 和 OpenShell gateway 会与导出管道并行运行,后者会在内存中缓冲解压后的层。在内存小于 8 GB 的机器上,这种组合使用可能会触发 OOM killer。如果您无法增加内存,配置至少 8 GB 的 swap 可以解决此问题,但性能会有所下降。
#### 软件
| 依赖项 | 版本 |
|------------|----------------------------------|
| Linux | Ubuntu 22.04 LTS 或更高版本 |
| Node.js | 20 或更高版本 |
| npm | 10 或更高版本 |
| Container runtime | 已安装并正在运行受支持的运行时 |
| [OpenShell](https://github.com/NVIDIA/OpenShell) | 已安装 |
#### Container Runtime 支持
| 平台 | 支持的运行时 | 备注 |
|----------|--------------------|-------|
| Linux | Docker | 目前主要支持的路径 |
| macOS (Apple Silicon) | Colima, Docker Desktop | 推荐用于受支持的 macOS 设置的运行时 |
| macOS | Podman | 尚不支持。NemoClaw 目前依赖于 OpenShell 对 macOS 上 Podman 的支持。 |
| Windows WSL | Docker Desktop (WSL 后端) | 支持的目标路径 |
### 安装 NemoClaw 并接入 OpenClaw Agent
下载并运行安装脚本。
该脚本会安装 Node.js(如果尚未安装),然后运行引导式接入向导以创建沙箱、配置推理并应用安全策略。
```
curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
```
如果您使用 nvm 或 fnm 来管理 Node.js,安装程序可能不会更新当前 shell 的 PATH。
如果安装后找不到 `nemoclaw`,请运行 `source ~/.bashrc`(如果是 zsh 则运行 `source ~/.zshrc`)或打开一个新的终端。
安装完成后,摘要将确认运行环境:
```
──────────────────────────────────────────────────
Sandbox my-assistant (Landlock + seccomp + netns)
Model nvidia/nemotron-3-super-120b-a12b (NVIDIA Endpoint API)
──────────────────────────────────────────────────
Run: nemoclaw my-assistant connect
Status: nemoclaw my-assistant status
Logs: nemoclaw my-assistant logs --follow
──────────────────────────────────────────────────
[INFO] === Installation complete ===
```
### 与 Agent 聊天
连接到沙箱,然后通过 TUI 或 CLI 与 agent 聊天。
#### 连接到沙箱
运行以下命令连接到沙箱:
```
nemoclaw my-assistant connect
```
这将连接到沙箱 shell `sandbox@my-assistant:~$`,您可以在其中运行 `openclaw` 命令。
#### OpenClaw TUI
在沙箱 shell 中,运行以下命令打开 OpenClaw TUI,这将打开一个交互式聊天界面。
```
openclaw tui
```
向 agent 发送一条测试消息并验证您是否收到响应。
#### OpenClaw CLI
在沙箱 shell 中,运行以下命令发送单条消息并打印响应:
```
openclaw agent --agent main --local -m "hello" --session-id test
```
这会直接在终端中打印完整的响应,避免依赖 TUI 视图查看长输出。
### 卸载
要移除 NemoClaw 及设置期间创建的所有资源,请在沙箱外的终端中运行:
```
curl -fsSL https://raw.githubusercontent.com/NVIDIA/NemoClaw/refs/heads/main/uninstall.sh | bash
```
该脚本会移除沙箱、NemoClaw gateway 和 provider、相关的 Docker 镜像和容器、本地状态目录以及全局 `nemoclaw` npm 包。它不会移除共享的系统工具,如 Docker、Node.js、npm 或 Ollama。
| 标志 | 作用 |
|--------------------|-----------------------------------------------------|
| `--yes` | 跳过确认提示。 |
| `--keep-openshell` | 保留已安装的 `openshell` 二进制文件。 |
| `--delete-models` | 同时移除 NemoClaw 拉取的 Ollama 模型。 |
例如,要跳过确认提示:
```
curl -fsSL https://raw.githubusercontent.com/NVIDIA/NemoClaw/refs/heads/main/uninstall.sh | bash -s -- --yes
```
## 工作原理
NemoClaw 安装 NVIDIA OpenShell 运行时和 Nemotron 模型,然后使用版本化蓝图创建一个沙箱化环境,其中每个网络请求、文件访问和推理调用都由声明式策略管理。`nemoclaw` CLI 负责编排全栈:OpenShell gateway、沙箱、推理 provider 和网络策略。
| 组件 | 角色 |
|------------------|-------------------------------------------------------------------------------------------|
| **Plugin** | 用于启动、连接、状态查看和日志的 TypeScript CLI 命令。 |
| **Blueprint** | 编排沙箱创建、策略和推理设置的版本化 Python 产物。 |
| **Sandbox** | 运行 OpenClaw 的隔离 OpenShell 容器,具有策略强制的出口和文件系统访问控制。 |
| **Inference** | NVIDIA Endpoint 模型调用,通过 OpenShell gateway 路由,对 agent 透明。 |
蓝图生命周期遵循四个阶段:解析产物、验证其摘要、规划资源以及通过 OpenShell CLI 进行应用。
出现问题时,错误可能源自 NemoClaw 或底层的 OpenShell 层。运行 `nemoclaw status` 检查 NemoClaw 级别的健康状况,并运行 `openshell sandbox list` 检查底层沙箱状态。
## 推理
来自 agent 的推理请求永远不会直接离开沙箱。OpenShell 拦截每次调用并将其路由到 NVIDIA Endpoint provider。
| Provider | Model | 用例 |
|--------------|--------------------------------------|-------------------------------------------------|
| NVIDIA Endpoint | `nvidia/nemotron-3-super-120b-a12b` | 生产环境。需要 NVIDIA API key。 |
从 [build.nvidia.com](https://build.nvidia.com) 获取 API key。在设置过程中,`nemoclaw onboard` 命令会提示输入此密钥。
本地推理选项(如 Ollama 和 vLLM)仍处于实验阶段。在 macOS 上,除了本地服务本身需要在主机上可访问外,它们还依赖于 OpenShell 的主机路由支持。
## 保护层
沙箱以严格的基线策略启动,控制网络出口和文件系统访问:
| 层级 | 保护内容 | 应用时间 |
|------------|-----------------------------------------------------|-----------------------------|
| Network | 阻止未经授权的出站连接。 | 运行时热重载。 |
| Filesystem | 防止对 `/sandbox` 和 `/tmp` 之外的读写。| 沙箱创建时锁定。 |
| Process | 阻止权限提升和危险的系统调用。 | 沙箱创建时锁定。 |
| Inference | 将模型 API 调用重路由到受控后端。 | 运行时热重载。 |
当 agent 尝试访问未列出的主机时,OpenShell 会阻止该请求并在 TUI 中显示以供操作员批准。
## 关键命令
### 主机命令 (`nemoclaw`)
在主机上运行这些命令以设置、连接和管理沙箱。
| 命令 | 描述 |
|--------------------------------------|--------------------------------------------------------|
| `nemoclaw onboard` | 交互式设置向导:gateway、provider、沙箱。 |
| `nemoclaw connect` | 在沙箱内打开交互式 shell。 |
| `openshell term` | 启动 OpenShell TUI 用于监控和批准。 |
| `nemoclaw start` / `stop` / `status` | 管理辅助服务(Telegram 桥接、隧道)。 |
查看完整的 [CLI 参考](https://docs.nvidia.com/nemoclaw/latest/reference/commands.md) 以了解所有命令、标志和选项。
## 了解更多
请参阅文档以获取有关 NemoClaw 的更多信息。
- [概述](https://docs.nvidia.com/nemoclaw/latest/about/overview.html):了解 NemoClaw 的功能及其组成。
- [工作原理](https://docs.nvidia.com/nemoclaw/latest/about/how-it-works.html):了解 plugin、blueprint 和沙箱生命周期。
- [架构](https://docs.nvidia.com/nemoclaw/latest/reference/architecture.html):了解 plugin 结构、blueprint 生命周期和沙箱环境。
- [推理配置文件](https://docs.nvidia.com/nemoclaw/latest/reference/inference-profiles.html):了解 NVIDIA Endpoint 推理配置。
- [网络策略](https://docs.nvidia.com/nemoclaw/latest/reference/network-policies.html):了解出口控制和策略自定义。
- [CLI 命令](https://docs.nvidia.com/nemoclaw/latest/reference/commands.html):了解完整的命令参考。
- [故障排除](https://docs.nvidia.com/nemoclaw/latest/reference/troubleshooting.html):排除常见问题及解决步骤。
- [Discord](https://discord.gg/XFpfPv9Uvx):加入社区进行提问和讨论。
## 许可证
本项目基于 [Apache License 2.0](LICENSE) 授权。
标签:Agent Toolkit, Always-on Assistant, CISA项目, DevSecOps, DLL 劫持, DNS解析, Docker, K3s, MITM代理, NemoClaw, Nemotron, OpenClaw, OpenShell, Web截图, XXE攻击, 上游代理, 云端推理, 人工智能代理, 参考技术栈, 可信执行, 大语言模型, 安全沙箱, 安全防御评估, 容器安全, 开源项目, 系统防护, 自动化运维, 自定义脚本, 请求拦截, 边缘计算, 逆向工具