OpenShell 是 NVIDIA 开发的「面向自主 AI 智能体的安全、私密运行时」。其定位是为大量自主运行的 AI 智能体提供受控执行环境,让智能体在具备实际能力的同时,不至于获得对用户数据、密钥和网络的完全访问权。
一、用途与核心思路 智能体在能够读取文件、安装软件包、调用 API 并使用凭证时最为有用。OpenShell 的思路是:由用户通过「策略(policy)」声明每个智能体可以触碰的资源范围,然后由 OpenShell 在运行时强制执行该策略。这样一来,智能体获得能力,但访问边界由策略严格限定。
二、执行机制 OpenShell 通过两种方式治理智能体的行为:
- 内核级强制执行:对每次文件访问、系统调用和网络连接在运行时执行策略。每个智能体运行在隔离沙箱中,内核控制限制其可访问的文件和可发起的系统调用;每个网络连接在离开沙箱前都要通过策略检查。智能体不会看到真实凭证,OpenShell 仅将凭证添加到发往已批准端点的请求中。
- 形式化验证的策略变更:在策略变更被批准之前,OpenShell 使用形式化验证来标记该变更将授予的高风险新访问,例如使用凭证访问新主机、或调用新的 API 方法,这类变更会等待人工审核。 此外,文档中提供了架构说明(Architecture),描述网关(gateway)、监管器(supervisor)与沙箱(sandbox)如何协同工作。
三、运行环境与安装 运行 OpenShell 需要:Linux、Apple Silicon 上的 macOS,或带 WSL 2 的 Windows(实验性),另外还需要 Docker、Podman 或主机虚拟化,具体见支持矩阵(Support Matrix)。 安装程序会设置 CLI 和一个本地网关(local gateway)。默认沙箱镜像是未安装任何智能体的最小 Ubuntu。若要运行真实智能体,可依照「Run Your First Agent」教程操作:该教程使用 OpenCode 对接一个免费的 OpenRouter 模型,并演示如何在智能体需要时批准新的访问。
四、可探索的功能面 文档列出以下进一步探索方向:
- Sandboxes:镜像、运行时、GPU 与生命周期。
- Policies:文件系统、网络与进程规则,并配有 advisor 与 prover 用于审查变更。
- Providers:仅在已批准端点生效的凭证,包括推理(inference)。
- Gateways:沙箱、策略与访问的控制平面。
- Kubernetes:使用 Helm 部署网关;CNI 必须强制执行 NetworkPolicy。
- Extensibility:中间件(middleware)、拦截器(interceptors)与计算驱动(compute drivers)。
- Tutorials:分步的策略与智能体演练。
- Prerelease and development builds:可尝试即将发布的版本或 main 分支最新提交。
五、gRPC API 测试 网关提供 gRPC reflection v1 协议。启动本地明文网关后,可直接使用 grpcurl 而无需检出或提供 proto 文件;服务列表包含公开的 openshell.v1.OpenShell API。reflection 不会广播网关内部的 compute-driver、credential-driver、interceptor 或 middleware 服务。对于 TLS 网关,需去掉 -plaintext 并提供部署所需的 CA 与客户端证书选项。
六、面向编码智能体的技能 可安装公开的 OpenShell skills 供你的编码智能体使用。这些技能会教智能体驱动 OpenShell CLI、编写沙箱策略、调试网关与推理路由。它们位于 skills/ 目录,无需检出 OpenShell 源码即可使用。
七、SDK 与版本 SDK 用于将应用连接到 OpenShell 网关,但不安装 CLI。SDK 与网关应尽量使用同一 OpenShell 版本。
八、社区与反馈渠道
- 问题与讨论:GitHub Discussions
- 缺陷报告与功能请求:GitHub Issues,并使用 issue 模板
- 安全漏洞:遵循 SECURITY.md,不要开 GitHub Issue
- 路线图:OpenShell Roadmap 与 RFC board
- 云端试用:Brev Launchable
九、开发方式与遥测 OpenShell 采用「agent-first」方式构建:它使用与其所赋能的相同的智能体驱动工作流来开发。CONTRIBUTING.md 提供开发环境搭建与贡献流程,AGENTS.md 提供仓库编码规范。 OpenShell 会收集匿名遥测数据,仅限于运营类别与计数,用于改进项目。它不会收集沙箱名称、主机名、文件路径、提示词、凭证、提供商或模型名称,也不收集用户内容。可通过在网关上设置 OPENSHELL_TELEMETRY_ENABLED=false,或在 Helm 安装中设置 server.telemetryEnabled=false 来禁用;也可以将遥测完全编译剔除。详见 Telemetry 及社区遥测报告。
十、声明与免责 该软件会自动检索、访问或与外部材料交互。检索到的材料不随本软件分发,仅受各自独立的条款、条件和许可证约束。用户需自行负责查找、审阅并遵守所有适用的条款、条件和许可证,并核实所检索材料对其具体用例的安全性、完整性与适用性。本软件按「AS IS」提供,不附带任何形式的保证。作者对检索到的材料不作任何陈述或保证,对因使用或无法使用本软件或检索材料而产生的任何损失、损害、责任或法律后果不承担责任。使用本软件与检索材料风险自负。 项目采用 Apache License 2.0 许可。
(说明:以上为根据所提供资料整理的产品介绍,资料未提及的功能、收费、价格或使用效果暂未提供。)