OpenShell 为 AI Agent 提供内核级隔离沙箱,声明式策略控制文件、网络和系统调用访问,支持形式化验证。
OpenShell 0.1.x 新版发布:稳定的发布节奏、新的隔离原语、扩展的插件表面,以及新的 API。阅读 0.1.0 升级指南。
OpenShell 是面向自主 AI Agent 舰队的安全、私密运行时。Agent 在能够读取文件、安装包、调用 API、使用凭证时最为有用。OpenShell 赋予它们这些能力,同时不给予它们对数据、密钥或网络的无限访问权。你在策略中声明每个 Agent 可以访问什么,OpenShell 负责执行这些策略。
OpenShell 通过两种方式管理 Agent 的行为:对内核进行插桩,在运行时对每一次文件访问、系统调用和网络连接执行策略检查;以及使用形式化验证来检查策略变更在应用之前会允许什么。
内核级执行。每个 Agent 运行在独立的沙箱中。内核控制限制它可以访问哪些文件、可以执行哪些系统调用,每条网络连接在离开沙箱前都要通过策略检查。Agent 从不接触真实凭证;OpenShell 只将凭证添加到发往已批准端点的请求中。
形式化验证的策略变更。在策略变更被批准之前,OpenShell 使用形式化验证来标记它将授予的潜在风险访问,例如携带凭证访问新主机或调用新的 API 方法,使这些变更等待人工审核。
参见 Architecture 了解 gateway、supervisor 和 sandbox 如何协同工作。
你需要 Linux、macOS on Apple Silicon,或 Windows 搭配 WSL 2(实验性支持),以及 Docker、Podman 或宿主机虚拟化。详见 Support Matrix。
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh
openshell sandbox create --name demo
安装程序会设置 CLI 和本地 gateway。默认沙箱镜像是精简的 Ubuntu,未安装任何 Agent。要运行真正的 Agent,请遵循 Run Your First Agent:它使用免费的 OpenRouter 模型运行 OpenCode,并演示如何在 Agent 需要时批准新的访问权限。
沙箱:镜像、运行时、GPU 和生命周期管理。
策略:文件系统、网络和进程规则,配合 advisor 和 prover 用于审查变更。
Provider:凭证,仅在已批准的端点生效,包括推理服务。
Gateway:沙箱、策略和访问的控制平面。
Kubernetes:使用 Helm 部署 gateway。你的 CNI 必须强制执行 NetworkPolicy。
可扩展性:中间件、拦截器和计算驱动。
教程:逐步的策略和 Agent 演练。
预发布和开发构建:尝试即将发布的版本或 main 分支的最新提交。
为你的编码 Agent 安装公开的 OpenShell skills:
npx skills add NVIDIA/OpenShell
这些 skills 教会你的 Agent 操作 OpenShell CLI、编写沙箱策略,以及调试 gateway 和推理路由。它们位于 skills/ 目录中,无需检出 OpenShell 源码即可工作。
SDK 将应用程序连接到 OpenShell gateway。它们不安装 CLI。请尽量使用与 gateway 相同版本的 OpenShell SDK。
问题和讨论:GitHub Discussions
Bug 报告和功能请求:GitHub Issues,请使用 issue 模板
安全漏洞:遵循 SECURITY.md。请勿打开 GitHub Issue。
路线图:OpenShell Roadmap 和 RFC 看板
云端试用:Brev Launchable
OpenShell 以 Agent 为先构建:它使用相同的 Agent 驱动工作流进行开发。参见 CONTRIBUTING.md 了解开发环境配置和贡献工作流,以及 AGENTS.md 了解贡献者 Agent skills 和工作流链。
OpenShell 收集匿名遥测数据,仅限于操作类别和计数,以帮助改进项目。它不收集沙箱名称、主机名、文件路径、prompt、凭证、provider 或模型名称,或用户内容。禁用方式:在 gateway 上设置 OPENSHELL_TELEMETRY_ENABLED=false,Helm 安装则设置 server.telemetryEnabled=false。你也可以完全编译掉遥测功能。详见 Telemetry 及社区遥测报告了解已发布的用量趋势。
Notice and Disclaimer
本软件会自动检索、访问或与外部材料交互。这些检索的材料不随本软件分发,完全由单独的条款、条件和许可管辖。你全权负责查找、审查并遵守所有适用的条款、条件和许可,并验证任何检索材料对你的特定用例的安全性、完整性和适用性。本软件按"原样"提供,不提供任何明示或暗示的保证。对于任何检索材料,作者不做任何陈述或保证,且不对因你使用或无法使用本软件或任何检索材料而产生的任何损失、损害、责任或法律后果承担任何责任。使用本软件和检索材料的风险由你自行承担。
本项目基于 Apache License 2.0 许可。