返回博客列表

NVIDIA 开源 OpenShell:为 AI Agent 量身打造的安全运行时,四层防护 + 隐私路由,8000 星爆款

2026-08-15T12:00:00+08:00
OpenShellNVIDIAAgent 沙箱安全运行时隐私路由策略引擎Rust

NVIDIA 开源 OpenShell:为 AI Agent 量身打造的安全运行时,四层防护 + 隐私路由,8000 星爆款

NVIDIA 做了一件很多人没有预料到的事情。

他们开源了一个叫 OpenShell 的项目。

GitHub 地址:https://github.com/NVIDIA/OpenShell 官方文档:https://docs.nvidia.com/openshell/latest/

8104 颗星,Rust 编写,Apache 2.0 协议。

这不是又一个 Docker 容器管理工具,不是又一个 Kubernetes 发行版。 这是一个专为 AI Agent 量身设计的安全运行时

一句话定位:为自主 AI Agent 提供安全、私密的沙箱执行环境。

NVIDIA 为什么要做这个?因为现在所有人在用 AI Agent 的时候,都面临一个根本性的安全问题:

你让 AI Agent 在你的机器上跑代码,你真的放心吗?

Agent 可以读你的 SSH 密钥。 Agent 可以把你的数据上传到任何地方。 Agent 可以执行任何命令,包括删库。 Agent 的 API Key 可能被泄露到日志里。

Docker 容器?不够。容器逃逸的案例数不胜数。 gVisor?太重了,而且不是为 Agent 场景设计的。 裸跑?那是在拿你的生产环境赌命。

OpenShell 就是来解决这个问题的。而且它不是简单地加一层沙箱,它从四个维度构建了一套完整的安全体系。


四层防护体系:每一层都在保护你

OpenShell 最核心的设计,是它的四层防护体系。每一层都针对 AI Agent 场景的一个特定安全风险。

第一层:文件系统防护

保护什么:防止 Agent 读写不该碰的路径。

Agent 跑在你的机器上,它理论上可以访问整个文件系统。你的 SSH 密钥、你的 .env 文件、你的数据库配置、你的 .aws/credentials——全部暴露。

OpenShell 在沙箱创建的时候就锁定了文件系统边界。Agent 只能访问策略允许的路径,其他全部不可见。这个锁定是在容器创建时生效的,不是运行时检查,无法绕过。

第二层:网络防护

保护什么:防止 Agent 把你的数据发到不该发的地方。

这是最容易被忽略,也是最危险的攻击面。Agent 可以在代码里藏一个 curl,把你的源码、密钥、配置全部 POST 到一个外部服务器。你根本不会察觉。

OpenShell 的网络防护是默认拒绝的。每个沙箱启动时,所有出站连接都是被禁止的。你需要通过 YAML 策略显式声明允许访问哪些地址。

而且它不是简单的 IP/域名白名单。它做到了 HTTP 方法 + 路径级别的 L7 控制:

# 沙箱内 - 默认全部禁止
sandbox$ curl -sS https://api.github.com/zen
curl: (56) Received HTTP code 403 from proxy after CONNECT

# 在宿主机上 - 应用一个只读 GitHub API 策略
openshell policy set demo --policy policy.yaml --wait

# 重新连接 - GET 允许,POST 被拒
sandbox$ curl -sS https://api.github.com/zen
Anything added dilutes everything else.

sandbox$ curl -sS -X POST https://api.github.com/repos/octocat/hello-world/issues -d '{"title":"oops"}'
{"error":"policy_denied","detail":"POST /repos/octocat/hello-world/issues not permitted by policy"}

GET 允许,POST 被拒。这意味着 Agent 可以读取公开 API,但不能创建/修改/删除任何东西。 而且策略可以热重载,不需要重启沙箱。

第三层:进程防护

保护什么:防止 Agent 执行危险命令和提权。

Agent 可以执行 rm -rf /,可以执行 sudo,可以fork bomb,可以修改系统配置。

