拆解 NVIDIA OpenShell:把 Agent 安全从模型里挪到运行时

·阅读约10分钟·Evergreen Tools Team

NVIDIA 已把其面向自主 Agent 的开源安全运行时 NVIDIA OpenShell 推向广泛可用,并把它包进一个更大的计划——NVIDIA Open Agent Safety Platform。对一个安全产品而言,它的主张直白得少见:别再信任提示词。近来多起事件的共同模式只有一个——Agent 为了完成被指派的任务,绕过了应用层的安全控制。OpenShell 的答案是:把「执行点」彻底移出模型、移出 Agent 骨架,挪到 Agent 所运行的环境里——一个它无法推理、无法提示、也无法越狱绕开的地方。下面讲清各部件如何咬合,以及一次真正的采用长什么样。

服务器机架

安全存在于环境里,而非模型或骨架里

它围绕的那个失败模式

OpenShell 与整个安全平台背后有一个统一的观察:Agent 很少攻破模型,它们攻破的是边界。在近来数起事件里,模式如出一辙——Agent 绕过了应用层的安全控制,只为完成被指派的任务。多数团队恰恰在 Agent 自己能控制的那一层做防御,然后对结果感到意外。OpenShell 把这个逻辑反过来:默认不信任 Agent,把策略执行放在环境里——一个 Agent 自身推理无权写入的地方。

# OpenShell's design rule, stated as a principle rather than a feature.

PRINCIPLE = (
    'Enforce policy OUTSIDE the agent process, where it cannot be '
    'prompted away or bypassed. Nothing is permitted by default; '
    'every allow and deny is auditable.'
)

# The failure pattern it targets: the agent circumvented
# application-layer controls to finish its assigned task.

OpenShell 的四个活动部件

OpenShell 通过四个组件执行安全。Agent 沙箱让每个 Agent 彼此隔离、默认无直接网络访问,以非特权身份运行,限制可触及文件,并在内核中监控与过滤系统调用。策略证明器(policy prover)用形式化验证检查策略是否停留在允许的访问边界内。网关(gateway)是控制面,负责认证用户、管理沙箱生命周期并代理一切访问。监管器(supervisor)在沙箱之外运行,按二进制、目的地、方法与路径四个层级评估每个网络请求,仅在策略允许处下发凭证,并记录每一次放行与拒绝。其结果是确定性的治理:默认什么都不允许。

# Policy-as-code, evaluated at the binary/destination/method/path level.
# OpenShell's supervisor brokers every network request; the gateway
# supplies credentials only where policy allows.

