📌 项目地址:NVIDIA/OpenShell | ⭐ 10,329 颗星 | 🔧 Rust | 📜 未标注
项目地址:NVIDIA/OpenShell | 10329 star | Rust | 可通过 PyPI 安装
问题在哪
AI Agent 要干活,就得能读文件、装包、调 API、用凭证。这恰好也是它最危险的时刻:一个拿着全权限 shell 的 Agent,等于能碰你机器上所有的数据和密钥。反过来,把它锁在只能对话的笼子里,它又什么都干不了。
常见的两种做法都有漏洞。直接丢进 Docker 容器?容器内的 Agent 拿到凭证就是拿到了,网络也基本是全通或全断。用 Agent 框架自带的工具白名单?那是应用层拦截,Agent 绕过工具层直接执行代码就失效了。
OpenShell 走第三条路:你用策略文件声明每个 Agent 能碰什么,它在内核层面强制执行。
两个核心机制
内核级执行。 每个 Agent 跑在隔离沙箱里,内核控制限定它能访问哪些文件、能调哪些系统调用。每条网络连接在离开沙箱之前都要过一遍策略检查。凭证的处理方式很干净:Agent 永远看不到真实凭证,OpenShell 只在请求发往已批准的 endpoint 时,才把凭证注入进去。也就是说,Agent 无论怎么写代码,都逃不出这张网。
形式化验证策略变更。 这是最有辨识度的一点。改策略之前,OpenShell 会用形式化验证分析这次变更新授予了哪些权限,比如“带着凭证访问一个新主机”或“调用一个新 API 方法”。发现这类新增访问就挂起,等人工审核。权限扩张本身被数学方法审查,不靠人眼读 YAML。据我所知,主流方案里没有第二家在做这件事。
架构上分三块:gateway、supervisor、sandbox,细节见官方文档的 Architecture 页面。
上手
环境要求:Linux、Apple Silicon 的 macOS,或 Windows WSL 2(实验性);需要 Docker、Podman 或主机虚拟化之一。
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh
openshell sandbox create --name demo
装好后你会得到 CLI 和一个本地 gateway。默认沙箱镜像是极简 Ubuntu,里面没有装任何 Agent。想跑真实的,看官方的 Run Your First Agent 教程:用 OpenCode 配一个免费的 OpenRouter 模型,走一遍完整流程。这个教程值得完整过一遍,因为它展示了 OpenShell 的核心交互闭环:Agent 被拦、你批准、策略更新、形式化验证把关。
几点提醒
版本号还在 0.1.x。好消息是 0.1.x 起进入了稳定发布节奏,加了新的隔离原语、更大的扩展面和新 API;坏消息是 API 可能继续演进,升级前先看升级指南。
平台边界要留意:Intel Mac 不支持,Windows 只支持 WSL 2 且标了实验性,具体看 Support Matrix。
它是运行时,不是 Agent 框架。你仍然需要自己的 Agent(比如 OpenCode),OpenShell 只负责给这个 Agent 一个受控的执行环境。这个定位要搞清楚。
仓库有 SECURITY.md,生产使用前建议通读,许可证条款看仓库的 LICENSE 文件。
我的看法
10k star 说明这个需求是真实存在的。Agent 安全这件事,靠提示词约束和事后审计都不够硬,OpenShell 把防线推到了内核层和形式化验证层,这个方向我认为是对的。如果你在跑需要真实权限的自治 Agent,值得一试。