元鉴
返回中文阅读流

NVIDIA Developer Blog

使用 OpenClaw 和 NVIDIA NemoClaw 构建更安全、始终在线的本地 AI 智能体

智能体正从问答系统演变为长期运行的自主助手,能够读取文件、调用 API 并驱动多步骤工作流...

中文内容

已翻译official company source英文原文2026-05-26

智能体正从问答系统演变为可长期运行的自主助手,能够读取文件、调用 API,并驱动多步骤工作流。然而,在没有适当隔离的情况下部署智能体来执行代码和使用工具,会带来实际风险——尤其是在使用第三方云基础设施时,因为这涉及数据隐私和控制权问题。

NVIDIA NemoClaw 是一个开源参考栈,用于编排 NVIDIA OpenShell 来运行 OpenClaw;OpenClaw 是一个自托管网关,可将消息平台连接到由 NVIDIA Nemotron 等开放模型驱动的 AI 编程智能体。NemoClaw 增加了引导式入门、生命周期管理、镜像加固和版本化蓝图,提供了从模型推理到更安全的交互式智能体部署的完整流水线。

本教程将介绍如何在 NVIDIA DGX Spark 上部署 NemoClaw——从配置运行时环境并在本地提供模型服务,到安装 NemoClaw 栈并将其连接到 Telegram 以实现远程访问。你将构建一个在自己硬件上运行、经过沙箱隔离的本地 AI 助手,并且可从任何 Telegram 客户端访问。

视频 1. 关于如何设置自主长期运行智能体的演示

模型和代码的快速链接

访问以下教程资源:

🧠 软件和模型:

  • NemoClaw with NVIDIA Nemotron 3 Super and Telegram on DGX Spark:在 DGX Spark 上使用本地推理设置 NemoClaw 的端到端指南。
  • NVIDIA Build 上的 NVIDIA Nemotron 3 Super 120B:本教程使用的模型。

🛠️ 代码和文档:

  • NVIDIA NemoClaw 文档:配置、策略和高级部署的完整参考。
  • GitHub 上的 NVIDIA NemoClaw:源代码和社区贡献。
  • NVIDIA DGX Spark:硬件规格和开发者资源。

先决条件

有关完整的设置说明,请访问 NemoClaw 的 DGX Spark Playbook,或在无需硬件的情况下开始使用。

如果你打算使用其他设备,NemoClaw 已在文档中“替代部署”下列出的设备上经过测试和验证。请检查 API/VLLM 功能。

开始设置之前,请确保满足以下要求:

  • 硬件:运行 Ubuntu 24.04 LTS 并安装最新 NVIDIA 驱动程序的 DGX Spark (GB10) 系统。
  • Docker:版本 28.x 或更高版本,并已配置 NVIDIA 容器运行时(将在下一节介绍)。
  • Ollama:已安装作为本地模型服务引擎。
  • Telegram 机器人令牌:通过 Telegram 的 @BotFather 创建(详见 Telegram 集成部分)。

预计时间:主动设置约 20–30 分钟,另加初始模型下载(约 87 GB)所需的 15–30 分钟,具体取决于网络带宽。

以下命令用于验证系统就绪状态:

head -n 2 /etc/os-release    # Expected: Ubuntu 24.04
nvidia-smi                     # Expected: NVIDIA GB10 GPU
docker info --format '{{.ServerVersion}}'  # Expected: 28.x+

NemoClaw 组件

在构建沙盒化助手之前,了解该环境中使用的软件非常重要。

ComponentWhat it isWhat it doesWhen to use ItNVIDIA NemoClawReference stack with Orchestration layer and InstallerInstalls OpenClaw and OpenShell with policies and inference.Fastest way to create an always-on assistant in a more secure sandbox.NVIDIA OpenShellSecurity runtime and gatewayEnforces safety boundaries (sandboxing), manages credentials, and proxies network/API calls.When you need a “walled garden” to run agents without exposing sensitive information or enabling unrestricted web access.OpenClawMulti-channel agent frameworkLives inside the sandbox. Manages chat platforms (Slack/Discord), memory, and tool integration.When you need to create a long-lived agent connected to messaging apps and persistent memory.NVIDIA Nemotron 3 Super 120BAgent-optimized LLM (120B Parameters)Provides the “brain” with high instruction-following and multi-step reasoning capabilities.For production-grade assistants who need to use tools and follow complex workflows.NVIDIA NIM / OllamaInference deploymentsRuns the Nemotron model locally If you have a GPU and want to run the LLM locally
表 1. NVIDIA NemoClaw 技术栈的架构组件

安全说明:虽然 OpenShell 提供了强大的隔离能力,但请记住,没有任何沙盒能够完全防御高级提示注入。在测试新工具时,务必部署在隔离系统上。

让我们开始吧。

配置运行时

