OpenShell 是 NVIDIA 开源的自主 AI 代理安全运行时,用 Rust 编写。它通过内核级隔离沙箱和形式化验证策略变更,管控代理对文件、系统调用、网络与凭据的访问,并支持多语言 SDK、Kubernetes 与扩展机制。
项目做什么
该项目旨在为成规模运行的自主 AI 代理提供安全、私密的执行环境。代理在完成任务时常常需要读取文件、安装软件包、调用外部 API 并使用凭据,OpenShell 允许这些能力存在,但通过策略声明与强制实施,避免代理获得对数据、机密和网络的不受限访问。README 显示其定位是运行时基础设施,而非单个代理框架或模型服务;它由网关、监督器和沙箱等组件构成,并以 CLI、SDK 和 Kubernetes 部署方式接入现有工作流。
与同类方案相比
依据 README,OpenShell 的主要优势体现在三个方面:第一,内核级强制执行,每个代理运行在隔离沙箱中,文件访问、系统调用和网络连接均在运行时受策略约束,网络连接离开沙箱前必须通过策略检查;第二,凭据不暴露给代理,只在发往已批准端点的请求中注入;第三,策略变更在生效前用形式化验证标记高风险的新增访问,例如使用凭据访问新主机或调用新 API 方法,并等待人工审查。这些能力描述具体,但 README 未提供性能数据、横向对比或独立评测,因此相对其他方案的优势尚无法验证。
设计与创新
README 明确提到的较独特之处,是将内核级运行时策略执行与形式化验证结合到代理策略变更流程中。前者让每次文件访问、系统调用和网络连接都经过策略检查,后者在策略被批准前预判其将授予的新访问权限,从而在变更阶段引入人工复核环节。此外,项目还提供仅能在批准端点使用的凭据机制、面向代理的公开技能包,以及中间件、拦截器和计算驱动等扩展面。但 README 没有详细说明形式化验证的具体方法或与同类工具的技术差异,因此其创新程度和有效性尚无法独立验证。
适用场景
README 给出的适用场景包括:为自主编码或任务代理创建隔离沙箱并运行真实代理;通过策略控制代理的文件系统、网络和进程行为,并在代理需要新访问权限时进行审批;在 Kubernetes 上部署网关并借助 Helm 管理,前提是 CNI 支持 NetworkPolicy;让代理使用受端点限制的凭据和推理服务;通过 Python、TypeScript、Go、Rust SDK 将应用接入网关;利用中间件、拦截器和计算驱动进行扩展;以及按照教程逐步尝试网络策略和代理工作流。支持平台为 Linux、Apple Silicon 上的 macOS,以及实验性的 Windows WSL 2。
谁会受益
对有自主代理部署需求的团队而言,OpenShell 提供了可操作的安全管控路径。README 说明其安装方式为脚本一键安装,随后可创建默认 Ubuntu 最小沙箱;要运行真实代理,可参照官方教程使用 OpenCode 配合免费 OpenRouter 模型,并体验按需批准新访问的流程。文档覆盖沙箱、策略、凭据提供方、网关、Kubernetes 部署和可扩展性等主题,SDK 覆盖四种语言,降低了接入成本。其技能包允许编码代理直接操作 CLI 和策略,也有助于把项目集成进代理驱动的工作流。
使用前需要注意
README 中可确认的限制包括:运行需要 Linux、Apple Silicon 上的 macOS 或实验性的 Windows WSL 2,并依赖 Docker、Podman 或主机虚拟化;Kubernetes 部署要求 CNI 能够执行 NetworkPolicy;默认沙箱镜像不含任何代理,需要自行安装或参照教程配置。README 未给出性能基准、资源开销、代理并发规模上限,也未与其他沙箱或策略引擎做对比,因此这些方面无法评估。形式化验证的具体覆盖范围和可靠性没有细节说明。此外,项目会收集匿名遥测,可通过配置关闭或编译排除;软件按“AS IS”提供,不附带任何担保。
本文基于抓取时的项目 README 和仓库简介整理;功能、限制与文档可能随项目更新而变化。