Agent coordination
Sandbox en tools voor meerdere agents
Elke agent in een opstelling met meerdere agents kan het globale sandbox- en toolbeleid overschrijven. Deze pagina behandelt configuratie per agent, voorrangsregels en voorbeelden.
Backends en modi — volledige sandboxreferentie.
Onderzoek waarom iets wordt geblokkeerd.
Verhoogde uitvoering voor vertrouwde afzenders.
Configuratievoorbeelden
Voorbeeld 1: Persoonlijke agent + beperkte gezinsagent
{ "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", "message"], "deny": ["exec", "write", "edit", "apply_patch", "process", "browser"], "message": { "crossContext": { "allowWithinProvider": false, "allowAcrossProviders": false } } } } ] }, "bindings": [ { "agentId": "family", "match": { "provider": "whatsapp", "accountId": "*", "peer": { "kind": "group", "id": "120363424282127706@g.us" } } } ]}Resultaat:
- Agent
main: draait op de host en heeft volledige toegang tot tools. - Agent
family: draait in Docker (één container per agent) en kan alleenreadgebruiken en berichten binnen het huidige gesprek verzenden.
Voorbeeld 2: Werkagent met gedeelde sandbox
{ "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"] } } ] }}Voorbeeld 2b: Globaal codeerprofiel + agent die alleen berichten verwerkt
{ "tools": { "profile": "coding" }, "agents": { "list": [ { "id": "support", "tools": { "profile": "messaging", "allow": ["slack"] } } ] }}Resultaat:
- Standaardagents krijgen codeertools.
- Agent
supportkan alleen berichten verwerken (+ Slack-tool).
Voorbeeld 3: Verschillende sandboxmodi per agent
{ "agents": { "defaults": { "sandbox": { "mode": "non-main", "scope": "session" } }, "list": [ { "id": "main", "workspace": "~/.openclaw/workspace", "sandbox": { "mode": "off" } }, { "id": "public", "workspace": "~/.openclaw/workspace-public", "sandbox": { "mode": "all", "scope": "agent" }, "tools": { "allow": ["read"], "deny": ["exec", "write", "edit", "apply_patch"] } } ] }}Configuratievoorrang
Wanneer zowel globale (agents.defaults.*) als agentspecifieke (agents.list[].*) configuraties bestaan:
Sandboxconfiguratie
Agentspecifieke instellingen overschrijven globale instellingen:
agents.list[].sandbox.mode > agents.defaults.sandbox.modeagents.list[].sandbox.scope > agents.defaults.sandbox.scopeagents.list[].sandbox.workspaceRoot > agents.defaults.sandbox.workspaceRootagents.list[].sandbox.workspaceAccess > agents.defaults.sandbox.workspaceAccessagents.list[].sandbox.docker.* > agents.defaults.sandbox.docker.*agents.list[].sandbox.browser.* > agents.defaults.sandbox.browser.*agents.list[].sandbox.prune.* > agents.defaults.sandbox.prune.*Toolbeperkingen
De filtervolgorde is:
Toolprofiel
tools.profile of agents.list[].tools.profile.
Toolprofiel van provider
tools.byProvider[provider].profile of agents.list[].tools.byProvider[provider].profile.
Globaal toolbeleid
tools.allow / tools.deny.
Toolbeleid van provider
tools.byProvider[provider].allow/deny.
Agentspecifiek toolbeleid
agents.list[].tools.allow/deny.
Providerbeleid van agent
agents.list[].tools.byProvider[provider].allow/deny.
Toolbeleid van sandbox
tools.sandbox.tools of agents.list[].tools.sandbox.tools.
Toolbeleid van subagent
tools.subagents.tools, indien van toepassing.
Voorrangsregels
- Elk niveau kan tools verder beperken, maar kan tools die op eerdere niveaus zijn geweigerd niet opnieuw toestaan.
- Als
agents.list[].tools.sandbox.toolsis ingesteld, vervangt dittools.sandbox.toolsvoor die agent. - Als
agents.list[].tools.profileis ingesteld, overschrijft dittools.profilevoor die agent. - Toolcodes voor providers accepteren zowel
provider(bijvoorbeeldgoogle-antigravity) alsprovider/model(bijvoorbeeldopenai/gpt-5.4).
Gedrag bij een lege toelatingslijst
Als een expliciete toelatingslijst in deze keten ervoor zorgt dat er geen aanroepbare tools overblijven, stopt OpenClaw voordat de prompt naar het model wordt verzonden. Dit is opzettelijk: een agent die is geconfigureerd met een ontbrekende tool, zoals agents.list[].tools.allow: ["query_db"], moet duidelijk mislukken totdat de Plugin die query_db registreert is ingeschakeld, en mag niet doorgaan als een agent die alleen tekst verwerkt.
Toolbeleid ondersteunt group:*-verkortingen die worden uitgebreid naar meerdere tools. Zie Toolgroepen voor de volledige lijst.
Verhoogde overschrijvingen per agent (agents.list[].tools.elevated) kunnen verhoogde uitvoering voor specifieke agents verder beperken. Zie Verhoogde modus voor meer informatie.
Migratie vanaf één agent
Voorheen (één agent)
{ "agents": { "defaults": { "workspace": "~/.openclaw/workspace", "sandbox": { "mode": "non-main" } } }, "tools": { "sandbox": { "tools": { "allow": ["read", "write", "apply_patch", "exec"], "deny": [] } } }}Daarna (meerdere agents)
{ "agents": { "list": [ { "id": "main", "default": true, "workspace": "~/.openclaw/workspace", "sandbox": { "mode": "off" } } ] }}Voorbeelden van toolbeperkingen
Alleen-lezenagent
{ "tools": { "allow": ["read"], "deny": ["exec", "write", "edit", "apply_patch", "process"] }}Shell-uitvoering met uitgeschakelde bestandssysteemtools
{ "tools": { "allow": ["read", "exec", "process"], "deny": ["write", "edit", "apply_patch", "browser", "gateway"] }}Alleen communicatie
{ "tools": { "sessions": { "visibility": "tree" }, "allow": ["sessions_list", "sessions_send", "sessions_history", "session_status"], "deny": ["exec", "write", "edit", "apply_patch", "read", "browser"] }}sessions_history retourneert in dit profiel nog steeds een begrensde, opgeschoonde terugblik in plaats van een onbewerkte transcriptdump. De terugblik van de assistent verwijdert denktags, <relevant-memories>-structuren, XML-payloads in platte tekst voor toolaanroepen (waaronder <tool_call>...</tool_call>, <function_call>...</function_call>, <tool_calls>...</tool_calls>, <function_calls>...</function_calls> en afgekorte toolaanroepblokken), gedegradeerde toolaanroepstructuren, gelekte ASCII-/volledige-breedtebesturingstokens van het model en ongeldige XML voor MiniMax-toolaanroepen voordat redactie en afkapping plaatsvinden.
Veelvoorkomende valkuil: "non-main"
Testen
Na het configureren van de sandbox en tools voor meerdere agents:
Agentbepaling controleren
openclaw agents list --bindingsSandboxcontainers verifiëren
docker ps --filter "name=openclaw-sbx-"Toolbeperkingen testen
- Verzend een bericht waarvoor beperkte tools nodig zijn.
- Controleer of de agent geweigerde tools niet kan gebruiken.
Logboeken bewaken
openclaw logs --follow | grep -E "routing|sandbox|tools"Problemen oplossen
Agent wordt ondanks `mode: 'all'` niet in een sandbox uitgevoerd
- Controleer of er een globale
agents.defaults.sandbox.modebestaat die deze instelling overschrijft. - Agentspecifieke configuratie heeft voorrang; stel daarom
agents.list[].sandbox.mode: "all"in.
Tools nog steeds beschikbaar ondanks de weigeringslijst
- Controleer de volledige filtervolgorde: profiel → providerprofiel → globaal beleid → providerbeleid → agentbeleid → agentproviderbeleid → sandbox → subagent.
- Elk niveau kan alleen verdere beperkingen opleggen, niet opnieuw toegang verlenen.
- Zie Sandbox versus toolbeleid versus verhoogde modus voor stapsgewijze foutopsporing.
Container niet per agent geïsoleerd
- De standaardwaarde voor
scopeis"agent"(één container per agent-ID). - Stel
scope: "session"in voor één container per sessie, ofscope: "shared"om één container voor meerdere agents te hergebruiken.
Gerelateerd
- Verhoogde modus
- Routering met meerdere agents
- Sandboxconfiguratie
- Sandbox versus toolbeleid versus verhoogde modus — foutopsporing voor "waarom wordt dit geblokkeerd?"
- Sandboxing — volledige sandboxreferentie (modi, bereiken, backends, images)
- Sessiebeheer