openclaw policy reference.
Scoped overlays
Usescopes.<scopeName> when specific agents or channels need stricter policy
than the top-level baseline. The scope name is just a label; matching uses the
selector inside the scope. Overlays are additive: the global rule still runs,
and the scoped rule can add its own finding against the same evidence.
If an
agentIds entry is not present in agents.entries.*, OpenClaw evaluates
the scoped rule against inherited global/default posture for that runtime
agent id instead of skipping it.
sandbox.containers.*) are checked only against
evidence the matched agent’s sandbox backend can expose. The Docker and Podman
backends expose the same sandbox.docker.* container posture settings. If a
backend cannot observe a rule you enabled for it, policy reports
policy/sandbox-container-posture-unobservable instead of passing; scope
container rules to the agent groups that use a backend which can expose them.
Backend authorization uses the configured identity. backend: "docker"
requires allowBackends: ["docker"], while backend: "podman" requires
allowBackends: ["podman"].
Top-level ingress.session.requireDmScope stays global; session.dmScope is
not channel-attributable evidence, so it cannot be scoped by channelIds.
Every scope present in policy.jsonc must be valid and enforceable.