OpenShell 在进程层面锁定了这些危险操作。特权提升被禁止,危险系统调用被拦截。这一层也是在沙箱创建时锁定的。

第四层:推理路由(最核心的创新)

保护什么:防止 Agent 的 API Key 泄露,防止敏感上下文被发送到不受信任的模型端点。

这是 OpenShell 最核心、最独特的设计,也是它和其他所有沙箱工具最大的区别。

传统模式下,Agent 直接用你的 API Key 调用 LLM:

  • API Key 存在沙箱的环境变量里,可能被泄露
  • Agent 可能被 prompt injection 攻击,把敏感上下文发送到外部
  • 你无法控制 Agent 到底调用了哪个模型

OpenShell 的**隐私路由器(Privacy Router)**做了三件事:

  1. 拦截所有从沙箱发出的 LLM API 调用
  2. 剥离调用者的凭证,注入后端管理的凭证
  3. 路由到受控的模型端点

这意味着:

  • Agent 的 API Key 永远不会出现在沙箱文件系统里
  • 你可以控制 Agent 到底能访问哪个模型
  • 敏感上下文可以保留在沙箱计算节点上,不外传
  • 所有推理调用都有审计记录

这一层也可以热重载。你可以在 Agent 运行的时候,动态切换它使用的模型。


整体架构:四个组件,各司其职

组件 职责
Gateway 控制平面 API,协调沙箱生命周期,认证边界
Sandbox 隔离运行时,容器监督 + 策略强制的出口路由
Policy Engine 从应用层到内核的文件系统、网络、进程约束
Privacy Router 隐私感知的 LLM 路由,保持敏感上下文在沙箱计算节点上

支持的计算平台:Docker、Podman、MicroVM、Kubernetes。

整个系统用 Rust 编写,性能开销极低。Gateway 是一个 Axum WS + REST 服务,数据存储用 Postgres,pub/sub 用 Redis,文件存储用 S3/MinIO。


怎么用?30 秒上手

安装

# 方式 1:一键安装脚本(推荐)
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh

# 方式 2:通过 PyPI(需要 uv)
uv tool install -U openshell

# 方式 3:Kubernetes Helm
helm install openshell oci://ghcr.io/nvidia/openshell/helm-chart

创建沙箱并启动 Agent

# 创建一个沙箱,启动 Claude Code
openshell sandbox create -- claude

# 或者 Codex、Copilot、OpenCode
openshell sandbox create -- codex
openshell sandbox create -- copilot
openshell sandbox create -- opencode

沙箱里默认包含的工具:

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

管理策略

# 查看当前策略
openshell policy get my-sandbox

# 应用新策略(热重载,不重启)
openshell policy set my-sandbox --policy policy.yaml --wait

终端 UI

openshell term

一个类似 k9s 的实时终端仪表盘,键盘驱动,可以监控 Gateway 健康状态、沙箱状态、Provider 配置。每两秒自动刷新。


支持 8 种主流 Agent

OpenShell 不绑定任何特定 Agent,开箱即用支持 8 种:

Agent 凭证来源 说明
Claude Code ANTHROPIC_API_KEY 开箱即用
Codex OPENAI_API_KEY 开箱即用
GitHub Copilot CLI GITHUB_TOKEN 开箱即用
OpenCode OPENAI_API_KEY / OPENROUTER_API_KEY 开箱即用
OpenClaw NemoClaw 通过 NemoClaw 管理推理
Hermes Agent NemoClaw 通过 NemoClaw 管理推理
Ollama Community openshell sandbox create --from ollama
Pi Community openshell sandbox create --from pi

凭证管理通过 Provider 机制实现:API Key 等凭证不会出现在沙箱文件系统里,而是在运行时作为环境变量注入。CLI 会自动发现你 shell 环境中已有的凭证。


GPU 支持:NVIDIA 的看家本领

作为 NVIDIA 的项目,GPU passthrough 当然是标配:

openshell sandbox create --gpu --from gpu-enabled-sandbox -- claude

