Search
Close this search box.

給龍蝦穿上防彈衣 NemoClaw 如何為 OpenClaw 打造企業級安全沙盒?

NemoClaw 的基礎—— OpenClaw

OpenClaw(小龍蝦)在2026年快速崛起,在短短幾個月便以驚人的速度成長成當今最受歡迎的開源的 AI Agent 平台,黃仁勳在演講中將它形容為「AI 代理的作業系統」,但像 OpenClaw 這樣的自主 AI Agent 可以發出任意網路請求、存取主機檔案系統,並呼叫任何推理端點。但如果沒有防護措施,將帶來安全、成本和合規性風險,並且隨著 Agent 無人監測的運行,這些風險也會不斷增加。

如何讓企業確保 OpenClaw 不會存取未授權的資料,如何控制 OpenClaw 在企業定義的運作範圍內,防止在外部環境洩露企業資料成為 OpenClaw 現在最需要迫切解決的課題。

NemoClaw 是什麼?

(圖一)NemoClaw workflow。

NemoClaw 是一個開源的技術棧,NemoClaw 核心功能之一是為它的龍蝦兄弟—— OpenClaw 和 NVIDIA Nemotron 等其他開源模型提供一個安全的環境部署,這也填補 OpenClaw 底層原先所欠缺的基礎架構層,使其能取得高效運作所需的存取權限,同時落實以規範為基礎的安全性、網路與隱私防護機制。而關鍵就在於 NVIDIA 在 NemoClaw 安裝一個名為 OpenShell 的保護層,可以想像類似 Dokcer 的 Container,但採用的是基於 YAML 的方法控制你的Agent。

OpenShell 整合了基於策略隱私和安全的防護措施。執行 NemoClaw 時,它會建立 OpenShell Sandbox 環境,並在一個隔離的容器(Container)中執行 OpenClaw, OpenClaw 能夠在受監控的 Sandbox 中運作,讓使用者能夠控制 OpenClaw 的行為和資料處理。

NemoClaw 架構

NemoClaw 主要有兩個核心元件:一個與 OpenClaw CLI 整合 TypeScript 插件(plugin),以及一個用於協調 OpenShell 資源的 Python 藍圖(blueprint)。

NemoClaw Plugin

它是一個輕量級的 TypeScript 寫的 CLI 擴充模組,用於宣告模型服務的來源和 /nemoclaw 斜杠命令。它在 Sandbox 環境中與 OpenClaw Gateway 一起以 In-process 方式運作。

備註:/nemoclaw 是 OpenClaw 聊天介面提供的斜線指令,方便使用者快速執行操作。

NemoClaw blueprint

由 Python 撰寫包成一個可版本管理的單位,擁有自己的發布流程,負責如何建立 sandbox、政策捨定與推論配置設定。Plugin(TypeScript)會解析、驗證並執行該藍圖,將其作為 subprocess 運行。該藍圖驅動所有與 OpenShell 命令列介面的互動。

Blueprint 的生命週期

Blueprint lifecycle。

1.resolve:此插件定義藍圖並檢查版本 min_openshell_version 和 min_openclaw_version 約束 blueprint.yaml。

2.verify digest:比對產出物的雜湊值(Digest)是否與預期值相符。

3.plan:執行程式會決定要建立或更新哪些 OpenShell 資源,例如:gateway, providers, sandbox, inference route, policy。

4.apply:透過呼叫 CLI 命令來執行 plan。

5.status:回報目前 running 的當前狀態。

推理路由(Inference Routing)

來自 Agent 發出的 Inference request 永遠不會直接離開沙箱。OpenShell 會攔截這些請求並將其路由到以設定的 Inference Provider 來決定可用的 LLM model,並且在運行時可以切換模型不需重新啟動 Sandbox。

  • Inference request 不會從 sandbox 直接對外送出
  • Openshell 會攔截並透過 gateway 路由
  • 透過 Inference provider 決定
  • 可用 LLM model 支援 NVIDIA Cloud、Ollama、vLLM

NemoClaw 內建了一個定義 blueprint.yaml 檔案中的 Inference profile,這個設定檔配置了OpenShell inference provider 和 model route。

推理配置的詳細文件,請參閱:https://docs.nvidia.com/nemoclaw/latest/reference/inference-profiles.html

Inference Routing。
blueprint.yaml。

NemoClaw Network Policies

NemoClaw 採用 deny-by-default network policy (預設拒絕的網路策略)。Sandbox只能存取明確允許的端點。任何對未列出目標的請求都會被 OpenShell 攔截,使用者會透過 TUI 即時收到批准或拒絕的提示。

  • Deny-by-default network policy:未在 YAML 白名單的主機一律封鎖
  • openclaw-sandbox.yaml:定義允許的端點、binary 與規則
  • openshell term 即時顯示攔截請求,操作員可 approve/deny
  • Policy 可在 sandbox 執行中動態更新,不需重啟

