SuperAPI AI 工具集

nemoclaw-setup

部署与运维

查看项目

更新于 10-15 14:22

技能介绍

用途

NemoClaw Setup 用于在 Linux 上安装并配置 NVIDIA NemoClaw。NemoClaw 是一个沙箱化的 AI 智能体平台,基于 OpenClaw 构建,使用 Landlock、seccomp 与网络命名空间隔离,运行在 Docker 内的 k3s(OpenShell)中。安装完成后可获得一个带 Web UI 与终端 CLI 的沙箱化 AI 智能体,由 NVIDIA Nemotron 模型驱动(云端或本地),并支持通过网络策略控制对外部服务的访问,以及可选的 Cloudflare Tunnel 远程访问。

前置条件

  • Linux(Ubuntu 22.04+),用 uname -a 检查
  • Docker,用 docker ps 检查,可用 sudo apt install docker.io 安装
  • Node.js 20+(推荐 22),用 node --version 检查,可用 nvm install 22 安装
  • NVIDIA GPU(可选但推荐),用 nvidia-smi 检查
  • NVIDIA API key,可在 https://build.nvidia.com/settings/api-keys 获取

主要能力与工作流程

  1. 预检:检查 Docker、Node.js,以及是否已安装 nemoclaw 与 openshell。若已安装可跳到第 4 步。
  2. 安装 NemoClaw:curl -fsSL https://nvidia.com/nemoclaw.sh | bash,通过 npm 全局安装 NemoClaw 与 OpenClaw(到 ~/.npm-global/bin/)。若安装器找不到 Node.js,可先安装 Node.js 22。
  3. 安装 OpenShell:curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh,安装到 ~/.local/bin/openshell。
  4. 修复 Docker 权限与 cgroup:将用户加入 docker 组(sudo usermod -aG docker $USER 后 newgrp docker 或重新登录);cgroup v2 修复需执行 sudo $HOME/.npm-global/bin/nemoclaw setup-spark,该命令会向 /etc/docker/daemon.json 添加 "default-cgroupns-mode": "host" 并重启 Docker,同时会要求提供 NVIDIA API key(以 nvapi- 开头)。
  5. 运行引导:PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw onboard。交互式向导会检查 Docker 与 OpenShell、启动 OpenShell 网关(Docker 中的 k3s)、询问沙箱名称、配置 NVIDIA API key、设置推理(云端 API 的 Nemotron 3 Super 120B)、在沙箱内启动 OpenClaw,并应用网络策略预设。若 8080 端口被占用,可用 fuser -k 8080/tcp 处理。
  6. 验证:nemoclaw claw status 检查沙箱运行状态,nemoclaw claw connect 通过终端连接。
  7. 配置 Web UI 访问:openshell forward start 18789 claw,然后打开 http://127.0.0.1:18789/。已知 bug(OpenClaw ≤ v2026.3.11)会报 "device identity required",可将网关 token 追加到 URL:http://127.0.0.1:18789/#token=<gateway-token>,或升级到 OpenClaw v2026.3.12+。
  8. 持久化端口转发:创建带健康检查的 keepalive 脚本 ~/.local/bin/nemoclaw-keepalive.sh,并创建 systemd 服务 /etc/systemd/system/nemoclaw-forward.service,然后 sudo systemctl daemon-reload、enable、start。
  9. 可选:Cloudflare Tunnel 远程访问:添加 DNS 路由 cloudflared tunnel route dns <tunnel-name> nemoclaw.<domain>,更新 /etc/cloudflared/config.yml 指向 http://localhost:18789,重启 cloudflared,并在沙箱配置中把域名加入 gateway.controlUi.allowedOrigins、设置 trustedProxies 与 allowRealIpFallback。建议用 Cloudflare Access 保护。访问地址为 https://nemoclaw.<domain>/#token=<gateway-token>。
  10. 安装自定义技能:技能是 /sandbox/.openclaw/skills/<name>/SKILL.md 中的 markdown 文件,可通过 SSH 进入沙箱创建,用 openclaw skills list 验证。
  11. 配置工作区:更新 /sandbox/.openclaw/workspace/ 下的 USER.md(个人资料与偏好)、TOOLS.md(可用工具与访问权限)、SOUL.md(智能体个性与行为)。

更新方式

沙箱在安装时捆绑 OpenClaw。更新需:npm install -g openclaw@latest,然后 nemoclaw claw destroy 与 nemoclaw onboard 重建沙箱,再重新配置远程访问与技能。注意沙箱网络策略会阻止沙箱内的 npm/PyPI,更新必须通过重建完成。

适用场景

适合需要在 Linux 上部署沙箱化 AI 智能体、并希望获得 Web UI 与终端 CLI 访问、网络策略控制、可选远程访问与自定义技能能力的用户。

限制与注意事项

  • 需要 Linux(Ubuntu 22.04+)、Docker 与 Node.js 20+。
  • cgroup v2 环境下必须执行 setup-spark 修复。
  • 沙箱内无法安装 npm/PyPI 包,更新只能重建。
  • 已知 device identity bug 需追加 token 或升级版本。
  • 远程访问需自行配置 Cloudflare Tunnel 与 Access。

故障排查

文档提供了常见问题对照表,涵盖 Docker 未运行、cgroup v2、端口占用、命令未找到、device identity、token 不匹配、认证失败过多、origin 不允许、端口无响应、沙箱内 npm 403、DNS 路由找不到隧道、Cloudflare 502、资源 404 等情况及对应修复方式。

架构

Docker(openshell-cluster-<name>)内运行 k3s 集群,包含 NVIDIA device plugin 与 OpenShell 沙箱;沙箱内含 OpenClaw 智能体、NemoClaw 插件、网关(WebSocket + REST)与工作区(SOUL.md、USER.md、TOOLS.md、skills/)。端口转发(systemd)将 localhost:18789 通过 SSH 隧道映射到沙箱 18789;可选的 Cloudflare Tunnel 将 nemoclaw.domain 指向 localhost:18789。