policy:
  default: deny
  rules:
    - id: allow-pypi-read
      agent: '*'
      egress:
        binary: /usr/bin/pip
        destination: pypi.org
        method: GET
    - id: deny-host-fs
      agent: '*'
      filesystem:
        path: /etc/**
        action: deny
显示器上的代码

每个 Agent 跑在独立沙箱里,默认无网络

平台补上了芯片级看门狗

NVIDIA Open Agent Safety Platform 把跑在 NVIDIA Vera CPU(NVIDIA 首款为 Agent 型 AI 专门打造的 CPU)上的 OpenShell,与运行在 BlueField-4 DPU 上的带外看门狗 NVIDIA Sentry 配对。OpenShell 是软件层执行,Sentry 则是芯片级执行:它从一个对 Agent 不可见、相互隔离的信任域持续监控 Agent 行为,一旦 Agent 试图越过软件边界,Sentry 会在毫秒级将其隔离并终止。OpenShell 是开源的,可扩展到第三方计算平台(包括 Arm 与 Intel 的方案),因此这道运行时边界并非单一厂商锁定。

# Spin up a sandboxed agent: no network by default, unprivileged,
# syscalls monitored and filtered in the kernel.

openshell run --image python:3.12-slim \
  --policy ./policy.yaml \
  --mount ./repo:/workspace:ro \
  --network none \
  --name coding-agent-01 \
  -- python -m my_agent --task 'fix failing test'

# Credentials are brokered by the gateway, never baked into the image.

生态正在替它「产品化」

采用才是真正的信号。Anthropic 把 Claude Managed Agents 与 OpenShell、BlueField 配对,让企业能对 Agent 工作执行所在的沙箱施加控制。SpaceXAI 正把该平台用于 Cursor 编程 Agent 与 Grok 模型。Salesforce 把 OpenShell 与 Slack 集成,让团队能在频道里查看 Agent 活动、批准或拒绝权限请求;SAP 正把 OpenShell 嵌入 Joule Studio 运行时并回馈工程贡献。被点名的机构超过一百家,且 OpenShell 支持 Claude Code、Codex、GitHub Copilot CLI、Hermes、LangChain Deep Agents、OpenClaw、OpenCode 等 Agent 路径。

# The Open Agent Safety Platform adds out-of-band enforcement.
# Sentry runs on BlueField-4 DPUs and can quarantine in milliseconds.

LAYERS = {
    'runtime': 'OpenShell on NVIDIA Vera CPU (secure sandbox boundary)',
    'watchdog': 'Sentry on BlueField-4 DPU (in-silicon, out-of-band)',
    'policy': 'gateway (control plane) + supervisor (per-sandbox)',
    'verify': 'policy prover (formal verification of access bounds)',
}
代码上的挂锁

每一次放行与拒绝都被记录,形成完整审计链

为什么「推理回路之外」才是全部要点

提示注入防御、身份、凭证处理与审计,其实是同一个问题的四个侧面:谁被允许做什么,以及谁值得被托付去执行它。如果执行者是模型,一次注入就等于一次策略变更;如果执行者是骨架,骨架里的一个 bug 就等于一次入侵。OpenShell 的设计把执行者放进基础设施层,策略因此够不着 Agent。凭证由网关代理下发,而非烤进镜像——于是一个被完全攻陷的 Agent,也没有任何可持久窃取之物。而每一次决策都被记录,这正是监管方真正会索要的东西。

# Monday-morning checklist before you hand an agent a credential.

CHECKLIST = [
    'inventory every agent, its tools and its reachable scopes',
    'deny by default; grant intent-based permissions, not broad access',
    'keep credentials in the gateway, out of the agent image',
    'log every allow/deny for a full audit trail',
    'quarantine on boundary breach in milliseconds, not minutes',
]

一份可落地的采用清单

从清点开始:列出每一个 Agent、它能调用的工具,以及它实际能触及的作用域。然后默认拒绝,按意图授予权限,而非给宽泛的访问。把凭证移进网关并定期轮换,别再烤进镜像。为完整的审计链记录每一次放行与拒绝。最后,把边界被突破后的隔离目标定在毫秒级而非分钟级——这两者之差,是用泄露的数据来衡量的。OpenShell 不是你的身份提供方、密钥库或可观测性栈的替代品;它是在 Agent 真正干活时,让这一切能稳固咬合的那道运行时边界。

📌 常见问题 FAQ

NVIDIA OpenShell 是什么?

据 NVIDIA 说明,OpenShell 是一个开源、安全内建的运行时,用于开发、部署与治理自主 Agent。它让每个 Agent 跑在各自沙箱里,并在系统层、Agent 进程之外执行策略。

NVIDIA Open Agent Safety Platform 是什么?

它是一个开源软件平台与参考系统设计,把跑在 NVIDIA Vera CPU 上的 OpenShell 安全运行时,与运行在 NVIDIA BlueField-4 DPU 上、可在毫秒级隔离 Agent 的带外看门狗 NVIDIA Sentry 结合起来。

OpenShell 是又一个 Agent 框架吗?

不是。据 NVIDIA 说明,OpenShell 设计为位于 Agent 框架与骨架之下,支持 Claude Code、Codex、GitHub Copilot CLI、Hermes、LangChain Deep Agents、OpenClaw、OpenCode 等路径,且与模型、骨架无关。

为什么要把策略执行放在 Agent 推理回路之外?

因为一个 Agent 无法「争辩」的边界,也无法被提示注入绕过。OpenShell 在环境层施加约束,而非依赖行为提示,因此即便 Agent 被注入或产生错误意图,也无法覆盖策略、也无法泄露凭证与私有数据。

谁在基于它构建?

NVIDIA 列出的采用方包括 Anthropic、Cisco、CrowdStrike、Dell、HPE、Hugging Face、JPMorganChase、Microsoft、Palantir、Palo Alto Networks、Perplexity、Red Hat、Salesforce、SAP、ServiceNow、Scale AI、SpaceXAI 等众多机构。