OpenShell:用於安全 LLM 代理的進程外執行
OpenShell:用於安全 LLM 代理的進程外執行
OpenShell 透過進程外執行提供安全的代理執行環境
OpenShell 是一層安全與執行時機制,讓 LLM 代理能在信任邊界內部署。與依賴系統提示的傳統代理安全方法不同,OpenShell 透過「監督者」在代理程式之外執行政策,確保即使代理因提示注入或越獄而被破壞,安全限制仍然保持完整。
NemoClaw 藍圖模式
NemoClaw 是一套開放藍圖,用於構建專門化的代理。一個完整的 NemoClaw 藍圖包含三個可互換的組件:
- Harness(控制環):負責規劃與工具呼叫的代理迴圈(例如 OpenClaw、Hermes 或 LangChain DeepAgents)。
- Model(模型):推理引擎,通常是 NVIDIA Nemotron 系列模型。
- Runtime(執行時):OpenShell,負責沙箱、政策執行與網路隔離。
雖然 Harness 與 Model 可依使用情境替換,OpenShell 則作為不變的執行時,確保代理在既定的安全參數內運作。
LangChain DeepAgents 作為 Harness
LangChain 的 Deep Agent 框架是一個與模型無關的 Harness,專為長期任務設計。它實作了可投入生產的代理模式,包括:
- 規劃迴圈:透過待辦清單結構化追蹤工作流程。
- 子代理:主代理能為子任務產生專門的子代理。
- 整合檔案系統:讀寫檔案以管理狀態與資料的能力。
與 OpenShell 結合時,這些能力會被限制在信任邊界內,防止代理存取主機的敏感資料。
進程外執行 vs. 基於提示的安全
傳統的代理安全依賴系統提示(例如「你不得執行 X」)。由於 LLM 本質上是條件機率模型,透過提示注入即可讓它忽略這些規則。
OpenShell 以 進程外執行 取代此方式。監督者在代理啟動前先行啟動,並將代理作為受限的子程序執行。監督者會在每一次動作(網路連線、檔案寫入或推理呼叫)執行前,根據政策進行評估。因為執行檢查發生在代理程式之外,代理無法繞過這些規則,無論其內部狀態或指令如何。
監督者控制的四大支柱
OpenShell 監督者管理以下攻擊面向:
1. 網路隔離
OpenShell 採取「預設拒絕」策略。除非目的地明確加入允許清單(例如特定的搜尋 API 或推理端點),否則任何流量皆無法離開沙箱。這為合規團隊提供可驗證的保證,確保資料不會外流至未授權的外部伺服器。
2. 檔案系統沙箱
代理在專屬工作區內運作。主機目錄不會掛載到沙箱中,因而代理無法存取主機的 home 目錄、SSH 金鑰或環境檔案。
3. 受控的推理呼叫
所有模型呼叫皆經由受控的內部端點 (inference.local) 轉送。監督者決定實際的路由目的地,確保外部 LLM API 的供應商憑證永不暴露給代理。
4. 憑證管理
API 金鑰不會存放在沙箱內的磁碟上。它們僅在執行時由閘道透過監督者依設定的政策路徑注入。若代理被破壞,磁碟上不會有持久的機密可被竊取。
實作 OpenShell 政策
OpenShell 的政策以 YAML 檔案定義,因而可視為程式碼(可在版本庫中追蹤、透過 Pull Request 進行審查)。
- 網路與推理政策:可熱更新,無需重新啟動沙箱。
- 檔案系統政策:在沙箱啟動時鎖定,若要變更必須重新建立沙箱。
要將政策部署至沙箱,使用 openshell policy set 指令,將沙箱名稱與特定 YAML 政策檔案關聯。
摘要: OpenShell 透過在代理程式之外的監督者,對網路、檔案與憑證政策進行執行,為 LLM 代理提供安全的執行時環境,防止提示注入與越獄攻擊。
標題: OpenShell:用於安全 LLM 代理的進程外執行
Sources
- undefinedOpenShell Agents