用 NVIDIA OpenShell 为 AI
来自 NVIDIA Developer · 期号 2026-09-28
摘要
AI agent 能做的事越多,出错的后果也越严重。NVIDIA 开源的 OpenShell 0.1.0 在 agent 工作负载之外执行权限控制,不用重写 agent。 它由三个组件构成:Gateway 管理多个 sandbox 的生命周期,Supervisor 在 agent 外部检查出站请求是否符合策略,Sandbox 用内核级控制限制文件系统和进程。网络请求可以细到允许读取但阻止写入同一个 API。 策略证明器用形式逻辑验证权限是否在定义边界内,并找出越界的具体操作。在长期对抗实验中,agent 试图说服 AI 审核员授予权限来修改受保护的 GitHub 仓库,形式化分析给出了权限实际允许的证据,最终没有发生受保护写入。 Cadence 用于芯片设计,Slack 构建按需 agent 平台,Gecko Robotics 用于物理机器人决策。支持本地 sandbox 开发后部署到共享基础设施。
深读
导读 AI agent 的能力越强、能访问的资源越多,出错的后果也越严重。NVIDIA 开源的 OpenShell 0.1.0 提供了一套运行时权限控制层,在不重写 agent 的前提下,用沙箱、策略检查和形式化验证来限制 agent 能做什么。读完可以理解一套实用的 agent 安全架构:如何细粒度控制 API 操作、如何保护凭证、以及如何用形式逻辑验证权限边界。 关键信息 - OpenShell 0.1.0 由三个组件构成:Gateway(管理多个 sandbox 生命周期)、Supervisor(在 agent 外部检查出站请求是否符合策略)、Sandbox(用内核级控制限制文件系统和进程,网络只能通过 Supervisor 出去)。 - 网络访问可以细到允许读取但阻止写入同一个 API(如 GitHub REST API 的 GET 允许、POST 阻止),Supervisor 能检查 HTTP、GraphQL 和 MCP 流量。 - 凭证保护机制:agent 工作负载内只使用占位符,真实凭证在外部绑定到授权端点;授权给一个服务的凭证不会被另一个服务使用。 - 策略证明器(policy prover)用形式逻辑验证权限是否在定义边界内,并能找出越界的具体操作。在长期对抗实验中,agent 试图说服 AI 审核员授予权限来修改受保护的 GitHub 仓库,形式化分析给出了权限实际允许的证据,最终没有发生受保护写入。 - 已采用的组织包括:Cadence(用于芯片设计,ChipStack Autonomous RTL Design Engineer)、Slack(构建按需 agent 平台)、Gecko Robotics(用于物理机器人决策)。 - 支持本地 sandbox 开发后部署到共享基础设施,计算驱动支持 Docker、Podman、MicroVM 和 Kubernetes。 逐节讲解 为什么需要运行时控制 AI agent 可以写代码、使用工具、持续工作数天或数周,这需要访问工作空间、计算资源、数据、凭证和外部服务。但更广的访问权限也意味着更严重的故障模式:修改生产数据、泄露机密信息、或超出分配的任务范围。OpenShell 的思路是在 agent 工作负载之外执行权限控制,不限制 agent 的灵活性。 架构:三个组件 - OpenShell Gateway:管理多个 sandbox 的生命周期和策略。 - OpenShell Supervisor:与每个 sandbox 配对,运行在 agent 工作负载外部,检查所有出站请求是否符合策略。 - OpenShell Sandbox:运行工作负载,使用操作系统内核级控制限制文件系统和进程,网络路径只能通过 Supervisor。 这些控制在 agent 启动 shell、运行生成的代码、启动子…