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
- 專案
- 專案
- 專案
- 專案