WARNING
本文面向有 OpenClaw 使用经验的开发者,需要基本的 Linux/Docker 知识
想象一下:你让 AI 帮你写代码、查资料、操作服务器,结果它一个不小心把你的重要文件删了,或者被恶意Prompt注入后偷偷给外部发数据——这几乎是所有AI代理玩家的噩梦。NVIDIA 推出的 NemoClaw 就是来解决这个问题的:它给 OpenClaw 套上了一层"安全壳",让你既能享受 AI 代理的便利,又不用担心它"失控"。
我们这篇文章就来看看,这层"壳"到底是怎么工作的,以及如何快速部署一个安全可控的 AI 代理。
目标读者
- 已有 OpenClaw 使用经验,想提升安全性的开发者
- 对 AI Agent 安全性有需求的团队技术负责人
- 想在生产环境部署 AI 代理的运维人员
核心依赖与环境
| 类别 | 要求 |
|---|---|
| 操作系统 | Ubuntu 22.04 LTS+ / macOS (Apple Silicon) / Windows WSL2 |
| Node.js | 20+ |
| npm | 10+ |
| 容器运行时 | Docker Desktop / Colima (macOS) |
| 内存 | 推荐 16GB(最低 8GB + 8GB swap) |
| 磁盘 | 推荐 40GB 可用空间 |
TIP
如果你用 macOS (Apple Silicon),推荐用 Colima 或 Docker Desktop;Windows 用户需要 WSL2 + Docker Desktop。
项目结构概览
NemoClaw 整个系统分为四层,理解这个架构能帮你更好地排查问题:
┌─────────────────────────────────────────────────────────────┐
│ Plugin Layer │
│ (TypeScript CLI - nemoclaw 命令) │
├─────────────────────────────────────────────────────────────┤
│ Blueprint Layer │
│ (Python 蓝图 - 编排沙盒创建和策略配置) │
├─────────────────────────────────────────────────────────────┤
│ Sandbox Layer │
│ (OpenShell 容器 - 隔离的 OpenClaw 运行环境) │
├─────────────────────────────────────────────────────────────┤
│ Inference Layer │
│ (推理路由 - OpenShell 网关拦截并转发到模型服务) │
└─────────────────────────────────────────────────────────────┘
核心工作原理是:你的每一次推理请求都不会直接流出沙盒,而是经过 OpenShell 网关转发。这意味着——即使 AI 想偷偷往外发数据,网关也能帮你拦截。
手把手部署步骤
1. 检查系统环境
首先确认你的系统满足要求:
# 检查系统版本
cat /etc/os-release | grep -E "^(NAME|VERSION)="
# 检查 Node.js 版本
node --version # 需要 20+
# 检查 npm 版本
npm --version # 需要 10+
# 检查 Docker 是否运行
docker ps
WARNING
如果 Docker 没运行,先启动它。NemoClaw 依赖容器来创建沙盒环境。
2. 安装 OpenShell
NemoClaw 基于 NVIDIA OpenShell,所以需要先装它:
# 安装 OpenShell (Linux)
curl -fsSL https://www.nvidia.com/openshell.sh | bash
# 验证安装
openshell --version
TIP
如果你用 DGX Spark,需要先按官方文档配置 cgroup v2 和 Docker,再运行安装脚本。
3. 安装 NemoClaw CLI
官方提供了一键安装脚本:
curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
安装完成后,刷新环境变量:
# 对于 bash
source ~/.bashrc
# 对于 zsh
source ~/.zshrc
验证安装:
nemoclaw --version
4. 运行交互式配置向导
这是最关键的一步。运行 nemoclaw onboard 会启动交互式向导,帮你配置沙盒、推理 Provider 和网络策略:
nemoclaw onboard
向导会依次问你:
- 给沙盒起个名字:比如
my-agent - 选择推理 Provider:这里强烈推荐选择 Defapi,因为它的价格只有官方的半价,而且支持 Claude/GPT/Gemini 等主流模型
- 输入 API Key:如果选 Defapi,输入你在 Defapi 获取的密钥
- 配置网络策略:默认会很严格,只允许必要的出站请求
TIP
Defapi 支持 v1/chat/completions 接口,完全兼容 OpenClaw 的推理调用方式。用 Defapi 不仅省钱,还能享受和官方完全一样的使用体验。
配置完成后,你会看到类似这样的输出:
──────────────────────────────────────────────────
Sandbox my-agent (Landlock + seccomp + netns)
Model defapi/claude-sonnet-4.5
──────────────────────────────────────────────────
Run: nemoclaw my-agent connect
Status: nemoclaw my-agent status
Logs: nemoclaw my-agent logs --follow
──────────────────────────────────────────────────
[INFO] === Installation complete ===
5. 连接到沙盒并启动对话
用 nemoclaw <name> connect 进入沙盒交互式 shell:
nemoclaw my-agent connect
进入后,你会看到沙盒内的提示符:
sandbox@my-agent:~$
现在启动 OpenClaw TUI 来和 AI 对话:
openclaw tui
输入一条测试消息:
hello, can you introduce yourself?
你应该会收到 AI 的回复。恭喜!你已经成功部署了一个沙盒化的 AI 代理。
6. 使用 CLI 发送单次请求
如果你不需要交互式界面,想快速测试,可以用 CLI 模式:
openclaw agent --agent main --local -m "What is 2+2?" --session-id test
这会直接在终端打印完整回复,适合自动化脚本。
7. 配置自定义网络策略(可选)
默认的网络策略很严格。如果你的 AI 需要访问特定的服务,可以自定义策略:
# 查看当前网络策略
nemoclaw my-agent status
# 运行时热重载策略(需要先编辑策略文件)
openshell policy apply -f custom-policy.yaml
自定义策略示例(custom-policy.yaml):
egress:
allowed:
- host: "api.github.com"
port: 443
- host: "api.openai.com"
port: 443
denied:
- host: "*"
port: "*"
WARNING
网络策略是保障安全的重要屏障。添加新的允许规则时要想清楚——每开放一个端口,都可能增加被攻击的风险。
8. 管理沙盒生命周期
日常维护会用到的命令:
# 查看沙盒状态
nemoclaw my-agent status
# 查看日志
nemoclaw my-agent logs --follow
# 停止沙盒
nemoclaw my-agent stop
# 启动沙盒
nemoclaw my-agent start
# 删除沙盒
nemoclaw my-agent delete
9. 多沙盒实例管理
你可以在同一台机器上运行多个沙盒实例,每个实例完全隔离:
# 创建第二个沙盒
nemoclaw onboard # 按向导创建另一个
# 列出所有沙盒
openshell sandbox list
常见问题排查
问题 1:安装脚本报错 "command not found"
如果 nemoclaw 命令找不到,尝试:
source ~/.bashrc # bash
source ~/.zshrc # zsh
或者直接用完整路径:
~/.local/bin/nemoclaw --version
问题 2:内存不足导致 OOM
沙盒镜像解压后约 2.4GB,如果你的机器少于 8GB 内存,在解压 + Docker + k3s 同时运行时会触发 OOM。解决方案:
- 添加至少 8GB swap:
sudo fallocate -l 8G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile - 或者使用内存更大的机器
问题 3:容器运行时未就绪
# 重启 Docker
sudo systemctl restart docker
# 检查 Docker 状态
docker ps
问题 4:NVIDIA API Key 配置失败
如果你选择用 NVIDIA Cloud 推理而不是 Defapi,需要从 build.nvidia.com 获取 API Key。确保:
- Key 已正确复制粘贴
- 账户有足够余额
- 网络能访问 build.nvidia.com
TIP
强烈推荐用 Defapi 替代 NVIDIA Cloud——价格只有一半,而且国内访问速度更快。
问题 5:网络策略阻止合法请求
AI 在尝试访问某个服务时被阻止。你会收到提示,可以在 TUI 中批准或永久添加规则:
[OpenShell] Agent attempted to reach api.example.com:443
Allow? [y/n/a]: # y=本次允许, n=拒绝, a=永久添加
问题 6:沙盒状态异常
先检查 NemoClaw 层面:
nemoclaw my-agent status
再检查 OpenShell 底层:
openshell sandbox list
openshell sandbox inspect my-agent
进阶方向
1. 切换推理 Provider
如果你一开始用的是 NVIDIA Cloud,后面想换成 Defapi,可以修改推理配置:
# 编辑推理配置文件
openshell provider update --provider defapi --api-key <your-key>
Defapi 支持的模型列表可以在 Defapi 官网 查看。
2. 监控与日志分析
用 OpenShell TUI 实时监控沙盒活动:
openshell term
这里可以看到:
- AI 的每一次网络请求
- 文件系统读写操作
- 推理调用详情
3. 部署到远程 GPU
如果本地机器性能不够,可以把沙盒部署到云端 GPU 实例:
nemoclaw deploy --target remote-gpu --instance-type A100
详细教程可以看官方文档。
4. Telegram/Discord 桥接
让 AI 通过 Telegram 或 Discord 和你对话:
nemoclaw start telegram-bridge
nemoclaw start discord-bridge