Exec Host 重構計劃:靈活掌控你的指令執行環境
你是否曾經在開發 Agent 時感到糾結?想讓它執行指令,但又擔心權限開太大會出事。如果把執行環境鎖死在 Sandbox 裡,有時又綁手綁腳,沒辦法存取本機資源或特定的遠端節點。
這種在「安全」與「便利」之間的拉鋸,是每個開發自動化工具的人都會遇到的痛點。我們這次的重構計劃,就是為了讓你能在不同的執行主機之間無縫切換,同時保有完整的安全控制權。
需要準備的東西
Section titled “需要準備的東西”在開始之前,請確保你已經準備好以下環境(僅限源文檔提及內容):
- OpenClaw 基礎環境
- 已安裝 Node runner 的目標機器(若需使用
nodehost) - macOS, Linux 或 Windows 作業系統
Quick Start:5 分鐘配置指南
Section titled “Quick Start:5 分鐘配置指南”要控制指令在哪裡執行,你只需要調整 exec.host 和 exec.security 這兩個核心參數。
1. 選擇執行主機 (Host)
Section titled “1. 選擇執行主機 (Host)”你可以根據需求將 exec.host 設定為以下三種模式:
sandbox: 在 Docker 容器中執行(這是目前的預設行為)。gateway: 直接在 Gateway 所在的機器上執行。node: 透過 Bridge 在遠端的 Node runner 上執行。
2. 設定安全層級 (Security)
Section titled “2. 設定安全層級 (Security)”為了保護你的系統,你可以針對每個 Agent 或全域設定安全模式:
deny: 預設拒絕所有執行請求。allowlist: 僅允許符合白名單的指令。full: 允許所有指令(等同於之前的 elevated 模式)。
3. 配置權限儲存庫
Section titled “3. 配置權限儲存庫”所有的授權資訊都會存在 ~/.openclaw/exec-approvals.json。這是一個 JSON 檔案,格式如下:
{ "version": 1, "socket": { "path": "~/.openclaw/exec-approvals.sock", "token": "base64-opaque-token" }, "defaults": { "security": "deny", "ask": "on-miss", "askFallback": "deny" }, "agents": { "agent-id-1": { "security": "allowlist", "ask": "on-miss", "allowlist": [ { "pattern": "~/Projects/**/bin/rg", "lastUsedAt": 0, "lastUsedCommand": "rg -n TODO", "lastResolvedPath": "/Users/user/Projects/.../bin/rg" } ] } }}4. 使用 Slash Commands
Section titled “4. 使用 Slash Commands”你可以直接在對話中使用指令來快速切換設定:
/exec host=node security=allowlist ask=on-miss/elevated on: 快速開啟gateway模式並給予full權限。
詢問模式 (Ask mode)
Section titled “詢問模式 (Ask mode)”你可以獨立於白名單之外設定詢問政策:
off: 從不詢問。on-miss: 只有在指令不在白名單時才跳出詢問。always: 每次執行指令前都要你確認。
為了避免輸出過多導致系統卡頓,我們會將 stdout 與 stderr 的總量限制在 200k,並保留最後 20k 的內容供事件追蹤使用。如果超過限制,輸出的結尾會顯示 ... (truncated)。
如果 UI 沒反應怎麼辦?
Section titled “如果 UI 沒反應怎麼辦?”當 ask 模式需要你確認,但 macOS app 或 UI 無法連線時,系統會參考 askFallback 的設定。如果 askFallback 設為 deny,該指令就會被直接攔截。
找不到正確的 Node?
Section titled “找不到正確的 Node?”如果你有多個 Node,可以使用 exec.node 來指定具體的 nodeId、displayName 或 IP 地址。建議使用至少 6 位元的 nodeId 前綴來確保唯一性。
想要自動化完成這些配置嗎?試試我們的 AI Setup Assistant。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。