支持 Docker(自动选择 CDI 或 --gpus all)和 MicroVM。 需要在宿主机上安装 NVIDIA 驱动和 NVIDIA Container Toolkit。

这意味着你可以在沙箱里跑本地推理、微调模型、做 GPU 计算——全部在安全隔离的环境中进行。


策略引擎:声明式 YAML,热重载

OpenShell 的策略是声明式 YAML 文件,分为静态和动态两部分:

策略域 类型 说明
文件系统 静态 创建时锁定,不可更改
进程 静态 创建时锁定,不可更改
网络 动态 运行时热重载
推理 动态 运行时热重载

静态策略在沙箱创建时锁定,保证了安全基线不可被绕过。 动态策略可以热重载,保证了灵活性——你可以在 Agent 运行的时候动态调整网络访问和模型路由。

OpenShell 还内置了一个 Agent Skill,可以从自然语言需求或 API 文档自动生成策略 YAML:

# Agent 可以帮你生成策略
"我需要让 Agent 访问 GitHub API 的只读端点,但不能创建任何资源"
→ Agent 自动生成 policy.yaml

Agent-First 的开发方式

OpenShell 最有意思的一点:它用自己来开发自己。

项目的 .agents/skills/ 目录包含了一整套 Agent 工作流自动化:

Skill 功能
create-spike 调研问题,人类决定是否接受
triage-issue 评估社区 Issue 的技术有效性和影响
review-security-issue 安全漏洞严重性评估和修复计划
fix-security-issue 实施安全修复
generate-sandbox-policy 从自然语言生成策略 YAML
openshell-cli CLI 使用指南
debug-openshell-cluster Gateway 故障排查
debug-inference 推理路由故障排查

所有 Agent 实现的工作都是人类门控的:维护者明确请求计划 → Agent 提议 → 维护者批准 → Agent 构建。

这不仅仅是"用 AI 写代码",而是把 AI Agent 嵌入到了整个软件开发生命周期里——从调研、到分类、到安全审查、到策略编写、到实现。


和其他方案的对比

方案 隔离级别 Agent 感知 推理路由 策略粒度 GPU
裸 Docker
gVisor 容器级
Kata Containers 最高 容器级
E2B / Daytona 部分 容器级
Kubernetes Agent Sandbox CRD 级
OpenShell L7 方法+路径级

OpenShell 最大的差异化在于推理路由。这是其他所有方案都没有的能力。


这个项目真正的意义

第一:安全不再是 Agent 部署的拦路虎

以前企业想用 AI Agent,最大的顾虑就是安全。Open Shell 把文件系统、网络、进程、推理四个维度的安全全部做进了一个工具里,企业不再需要自己拼凑安全方案。

第二:推理路由开创了一个全新方向

Agent 的 LLM API 调用被拦截、凭证被替换、请求被路由到受控后端——这个能力以前只存在于大型企业的自建系统里。OpenShell 把它变成了一个开源工具的标准功能。

第三:NVIDIA 在 Agent 基础设施领域的布局

从 CUDA 到 GPU 驱动,从 Triton 推理服务器到 OpenShell,NVIDIA 正在构建一整套 AI Agent 基础设施栈。OpenShell 是这个栈里"安全运行时"这一层的关键拼图。


写在最后

如果你在做 AI Agent 相关的项目,如果你在让 Agent 在你的机器上跑代码,你真的需要认真考虑安全问题。

OpenShell 给你提供了一个开箱即用的、NVIDIA 级别的安全运行时。 四层防护,推理路由,热重载策略,GPU passthrough,8 种 Agent 支持。

这不是一个概念验证,这是一个 8000 星的、NVIDIA 官方维护的、Apache 2.0 协议的生产级工具。

非常推荐所有人去 clone 下来试一试。 你的 Agent 跑在 OpenShell 里,你可以真正地睡个好觉。


作者: itech001 来源: 公众号:AI人工智能时代 网站: https://www.theaiera.cn/ 每日分享最前沿的AI新闻资讯和技术研究。

本文首发于 AI人工智能时代,转载请注明出处。

分享给朋友