跳到正文
发现
OpenShell:AI Agent 安全运行时
命令行工具AI 应用

OpenShell:AI Agent 安全运行时

NVIDIA 开源的安全私有运行时,用策略与内核级隔离约束自主 AI Agent 的文件、网络和凭证访问。

admin
发布于 2026-10-28
浏览
4
访问
0
下载
0
版本
v0.1.6
平台
Linux、macOS、Windows
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

OpenShell 是 NVIDIA 开源的安全、私有运行时,面向成群的自主 AI Agent。Agent 在能读取文件、安装软件包、调用 API、使用凭证时最有价值,OpenShell 让它们具备这些能力,同时不让它们无限制地访问你的数据、密钥和网络。你在策略中声明每个 Agent 可以接触什么,OpenShell 负责强制执行。

OpenShell 以两种方式约束 Agent 的行为:一是对内核进行插桩,在运行时对每次文件访问、系统调用和网络连接执行策略;二是用形式化验证在策略变更生效前检查它会放行什么。

主要功能

  • 内核级强制执行:每个 Agent 运行在隔离沙箱中,内核控制限制其可访问的文件和可发起的系统调用,所有网络连接在离开沙箱前都要通过策略检查。Agent 永远看不到真实凭证,OpenShell 只在发往已批准端点的请求中注入凭证。
  • 形式化验证的策略变更:策略变更获批前,OpenShell 用形式化验证标出它将会授予的风险性新访问,例如带凭证访问新主机、调用新的 API 方法,这类变更会等待人工审核。
  • 沙箱(Sandboxes):镜像、运行时、GPU 与生命周期管理;支持 openshell sandbox suspend 与 openshell sandbox resume 挂起和恢复(取决于底层驱动是否支持)。
  • 策略(Policies):文件系统、网络与进程规则,并配有 advisor 和 prover 用于审查变更。
  • Providers:只在已批准端点生效的凭证,包括推理服务。
  • Gateways:沙箱、策略和访问的控制平面。
  • Kubernetes:通过 Helm 部署网关,CNI 必须能执行 NetworkPolicy。
  • 可扩展性:middleware、interceptor 和 compute driver。
  • SDK:提供 Python、TypeScript、Go、Rust 四种语言的 SDK,用于把应用连接到 OpenShell 网关。

安装与使用

运行环境要求:Linux、Apple Silicon 上的 macOS,或带 WSL 2 的 Windows(实验性),另需 Docker、Podman 或主机虚拟化。

curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh
openshell sandbox create --name demo

安装器会配置好 CLI 和一个本地网关。默认沙箱镜像是精简的 Ubuntu,未安装任何 Agent;要运行真实的 Agent,可参考官方文档 Run Your First Agent,其中演示了用 OpenCode 对接免费的 OpenRouter 模型,并在 Agent 需要时批准新的访问。

为编码 Agent 安装 OpenShell 的公开 skills:

npx skills add NVIDIA/OpenShell

这些 skills 会教你的 Agent 使用 OpenShell CLI、编写沙箱策略、调试网关与推理路由,无需检出 OpenShell 源码即可使用。

SDK 用于把应用连接到 OpenShell 网关(不会安装 CLI),建议 SDK 与网关使用同一个 OpenShell 版本:

语言 安装
Python uv add openshell
TypeScript npm install @nvidia/openshell-sdk(GitHub Packages)
Go go get github.com/NVIDIA/OpenShell/sdk/go@latest
Rust cargo add openshell-sdk --git https://github.com/NVIDIA/OpenShell --tag <release-tag>

更多文档见 官方文档站,包括沙箱、策略、Providers、Gateways、Kubernetes、可扩展性与教程等章节。

注意事项

  • 从 0.1.6 起,网关必须配置 OIDC、mTLS 用户或运维认证、或网关 JWT 才能启动;仅供可信的本地开发时,可在 [openshell.gateway.auth] 下设置 allow_unauthenticated_users = true。
  • 在 Kubernetes、Docker、Podman 和 VM 上新建的沙箱改为由沙箱向 supervisor 发起控制连接,已有沙箱保持原有连接方向;supervisor 与 sandbox runtime 二进制需要一起升级,旧版二进制会拒绝新沙箱。
  • Windows 原生支持(通过 Microsoft MXC)仍在推进中,详见仓库 windows 分支的 WINDOWS.md,其中列出了配置方式和当前限制。
  • OpenShell 默认收集匿名遥测,范围限于运行类别和计数,不包含沙箱名、主机名、文件路径、提示词、凭证、Provider 或模型名及用户内容;可在网关上设置 OPENSHELL_TELEMETRY_ENABLED=false,Helm 安装则设置 server.telemetryEnabled=false,也可在编译时完全移除遥测。
  • 软件会自动获取、访问外部材料,这些材料不随软件分发,受各自条款和许可约束;需自行确认其安全性与适用性。
  • 项目采用 Apache-2.0 许可。

本作品整理自 GitHub 开源项目 NVIDIA/OpenShell,原作者 @NVIDIA,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v0.1.6当前版本

    网关默认要求 OIDC、mTLS 或 JWT 认证才启动;新沙箱改为由沙箱主动连接 supervisor,需同步升级 supervisor 与运行时;新增沙箱挂起与恢复命令。

评论