NVIDIA OpenShell 深度研究:给 AI Agent 套上安全笼子的运行时

> GitHub: NVIDIA/OpenShell

> 文档: docs.nvidia.com/openshell

> 博客: NVIDIA Developer Blog

> 许可: Apache 2.0

> 状态: Alpha(单人模式)

> 发布: GTC 2026(2026-03-24)

> 研究时间: 2026-03-27

🎯 一句话版本

NVIDIA 做了一个给 AI Agent 用的安全沙盒:一条命令 openshell sandbox create -- claude 就能让 Claude Code / Codex / OpenClaw 跑在隔离容器里,用 YAML 策略控制它能读哪些文件、访问哪些网站、调哪些 API。Agent 碰不到你的宿主机,密钥也看不到。底层是 K3s 跑在 Docker 里,不需要改任何 Agent 代码。

🧠 为什么需要这个

Agent 越来越强大也越来越危险:

> 一个有持久 shell 访问权、实时凭证、能改写自己工具、跑了 6 小时积累了大量上下文、在调你内部 API 的 Agent——和一个无状态聊天机器人是完全不同的威胁模型。

NVIDIA 的观察:安全 + 能力 + 自主,现有方案最多同时做到两个:

组合问题
安全 + 自主没权限,干不了活
能力 + 安全要不断审批,等于人肉看护
能力 + 自主⚠️ **自己看管自己**——护栏和被护栏的在同一个进程里

OpenShell 的解法:进程外策略强制执行——安全约束在 Agent 外面,Agent 即使被攻破也改不了。

💻 怎么用

安装


curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh

使用


# 创建沙盒并启动 Agent
openshell sandbox create -- claude        # Claude Code
openshell sandbox create -- codex         # OpenAI Codex
openshell sandbox create --from openclaw  # OpenClaw!

# 连接到运行中的沙盒
openshell sandbox connect demo

# 应用策略(运行时热更新)
openshell policy set demo --policy policy.yaml

# 查看 TUI 仪表盘
openshell term

策略示例


# 只允许 GET GitHub API,禁止 POST
network:
  - destination: api.github.com
    methods: [GET]
    paths: ["/repos/*", "/zen"]

效果:


# GET 允许
sandbox$ curl https://api.github.com/zen
Anything added dilutes everything else.

# POST 被拦截
sandbox$ curl -X POST https://api.github.com/repos/.../issues
{"error":"policy_denied","detail":"POST /repos/.../issues not permitted by policy"}

🏗️ 架构


你的电脑
└── Docker 容器(K3s 集群)
    ├── Gateway(控制面 API,认证边界)
    ├── Policy Engine(策略强制执行)
    ├── Privacy Router(隐私感知 LLM 路由)
    └── Sandbox(隔离运行时)
        └── Agent(Claude Code / OpenClaw / Codex)

四层安全

保护什么何时生效
**Filesystem**限制文件读写路径创建时锁定
**Network**阻断未授权出站**运行时热更新**
**Process**阻断提权/危险系统调用创建时锁定
**Inference**重路由模型 API**运行时热更新**

Privacy Router(隐私路由器)

这个很关键:


Agent 发推理请求
  ├→ 敏感数据 → 本地 Nemotron 模型(不出机器)
  └→ 非敏感数据 → 云端 Claude/GPT(按策略路由)

路由决策由你的策略决定,不是 Agent 决定。

凭证管理


# 自动发现环境变量中的 API Key
openshell provider create --type anthropic --from-existing

凭证注入为环境变量,不写入沙盒文件系统。Agent 可以用,但不能读取/复制/泄露。

🔧 沙盒预装工具

类别工具
Agentclaude, opencode, codex, copilot
语言Python 3.13, Node 22
开发gh, git, vim, nano
网络ping, dig, nc, traceroute, netstat

GPU 支持(实验性)


openshell sandbox create --gpu --from [gpu-sandbox] -- claude

可以在沙盒里跑本地推理/微调。需要 NVIDIA 驱动 + Container Toolkit。

🤖 Agent-First 开发方式

OpenShell 自己就是用 Agent 开发的。.agents/skills/ 里有:

Skill用途
`create-spike`调查问题
`build-from-issue`从 issue 实现功能
`triage-issue`社区 issue 分类
`review-security-issue`安全审查
`generate-sandbox-policy`从自然语言生成 YAML 策略

工作流:Agent 提方案 → 人类审批 → Agent 构建。

🆚 和 Cloudflare Dynamic Workers 的对比

NVIDIA OpenShellCloudflare Dynamic Workers
**定位**本地/私有云 Agent 安全运行时云端轻量级代码沙盒
**隔离**完整 Docker 容器 + K3sV8 Isolate
**语言****任意**(完整 Linux)仅 JS/Wasm
**安全模型**4 层声明式策略(文件/网络/进程/推理)绑定注入(env)
**策略更新**运行时热更新需要重新加载 Worker
**隐私****Privacy Router**(敏感数据本地处理)
**GPU**✅ 直通
**部署**本地/私有云Cloudflare 云
**适合**长期运行的 Agent(OpenClaw、Claude Code)短暂的代码片段执行

💡 与我们的关联

1. 直接支持 OpenClaw ⭐⭐⭐


openshell sandbox create --from openclaw

OpenClaw 是官方支持的 Community Sandbox 之一! 这意味着:

2. 解决了 OpenClaw 的安全短板

OpenClaw 的 exec 工具目前是直接在宿主机跑命令——Agent 理论上可以做任何事。OpenShell 把这个风险完全隔离:


之前: Agent → exec → 宿主机(无限制)
之后: Agent → exec → OpenShell 沙盒 → 策略检查 → 允许/拒绝

3. ub2 上的使用场景

ub2 有 RTX 4090,可以:

4. 和 OpenClaw-RL 的配合

训练 Agent 时,Agent 需要大量自由度去试错。OpenShell 可以提供安全的试错环境——Agent 随便折腾沙盒,不影响宿主。

⚠️ 注意事项

1. Alpha 阶段:单人模式,多租户企业功能还在开发

2. 需要 Docker:必须有 Docker 运行

3. K3s 开销:一个 K3s 集群跑在 Docker 里,资源占用比直接跑 Agent 多

4. GPU 实验性:可能有兼容性问题

5. NVIDIA 生态偏向:推荐 Nemotron 模型、DGX 硬件,但不锁定

📊 评分

维度评分(/10)
技术架构9.0 — 进程外策略 + Privacy Router + 4 层安全,设计正确
实用性8.0 — 一条命令启动,但 Alpha 阶段有粗糙边缘
与 OpenClaw 的关联**9.5** — 官方支持,直接解决安全短板
创新性8.5 — Privacy Router 和策略热更新是亮点
成熟度6.5 — Alpha,单人模式,GPU 实验性
**综合****8.5**

报告由深度研究助手自动生成 | 2026-03-27

来源: GitHub / NVIDIA Blog