DGX Spark 需要进行若干 Docker 配置步骤,以支持具备适当隔离设置的 GPU 加速容器。首先,向 Docker 注册 NVIDIA 容器运行时:

sudo nvidia-ctk runtime configure --runtime=docker

接下来,将 cgroup 命名空间模式设置为 host。DGX Spark 要正确处理容器化工作负载,需要此配置:

sudo python3 -c "
import json, os
path = '/etc/docker/daemon.json'
d = json.load(open(path)) if os.path.exists(path) else {}
d['default-cgroupns-mode'] = 'host'
json.dump(d, open(path, 'w'), indent=2)
"

Restart Docker to apply the changes and verify that the NVIDIA runtime is functioning:

sudo systemctl restart docker
docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

输出应显示 GB10 GPU。为避免后续 Docker 命令需要使用 sudo,请将当前用户添加到 Docker 组:

sudo usermod -aG docker $USER
newgrp docker

安装 Ollama

Ollama 是一个轻量级模型服务引擎,用于在本地运行大型语言模型。请使用官方安装程序进行安装:

  curl -fsSL https://ollama.com/install.sh | sh

默认情况下,Ollama 仅监听 localhost。由于 NemoClaw 代理在沙箱内运行,并拥有自己的网络命名空间,因此它必须跨网络边界访问 Ollama。请将 Ollama 配置为监听所有接口:

  sudo mkdir -p /etc/systemd/system/ollama.service.d                                                                                                                                                                                            
  printf '[Service]\nEnvironment="OLLAMA_HOST=0.0.0.0"\n' | \     
    sudo tee /etc/systemd/system/ollama.service.d/override.conf
  sudo systemctl daemon-reload                                                                                                                                                                                                                  
  sudo systemctl restart ollama

验证 Ollama 正在运行,并且可通过所有接口访问:

  curl http://0.0.0.0:11434

重要:只能通过 systemd 启动 Ollama。手动启动的 Ollama 进程不会应用 OLLAMA_HOST=0.0.0.0 覆盖设置,NemoClaw 沙箱将无法访问推理服务器。

sudo systemctl restart ollama

接下来,拉取 Nemotron 3 Super 120B 模型。下载大小约为 87 GB:

ollama pull nemotron-3-super:120b

下载完成后,将模型权重预加载到 GPU 内存中,以避免首次智能体交互时出现冷启动延迟:

ollama run nemotron-3-super:120b

模型加载并显示提示符后,使用 /bye 退出会话。权重将继续缓存在内存中。确认该模型可用:

ollama list
# You should see something like 
NAME                     ID              SIZE     MODIFIED                                                                                                                                                                                        nemotron-3-super:120b    95acc78b3ffd    86 GB    2 weeks ago    

安装 NemoClaw

基础环境就绪后,使用一条命令安装 NemoClaw:

curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash

安装程序会提供 Node.js 依赖项、OpenShell 运行时和 NemoClaw CLI,然后启动一个入门向导。该向导会提示进行以下配置选择:

  1. 沙盒名称:指定一个由小写字母和数字以及连字符组成的名称(例如,my-assistant)。此名称将在所有后续命令中使用。
  2. 推理提供方:选择 Local Ollama(选项 7),将推理路由到本地 Ollama 实例。
  3. 模型:选择 nemotron-3-super:120b(选项 1)。
  4. 策略预设:如果你接受默认策略,请按 Y。这些预设会为沙盒配置文件系统和网络限制。
  5. Telegram 集成:你可以选择在入门向导的第 5 步配置你的 Telegram 机器人。

在引导流程结束时,安装程序会显示一个带有令牌的 Web UI URL,格式为 http://127.0.0.1:18789/#token=<long-token-here>。请记录此 URL,因为以后访问 Web 仪表板时需要用到它,并且它不会再次显示。

如果安装后无法识别 nemoclaw 命令,请重新加载 shell 环境,以便在今后的所有会话中启用该命令:

source ~/.bashrc

验证设置

连接到沙盒,并验证代理是否能够访问推理后端:

nemoclaw my-assistant connect

该命令会返回模型信息,确认沙盒环境可以与 Ollama 通信。接下来,通过代理发送一条测试消息:

openclaw agent --agent main --local -m "hello" --session-id test

如果配置正确,NVIDIA Nemotron 3 Super 会生成响应。请注意,使用 120B 模型进行推理通常每次响应需要 30–90 秒——对于这种规模的模型在本地运行推理而言,这是预期情况。

交互式终端 UI 提供了更具对话感的测试体验:

openclaw tui

完成后,使用 Ctrl+C 退出终端 UI。

访问 Web UI

要在本地访问 Web 控制面板,请退出沙盒,并打开在入门引导期间记录的带令牌的 URL:

exit

然后在浏览器中访问 http://127.0.0.1:18789/#token=<long-token-here>。

