NVIDIA/NemoClaw

GitHub: NVIDIA/NemoClaw

NVIDIA 开源的安全运行时参考栈,为 OpenClaw 自主 Agent 提供沙箱隔离、策略管控和托管推理能力。

Stars: 14446 | Forks: 1397

# NVIDIA NemoClaw:在 OpenShell 中运行 OpenClaw 的参考技术栈 [![License](https://img.shields.io/badge/License-Apache_2.0-blue)](https://github.com/NVIDIA/NemoClaw/blob/main/LICENSE) [![Security Policy](https://img.shields.io/badge/Security-Report%20a%20Vulnerability-red)](https://github.com/NVIDIA/NemoClaw/blob/main/SECURITY.md) [![Project Status](https://img.shields.io/badge/status-alpha-orange)](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攻击, 上游代理, 云端推理, 人工智能代理, 参考技术栈, 可信执行, 大语言模型, 安全沙箱, 安全防御评估, 容器安全, 开源项目, 系统防护, 自动化运维, 自定义脚本, 请求拦截, 边缘计算, 逆向工具