NVIDIA/OpenShell

OpenShell is the safe, private runtime for autonomous AI agents.

OpenShell – 自主 AI 代理人的沙箱运行时

是什么 – OpenShell(Apache-2.0)是一个轻量级、策略驱动的平台,可让您在隔离的容器中运行 LLM 驱动的代理(Claude、OpenCode、Codex、GitHub Copilot 等)。每个沙箱都由声明式 YAML 策略保护,控制文件系统访问、网络出站、系统调用和模型 API 路由,防止代理泄露凭证或窃取数据。

为何重要 – 随着自主代理能力的增强,其安全风险也越来越大。OpenShell 为开发者提供了一种方式,既能为代理提供所需的计算资源(CPU、GPU,甚至 MicroVM),又能确保主机和企业资源的安全。


核心概念

组件 角色
网关 控制平面 API,用于创建、销毁和监控沙箱;同时也是认证边界。
沙箱 运行代理及其工具链的容器(Docker/Podman/MicroVM/K8s)。
策略引擎 强制执行在 YAML 中定义的文件系统、进程、网络和推理策略。
隐私路由器 拦截 LLM 调用,剥离用户机密信息,注入受管理的提供者凭证,并转发到选定的模型后端。

快速入门(Linux/macOS/WSL-2)

# 安装二进制文件(推荐)
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh

# 创建一个包含代理(例如 Claude Code)的沙箱
openshell sandbox create -- claude

# 在沙箱内打开一个 shell
openshell sandbox connect <sandbox-name>

沙箱自带一个最小工具集(Python 3.14、Node 22、git、vim、网络工具等)。

控制代理的行为

  1. 创建沙箱 – 以出站网络连接开始。
  2. 应用策略 – 一个简短的 YAML 文件描述允许的主机、HTTP 方法、文件路径等。
  3. 热重载openshell policy set … 可在不重启的情况下更新运行中沙箱的网络或推理规则。
# examples/sandbox-policy-quickstart/policy.yaml
network:
  allow:
    - host: api.github.com
      methods: [GET]
process:
  deny: ["sudo", "chmod"]
filesystem:
  readOnly: ["/home/user/.config"]

README 中展示了实时演示:在策略应用前,对 GitHub 的 curl 请求被阻止。

提供者管理(凭证)

提供者是以名称命名的 API 密钥或服务账户令牌的集合。OpenShell 会从您的环境中发现支持的代理的密钥,并作为仅运行时的环境变量注入——它们永远不会触及沙箱的文件系统。

openshell provider create --type anthropic --name claude_key   # 自动获取 ANTHROPIC_API_KEY
openshell sandbox create --provider claude_key -- claude

GPU 支持(实验性)

创建沙箱时添加 --gpu 可将主机 GPU 透传(需要 NVIDIA 驱动、Container Toolkit 和包含所需 CUDA 库的沙箱镜像)。

openshell sandbox create --gpu -- claude

可扩展性

  • 自定义沙箱openshell sandbox create --from ./my-sandbox-dir 或从任意 OCI 镜像创建。
  • Helm 图表 – 实验性 Kubernetes 部署(helm install openshell oci://ghcr.io/nvidia/openshell/helm-chart)。
  • 自带容器 – 请参阅 examples/bring-your-own-container 文件夹以构建 GPU 支持的镜像。

用户端工具

命令 功能
openshell sandbox create … 使用选定代理创建新沙箱。
openshell sandbox connect <name> 类似 SSH 的终端连接到沙箱。
openshell policy set <name> --policy file.yaml 在运行中的沙箱上应用或更新策略。
openshell provider create … 注册凭证以供后续注入。
openshell term TUI(k9s 风格)仪表板,用于监控网关、沙箱和提供者。

何时使用 OpenShell

  • 安全的自主代理 – 在不泄露凭证的情况下运行代码生成或决策型机器人。
  • RAG 流水线 – 允许 LLM 从内部服务获取数据,同时策略阻止任何意外的出站调用。
  • GPU 加速推理 – 在沙箱内微调或运行本地模型,保持主机环境干净。
  • 企业合规 – 声明式策略为审计人员提供清晰、版本控制的记录,说明每个代理被允许执行的操作。

获取帮助与贡献

  • 讨论 – GitHub Discussions 用于使用问题。
  • 问题 – Bug 报告和功能请求(必须包含用户故事和验收标准)。
  • 代理优先工作流 – 仓库附带 .agents/skills/,可让 AI 助手帮助诊断问题、生成策略或搭建新功能。
  • 遥测 – 可选的匿名使用统计;可在运行时或编译时禁用。

总结 – OpenShell 是一个真正的开源平台,允许开发者在隔离容器中安全运行自主 LLM 代理,通过细粒度、可热重载的策略控制文件、进程、网络和推理行为。它支持本地 GPU 工作负载、Kubernetes 部署,并提供丰富的 CLI/TUI 以应对日常操作。

相关

  • Dispatch
  • 项目
  • 项目
  • 项目
  • 项目