OpenShell Skill:NVIDIA 出品的 AI Agent 安全沙箱运行时

OpenShell Skill:NVIDIA 出品的 AI Agent 安全沙箱运行时

OpenShell 是 NVIDIA 推出的开源安全运行时,专为自治 AI Agent 设计——在授予 Agent 文件访问、网络调用、凭证使用等能力的同时,通过内核级隔离和形式化验证策略彻底锁死数据泄露风险。随着 Agent 工作流广泛落地,企业对「Agent 能在多大程度上访问真实环境」的焦虑正快速转化为对这类安全基础设施的刚需。截至 2026 年 10 月,OpenShell 在 GitHub 已斩获约 15,000+ Stars,是当月最热门的 AI 安全类开源项目之一。

功能与原则

核心能力: 内核级强制执行的沙箱环境 + 声明式 YAML 策略控制。每个 Agent 运行在独立隔离的沙箱中,默认拒绝一切文件访问、网络连接和系统调用;权限通过策略文件按需授予,变更需经过形式化验证才能上线。

设计哲学: 安全不依赖模型自觉,策略在 Agent 进程之外强制执行,Agent 本身无法绕过。权限默认拒绝(deny-by-default),每一次 allow/deny 决策均生成可审计日志。同时支持云端、本地、混合及气隙(air-gapped)多种部署形态。

认可度

GitHub Star:截至 2026-10-08 约 15,000+ ⭐,GitHub Trending 多次上榜(2026 年 10 月月榜第 15 位,周榜持续霸榜),周新增 Star 持续保持四位数增长。

支持的主流 Agent:Claude Code、Codex、GitHub Copilot CLI、Hermes、LangChain Deep Agents、OpenClaw、OpenCode 等,覆盖市面主流 Agent 框架。

背书方: 英伟达官方出品;已被多家头部 AI 实验室、AI 基础设施公司和关键行业用户采纳;进入 NVIDIA Open Agent Safety Platform 核心组件行列。

链接

GitHub:https://github.com/NVIDIA/OpenShell

官方文档:https://docs.nvidia.com/openshell/latest/index.html

原作者

主导方:NVIDIA(英伟达),由 NVIDIA AI 安全研究团队工程化落地并开源。

介绍

OpenShell 解决的核心问题是:Agent 越强大,就越需要访问文件、安装依赖、调用 API、使用凭证——但这些能力若不受控,就是一个随时可能泄露数据或破坏系统的「特洛伊木马」。

OpenShell 的解法是让安全策略与 Agent 执行彻底解耦:Agent 运行在内核级隔离的沙箱中,系统调用和网络请求全部经策略引擎审查,凭证由 OpenShell 代理注入而非直接交给 Agent。若策略变更,形式化验证引擎会提前报告「这条规则相比当前策略会新增哪些风险路径」,高风险变更会被标记待人工复核后才生效。

0.1.x 版本已发布稳定版本节奏,新增隔离原语、扩展接口和新 SDK,支持 Python/TypeScript/Go 三种语言接入,并提供 Helm Chart 支持 Kubernetes 部署。

特点

  • 内核级强制隔离:每个 Agent 独立沙箱,系统调用层即阻断越权操作,不依赖 Agent 自身配合
  • 声明式 YAML 策略:安全边界用配置文件声明,无需改代码,支持细粒度到 HTTP method + path 级别的网络控制
  • 形式化验证策略变更:变更策略前自动检查是否引入新风险路径,防止「开放过头」的静默回归
  • 凭证代理注入:Agent 永远看不到真实凭证,OpenShell 只将凭证注入到策略允许的请求中
  • 多 Agent + 多运行时支持:支持 Claude Code、Codex、Copilot、OpenCode 等多种 Agent,底层支持 Docker、Podman 或 MicroVM 多种隔离技术
  • SDK 丰富:官方提供 Python、TypeScript(npm)、Go、Rust 四种 SDK,无缝集成现有平台
  • 完整可审计:每一次 allow/deny 决策均写入日志,支持完整操作审计追溯

使用方法

安装(Linux/macOS):

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

创建沙箱并运行 Agent:

# 创建沙箱(默认拒绝所有网络和文件访问)
openshell sandbox create --name demo

# 在沙箱中运行 Claude Code
openshell sandbox connect demo
# 沙箱内默认拒绝所有外部访问,零配置保证安全基线

配置网络访问策略:

# policy.yaml — 声明式策略
version: 1
rules:
  - path: "api.github.com"
    methods: ["GET"]
    allow: true
  - path: "api.github.com"
    methods: ["POST", "PUT", "DELETE"]
    allow: false  # 显式拒绝写操作
# 应用策略
openshell policy set demo --policy policy.yaml --wait
# 策略变更由形式化验证引擎审查后才生效

安装 Agent Skills(让 Agent 学会操控 OpenShell):

npx skills add NVIDIA/OpenShell
# Agent 会自动学会驾驶 OpenShell CLI、编写沙箱策略、调试网关等技能

使用场景与人群

适用场景:
– 企业内部署自治 Agent,需要防止数据外泄和凭证滥用
– AI 安全合规要求严格(如金融、医疗、政府)的生产环境
– 开发团队在本地调试 Agent 时需要安全隔离,不影响宿主机
– 多 Agent 协同工作流,需要细粒度权限控制和审计追溯

目标用户:
– 安全/IT 团队:负责给 Agent 上锁但不想改 Agent 本身
– 平台工程师:需要为团队提供可控的 Agent 执行基础设施
– AI 应用开发者:需要让 Agent 真实操作文件和 API,同时保持生产环境安全

输入与输出案例

案例一:防止 Agent 误传数据到外部

普通 Agent 拿到凭证后可能直接上传日志文件到外部 S3。OpenShell 沙箱策略可以精确指定:此沙箱 Agent 只允许向 api.github.com 的 GET 请求,禁止任何出站网络连接。

输入(沙箱内 Agent 请求):
curl -X POST https://api.stripe.com/v1/charges 
  -d "amount=1000" -d "currency=usd"

输出(OpenShell 拒绝):
{"error":"policy_denied","detail":"POST /v1/charges not permitted by policy"}

案例二:Agent 自动申请新权限(策略协作工作流)

Agent 在执行任务时遇到被策略阻止的请求,OpenShell 会将失败原因返回给 Agent,Agent 可据此生成策略变更请求,交由人类或形式化验证引擎审查后生效——真正实现了「安全左移,变更可控」。

输入(Agent 请求被阻止):
curl https://api.example.com/internal-data

输出(OpenShell Supervisor 反馈):
403 Forbidden — 策略拒绝。Agent 可调用 openshell policy propose 提议新策略,
形式化验证引擎预检后返回风险评估,人工批准后自动应用到当前沙箱。

GitHub: https://github.com/NVIDIA/OpenShell

评论区

0 条评论

登录后可评论。

Skill超级捕获手 82 阅读