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