从另一台机器远程访问。如果你是通过网络访问 DGX Spark,而不是直接访问,则需要进行额外配置。首先,确定 Spark 的 IP 地址:

hostname -I | awk '{print $1}'

通过 Spark 的终端会话启动端口转发:

openshell forward start 18789 my-assistant --background

在你的远程计算机上,创建一个到 Spark 的 SSH 隧道:

ssh -L 18789:127.0.0.1:18789 <your-user>@<your-spark-ip>

隧道处于活动状态后,在远程计算机的浏览器中打开 http://127.0.0.1:18789/#token=<long-token-here>。

注意:仅使用 127.0.0.1。使用 localhost 可能会导致“origin not allowed”错误。

连接到 Telegram

Telegram 集成将助手扩展到本地终端之外,使其可从任何装有 Telegram 客户端的设备访问。

创建 Telegram 机器人

打开 Telegram 并搜索 @BotFather 来管理你的机器人。开始对话并使用 /newbot 命令。@BotFather 会引导你为机器人命名,并在完成后提供一个 API 令牌。保存此令牌,以便用于下面的配置步骤。

注意:如果你在 NemoClaw 入门向导中配置了 Telegram,Telegram 已经在沙盒内运行。

如果你在入门过程中没有配置 Telegram,请在设置好令牌后重新运行入门向导。这会重新构建沙盒,并将 Telegram 内置其中。机器人令牌会注册到 OpenShell 网关,不会直接进入沙盒。

export TELEGRAM_BOT_TOKEN=<your-bot-token>
nemoclaw onboard      

验证集成

打开 Telegram,找到该机器人并发送消息。首次联系时,OpenClaw 需要配对。机器人会回复一个配对代码:

OpenClaw: access not configured. 
Your Telegram user id: <your-id> 
Pairing code: <CODE>

在沙盒内部批准配对:

nemoclaw my-assistant connect  
openclaw pairing approve telegram <CODE>
exit

在 Telegram 中再发送一条消息。经过推理延迟窗口后,机器人应返回由 NVIDIA Nemotron 3 Super 生成的响应。

至此,部署已完成。一个 AI 助手完全运行在 NVIDIA DGX Spark 上,由 OpenShell 进行沙盒化,基于一个 120B 开放模型提供支持,并且可通过 Telegram 远程访问。所有推理都在本地进行,数据不会离开设备,并且运行时没有外部服务依赖。

我可以参考哪些命令进行部署?

以下命令可用于 NemoClaw 部署的持续管理。

CommandDescriptionnemoclaw my-assistant connectOpen a shell session inside the sandbox.nemoclaw my-assistant statusDisplay sandbox status.nemoclaw my-assistant logs --followStream live sandbox logs.nemoclaw listList all configured sandboxes.nemoclaw start / nemoclaw stopStart or stop auxiliary services (Telegram bridge, etc.).openshell forward start 18789 my-assistant --backgroundEnable port forwarding for remote Web UI access.
表 2. 用于编排、监控和访问 NemoClaw 代理环境的命令

用于彻底卸载的命令

对于清理和卸载,NemoClaw 在 ~/.nemoclaw/source/uninstall.sh 提供了卸载程序。有关清理标志以及常见问题故障排除的详细信息,请参阅说明页面。

通过策略审批扩展代理访问权限

默认情况下,沙盒会将代理限制为只能访问一组有限的网络端点。当你要求代理执行需要外部服务的操作时。

例如,获取网页或调用第三方 API,OpenShell 会阻止该请求,代理会报告网络访问不可用。

要查看实际效果,请在主机上的一个终端中打开 OpenShell TUI:

openshell term

在第二个终端中,连接到沙盒并开始对话:

openclaw tui

让代理执行类似“使用 curl 获取 https://httpbin.org/get”的操作。

代理尝试发起请求,OpenShell 会阻止该请求,TUI 会显示被阻止的连接,以及目标主机、端口和发起该连接的二进制文件。

在 TUI 中,你可以批准当前会话的请求,或拒绝该请求以继续阻止该端点。

当你想永久添加一个端点时,请使用来自主机的策略预设:

nemoclaw my-assistant policy-add

此审批流程让你能够实时查看并控制代理可以访问的内容,而无需修改基础策略或重启沙盒。

开始使用

立即开始使用 NVIDIA NemoClaw 进行构建。

订阅 NVIDIA 新闻,并在 LinkedIn、X、Discord 和 YouTube 上关注 NVIDIA AI,以了解 NVIDIA NemoClaw 的最新动态。

访问 NemoClaw 页面,获取入门资源。浏览 GitHub 上的 NemoClaw 以及 build.nvidia.com 上提供的 Playbook。

通过 NVIDIA 论坛和 Discord 参与 Nemotron 直播、教程和开发者社区互动。

Like

标签

原文标题

Build a More Secure, Always-On Local AI Agent with OpenClaw and NVIDIA NemoClaw