NemoClaw 工作原理
NemoClaw 将轻量级 CLI 插件与版本化蓝图相结合,将 OpenClaw 迁移到受控的沙箱中。 本页从高层次解释 NemoClaw 的核心概念。
各组件如何协同工作
nemoclaw CLI 是设置和管理沙箱化 OpenClaw 代理的主要入口。
它将繁重的工作委托给版本化蓝图——一个 Python 制品,通过 OpenShell CLI 编排沙箱创建、策略应用和推理提供者设置。
flowchart TB
subgraph Host
CMD["nemoclaw onboard"]
PLUGIN[nemoclaw plugin]
BLUEPRINT[blueprint runner]
CLI["openshell CLI sandbox · gateway · inference · policy"]
CMD --> PLUGIN
PLUGIN --> BLUEPRINT
BLUEPRINT --> CLI
end
subgraph Sandbox["OpenShell Sandbox"]
AGENT[OpenClaw agent]
INF[NVIDIA inference, routed]
NET[strict network policy]
FS[filesystem isolation]
AGENT --- INF
AGENT --- NET
AGENT --- FS
end
PLUGIN --> AGENT
classDef nv fill:#76b900,stroke:#333,color:#fff
classDef nvLight fill:#e6f2cc,stroke:#76b900,color:#1a1a1a
classDef nvDark fill:#333,stroke:#76b900,color:#fff
class CMD,PLUGIN,BLUEPRINT nvDark
class CLI nv
class AGENT nv
class INF,NET,FS nvLight
style Host fill:none,stroke:#76b900,stroke-width:2px,color:#1a1a1a
style Sandbox fill:#f5faed,stroke:#76b900,stroke-width:2px,color:#1a1a1a
设计原则
NemoClaw 的架构遵循以下原则。
精简插件,版本化蓝图 插件保持小巧和稳定。编排逻辑存在于蓝图中,并按照自己的发布节奏演进。
遵守 CLI 边界
nemoclaw CLI 是主要接口。插件命令在 openclaw nemoclaw 下可用,但不会覆盖内置的 OpenClaw 命令。
供应链安全 蓝图制品是不可变的、版本化的,并在执行前经过摘要验证。
新安装原生使用 OpenShell
对于没有现有 OpenClaw 安装的用户,NemoClaw 推荐直接使用 openshell sandbox create,而不是强制通过插件驱动引导。
可重现的设置 再次运行设置会使用相同的蓝图和策略定义重新创建沙箱。
插件和蓝图
NemoClaw 分为两个部分:
- 插件是一个 TypeScript 包,驱动
nemoclawCLI,同时在openclaw nemoclaw下注册命令。 它处理用户交互,并将编排工作委托给蓝图。 - 蓝图是一个版本化的 Python 制品,包含创建沙箱、应用策略和配置推理的所有逻辑。 插件负责解析、验证和作为子进程执行蓝图。
这种分离使插件保持小巧和稳定,同时允许蓝图按照自己的发布节奏演进。
沙箱创建
当你运行 nemoclaw onboard 时,NemoClaw 会创建一个在隔离容器中运行 OpenClaw 的 OpenShell sandbox。
蓝图通过 OpenShell CLI 编排此过程:
- 插件下载蓝图制品,检查版本兼容性,并验证摘要。
- 蓝图确定需要创建或更新哪些 OpenShell 资源,如 gateway、推理提供者、sandbox 和网络策略。
- 蓝图调用 OpenShell CLI 命令创建沙箱并配置每个资源。
沙箱启动后,代理在其中运行,所有网络、文件系统和推理控制均已就位。
推理路由
来自代理的推理请求不会直接离开沙箱。 OpenShell 拦截每个推理调用并将其路由到已配置的提供者。 NemoClaw 将推理路由到 NVIDIA 云端,具体来说是通过 build.nvidia.com 使用 Nemotron 3 Super 120B。你可以在运行时切换模型而无需重启沙箱。
网络和文件系统策略
沙箱以 openclaw-sandbox.yaml 中定义的严格基线策略启动。
该策略控制代理可以访问哪些网络端点以及可以访问哪些文件系统路径。
- 对于网络,只有策略中列出的端点才被允许。 当代理尝试访问未列出的主机时,OpenShell 会阻止该请求并在 TUI 中显示以供操作员审批。
- 对于文件系统,代理可以写入
/sandbox和/tmp。 所有其他系统路径为只读。
已批准的端点在当前会话期间持续有效,但不会保存到基线策略文件中。