自主 AI 代理功能強大,但也伴隨著顯著的風險。具有 shell 存取權限的代理可能會意外刪除檔案、發送非預期的網路請求或洩露敏感資料。傳統的容器化技術(Docker、gVisor)並非為 AI 應用程式所需的細粒度、代理專屬安全政策而設計。NVIDIA OpenShell 以一個專為 AI 代理打造的沙盒執行環境來填補這一空白。
OpenShell 發佈於 github.com/NVIDIA/OpenShell,是 NVIDIA 針對代理安全性的開源解答。它提供了一個隔離的執行環境,代理在其中根據宣告式 YAML 政策運作,這些政策精確地控制檔案系統存取、網路通訊、行程執行和推論呼叫。該沙盒以獨立行程方式運行,擁有最小權限,並透過 Linux 安全模組在核心層級執行政策。
OpenShell 與通用沙盒的不同之處在於其 AI 感知設計。它能理解代理專屬的操作,如模型推論呼叫、工具調用和上下文視窗邊界。政策可以設定為允許代理讀取專案目錄但禁止寫入,或允許呼叫特定 API 端點但阻擋所有其他網路流量。這種細粒度對於代理處理敏感資料的生產部署至關重要。
什麼是 NVIDIA OpenShell?
OpenShell 是一個為 AI 代理設計的開源沙盒執行環境。它透過宣告式 YAML 政策提供安全隔離,控制檔案系統、網路、行程和推論操作。由 NVIDIA 開發,其設計與代理無關——相容於 Claude Code、LangChain 代理、AutoGPT 和自訂代理實作。
OpenShell 的沙盒是如何運作的?
OpenShell 使用 Linux 核心安全功能來強制執行代理隔離。
| 安全領域 | 控制項目 | 執行方式 |
|---|---|---|
| 檔案系統 | 每個路徑的讀/寫/執行 | Linux seccomp + Landlock |
| 網路 | 按主機名稱、連接埠、協定允許/封鎖 | eBPF + nftables |
| 行程 | 限制 fork/exec、訊號功能 | Linux seccomp-bpf |
| 推論 | 按模型端點允許/封鎖 | 應用層攔截 |
| 環境 | 遮蔽環境變數、機密 | 行程層隔離 |
| 時間 | 限制執行牆上時鐘時間 | 行程 cgroup 配額 |
每個政策被編譯成一個在核心中運行的 seccomp 過濾器,使執行既快速又安全。
OpenShell 政策長什麼樣子?
政策使用 YAML 定義,語法清晰且宣告式:
name: "code-review-agent"
version: "1.0"
filesystem:
read:
paths: ["/home/user/projects", "/usr/share/doc"]
write: []
execute: []
network:
allow:
- hostname: "api.github.com"
port: 443
protocol: "tcp"
deny:
- hostname: "*"
port: "*"
protocol: "*"
process:
max_forks: 10
allowed_executables: ["/usr/bin/git", "/usr/bin/python3"]
inference:
allowed_models:
- "nvidia/nemotron-4-340b-instruct"
max_tokens_per_call: 4096
max_calls_per_session: 100
此政策將程式碼審查代理限制為僅讀取專案檔案、僅呼叫 GitHub API 和 NVIDIA 推論端點,以及僅執行 git 和 Python。
支援哪些 AI 代理?
OpenShell 設計為可與任何能以子行程方式啟動的 AI 代理搭配使用。
| 代理 | 整合方式 | 狀態 |
|---|---|---|
| Claude Code | 在沙盒內啟動 CLI | 已支援 |
| LangChain 代理 | Python SDK 整合 | 已支援 |
| AutoGPT | 在沙盒內啟動 CLI | 已支援 |
| 自訂 Python 代理 | OpenShell Python API | 原生支援 |
| 任何代理二進位檔 | oshell run | 通用 |
oshell CLI 工具可在沙盒上下文中啟動任何指令:
# 在受限沙盒中啟動 Claude Code
oshell run --policy code-review.yaml -- claude code
# 啟動自訂代理
oshell run --policy data-analysis.yaml -- python agent.py
如何安裝 OpenShell?
安裝需要一個 Linux 系統,其核心支援所需的安全模組:
# 下載最新版本
curl -LO https://github.com/NVIDIA/OpenShell/releases/latest/download/oshell
chmod +x oshell
sudo mv oshell /usr/local/bin/
# 驗證安裝
oshell --version
Docker 映像檔也可用於非 Linux 開發環境,但完整的安全執行需要原生 Linux 核心功能。
OpenShell 使用什麼授權?
OpenShell 採用 Apache License 2.0 發佈,這是 NVIDIA 的標準開源授權。這允許在商業和非商業專案中自由使用、修改和分發,並享有 NVIDIA 的專利保護。
常見問題
什麼是 NVIDIA OpenShell?
OpenShell 是 NVIDIA 推出的開源 AI 代理沙盒執行環境,透過 Linux 核心功能強制執行安全政策。它透過宣告式 YAML 政策控制檔案系統、網路、行程和推論操作。
OpenShell 沙盒是如何運作的?
它使用 Linux seccomp、Landlock、eBPF 和 cgroups 在核心層級執行細粒度政策。每個政策被編譯成一個 seccomp 過濾器,以實現快速、安全的執行。
OpenShell 政策長什麼樣子?
政策以 YAML 定義,包含檔案系統(讀/寫/執行路徑)、網路(允許/封鎖主機名稱和連接埠)、行程(fork 限制和允許的可執行檔)以及推論(允許的模型和代幣限制)等部分。
支援哪些 AI 代理?
Claude Code、LangChain 代理、AutoGPT 以及任何能以子行程運行的自訂代理。oshell run 指令可將任何二進位檔或腳本包裝在沙盒上下文中。
如何安裝 OpenShell?
從 GitHub Releases 下載 oshell 二進位檔,設為可執行,並放置在 PATH 中。需要一個核心支援 seccomp、Landlock 和 eBPF 的 Linux 系統。
延伸閱讀
graph TD
A[AI 代理] --> B[OpenShell 沙盒]
B --> C{政策執行器}
C --> D[seccomp 過濾器]
C --> E[Landlock 檔案系統]
C --> F[eBPF 網路]
C --> G[cgroup 限制]
D --> H[核心]
E --> H
F --> H
G --> H
H --> I[系統呼叫]
H --> J[檔案操作]
H --> K[網路封包]
H --> L[行程建立]flowchart LR
subgraph 政策宣告
A[YAML 政策] --> B[檔案系統規則]
A --> C[網路規則]
A --> D[行程規則]
A --> E[推論規則]
end
subgraph 核心執行
B --> F[Landlock]
C --> G[eBPF]
D --> H[seccomp]
E --> I[應用攔截]
end
subgraph 結果
F --> J[允許]
G --> J
H --> J
I --> J
F --> K[拒絕]
G --> K
H --> K
I --> K
end
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!