如何配置 Multi-Agent Sandbox 與工具權限
你是否遇過這種情況:你想給自己的 AI 助理最高權限,讓它幫你處理各種繁瑣任務,但當你要開發一個給家人或公眾使用的機器人時,又擔心它權限太大,不小心刪掉你的重要檔案或執行危險指令?
管理多個 Agent 的權限與隔離環境,一直是開發者最頭痛的問題。這篇文章會教你如何透過 OpenClaw 的配置,讓不同的 Agent 擁有各自的 Sandbox 模式與工具清單,達成靈活又安全的權限控管。
需要準備的東西
Section titled “需要準備的東西”- OpenClaw 環境
- Docker(如果你需要使用 Sandbox 功能)
- 基礎 JSON 配置知識
- 不同的工作目錄 (
agentDir)
要在 5 分鐘內建立一個「全權限」助理與一個「受限」機器人的混合配置,你可以參考以下步驟。
1. 配置多 Agent 列表
Section titled “1. 配置多 Agent 列表”在你的配置文件中,透過 agents.list 定義不同的 Agent。你可以為每個 Agent 設置獨立的 sandbox 模式與 tools 權限。
{ "agents": { "list": [ { "id": "main", "default": true, "name": "Personal Assistant", "workspace": "~/.openclaw/workspace", "sandbox": { "mode": "off" } }, { "id": "family", "name": "Family Bot", "workspace": "~/.openclaw/workspace-family", "sandbox": { "mode": "all", "scope": "agent" }, "tools": { "allow": ["read"], "deny": ["exec", "write", "edit", "apply_patch", "process", "browser"] } } ] }, "bindings": [ { "agentId": "family", "match": { "provider": "whatsapp", "accountId": "*", "peer": { "kind": "group", "id": "120363424282127706@g.us" } } } ]}配置結果:
mainAgent:直接在你的主機執行,擁有完整的工具存取權。familyAgent:在 Docker 容器中執行(每個 Agent 一個容器),且只能使用read工具。
2. 了解配置優先順序
Section titled “2. 了解配置優先順序”當全域配置(agents.defaults.*)與 Agent 特定配置(agents.list[].*)同時存在時,Agent 特定配置會覆蓋全域配置。
例如,agents.list[].sandbox.mode 的優先級高於 agents.defaults.sandbox.mode。這讓你可以預設所有 Agent 都在 Sandbox 中運行,但唯獨給予 main Agent 權限繞過 Sandbox。
3. 使用工具群組 (Shorthands)
Section titled “3. 使用工具群組 (Shorthands)”你不需要一個個列出工具名稱,可以使用群組縮寫:
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:messaging:messagegroup:openclaw: 所有 OpenClaw 內建工具
配置進階範例
Section titled “配置進階範例”共享 Sandbox 的工作 Agent
Section titled “共享 Sandbox 的工作 Agent”如果你希望多個工作相關的任務共享同一個隔離環境,可以將 scope 設置為 shared。
{ "agents": { "list": [ { "id": "personal", "workspace": "~/.openclaw/workspace-personal", "sandbox": { "mode": "off" } }, { "id": "work", "workspace": "~/.openclaw/workspace-work", "sandbox": { "mode": "all", "scope": "shared", "workspaceRoot": "/tmp/work-sandboxes" }, "tools": { "allow": ["read", "write", "apply_patch", "exec"], "deny": ["browser", "gateway", "discord"] } } ] }}唯讀與安全執行配置
Section titled “唯讀與安全執行配置”這裡提供兩個常見的工具限制方案:
方案 A:唯讀 Agent
{ "tools": { "allow": ["read"], "deny": ["exec", "write", "edit", "apply_patch", "process"] }}方案 B:安全執行(禁止修改檔案)
{ "tools": { "allow": ["read", "exec", "process"], "deny": ["write", "edit", "apply_patch", "browser", "gateway"] }}Agent 雖然設置了 mode: "all" 但未進入 Sandbox
Section titled “Agent 雖然設置了 mode: "all" 但未進入 Sandbox”- 檢查是否有全域的
agents.defaults.sandbox.mode覆蓋了設置。 - 確保在
agents.list[]中明確指定了sandbox.mode: "all"。
工具在 deny 列表後依然可用
Section titled “工具在 deny 列表後依然可用”- 檢查工具過濾順序:Global → Agent → Sandbox → Subagent。
- 每一層只能進一步限制工具,不能重新開放已被上層禁用的工具。
- 查看 Gateway 日誌確認過濾邏輯:
tail -f ~/.openclaw/logs/gateway.log | grep "filtering tools"。
容器沒有依 Agent 隔離
Section titled “容器沒有依 Agent 隔離”- 在 Agent 特定配置中設置
scope: "agent"。 - 預設的
"session"模式會為每個會話建立獨立容器。
如果你在配置過程中遇到任何問題,可以隨時諮詢 AI Setup Assistant 獲取幫助。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。