在 NVIDIA DGX Spark 上一键部署 NemoClaw:打造安全强大的沙盒化 AI Agent

在 NVIDIA DGX Spark 上一键部署 NemoClaw:打造安全强大的沙盒化 AI Agent

随着 AI Agent 能力的不断增强,它们不再仅仅是“聊天机器人”,而是能够主动搜索网页、抓取数据、调用 API 甚至执行代码的智能助手。然而,能力越大,风险越大。如何确保 Agent 在执行这些操作时不会泄露敏感数据或被恶意利用?

NVIDIA 推出的 NemoClaw(基于 OpenShell)为我们提供了一个完美的解决方案。它通过底层的沙盒技术和严格的“默认拒绝 (Deny-by-default)”网络策略,将 Agent 牢牢地关在安全的笼子里。

本指南将带大家在顶级算力平台 NVIDIA DGX Spark 上,从零开始完整走一遍 NemoClaw 的部署流程,涵盖环境准备、一键安装脚本使用、启动沙盒,以及如何通过 TUI 优雅地为 Agent 配置网络访问权限。

开源地址:本指南中使用的所有脚本和配置均已开源在 GitHub:HeKun-NVIDIA/nemoclaw_on_dgx_spark


1. 为什么在 DGX Spark 上部署?

NVIDIA DGX Spark 搭载了最新的 GB10 Grace Blackwell Superchip,拥有 1 PFLOPS 的 FP4 AI 算力和 128GB LPDDR5x 统一内存。这使得它成为了运行顶级开源大模型(如 Qwen3.5 35B 或 Llama3 70B)的完美载体。

结合 NemoClaw,在 DGX Spark 上本地部署可以带来:

  • 极致的隐私与安全:数据和代码完全在本地的物理机器和 Docker 沙盒内流转,零数据外泄风险。
  • 强大的执行能力:Agent 可以利用本地网络和文件系统,在一个安全隔离的环境中编写代码、操作文件。
  • 受控的网络访问:通过 OpenShell Policy 引擎精细控制沙盒网络权限。

2. 安装与初始化

我们提供了一个专门为 DGX Spark 优化的一键安装脚本。它不仅会自动安装 NemoClaw,还会自动注入 open-network 网络策略,并修复 Ollama 的容器网络路由。

执行一键安装脚本

在你的 DGX Spark 终端中,执行以下命令:

cd ~
wget https://github.com/HeKun-NVIDIA/nemoclaw_on_dgx_spark/releases/download/v20/nemoclaw-setup-v20-clean.zip
unzip nemoclaw-setup-v20-clean.zip
mv nemoclaw-setup-clean nemoclaw-setup
cd nemoclaw-setup
bash nemoclaw-setup.sh

真实的安装过程解析

执行脚本后,你将看到一个高度自动化的交互式向导。以下是核心步骤的终端输出解析:

第一步:策略注入与前置检查
脚本会自动检测你的环境(如 122GB 显存的 GPU),并提前注入开放网络策略:

✓ open-network preset injected into NemoClaw.
NemoClaw Onboarding
===================
[1/7] Preflight checks
──────────────────────────────────────────────────
✓ Docker is running
✓ NVIDIA GPU detected: 1 GPU(s), 122570 MB VRAM

第二步:选择推理模型
向导会自动检测到你本地运行的 Ollama,并列出可用的模型。对于 DGX Spark,推荐使用 30B 以上参数的模型(如 qwen3.5:35b-a3b):

[4/7] Configuring inference (NIM)
──────────────────────────────────────────────────
Detected local inference option: Ollama
Inference options:
  1) Local NIM container (NVIDIA GPU) [experimental]
  2) NVIDIA Endpoint API (build.nvidia.com)
  3) Local Ollama (localhost:11434) — running (suggested)
Choose [2]: 3
✓ Using Ollama on localhost:11434
Ollama models:
  1) qwen3.5:35b-a3b
  2) nemotron-3-nano:30b
  ...
Choose model [2]: 1

第三步:自动应用策略与路由修正
在最后一步,脚本会询问是否应用推荐的策略(直接回车即可)。部署完成后,脚本会自动修正网关路由,确保容器能正确访问宿主机的 Ollama 服务:

