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、网络工具等)。
控制代理的行为
- 创建沙箱 – 以无出站网络连接开始。
- 应用策略 – 一个简短的 YAML 文件描述允许的主机、HTTP 方法、文件路径等。
- 热重载 –
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
- 项目
- 项目
- 项目
- 项目