網路策略的詳細文件,請參閱:https://docs.nvidia.com/nemoclaw/latest/reference/network-policies.html

Policyt.yaml。

NemoClaw Landlock

NemoClaw 的 Baseline Policy 會限制 Sandbox 內可存取的路徑範圍,根據官方文件/sandbox、/tmp 等路徑為 Read/Write 權限,/usr、/lib 等級系統路徑則為 Read/Only。

NemoClaw 透過檔案系統 Policy搭配 Landlock,控制 Agent 的可寫範圍限制在少數受控的目錄內。

  • /sandbox、/tmp、/dev/null :可讀可寫
  • /usr、/lib、proc、/dev/urandom、/app、/etc、/var/log:唯讀
  • YAML policy 搭配 Landlock:限制 agent 可寫範圍
  • 所有運行都在 Sandbox 中隔離

沙盒環境

Sandbox 內部:

  • OpenClaw 在 NemoClaw 中運作
  • 推論請求(Inference calls)會透過 OpenShell 轉發至預先設定的 Provide
  • 網路出口受到 baseline policy 的限制 openclaw-sandbox.yaml
  • 檔案系統存取僅限於 /sandbox 讀寫 /tmp 訪問,系統路徑為唯讀

Workspace File

OpenClaw 將 Agent 的身份、行為和記憶體資訊儲存在 Sandbox 內的一組 Markdown 檔案中。這些檔案位於指定位置,/sandbox/.openclaw/workspace/ 並在每次會話開始時由代理程式讀取。

位置。

NemoClaw 核心優勢

NemoClaw 提供以下幾項主要優勢:

優勢項目功能描述
Sandbox執行環境 (Sandboxed execution)每個代理程式 (Agent) 都在受限制的 OpenShell 沙盒中運行,並結合 Landlock、seccomp 以及網路命名空間 (network namespace) 隔離技術。預設情況下不授予任何存取權限。
NVIDIA 端點推論 (NVIDIA Endpoint inference)代理程式的流量會透過 build.nvidia.com 路由至雲端託管的 Nemotron 3 Super 120B 模型,此過程對代理程式而言是完全透明的。
宣告式網路策略 (Declarative network policy)出口 (Egress) 規則以 YAML 格式定義。系統會自動阻斷未知的對外主機,並提交給操作員審核批准。
單一命令列介面 (Single CLI)透過 nemoclaw 指令即可統籌管理整個技術棧:包含 gateway、sandbox、inference provider 以及 network policy。
藍圖生命週期管理 (Blueprint lifecycle)具備版本控制的「藍圖 (Blueprints)」可用於 Sandbox 建立、摘要驗證 (digest verification) 以及確保環境的可重現性設定。

Quickstart

安裝 NemoClaw 並啟用 OpenClaw 代理程式

前提:請先安裝並設置完 openclaw

下載並執行安裝腳本。腳本會在尚未安裝 Node.js 的情況下進行安裝,然後執行引導式設定,建立 Sandbox、設定推理並套用安全性原則。如果中間失敗要執行 nemoclaw onboard 指令繼續未完成的設定。

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

NemoClaw onboard 七步驟

Step 1: Preflight Checks
Step 2: Start OpenShell Gateway
Step 3: Create Sandbox。這一步就是在建立 Sandbox,系統會詢問 Sandbox 的名稱,預設是 my-assisatant ; 接著系統會用 Docker File 建立 Docker image,一共有 33 步建置。
Step 4: Configuring inference。
Step 5: Set up inference provider。
Step 6: Set up OpenClaw inside sandbox。
Step 7: Policy presets。
完成畫面。

連接到 Sandbox

nemoclaw my-assistant connect

測試結果

可以透過TUI介面或CLI介面來測試

openclaw tui

openclaw agent –agent main –local -m “hello” –session-id test

可以看到它會顯示 OpenClaw 的版本號連接的模型是 NVIDIA 的 nemotron-3-super-120b-a12b 以及 token。
接者展示 NemoClaw Landlock 檔案系統隔離的效果,在 Sandbox 中請 OpenClaw 中列出可以存取的目錄,它只能存取前面提到的 Sandbox Workspace File。
當要求 OpenClaw 列出 Workspace 外的 File 時,它會阻擋並表示路徑不存在,也就是說 OpenClaw 是沒辦法知道Sandbox 外的資料,即使 Agent 被 Prompt Injection 它也無法存取 Sandbox 以外的資料。

參考資料

https://docs.nvidia.com/nemoclaw/latest/index.html

https://github.com/NVIDIA/OpenShell

https://github.com/NVIDIA/NemoClaw/tree/166319d75e5f29671455a503aab451109f05e0cb

https://www.nvidia.com/zh-tw/ai/nemoclaw/

(本文訊息由 CloudMile 萬里雲提供,內文與標題經 TechOrange 修訂後刊登。新聞稿 / 產品訊息提供,可寄至:[email protected],經編輯檯審核並評估合宜性後再行刊登。圖片來源:CloudMile 萬里雲。)