[7/7] Policy presets
──────────────────────────────────────────────────
Apply suggested presets (pypi, npm)? [Y/n/list]: Y
✓ Policies applied
Updating gateway inference route for Ollama...
✓ Gateway route: ollama-local → http://172.17.0.1:11434/v1
──────────────────────────────────────────────────
Browser access:
  http://127.0.0.1:18789/
LAN access:
  http://192.168.8.117:18789/
──────────────────────────────────────────────────

3. 连接沙盒与网络策略初探

安装完成后,你可以通过以下命令连接到刚刚创建的沙盒中:

nemoclaw my-assistant connect

为什么默认无法访问网页?

如果你现在让 Agent 去搜索一条新闻,你可能会发现它失败了。这是因为 NemoClaw 底层使用了 OpenShell 的沙盒隔离引擎。在 OpenShell 的设计哲学中,安全是第一位的。它采用“默认拒绝”的网络策略:除非你在配置文件中明确放行了某个域名,否则 Agent 发出的任何网络请求都会在底层被直接拦截。

虽然我们在安装时注入了 open-network 策略(放行了 GitHub、PyPI 等常用开发资源),但对于 Agent 随机探索的未知网页,我们需要使用 TUI 进行动态审批。


4. 使用 OpenShell TUI 动态审批网络请求

OpenShell 提供了一个强大的终端用户界面(TUI),它可以让你实时监控沙盒的网络活动,并在 Agent 尝试访问未知网络时,提供一个交互式的审批流程。

4.1 打开 TUI 监控面板

保持 Agent 运行的终端窗口不动,打开一个新的终端窗口(如果是远程服务器,请重新 SSH 登录),然后输入:

openshell term

启动后,你将看到如下界面:

在这里插入图片描述

在这个界面中,你可以看到当前沙盒的状态以及当前生效的静态网络策略(Policy)。

4.2 捕获并审批未知网络请求

现在,回到你的 Agent 对话窗口,让它去访问一个不在白名单中的网站,比如:“帮我总结一下今天关于 GPU 工作负载整合优化的最新文章”。

此时,Agent 会调用 web_fetch 工具去抓取网页。由于目标域名不在白名单中,这个请求会被 OpenShell 挂起(Pending)。

回到你的 TUI 终端,按下键盘上的 Tab 键,将视图从 Policy 切换到 Network Rules 面板。

在这里插入图片描述

在这里,你会看到所有被拦截的请求。

  • 紫色 (Pending):表示这是一个被拦截并等待你审批的请求。
  • 绿色 (Approved):表示之前已经被你批准的请求。
快捷审批操作指南:
  • 选中请求:使用 j(向下)和 k(向上)键。
  • 批准 (Approve):按下小写字母 a,即可批准该请求。状态会变为绿色的 Approved。
  • 拒绝 (Reject):按下小写字母 x 即可拒绝。
  • 一键全批:按下大写字母 A(Shift+a),然后按 yEnter 确认,即可一键批准所有 Pending 请求。

5. 见证奇迹:Agent 成功获取数据

当你按下 a 批准请求后,OpenShell 会立即热更新网络策略,无需重启沙盒。

此时,刚才被挂起的 web_fetch 请求会被放行,Agent 成功抓取到了网页内容,并在 Web UI 中为你生成了完美的总结:

在这里插入图片描述

如上图所示,Agent 成功访问了外部资源,并为我们整理了相关的技术文章摘要。


总结与最佳实践

通过 NemoClaw 和 OpenShell 的配合,我们在“赋予 Agent 强大能力”和“保障系统绝对安全”之间找到了完美的平衡。

给开发者的建议:

  1. 静态配置常用域名:对于 Agent 经常需要访问的基础服务,建议直接写死在 policies/open-network.yaml 中。
  2. 善用 TUI 动态审批:对于 Agent 随机探索的网页,保持一个 openshell term 窗口常开,随时进行动态审批。这对于调试和开发阶段极其有用。

获取完整源码与一键安装脚本,请访问:HeKun-NVIDIA/nemoclaw_on_dgx_spark


作者:Ken He

© 版权声明

相关文章