Multi-Agent Sandbox と Tools の設定ガイド
複数の AI Agent を運用していると、セキュリティの境界線に悩むことがあります。例えば、自分のローカル環境で自由にコードを実行させたい Agent もいれば、パブリックな環境や家族向けのチャットで動かすために機能を制限したい Agent もいるはずです。これらを一つの設定で管理しようとすると、権限が強すぎたり、逆に不便すぎたりといった問題が発生します。
OpenClaw では、Agent ごとに独立した Sandbox 設定とツール利用権限(Tool restrictions)を持たせることができます。これにより、フルアクセス可能な個人アシスタントと、機能を絞った公開用 Agent を安全に共存させることが可能です。
- OpenClaw のインストール
- Docker(Sandbox 機能を利用する場合)
- 設定ファイル(JSON 形式)へのアクセス権
クイックスタート
Section titled “クイックスタート”まずは、5分で設定できる「メインの個人アシスタント」と「制限付きの家族用 Bot」の構成例を見てみましょう。
{ "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" } } } ]}この設定を適用すると、以下のようになります。
- main Agent: ホストマシン上で動作し、すべてのツールにアクセスできます。
- family Agent: Docker コンテナ内で動作し、
readツールのみが許可されます。
設定の優先順位
Section titled “設定の優先順位”グローバル設定(agents.defaults.*)と Agent 個別の設定(agents.list[].*)が両方存在する場合、Agent 個別の設定が優先されます。
Sandbox Config の優先順位
Section titled “Sandbox Config の優先順位”以下の項目は、Agent 個別の設定がグローバル設定を上書きします。
agents.list[].sandbox.mode>agents.defaults.sandbox.modeagents.list[].sandbox.scope>agents.defaults.sandbox.scopeagents.list[].sandbox.docker.*>agents.defaults.sandbox.docker.*agents.list[].sandbox.browser.*>agents.defaults.sandbox.browser.*
Tool Restrictions のフィルタリング
Section titled “Tool Restrictions のフィルタリング”ツールは以下の順序でフィルタリングされます。後のステップで制限を追加することはできますが、前のステップで拒否された権限を復活させることはできません。
- Tool profile:
tools.profileまたは Agent 個別のprofile - Global tool policy:
tools.allow/tools.deny - Agent-specific tool policy:
agents.list[].tools.allow/deny - Sandbox tool policy:
tools.sandbox.toolsまたは Agent 個別のsandbox.tools
便利なツールグループ(Shorthands)
Section titled “便利なツールグループ(Shorthands)”ツールを一つずつ指定する代わりに、便利なグループ指定が使えます。
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:messaging:messagegroup:openclaw: すべての組み込み OpenClaw ツール
テストと確認
Section titled “テストと確認”設定が完了したら、正しく反映されているか確認しましょう。
-
Agent の解決状況を確認する:
Terminal window openclaw agents list --bindings -
Sandbox コンテナの状態を確認する:
Terminal window docker ps --filter "name=openclaw-sbx-" -
ログを監視する:
Terminal window tail -f "${OPENCLAW_STATE_DIR:-$HOME/.openclaw}/logs/gateway.log" | grep -E "routing|sandbox|tools"
トラブルシューティング
Section titled “トラブルシューティング”mode: "all" にしたのに Sandbox 化されない
Section titled “mode: "all" にしたのに Sandbox 化されない”- グローバルの
agents.defaults.sandbox.modeが影響していないか確認してください。 - 確実に適用するには、
agents.list[].sandbox.mode: "all"を明示的に設定してください。
拒否リストに入れたツールがまだ使える
Section titled “拒否リストに入れたツールがまだ使える”- フィルタリングの順序(Global → Agent → Sandbox)を確認してください。
- ログで
[tools] filtering tools for agent:${agentId}という出力を探し、どの段階でツールが許可されているかチェックします。
コンテナが Agent ごとに分離されない
Section titled “コンテナが Agent ごとに分離されない”- Agent 個別の設定で
scope: "agent"が設定されているか確認してください。 - デフォルトの
"session"スコープでは、セッションごとにコンテナが作成されます。
設定についてさらに詳しく知りたい場合や、個別のトラブルシューティングが必要な場合は、AI Setup Assistant を活用してください。
次のステップ
Section titled “次のステップ”OpenClaw Expert
まだ解決しませんか?
このページで解決しない場合は、OpenClaw Expertに直接質問してください。