Konfiguration für Sandboxing und Tools bei mehreren Agenten
Jeder Agent in einem Multi-Agent-Setup kann die globale Sandbox- und Tool- Richtlinie überschreiben. Diese Seite behandelt die Konfiguration pro Agent, Prioritätsregeln und Beispiele.- Sandbox-Backends und -Modi: siehe Sandboxing.
- Debugging blockierter Tools: siehe Sandbox vs Tool Policy vs Elevated und
openclaw sandbox explain. - Erhöhtes Exec: siehe Elevated Mode.
agentDir-Auth-Speicher unter
~/.openclaw/agents/<agentId>/agent/auth-profiles.json.
Anmeldedaten werden nicht zwischen Agenten geteilt. Verwenden Sie agentDir niemals für mehrere Agenten gemeinsam.
Wenn Sie Anmeldedaten teilen möchten, kopieren Sie auth-profiles.json in das agentDir des anderen Agenten.
Konfigurationsbeispiele
Beispiel 1: Persönlicher + eingeschränkter Familien-Agent
- Agent
main: Läuft auf dem Host, voller Tool-Zugriff - Agent
family: Läuft in Docker (ein Container pro Agent), nur Toolread
Beispiel 2: Arbeits-Agent mit gemeinsamer Sandbox
Beispiel 2b: Globales Coding-Profil + Agent nur für Messaging
- Standard-Agenten erhalten Coding-Tools
- Agent
supportist nur für Messaging gedacht (+ Slack-Tool)
Beispiel 3: Unterschiedliche Sandbox-Modi pro Agent
Konfigurationspriorität
Wenn sowohl globale (agents.defaults.*) als auch agentenspezifische (agents.list[].*) Konfigurationen vorhanden sind:
Sandbox-Konfiguration
Agentenspezifische Einstellungen überschreiben globale:agents.list[].sandbox.{docker,browser,prune}.*überschreibtagents.defaults.sandbox.{docker,browser,prune}.*für diesen Agenten (wird ignoriert, wenn der Sandbox-Bereich zu"shared"aufgelöst wird).
Tool-Einschränkungen
Die Filterreihenfolge ist:- Tool-Profil (
tools.profileoderagents.list[].tools.profile) - Tool-Profil des Providers (
tools.byProvider[provider].profileoderagents.list[].tools.byProvider[provider].profile) - Globale Tool-Richtlinie (
tools.allow/tools.deny) - Tool-Richtlinie des Providers (
tools.byProvider[provider].allow/deny) - Agentenspezifische Tool-Richtlinie (
agents.list[].tools.allow/deny) - Provider-Richtlinie des Agenten (
agents.list[].tools.byProvider[provider].allow/deny) - Sandbox-Tool-Richtlinie (
tools.sandbox.toolsoderagents.list[].tools.sandbox.tools) - Subagent-Tool-Richtlinie (
tools.subagents.tools, falls zutreffend)
agents.list[].tools.sandbox.tools gesetzt ist, ersetzt es tools.sandbox.tools für diesen Agenten.
Wenn agents.list[].tools.profile gesetzt ist, überschreibt es tools.profile für diesen Agenten.
Tool-Schlüssel für Provider akzeptieren entweder provider (z. B. google-antigravity) oder provider/model (z. B. openai/gpt-5.4).
Tool-Richtlinien unterstützen Kurzformen group:*, die in mehrere Tools expandiert werden. Die vollständige Liste finden Sie unter Tool groups.
Überschreibungen für erhöhten Modus pro Agent (agents.list[].tools.elevated) können erhöhtes Exec für bestimmte Agenten weiter einschränken. Details finden Sie unter Elevated Mode.
Migration von einem einzelnen Agenten
Vorher (einzelner Agent):agent.* werden von openclaw doctor migriert; bevorzugen Sie künftig agents.defaults + agents.list.
Beispiele für Tool-Einschränkungen
Agent nur mit Leserechten
Agent für sichere Ausführung (keine Dateiänderungen)
Agent nur für Kommunikation
sessions_history in diesem Profil gibt weiterhin eine begrenzte, bereinigte
Recall-Ansicht statt eines rohen Transkript-Dumps zurück. Der Assistant-Recall entfernt Thinking-Tags,
Scaffolding <relevant-memories>, XML-Nutzlasten von Tool-Aufrufen im Klartext
(einschließlich <tool_call>...</tool_call>,
<function_call>...</function_call>, <tool_calls>...</tool_calls>,
<function_calls>...</function_calls> und abgeschnittener Tool-Call-Blöcke),
herabgestuftes Tool-Call-Scaffolding, durchgesickerte ASCII-/Vollbreiten-Steuertokens des Modells
sowie fehlerhaftes MiniMax-Tool-Call-XML vor Redaction/Trunkierung.
Häufiger Stolperstein: “non-main”
agents.defaults.sandbox.mode: "non-main" basiert auf session.mainKey (Standard "main"),
nicht auf der Agenten-ID. Gruppen-/Kanal-Sitzungen erhalten immer eigene Schlüssel und
werden daher als non-main behandelt und in eine Sandbox gesetzt. Wenn Sie möchten, dass ein Agent niemals in einer
Sandbox läuft, setzen Sie agents.list[].sandbox.mode: "off".
Tests
Nach der Konfiguration von Sandboxing und Tools für mehrere Agenten:-
Agent-Auflösung prüfen:
-
Sandbox-Container verifizieren:
-
Tool-Einschränkungen testen:
- Senden Sie eine Nachricht, die eingeschränkte Tools erfordert
- Verifizieren Sie, dass der Agent verweigerte Tools nicht verwenden kann
-
Logs überwachen:
Fehlerbehebung
Agent ist trotz mode: "all" nicht in einer Sandbox
- Prüfen Sie, ob es ein globales
agents.defaults.sandbox.modegibt, das dies überschreibt - Agentenspezifische Konfiguration hat Vorrang, setzen Sie also
agents.list[].sandbox.mode: "all"
Tools sind trotz Deny-Liste weiterhin verfügbar
- Prüfen Sie die Filterreihenfolge für Tools: global → Agent → Sandbox → Subagent
- Jede Ebene kann nur weiter einschränken, aber nichts wieder freigeben
- Mit Logs verifizieren:
[tools] filtering tools for agent:${agentId}
Container ist nicht pro Agent isoliert
- Setzen Sie
scope: "agent"in der agentenspezifischen Sandbox-Konfiguration - Der Standard ist
"session", wodurch ein Container pro Sitzung erstellt wird
Siehe auch
- Sandboxing — vollständige Sandbox-Referenz (Modi, Bereiche, Backends, Images)
- Sandbox vs Tool Policy vs Elevated — Debugging von „warum ist das blockiert?“
- Elevated Mode
- Multi-Agent-Routing
- Sandbox-Konfiguration
- Sitzungsverwaltung