返回 文章 学习 CMS 文章

OpenShell:为自主AI代理集群提供安全私密的运行时

OpenShell 让 AI 代理在严格策略控制下安全使用系统资源,兼顾能力与隐私。

AI代理安全运行时沙箱策略执行
成长分 / 100 68 综合收获、行动、留存与影响

OpenShell:为自主AI代理集群提供安全私密的运行时
为什么值得读了解如何在不牺牲安全性的前提下,赋予 AI 代理文件访问、网络调用和凭证使用能力。

学习内核级策略执行与形式化验证结合的安全机制,为代理运行时设计提供参考。

关键洞察
  1. OpenShell 通过内核插桩在运行时对每次文件访问、系统调用和网络连接执行策略。
  2. 每个代理运行在隔离沙箱中,网络连接需通过策略检查,且代理看不到真实凭证。
  3. 策略变更在应用前会经过形式化验证,标记出高风险的新访问权限,等待人工审核。
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:8286

OpenShell

许可证

PyPI

安全策略

文档

重要

OpenShell 0.1.x 新增内容:稳定的发布节奏、新的隔离原语、扩展的扩展面,以及新的 API。阅读 0.1.0 升级指南。

OpenShell 是用于成群的自主 AI 代理的安全、私密运行时。代理在能够读取文件、安装软件包、调用 API 和使用凭据时最为有用。OpenShell 赋予它们这种能力,同时不让它们无限制地访问你的数据、机密或网络。你在策略中声明每个代理可以接触什么,OpenShell 会强制执行。

工作原理

OpenShell 通过两种方式管控代理可以做什么:它在运行时对内核进行插桩,对每一次文件访问、系统调用和网络连接强制执行策略;并使用形式化验证,在策略变更被应用之前检查该变更将允许什么。

  • 内核级强制执行。每个代理都在隔离的沙箱中运行。内核控制限制它可以访问哪些文件、可以发起哪些系统调用,并且每个网络连接在离开沙箱之前都要经过策略检查。代理永远看不到真实凭据;OpenShell 只将它们添加到发往已批准端点的请求中。
  • 经形式化验证的策略变更。在策略变更被批准之前,OpenShell 使用形式化验证来标记该变更将授予的风险性新访问,例如使用凭据访问新主机或调用新的 API 方法,因此这些变更会等待人工审查。

参见架构了解网关、监督器和沙箱如何协同工作。

快速开始

你需要 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,未安装任何代理。要运行真实代理,请遵循运行你的第一个代理:它针对免费的 OpenRouter 模型运行 OpenCode,并展示如何在代理需要时批准新的访问。

进一步探索

  • 沙箱:镜像、运行时、GPU 和生命周期。
  • 策略:文件系统、网络和进程规则,以及用于审查变更的顾问和证明器。
  • 提供方:仅在已批准端点生效的凭据,包括推理。
  • 网关:沙箱、策略和访问的控制平面。
  • Kubernetes:使用 Helm 部署网关。你的 CNI 必须强制执行NetworkPolicy。
  • 可扩展性:中间件、拦截器和计算驱动。
  • 教程:分步的策略和代理演练。
  • 预发布和开发构建:试用即将发布的版本或main上的最新提交。

代理技能

为你的编码代理安装公开的 OpenShell 技能:

npx skills add NVIDIA/OpenShell

这些技能教会你的代理驱动 OpenShell CLI、编写沙箱策略,以及调试网关和推理路由。它们位于skills/,无需检出 OpenShell 源代码即可使用。

SDK

SDK 将应用程序连接到 OpenShell 网关。它们不会安装 CLI。尽可能让 SDK 和网关使用相同的 OpenShell 版本。

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

社区

OpenShell 以代理优先的方式构建:它使用与它所支持的工作流相同的代理驱动工作流来开发。参见CONTRIBUTING.md了解开发设置和贡献工作流,参见AGENTS.md了解仓库编码约定。

遥测

OpenShell 收集匿名遥测,仅限于运营类别和计数,以帮助改进项目。它不收集沙箱名称、主机名、文件路径、提示词、凭据、提供方或模型名称,或用户内容。要禁用它,请在网关上设置OPENSHELL_TELEMETRY_ENABLED=false,或对 Helm 安装设置server.telemetryEnabled=false。你也可以完全编译掉遥测。详见遥测,已发布的使用趋势见社区遥测报告。

声明与免责声明

本软件会自动检索、访问或与外部材料交互。这些检索到的材料不随本软件分发,仅受单独的条款、条件和许可证约束。你全权负责查找、审查并遵守所有适用的条款、条件和许可证,并负责验证任何检索到的材料对你特定用例的安全性、完整性和适用性。本软件按“原样”提供,不附带任何形式的保证。作者不对任何检索到的材料作出任何陈述或保证,也不对你的使用或无法使用本软件或任何检索到的材料所导致的任何损失、损害、责任或法律后果承担任何责任。使用本软件和检索到的材料需自行承担风险。

许可证

本项目依据Apache License 2.0许可。