サンドボックス vs ツールポリシー vs 昇格
OpenClaw には、関連はしているものの異なる 3 つの制御があります。- サンドボックス(
agents.defaults.sandbox.*/agents.list[].sandbox.*)は、ツールをどこで実行するか(Docker vs ホスト)を決定します。 - ツールポリシー(
tools.*,tools.sandbox.tools.*,agents.list[].tools.*)は、どのツールが利用可能/許可されるかを決定します。 - 昇格(
tools.elevated.*,agents.list[].tools.elevated.*)は、サンドボックス化されている場合にホストで実行するためのexec 専用のエスケープハッチです。
クイックデバッグ
インスペクターを使用して、OpenClaw が 実際に 何をしているかを確認します。- 有効なサンドボックスのモード/スコープ/ワークスペースアクセス
- セッションが現在サンドボックス化されているか(メイン vs 非メイン)
- 有効なサンドボックスのツール許可/拒否(エージェント/グローバル/デフォルトのどれ由来か)
- 昇格ゲートと修正用キーのパス
サンドボックス:ツールを実行する場所
サンドボックス化はagents.defaults.sandbox.mode により制御されます。
"off":すべてがホスト上で実行されます。"non-main":非メインのセッションのみがサンドボックス化されます(グループ/チャンネルでの一般的な「想定外」)。"all":すべてがサンドボックス化されます。
バインドマウント(セキュリティのクイックチェック)
docker.bindsはサンドボックスのファイルシステムを 貫通 します。マウントしたものは、設定したモード(:roまたは:rw)でコンテナ内から可視になります。- モードを省略した場合のデフォルトは読み書き可能です。ソース/シークレットには
:roを推奨します。 scope: "shared"はエージェントごとのバインドを無視します(グローバルバインドのみが適用されます)。/var/run/docker.sockをバインドすると、事実上ホストの制御をサンドボックスに渡すことになります。意図した場合にのみ行ってください。- ワークスペースアクセス(
workspaceAccess: "ro"/"rw")は、バインドのモードとは独立しています。
ツールポリシー:どのツールが存在/呼び出し可能か
二つの層が重要です:- ツールプロファイル:
tools.profileとagents.list[].tools.profile(ベースの許可リスト) - プロバイダーツールプロファイル:
tools.byProvider[provider].profileとagents.list[].tools.byProvider[provider].profile - グローバル/エージェント別ツールポリシー:
tools.allow/tools.denyとagents.list[].tools.allow/agents.list[].tools.deny - プロバイダーツールポリシー:
tools.byProvider[provider].allow/denyとagents.list[].tools.byProvider[provider].allow/deny - サンドボックスのツールポリシー(サンドボックス化時のみ適用):
tools.sandbox.tools.allow/tools.sandbox.tools.denyとagents.list[].tools.sandbox.tools.*
denyが常に優先されます。allowが空でない場合、他はすべてブロックとして扱われます。- ツールポリシーはハードストップです。
/execは、拒否されたexecのツールを上書きできません。 /execは、許可された送信者のセッション既定値を変更するだけで、ツールアクセスを付与しません。
プロバイダーツールのキーは、provider(例:google-antigravity)またはprovider/model(例:openai/gpt-5.2)のいずれかを受け付けます。/execは、許可された送信者のセッション既定値を変更するだけで、ツールアクセスを付与しません。
プロバイダーツールのキーは、provider(例:google-antigravity)またはprovider/model(例:openai/gpt-5.2)のいずれかを受け付けます。 プロバイダのツールキーは、provider(例:google-antigubity)またはprovider/model(例:openai/gpt-5.2)のいずれかを受け付けます。
ツールグループ(省略表記)
ツールポリシー(グローバル、エージェント、サンドボックス)は、複数のツールに展開されるgroup:* エントリをサポートします。
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,session_statusgroup:memory:memory_search,memory_getgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw:すべての組み込み OpenClaw ツール(プロバイダープラグインは除外)
昇格:exec 専用の「ホストで実行」
昇格は追加のツールを付与しません。影響するのはexec のみです。
- サンドボックス化されている場合、
/elevated on(またはexecとelevated: true)はホストで実行されます(承認が必要な場合があります)。 - セッションの exec 承認をスキップするには
/elevated fullを使用します。 - すでに直接実行している場合、昇格は実質的にノーオペレーションです(引き続きゲートされます)。
- 昇格は スキルスコープ ではなく、ツールの allow/deny を 上書きしません 。
/execは上昇したものとは別です。 これは、承認された送信者のセッションごとの執行のデフォルトのみを調整します。
- 有効化:
tools.elevated.enabled(必要に応じてagents.list[].tools.elevated.enabled) - 送信者の許可リスト:
tools.elevated.allowFrom.<provider>(必要に応じてagents.list[].tools.elevated.allowFrom.<provider>)
一般的な「サンドボックスの牢屋」の修正
「ツール X がサンドボックスのツールポリシーでブロックされる」
修正キー(いずれかを選択):- サンドボックスを無効化:
agents.defaults.sandbox.mode=off(またはエージェント別にagents.list[].sandbox.mode=off) - サンドボックス内でツールを許可:
tools.sandbox.tools.deny(またはエージェント別のagents.list[].tools.sandbox.tools.deny)から削除- または
tools.sandbox.tools.allow(またはエージェント別の許可)に追加
「これはメインだと思っていたのに、なぜサンドボックス化されている?」
"non-main" モードでは、グループ/チャンネルのキーはメインではありません。sandbox explain で表示されるメインセッションのキーを使用するか、モードを "off" に切り替えてください。 "non-main" モードでは、グループ/チャンネルのキーはメインではありません。sandbox explain で表示されるメインセッションのキーを使用するか、モードを "off" に切り替えてください。 メインセッションキー(sandbox explan で表示)を使用するか、モードを"off"に切り替えます。