Configurazione di sandbox e strumenti multi-agente
Ogni agente in una configurazione multi-agente può sovrascrivere la policy globale di sandbox e degli strumenti. Questa pagina descrive la configurazione per agente, le regole di precedenza e gli esempi.- Backend e modalità del sandbox: vedi Sandboxing.
- Debug degli strumenti bloccati: vedi Sandbox vs Tool Policy vs Elevated e
openclaw sandbox explain. - Exec elevato: vedi Elevated Mode.
agentDir in
~/.openclaw/agents/<agentId>/agent/auth-profiles.json.
Le credenziali non sono condivise tra gli agenti. Non riutilizzare mai agentDir tra agenti.
Se vuoi condividere le credenziali, copia auth-profiles.json nell’agentDir dell’altro agente.
Esempi di configurazione
Esempio 1: agente personale + agente famiglia con restrizioni
- agente
main: viene eseguito sull’host, accesso completo agli strumenti - agente
family: viene eseguito in Docker (un container per agente), solo strumentoread
Esempio 2: agente di lavoro con sandbox condiviso
Esempio 2b: profilo coding globale + agente solo messaging
- gli agenti predefiniti ricevono gli strumenti coding
- l’agente
supportè solo messaging (+ strumento Slack)
Esempio 3: modalità sandbox diverse per agente
Precedenza della configurazione
Quando esistono sia configurazioni globali (agents.defaults.*) sia configurazioni specifiche per agente (agents.list[].*):
Configurazione del sandbox
Le impostazioni specifiche per agente sovrascrivono quelle globali:agents.list[].sandbox.{docker,browser,prune}.*sovrascriveagents.defaults.sandbox.{docker,browser,prune}.*per quell’agente (ignorato quando l’ambito del sandbox si risolve in"shared").
Restrizioni degli strumenti
L’ordine di filtraggio è:- Profilo strumenti (
tools.profileoagents.list[].tools.profile) - Profilo strumenti del provider (
tools.byProvider[provider].profileoagents.list[].tools.byProvider[provider].profile) - Policy globale degli strumenti (
tools.allow/tools.deny) - Policy strumenti del provider (
tools.byProvider[provider].allow/deny) - Policy strumenti specifica per agente (
agents.list[].tools.allow/deny) - Policy provider dell’agente (
agents.list[].tools.byProvider[provider].allow/deny) - Policy strumenti del sandbox (
tools.sandbox.toolsoagents.list[].tools.sandbox.tools) - Policy strumenti del sotto-agente (
tools.subagents.tools, se applicabile)
agents.list[].tools.sandbox.tools è impostato, sostituisce tools.sandbox.tools per quell’agente.
Se agents.list[].tools.profile è impostato, sovrascrive tools.profile per quell’agente.
Le chiavi degli strumenti del provider accettano sia provider (ad es. google-antigravity) sia provider/model (ad es. openai/gpt-5.4).
Le policy degli strumenti supportano le abbreviazioni group:* che si espandono in più strumenti. Vedi Tool groups per l’elenco completo.
Gli override elevati per agente (agents.list[].tools.elevated) possono limitare ulteriormente l’exec elevato per agenti specifici. Vedi Elevated Mode per i dettagli.
Migrazione da agente singolo
Prima (agente singolo):agent.* vengono migrate da openclaw doctor; in futuro preferisci agents.defaults + agents.list.
Esempi di restrizioni degli strumenti
Agente in sola lettura
Agente con esecuzione sicura (nessuna modifica ai file)
Agente solo comunicazione
sessions_history in questo profilo restituisce comunque una vista di richiamo limitata e sanificata
anziché un dump grezzo della trascrizione. Il richiamo dell’assistente rimuove i tag di pensiero,
l’impalcatura <relevant-memories>, i payload XML di chiamata agli strumenti in testo normale
(inclusi <tool_call>...</tool_call>,
<function_call>...</function_call>, <tool_calls>...</tool_calls>,
<function_calls>...</function_calls> e blocchi troncati di chiamata agli strumenti),
l’impalcatura degradata delle chiamate agli strumenti, i token di controllo del modello ASCII/a larghezza piena trapelati
e il malformed MiniMax tool-call XML prima della redazione/troncatura.
Errore comune: non-main
agents.defaults.sandbox.mode: "non-main" si basa su session.mainKey (predefinito "main"),
non sull’id dell’agente. Le sessioni di gruppo/canale ricevono sempre le proprie chiavi, quindi
sono trattate come non-main e verranno eseguite in sandbox. Se vuoi che un agente non usi mai il
sandbox, imposta agents.list[].sandbox.mode: "off".
Test
Dopo aver configurato sandbox e strumenti multi-agente:-
Controlla la risoluzione dell’agente:
-
Verifica i container sandbox:
-
Testa le restrizioni degli strumenti:
- Invia un messaggio che richiede strumenti con restrizioni
- Verifica che l’agente non possa usare gli strumenti negati
-
Monitora i log:
Risoluzione dei problemi
L’agente non usa il sandbox nonostante mode: "all"
- Controlla se esiste un
agents.defaults.sandbox.modeglobale che lo sovrascrive - La configurazione specifica per agente ha la precedenza, quindi imposta
agents.list[].sandbox.mode: "all"
Gli strumenti sono ancora disponibili nonostante la deny list
- Controlla l’ordine di filtraggio degli strumenti: globale → agente → sandbox → sotto-agente
- Ogni livello può solo limitare ulteriormente, non ripristinare accessi
- Verifica con i log:
[tools] filtering tools for agent:${agentId}
Il container non è isolato per agente
- Imposta
scope: "agent"nella configurazione sandbox specifica per agente - Il valore predefinito è
"session", che crea un container per sessione
Vedi anche
- Sandboxing — riferimento completo del sandbox (modalità, ambiti, backend, immagini)
- Sandbox vs Tool Policy vs Elevated — debug di “perché questo è bloccato?”
- Elevated Mode
- Instradamento multi-agente
- Configurazione del sandbox
- Gestione delle sessioni