Chiavi di configurazione con ambito agente sottoDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
agents.*, multiAgent.*, session.*,
messages.* e talk.*. Per canali, strumenti, runtime del Gateway e altre
chiavi di primo livello, vedi riferimento di configurazione.
Valori predefiniti degli agenti
agents.defaults.workspace
Predefinito: ~/.openclaw/workspace.
agents.defaults.repoRoot
Root del repository opzionale mostrata nella riga Runtime del prompt di sistema. Se non impostata, OpenClaw la rileva automaticamente risalendo dalla workspace.
agents.defaults.skills
Allowlist di Skills predefinita opzionale per gli agenti che non impostano
agents.list[].skills.
- Ometti
agents.defaults.skillsper Skills senza restrizioni per impostazione predefinita. - Ometti
agents.list[].skillsper ereditare i valori predefiniti. - Imposta
agents.list[].skills: []per nessuna Skills. - Un elenco
agents.list[].skillsnon vuoto è l’insieme finale per quell’agente; non viene unito ai valori predefiniti.
agents.defaults.skipBootstrap
Disabilita la creazione automatica dei file di bootstrap della workspace (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md).
agents.defaults.skipOptionalBootstrapFiles
Salta la creazione dei file opzionali selezionati della workspace continuando comunque a scrivere i file di bootstrap richiesti. Valori validi: SOUL.md, USER.md, HEARTBEAT.md e IDENTITY.md.
agents.defaults.contextInjection
Controlla quando i file di bootstrap della workspace vengono iniettati nel prompt di sistema. Predefinito: "always".
"continuation-skip": i turni di continuazione sicuri (dopo una risposta dell’assistente completata) saltano la reiniezione del bootstrap della workspace, riducendo la dimensione del prompt. Le esecuzioni Heartbeat e i tentativi successivi alla Compaction ricostruiscono comunque il contesto."never": disabilita il bootstrap della workspace e l’iniezione dei file di contesto a ogni turno. Usalo solo per agenti che gestiscono completamente il proprio ciclo di vita del prompt (motori di contesto personalizzati, runtime nativi che costruiscono il proprio contesto o workflow specializzati senza bootstrap). Anche i turni Heartbeat e di recupero dalla Compaction saltano l’iniezione.
agents.defaults.bootstrapMaxChars
Numero massimo di caratteri per file di bootstrap della workspace prima del troncamento. Predefinito: 12000.
agents.defaults.bootstrapTotalMaxChars
Numero massimo totale di caratteri iniettati tra tutti i file di bootstrap della workspace. Predefinito: 60000.
agents.defaults.bootstrapPromptTruncationWarning
Controlla l’avviso visibile all’agente nel prompt di sistema quando il contesto di bootstrap viene troncato.
Predefinito: "once".
"off": non iniettare mai testo di avviso di troncamento nel prompt di sistema."once": inietta un avviso conciso una volta per ogni firma di troncamento univoca (consigliato)."always": inietta un avviso conciso a ogni esecuzione quando esiste un troncamento.
Mappa di proprietà dei budget di contesto
OpenClaw ha più budget di prompt/contesto ad alto volume, e sono intenzionalmente suddivisi per sottosistema invece di passare tutti attraverso una singola manopola generica.agents.defaults.bootstrapMaxChars/agents.defaults.bootstrapTotalMaxChars: normale iniezione del bootstrap della workspace.agents.defaults.startupContext.*: preambolo una tantum dell’esecuzione del modello al reset/avvio, inclusi i filememory/*.mdgiornalieri recenti. I comandi chat semplici/newe/resetvengono confermati senza invocare il modello.skills.limits.*: l’elenco compatto di Skills iniettato nel prompt di sistema.agents.defaults.contextLimits.*: estratti runtime limitati e blocchi iniettati di proprietà del runtime.memory.qmd.limits.*: dimensionamento di snippet e iniezione per la ricerca indicizzata in memoria.
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextLimits.*
agents.defaults.startupContext
Controlla il preambolo di avvio del primo turno iniettato nelle esecuzioni del modello al reset/avvio.
I comandi chat semplici /new e /reset confermano il reset senza invocare
il modello, quindi non caricano questo preambolo.
agents.defaults.contextLimits
Valori predefiniti condivisi per superfici di contesto runtime limitate.
memoryGetMaxChars: limite predefinito dell’estrattomemory_getprima che vengano aggiunti metadati di troncamento e avviso di continuazione.memoryGetDefaultLines: finestra di righe predefinita dimemory_getquandolinesè omesso.toolResultMaxChars: limite dei risultati live degli strumenti usato per risultati persistiti e recupero degli overflow.postCompactionMaxChars: limite dell’estratto AGENTS.md usato durante l’iniezione di aggiornamento successiva alla Compaction.
agents.list[].contextLimits
Override per agente per le manopole contextLimits condivise. I campi omessi ereditano
da agents.defaults.contextLimits.
skills.limits.maxSkillsPromptChars
Limite globale per l’elenco compatto di Skills iniettato nel prompt di sistema. Questo
non influisce sulla lettura dei file SKILL.md su richiesta.
agents.list[].skillsLimits.maxSkillsPromptChars
Override per agente per il budget del prompt delle Skills.
agents.defaults.imageMaxDimensionPx
Dimensione massima in pixel per il lato più lungo dell’immagine nei blocchi immagine di transcript/strumenti prima delle chiamate al provider.
Predefinito: 1200.
Valori inferiori di solito riducono l’uso di token visivi e la dimensione del payload della richiesta per esecuzioni con molti screenshot.
Valori superiori preservano più dettagli visivi.
agents.defaults.userTimezone
Fuso orario per il contesto del prompt di sistema (non per i timestamp dei messaggi). Usa il fuso orario dell’host come fallback.
agents.defaults.timeFormat
Formato dell’ora nel prompt di sistema. Predefinito: auto (preferenza del sistema operativo).
agents.defaults.model
model: accetta una stringa ("provider/model") oppure un oggetto ({ primary, fallbacks }).- La forma stringa imposta solo il modello primario.
- La forma oggetto imposta il primario più i modelli di failover ordinati.
imageModel: accetta una stringa ("provider/model") oppure un oggetto ({ primary, fallbacks }).- Usato dal percorso dello strumento
imagecome configurazione del suo modello di visione. - Usato anche come instradamento di fallback quando il modello selezionato/predefinito non può accettare input immagine.
- Preferisci riferimenti
provider/modelespliciti. Gli ID semplici sono accettati per compatibilità; se un ID semplice corrisponde in modo univoco a una voce configurata con supporto immagini inmodels.providers.*.models, OpenClaw lo qualifica per quel provider. Le corrispondenze configurate ambigue richiedono un prefisso provider esplicito.
- Usato dal percorso dello strumento
imageGenerationModel: accetta una stringa ("provider/model") oppure un oggetto ({ primary, fallbacks }).- Usato dalla capacità condivisa di generazione immagini e da qualsiasi superficie futura di strumento/plugin che generi immagini.
- Valori tipici:
google/gemini-3.1-flash-image-previewper la generazione immagini nativa Gemini,fal/fal-ai/flux/devper fal,openai/gpt-image-2per OpenAI Images, oppureopenai/gpt-image-1.5per output OpenAI PNG/WebP con sfondo trasparente. - Se selezioni direttamente un provider/modello, configura anche l’autenticazione provider corrispondente (per esempio
GEMINI_API_KEYoGOOGLE_API_KEYpergoogle/*,OPENAI_API_KEYo OpenAI Codex OAuth peropenai/gpt-image-2/openai/gpt-image-1.5,FAL_KEYperfal/*). - Se omesso,
image_generatepuò comunque dedurre un provider predefinito supportato da autenticazione. Prova prima il provider predefinito corrente, poi i provider di generazione immagini registrati rimanenti in ordine di ID provider.
musicGenerationModel: accetta una stringa ("provider/model") oppure un oggetto ({ primary, fallbacks }).- Usato dalla capacità condivisa di generazione musica e dallo strumento integrato
music_generate. - Valori tipici:
google/lyria-3-clip-preview,google/lyria-3-pro-previewominimax/music-2.6. - Se omesso,
music_generatepuò comunque dedurre un provider predefinito supportato da autenticazione. Prova prima il provider predefinito corrente, poi i provider di generazione musica registrati rimanenti in ordine di ID provider. - Se selezioni direttamente un provider/modello, configura anche l’autenticazione/la chiave API del provider corrispondente.
- Usato dalla capacità condivisa di generazione musica e dallo strumento integrato
videoGenerationModel: accetta una stringa ("provider/model") oppure un oggetto ({ primary, fallbacks }).- Usato dalla capacità condivisa di generazione video e dallo strumento integrato
video_generate. - Valori tipici:
qwen/wan2.6-t2v,qwen/wan2.6-i2v,qwen/wan2.6-r2v,qwen/wan2.6-r2v-flashoqwen/wan2.7-r2v. - Se omesso,
video_generatepuò comunque dedurre un provider predefinito supportato da autenticazione. Prova prima il provider predefinito corrente, poi i provider di generazione video registrati rimanenti in ordine di ID provider. - Se selezioni direttamente un provider/modello, configura anche l’autenticazione/la chiave API del provider corrispondente.
- Il provider Qwen di generazione video incluso supporta fino a 1 video di output, 1 immagine di input, 4 video di input, durata di 10 secondi e opzioni a livello di provider
size,aspectRatio,resolution,audioewatermark.
- Usato dalla capacità condivisa di generazione video e dallo strumento integrato
pdfModel: accetta una stringa ("provider/model") oppure un oggetto ({ primary, fallbacks }).- Usato dallo strumento
pdfper l’instradamento del modello. - Se omesso, lo strumento PDF ripiega su
imageModel, poi sul modello risolto della sessione/predefinito.
- Usato dallo strumento
pdfMaxBytesMb: limite predefinito della dimensione PDF per lo strumentopdfquandomaxBytesMbnon viene passato al momento della chiamata.pdfMaxPages: numero massimo predefinito di pagine considerate dalla modalità di fallback di estrazione nello strumentopdf.verboseDefault: livello verbose predefinito per gli agenti. Valori:"off","on","full". Predefinito:"off".toolProgressDetail: modalità di dettaglio per i riepiloghi strumenti/verbosee le righe di strumento nelle bozze di avanzamento. Valori:"explain"(predefinito, etichette umane compatte) o"raw"(aggiunge comando/dettaglio grezzo quando disponibile).agents.list[].toolProgressDetailper agente sovrascrive questo valore predefinito.reasoningDefault: visibilità del ragionamento predefinita per gli agenti. Valori:"off","on","stream".agents.list[].reasoningDefaultper agente sovrascrive questo valore predefinito. Le impostazioni predefinite di ragionamento configurate vengono applicate solo per proprietari, mittenti autorizzati o contesti Gateway di amministratore operatore quando non è impostata alcuna sovrascrittura di ragionamento per messaggio o sessione.elevatedDefault: livello predefinito di output elevato per gli agenti. Valori:"off","on","ask","full". Predefinito:"on".model.primary: formatoprovider/model(per es.openai/gpt-5.5per accesso con chiave API OpenAI o Codex OAuth). Se ometti il provider, OpenClaw prova prima un alias, poi una corrispondenza univoca con provider configurato per quell’ID modello esatto, e solo dopo ripiega sul provider predefinito configurato (comportamento di compatibilità deprecato, quindi preferisciprovider/modelesplicito). Se quel provider non espone più il modello predefinito configurato, OpenClaw ripiega sul primo provider/modello configurato invece di mostrare un valore predefinito obsoleto di provider rimosso.models: il catalogo modelli configurato e la allowlist per/model. Ogni voce può includerealias(scorciatoia) eparams(specifici del provider, per esempiotemperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold,chat_template_kwargs,extra_body/extraBody).- Usa voci
provider/*come"openai-codex/*": {}o"vllm/*": {}per mostrare tutti i modelli rilevati per i provider selezionati senza elencare manualmente ogni ID modello. - Modifiche sicure: usa
openclaw config set agents.defaults.models '<json>' --strict-json --mergeper aggiungere voci.config setrifiuta sostituzioni che rimuoverebbero voci allowlist esistenti a meno che tu non passi--replace. - I flussi configure/onboarding con ambito provider uniscono i modelli provider selezionati in questa mappa e preservano i provider non correlati già configurati.
- Per i modelli diretti OpenAI Responses, la Compaction lato server è abilitata automaticamente. Usa
params.responsesServerCompaction: falseper interrompere l’iniezione dicontext_management, oppureparams.responsesCompactThresholdper sovrascrivere la soglia. Vedi Compaction lato server OpenAI.
- Usa voci
params: parametri provider predefiniti globali applicati a tutti i modelli. Impostati inagents.defaults.params(per es.{ cacheRetention: "long" }).- Precedenza di unione di
params(configurazione):agents.defaults.params(base globale) viene sovrascritto daagents.defaults.models["provider/model"].params(per modello), poiagents.list[].params(ID agente corrispondente) sovrascrive per chiave. Vedi Prompt Caching per i dettagli. params.extra_body/params.extraBody: JSON avanzato pass-through unito nei corpi richiestaapi: "openai-completions"per proxy compatibili con OpenAI. Se collide con chiavi di richiesta generate, vince il corpo extra; le route completions non native rimuovono comunque in seguitostoresolo OpenAI.params.chat_template_kwargs: argomenti chat-template compatibili vLLM/OpenAI uniti nei corpi richiesta di primo livelloapi: "openai-completions". Pervllm/nemotron-3-*con thinking disattivato, il plugin vLLM incluso invia automaticamenteenable_thinking: falseeforce_nonempty_content: true;chat_template_kwargsespliciti sovrascrivono i valori predefiniti generati, eextra_body.chat_template_kwargsha comunque la precedenza finale. Per i controlli thinking di Qwen vLLM, impostaparams.qwenThinkingFormatsu"chat-template"o"top-level"in quella voce modello.compat.thinkingFormat: stile del payload thinking compatibile con OpenAI. Usa"qwen"perenable_thinkingdi primo livello in stile Qwen, oppure"qwen-chat-template"perchat_template_kwargs.enable_thinkingsu backend della famiglia Qwen che supportano kwargs chat-template a livello di richiesta, come vLLM. OpenClaw mappa thinking disabilitato afalsee thinking abilitato atrue.compat.supportedReasoningEfforts: elenco di sforzi di ragionamento compatibili con OpenAI per modello. Includi"xhigh"per endpoint personalizzati che lo accettano davvero; OpenClaw quindi espone/think xhighnei menu comandi, nelle righe sessione Gateway, nella validazione delle patch di sessione, nella validazione CLI dell’agente e nella validazionellm-taskper quel provider/modello configurato. Usacompat.reasoningEffortMapquando il backend vuole un valore specifico del provider per un livello canonico.params.preserveThinking: opt-in solo Z.AI per thinking preservato. Quando abilitato e thinking è attivo, OpenClaw inviathinking.clear_thinking: falsee riproduce ilreasoning_contentprecedente; vedi thinking Z.AI e thinking preservato.localService: gestore di processi opzionale a livello di provider per server modello locali/self-hosted. Quando il modello selezionato appartiene a quel provider, OpenClaw sondahealthUrl(obaseUrl + "/models"), avviacommandconargsse l’endpoint non risponde, attende fino areadyTimeoutMs, poi invia la richiesta modello.commanddeve essere un percorso assoluto.idleStopMs: 0mantiene il processo attivo finché OpenClaw non esce; un valore positivo arresta il processo avviato da OpenClaw dopo quel numero di millisecondi di inattività. Vedi Servizi modello locali.- La policy di runtime appartiene ai provider o ai modelli, non ad
agents.defaults. Usamodels.providers.<provider>.agentRuntimeper regole a livello di provider oppureagents.defaults.models["provider/model"].agentRuntime/agents.list[].models["provider/model"].agentRuntimeper regole specifiche del modello. I modelli agente OpenAI sul provider ufficiale OpenAI selezionano Codex per impostazione predefinita. - Gli scrittori di configurazione che modificano questi campi (per esempio
/models set,/models set-imagee i comandi di aggiunta/rimozione fallback) salvano la forma oggetto canonica e preservano gli elenchi fallback esistenti quando possibile. maxConcurrent: numero massimo di esecuzioni parallele di agenti tra sessioni (ogni sessione resta comunque serializzata). Predefinito: 4.
Policy di runtime
id:"auto","pi", un ID harness plugin registrato o un alias backend CLI supportato. Il plugin Codex incluso registracodex; il plugin Anthropic incluso fornisce il backend CLIclaude-cli.id: "auto"consente agli harness plugin registrati di rivendicare turni supportati e usa PI quando nessun harness corrisponde. Un runtime plugin esplicito comeid: "codex"richiede quell’harness e fallisce in modo chiuso se non è disponibile o fallisce.- Le chiavi runtime dell’intero agente sono legacy.
agents.defaults.agentRuntime,agents.list[].agentRuntime, i pin runtime di sessione eOPENCLAW_AGENT_RUNTIMEvengono ignorati dalla selezione runtime. Eseguiopenclaw doctor --fixper rimuovere i valori obsoleti. - I modelli agente OpenAI usano per impostazione predefinita l’harness Codex;
agentRuntime.id: "codex"per provider/modello resta valido quando vuoi renderlo esplicito. - Per distribuzioni Claude CLI, preferisci
model: "anthropic/claude-opus-4-7"piùagentRuntime.id: "claude-cli"con ambito modello. I riferimenti modello legacyclaude-cli/claude-opus-4-7funzionano ancora per compatibilità, ma la nuova configurazione dovrebbe mantenere canonica la selezione provider/modello e mettere il backend di esecuzione nella policy runtime provider/modello. - Questo controlla solo l’esecuzione dei turni agente testuali. Generazione media, visione, PDF, musica, video e TTS usano comunque le rispettive impostazioni provider/modello.
agents.defaults.models):
| Alias | Modello |
|---|---|
opus | anthropic/claude-opus-4-6 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.5 |
gpt-mini | openai/gpt-5.4-mini |
gpt-nano | openai/gpt-5.4-nano |
gemini | google/gemini-3.1-pro-preview |
gemini-flash | google/gemini-3-flash-preview |
gemini-flash-lite | google/gemini-3.1-flash-lite-preview |
--thinking off o definisca personalmente agents.defaults.models["zai/<model>"].params.thinking.
I modelli Z.AI abilitano tool_stream per impostazione predefinita per lo streaming delle chiamate agli strumenti. Imposta agents.defaults.models["zai/<model>"].params.tool_stream su false per disabilitarlo.
I modelli Anthropic Claude 4.6 usano per impostazione predefinita il ragionamento adaptive quando non è impostato alcun livello di ragionamento esplicito.
agents.defaults.cliBackends
Backend CLI opzionali per esecuzioni di fallback solo testuali (senza chiamate agli strumenti). Utili come backup quando i provider API non funzionano.
- I backend CLI sono orientati prima al testo; gli strumenti sono sempre disabilitati.
- Le sessioni sono supportate quando
sessionArgè impostato. - Il pass-through delle immagini è supportato quando
imageArgaccetta percorsi di file. reseedFromRawTranscriptWhenUncompacted: trueconsente a un backend di recuperare sessioni sicure invalidate da una coda limitata del transcript OpenClaw grezzo prima che esista il primo riepilogo di compaction. Le modifiche al profilo di autenticazione o all’epoca delle credenziali non eseguono comunque mai un reseed grezzo.
agents.defaults.systemPromptOverride
Sostituisce l’intero prompt di sistema assemblato da OpenClaw con una stringa fissa. Impostalo a livello predefinito (agents.defaults.systemPromptOverride) o per agente (agents.list[].systemPromptOverride). I valori per agente hanno la precedenza; un valore vuoto o composto solo da spazi viene ignorato. Utile per esperimenti controllati sui prompt.
agents.defaults.promptOverlays
Overlay dei prompt indipendenti dal provider applicati per famiglia di modelli. Gli ID dei modelli della famiglia GPT-5 ricevono il contratto di comportamento condiviso tra provider; personality controlla solo il livello dello stile di interazione amichevole.
"friendly"(predefinito) e"on"abilitano il livello dello stile di interazione amichevole."off"disabilita solo il livello amichevole; il contratto di comportamento GPT-5 contrassegnato resta abilitato.- Il valore legacy
plugins.entries.openai.config.personalityviene ancora letto quando questa impostazione condivisa non è definita.
agents.defaults.heartbeat
Esecuzioni periodiche di Heartbeat.
every: stringa di durata (ms/s/m/h). Predefinito:30m(autenticazione con chiave API) o1h(autenticazione OAuth). Impostalo su0mper disabilitare.includeSystemPromptSection: quando è false, omette la sezione Heartbeat dal prompt di sistema e salta l’iniezione diHEARTBEAT.mdnel contesto di bootstrap. Predefinito:true.suppressToolErrorWarnings: quando è true, sopprime i payload di avviso per errori degli strumenti durante le esecuzioni di Heartbeat.timeoutSeconds: tempo massimo in secondi consentito per un turno dell’agente Heartbeat prima che venga interrotto. Lascialo non impostato per usareagents.defaults.timeoutSeconds.directPolicy: criterio di consegna diretta/DM.allow(predefinito) consente la consegna a destinazione diretta.blocksopprime la consegna a destinazione diretta ed emettereason=dm-blocked.lightContext: quando è true, le esecuzioni di Heartbeat usano un contesto di bootstrap leggero e mantengono soloHEARTBEAT.mddai file di bootstrap dell’area di lavoro.isolatedSession: quando è true, ogni Heartbeat viene eseguito in una sessione nuova senza cronologia di conversazione precedente. Stesso schema di isolamento di CronsessionTarget: "isolated". Riduce il costo in token per Heartbeat da circa 100K a circa 2-5K token.skipWhenBusy: quando è true, le esecuzioni di Heartbeat vengono rinviate su corsie occupate aggiuntive: lavoro di sottoagenti o comandi annidati. Le corsie Cron rinviano sempre gli Heartbeat, anche senza questo flag.- Per agente: imposta
agents.list[].heartbeat. Quando un agente definisceheartbeat, solo quegli agenti eseguono gli Heartbeat. - Gli Heartbeat eseguono turni completi dell’agente: intervalli più brevi consumano più token.
agents.defaults.compaction
mode:defaultosafeguard(riepilogo a blocchi per cronologie lunghe). Vedi Compaction.provider: ID di un provider Plugin di compaction registrato. Quando è impostato, viene chiamatosummarize()del provider invece del riepilogo LLM integrato. In caso di errore, ripiega sul comportamento integrato. Impostare un provider forzamode: "safeguard". Vedi Compaction.timeoutSeconds: numero massimo di secondi consentito per una singola operazione di compaction prima che OpenClaw la interrompa. Predefinito:900.keepRecentTokens: budget del punto di taglio Pi per mantenere testualmente la coda più recente del transcript./compactmanuale lo rispetta quando è impostato esplicitamente; altrimenti la compaction manuale è un checkpoint rigido.identifierPolicy:strict(predefinito),offocustom.strictantepone indicazioni integrate per la conservazione degli identificatori opachi durante il riepilogo di compaction.identifierInstructions: testo personalizzato opzionale per la conservazione degli identificatori usato quandoidentifierPolicy=custom.qualityGuard: controlli con nuovo tentativo in caso di output malformato per i riepiloghi safeguard. Abilitato per impostazione predefinita in modalità safeguard; impostaenabled: falseper saltare l’audit.midTurnPrecheck: controllo opzionale della pressione del ciclo strumenti Pi. Quandoenabled: true, OpenClaw controlla la pressione del contesto dopo che i risultati degli strumenti sono stati aggiunti e prima della successiva chiamata al modello. Se il contesto non entra più, interrompe il tentativo corrente prima di inviare il prompt e riutilizza il percorso di recupero del precheck esistente per troncare i risultati degli strumenti oppure compattare e riprovare. Funziona sia con la modalità di compactiondefaultsia consafeguard. Predefinito: disabilitato.postCompactionSections: nomi opzionali di sezioni H2/H3 di AGENTS.md da reiniettare dopo la compaction. Valore predefinito:["Session Startup", "Red Lines"]; imposta[]per disabilitare la reiniezione. Quando non è impostato o è impostato esplicitamente su quella coppia predefinita, anche le intestazioni precedentiEvery Session/Safetysono accettate come fallback legacy.model: override opzionaleprovider/model-idsolo per il riepilogo di compaction. Usalo quando la sessione principale deve mantenere un modello ma i riepiloghi di compaction devono essere eseguiti su un altro; quando non è impostato, la compaction usa il modello primario della sessione.maxActiveTranscriptBytes: soglia opzionale in byte (numbero stringhe come"20mb") che attiva la normale compaction locale prima di un’esecuzione quando il JSONL attivo supera la soglia. RichiedetruncateAfterCompactionin modo che una compaction riuscita possa ruotare a un transcript successore più piccolo. Disabilitato quando non è impostato o è0.notifyUser: quando ètrue, invia brevi avvisi all’utente quando la compaction inizia e quando termina (ad esempio, “Compacting context…” e “Compaction complete”). Disabilitato per impostazione predefinita per mantenere la compaction silenziosa.memoryFlush: turno agentico silenzioso prima della compaction automatica per archiviare memorie durevoli. Impostamodelsu un provider/modello esatto comeollama/qwen3:8bquando questo turno di manutenzione deve restare su un modello locale; l’override non eredita la catena di fallback della sessione attiva. Saltato quando l’area di lavoro è in sola lettura.
agents.defaults.contextPruning
Rimuove i vecchi risultati degli strumenti dal contesto in memoria prima dell’invio all’LLM. Non modifica la cronologia della sessione su disco.
comportamento della modalità cache-ttl
comportamento della modalità cache-ttl
mode: "cache-ttl"abilita i passaggi di pruning.ttlcontrolla con quale frequenza il pruning può essere eseguito di nuovo (dopo l’ultimo accesso alla cache).- Il pruning prima esegue il soft-trim dei risultati degli strumenti sovradimensionati, poi, se necessario, esegue l’hard-clear dei risultati degli strumenti più vecchi.
... al centro.Hard-clear sostituisce l’intero risultato dello strumento con il placeholder.Note:- I blocchi immagine non vengono mai tagliati/cancellati.
- I rapporti sono basati sui caratteri (approssimativi), non su conteggi esatti dei token.
- Se esistono meno di
keepLastAssistantsmessaggi dell’assistente, il pruning viene saltato.
Streaming dei blocchi
- I canali non Telegram richiedono
*.blockStreaming: trueesplicito per abilitare le risposte a blocchi. - Override dei canali:
channels.<channel>.blockStreamingCoalesce(e varianti per account). Signal/Slack/Discord/Google Chat usano per impostazione predefinitaminChars: 1500. humanDelay: pausa casuale tra risposte a blocchi.natural= 800-2500 ms. Override per agente:agents.list[].humanDelay.
Indicatori di digitazione
- Impostazioni predefinite:
instantper chat dirette/menzioni,messageper chat di gruppo senza menzione. - Override per sessione:
session.typingMode,session.typingIntervalSeconds.
agents.defaults.sandbox
Sandboxing facoltativo per l’agente incorporato. Vedi Sandboxing per la guida completa.
Dettagli della sandbox
Dettagli della sandbox
Backend:Modalità OpenShell:
docker: runtime Docker locale (predefinito)ssh: runtime remoto generico basato su SSHopenshell: runtime OpenShell
backend: "openshell", le impostazioni specifiche del runtime passano a
plugins.entries.openshell.config.Configurazione del backend SSH:target: destinazione SSH nel formatouser@host[:port]command: comando del client SSH (predefinito:ssh)workspaceRoot: radice remota assoluta usata per i workspace per ambitoidentityFile/certificateFile/knownHostsFile: file locali esistenti passati a OpenSSHidentityData/certificateData/knownHostsData: contenuti inline o SecretRef che OpenClaw materializza in file temporanei durante il runtimestrictHostKeyChecking/updateHostKeys: manopole della policy delle chiavi host di OpenSSH
identityDataprevale suidentityFilecertificateDataprevale sucertificateFileknownHostsDataprevale suknownHostsFile- I valori
*Databasati su SecretRef vengono risolti dallo snapshot del runtime dei segreti attivi prima dell’avvio della sessione sandbox
- inizializza il workspace remoto una volta dopo la creazione o la ricreazione
- poi mantiene canonico il workspace SSH remoto
- instrada
exec, gli strumenti sui file e i percorsi multimediali tramite SSH - non sincronizza automaticamente le modifiche remote verso l’host
- non supporta container browser sandbox
none: workspace sandbox per ambito sotto~/.openclaw/sandboxesro: workspace sandbox in/workspace, workspace dell’agente montato in sola lettura in/agentrw: workspace dell’agente montato in lettura/scrittura in/workspace
session: container + workspace per sessioneagent: un container + workspace per agente (predefinito)shared: container e workspace condivisi (senza isolamento tra sessioni)
mirror: inizializza il remoto dal locale prima di exec, sincronizza indietro dopo exec; il workspace locale resta canonicoremote: inizializza il remoto una volta quando la sandbox viene creata, poi mantiene canonico il workspace remoto
remote, le modifiche locali dell’host effettuate fuori da OpenClaw non vengono sincronizzate automaticamente nella sandbox dopo la fase di inizializzazione.
Il trasporto è SSH nella sandbox OpenShell, ma il Plugin possiede il ciclo di vita della sandbox e la sincronizzazione mirror facoltativa.setupCommand viene eseguito una volta dopo la creazione del container (tramite sh -lc). Richiede uscita di rete, root scrivibile, utente root.I container usano per impostazione predefinita network: "none" — imposta "bridge" (o una rete bridge personalizzata) se l’agente richiede accesso in uscita.
"host" è bloccato. "container:<id>" è bloccato per impostazione predefinita, salvo che tu imposti esplicitamente
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true (misura di emergenza).Gli allegati in ingresso vengono preparati in media/inbound/* nel workspace attivo.docker.binds monta directory host aggiuntive; i bind globali e per agente vengono uniti.Browser sandbox (sandbox.browser.enabled): Chromium + CDP in un container. URL noVNC iniettato nel prompt di sistema. Non richiede browser.enabled in openclaw.json.
L’accesso osservatore noVNC usa l’autenticazione VNC per impostazione predefinita e OpenClaw emette un URL con token di breve durata (invece di esporre la password nell’URL condiviso).allowHostControl: false(predefinito) impedisce alle sessioni sandbox di mirare al browser dell’host.networkusa per impostazione predefinitaopenclaw-sandbox-browser(rete bridge dedicata). Impostabridgesolo quando vuoi esplicitamente connettività bridge globale.cdpSourceRangelimita facoltativamente l’ingresso CDP al bordo del container a un intervallo CIDR (per esempio172.21.0.1/32).sandbox.browser.bindsmonta directory host aggiuntive solo nel container del browser sandbox. Quando è impostato (incluso[]), sostituiscedocker.bindsper il container del browser.- Le impostazioni di avvio predefinite sono definite in
scripts/sandbox-browser-entrypoint.she ottimizzate per host container:--remote-debugging-address=127.0.0.1--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>--user-data-dir=${HOME}/.chrome--no-first-run--no-default-browser-check--disable-3d-apis--disable-gpu--disable-software-rasterizer--disable-dev-shm-usage--disable-background-networking--disable-features=TranslateUI--disable-breakpad--disable-crash-reporter--renderer-process-limit=2--no-zygote--metrics-recording-only--disable-extensions(abilitato per impostazione predefinita)--disable-3d-apis,--disable-software-rasterizere--disable-gpusono abilitati per impostazione predefinita e possono essere disabilitati conOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0se l’uso di WebGL/3D lo richiede.OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0riabilita le estensioni se il tuo workflow dipende da esse.--renderer-process-limit=2può essere modificato conOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>; imposta0per usare il limite di processi predefinito di Chromium.- più
--no-sandboxquandonoSandboxè abilitato. - I valori predefiniti sono la baseline dell’immagine container; usa un’immagine browser personalizzata con un entrypoint personalizzato per modificare i valori predefiniti del container.
sandbox.docker.binds sono disponibili solo con Docker.
Crea le immagini (da un checkout del sorgente):
docker build inline.
agents.list (override per agente)
Usa agents.list[].tts per assegnare a un agente il proprio provider TTS, voce, modello,
stile o modalità TTS automatica. Il blocco agente esegue un deep merge su
messages.tts, così le credenziali condivise possono restare in un solo punto mentre i singoli
agenti sovrascrivono solo i campi voce o provider di cui hanno bisogno. L’override dell’agente attivo
si applica alle risposte vocali automatiche, a /tts audio, a /tts status e
allo strumento agente tts. Vedi Sintesi vocale
per esempi di provider e precedenza.
id: ID stabile dell’agente (obbligatorio).default: quando ne sono impostati più di uno, vince il primo (viene registrato un avviso). Se nessuno è impostato, la prima voce dell’elenco è quella predefinita.model: la forma stringa imposta un primario rigoroso per agente senza fallback del modello; anche la forma oggetto{ primary }è rigorosa, a meno che non si aggiunganofallbacks. Usa{ primary, fallbacks: [...] }per abilitare il fallback per quell’agente, oppure{ primary, fallbacks: [] }per rendere esplicito il comportamento rigoroso. I processi Cron che sovrascrivono soloprimaryereditano comunque i fallback predefiniti, a meno che non impostifallbacks: [].params: parametri di flusso per agente uniti sopra la voce del modello selezionata inagents.defaults.models. Usalo per override specifici dell’agente comecacheRetention,temperatureomaxTokenssenza duplicare l’intero catalogo dei modelli.tts: override facoltativi della sintesi vocale per agente. Il blocco esegue un’unione profonda sopramessages.tts, quindi mantieni le credenziali condivise dei provider e la policy di fallback inmessages.ttse imposta qui solo valori specifici della persona, come provider, voce, modello, stile o modalità automatica.skills: allowlist facoltativa delle skill per agente. Se omessa, l’agente ereditaagents.defaults.skillsquando è impostato; un elenco esplicito sostituisce i valori predefiniti invece di unirli, e[]significa nessuna skill.thinkingDefault: livello di ragionamento predefinito facoltativo per agente (off | minimal | low | medium | high | xhigh | adaptive | max). Sovrascriveagents.defaults.thinkingDefaultper questo agente quando non è impostato alcun override per messaggio o sessione. Il profilo del provider/modello selezionato controlla quali valori sono validi; per Google Gemini,adaptivemantiene il ragionamento dinamico gestito dal provider (thinkingLevelomesso su Gemini 3/3.1,thinkingBudget: -1su Gemini 2.5).reasoningDefault: visibilità predefinita facoltativa del reasoning per agente (on | off | stream). Sovrascriveagents.defaults.reasoningDefaultper questo agente quando non è impostato alcun override del reasoning per messaggio o sessione.fastModeDefault: valore predefinito facoltativo per agente per la modalità veloce (true | false). Si applica quando non è impostato alcun override della modalità veloce per messaggio o sessione.models: catalogo modelli/override runtime facoltativi per agente, indicizzati per ID completiprovider/model. Usamodels["provider/model"].agentRuntimeper eccezioni runtime per agente.runtime: descrittore runtime facoltativo per agente. Usatype: "acp"con i valori predefiniti diruntime.acp(agent,backend,mode,cwd) quando l’agente deve usare per impostazione predefinita le sessioni dell’harness ACP.identity.avatar: percorso relativo al workspace, URLhttp(s)o URIdata:.identityderiva i valori predefiniti:ackReactiondaemoji,mentionPatternsdaname/emoji.subagents.allowAgents: allowlist degli ID agente per target esplicitisessions_spawn.agentId(["*"]= qualsiasi; predefinito: solo lo stesso agente). Includi l’ID del richiedente quando devono essere consentite chiamateagentIdrivolte a sé stesso.- Guardia di ereditarietà della sandbox: se la sessione richiedente è in sandbox,
sessions_spawnrifiuta i target che verrebbero eseguiti senza sandbox. subagents.requireAgentId: quando è true, blocca le chiamatesessions_spawnche omettonoagentId(forza la selezione esplicita del profilo; predefinito: false).
Routing multi-agente
Esegui più agenti isolati dentro un unico Gateway. Consulta Multi-Agent.Campi di corrispondenza del binding
type(facoltativo):routeper il routing normale (il tipo mancante assume route come valore predefinito),acpper binding di conversazioni ACP persistenti.match.channel(obbligatorio)match.accountId(facoltativo;*= qualsiasi account; omesso = account predefinito)match.peer(facoltativo;{ kind: direct|group|channel, id })match.guildId/match.teamId(facoltativo; specifico del canale)acp(facoltativo; solo pertype: "acp"):{ mode, label, cwd, backend }
match.peermatch.guildIdmatch.teamIdmatch.accountId(esatto, senza peer/guild/team)match.accountId: "*"(a livello di canale)- Agente predefinito
bindings corrispondente.
Per le voci type: "acp", OpenClaw risolve in base all’identità esatta della conversazione (match.channel + account + match.peer.id) e non usa l’ordine dei livelli di binding di route sopra.
Profili di accesso per agente
Accesso completo (nessuna sandbox)
Accesso completo (nessuna sandbox)
Strumenti di sola lettura + workspace
Strumenti di sola lettura + workspace
Nessun accesso al filesystem (solo messaggistica)
Nessun accesso al filesystem (solo messaggistica)
Sessione
Dettagli dei campi sessione
Dettagli dei campi sessione
scope: strategia di raggruppamento della sessione di base per i contesti di chat di gruppo.per-sender(predefinito): ogni mittente ottiene una sessione isolata all’interno di un contesto di canale.global: tutti i partecipanti in un contesto di canale condividono una singola sessione (usare solo quando è previsto un contesto condiviso).
dmScope: come vengono raggruppati i messaggi diretti.main: tutti i messaggi diretti condividono la sessione principale.per-peer: isola per id mittente tra i canali.per-channel-peer: isola per canale + mittente (consigliato per caselle di posta multiutente).per-account-channel-peer: isola per account + canale + mittente (consigliato per multi-account).
identityLinks: mappa gli id canonici ai peer con prefisso provider per la condivisione delle sessioni tra canali. Comandi Dock come/dock_discordusano la stessa mappa per cambiare la route di risposta della sessione attiva verso un altro peer di canale collegato; vedi Docking dei canali.reset: criterio di reimpostazione principale.dailyreimposta all’ora localeatHour;idlereimposta dopoidleMinutes. Quando entrambi sono configurati, prevale quello che scade per primo. La freschezza della reimpostazione giornaliera usasessionStartedAtdella riga di sessione; la freschezza della reimpostazione per inattività usalastInteractionAt. Scritture in background/eventi di sistema come Heartbeat, risvegli Cron, notifiche exec e contabilità del Gateway possono aggiornareupdatedAt, ma non mantengono fresche le sessioni giornaliere/per inattività.resetByType: override per tipo (direct,group,thread). Il valore legacydmè accettato come alias didirect.mainKey: campo legacy. Il runtime usa sempre"main"per il bucket principale della chat diretta.agentToAgent.maxPingPongTurns: numero massimo di turni di risposta reciproca tra agenti durante scambi agente-agente (intero, intervallo:0-5).0disabilita il concatenamento ping-pong.sendPolicy: corrispondenza perchannel,chatType(direct|group|channel, con alias legacydm),keyPrefixorawKeyPrefix. La prima negazione prevale.maintenance: controlli di pulizia + conservazione dell’archivio sessioni.mode:warnemette solo avvisi;enforceapplica la pulizia.pruneAfter: soglia di età per voci obsolete (predefinito30d).maxEntries: numero massimo di voci insessions.json(predefinito500). Il runtime scrive la pulizia in batch con un piccolo buffer high-water per limiti dimensionati per la produzione;openclaw sessions cleanup --enforceapplica il limite immediatamente.rotateBytes: deprecato e ignorato;openclaw doctor --fixlo rimuove dalle configurazioni più vecchie.resetArchiveRetention: conservazione per gli archivi di trascrizioni*.reset.<timestamp>. Il valore predefinito èpruneAfter; impostarefalseper disabilitare.maxDiskBytes: budget disco opzionale per la directory delle sessioni. In modalitàwarnregistra avvisi; in modalitàenforcerimuove prima gli artefatti/le sessioni più vecchi.highWaterBytes: obiettivo opzionale dopo la pulizia del budget. Il valore predefinito è80%dimaxDiskBytes.
threadBindings: impostazioni predefinite globali per le funzionalità di sessione vincolate ai thread.enabled: interruttore predefinito principale (i provider possono eseguire l’override; Discord usachannels.discord.threadBindings.enabled)idleHours: disattivazione automatica predefinita per inattività in ore (0disabilita; i provider possono eseguire l’override)maxAgeHours: età massima rigida predefinita in ore (0disabilita; i provider possono eseguire l’override)spawnSessions: gate predefinito per creare sessioni di lavoro vincolate ai thread dasessions_spawne spawn di thread ACP. Il valore predefinito ètruequando i vincoli di thread sono abilitati; provider/account possono eseguire l’override.defaultSpawnContext: contesto subagent nativo predefinito per gli spawn vincolati ai thread ("fork"o"isolated"). Il valore predefinito è"fork".
Messaggi
Prefisso di risposta
Override per canale/account:channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Risoluzione (vince il più specifico): account → canale → globale. "" disabilita e interrompe la cascata. "auto" deriva [{identity.name}].
Variabili del template:
| Variabile | Descrizione | Esempio |
|---|---|---|
{model} | Nome breve del modello | claude-opus-4-6 |
{modelFull} | Identificatore completo del modello | anthropic/claude-opus-4-6 |
{provider} | Nome del provider | anthropic |
{thinkingLevel} | Livello di pensiero corrente | high, low, off |
{identity.name} | Nome dell’identità dell’agente | (uguale a "auto") |
{think} è un alias di {thinkingLevel}.
Reazione di conferma
- Il valore predefinito è
identity.emojidell’agente attivo, altrimenti"👀". Impostare""per disabilitare. - Override per canale:
channels.<channel>.ackReaction,channels.<channel>.accounts.<id>.ackReaction. - Ordine di risoluzione: account → canale →
messages.ackReaction→ fallback dell’identità. - Ambito:
group-mentions(predefinito),group-all,direct,all. removeAckAfterReply: rimuove la conferma dopo la risposta sui canali che supportano le reazioni, come Slack, Discord, Telegram, WhatsApp e iMessage.messages.statusReactions.enabled: abilita le reazioni di stato del ciclo di vita su Slack, Discord e Telegram. Su Slack e Discord, se non impostato, le reazioni di stato restano abilitate quando le reazioni di conferma sono attive. Su Telegram, impostarlo esplicitamente atrueper abilitare le reazioni di stato del ciclo di vita.
Debounce in ingresso
Raggruppa messaggi rapidi di solo testo dallo stesso mittente in un singolo turno dell’agente. Media/allegati svuotano immediatamente il batch. I comandi di controllo bypassano il debounce.TTS (text-to-speech)
autocontrolla la modalità auto-TTS predefinita:off,always,inboundotagged./tts on|offpuò eseguire l’override delle preferenze locali, e/tts statusmostra lo stato effettivo.summaryModelesegue l’override diagents.defaults.model.primaryper il riepilogo automatico.modelOverridesè abilitato per impostazione predefinita;modelOverrides.allowProviderèfalseper impostazione predefinita (opt-in).- Le chiavi API ripiegano su
ELEVENLABS_API_KEY/XI_API_KEYeOPENAI_API_KEY. - I provider vocali inclusi sono di proprietà del Plugin. Se
plugins.allowè impostato, includi ogni Plugin provider TTS che vuoi usare, ad esempiomicrosoftper Edge TTS. L’id provider legacyedgeè accettato come alias dimicrosoft. providers.openai.baseUrlesegue l’override dell’endpoint TTS di OpenAI. L’ordine di risoluzione è configurazione, poiOPENAI_TTS_BASE_URL, poihttps://api.openai.com/v1.- Quando
providers.openai.baseUrlpunta a un endpoint non OpenAI, OpenClaw lo tratta come server TTS compatibile con OpenAI e allenta la validazione di modello/voce.
Talk
Valori predefiniti per la modalità Talk (macOS/iOS/Android).talk.providerdeve corrispondere a una chiave intalk.providersquando sono configurati più provider Talk.- Le chiavi Talk piatte legacy (
talk.voiceId,talk.voiceAliases,talk.modelId,talk.outputFormat,talk.apiKey) sono solo per compatibilità. Eseguiopenclaw doctor --fixper riscrivere la configurazione persistita intalk.providers.<provider>. - Gli ID voce ripiegano su
ELEVENLABS_VOICE_IDoSAG_VOICE_ID. providers.*.apiKeyaccetta stringhe in chiaro o oggetti SecretRef.- Il fallback
ELEVENLABS_API_KEYsi applica solo quando non è configurata alcuna chiave API Talk. providers.*.voiceAliasesconsente alle direttive Talk di usare nomi descrittivi.providers.mlx.modelIdseleziona il repository Hugging Face usato dall’helper MLX locale di macOS. Se omesso, macOS usamlx-community/Soprano-80M-bf16.- La riproduzione MLX su macOS passa attraverso l’helper
openclaw-mlx-ttsincluso quando presente, oppure un eseguibile suPATH;OPENCLAW_MLX_TTS_BINesegue l’override del percorso dell’helper per lo sviluppo. consultThinkingLevelcontrolla il livello di pensiero per l’esecuzione completa dell’agente OpenClaw dietro le chiamate Control UI Talk realtimeopenclaw_agent_consult. Lasciare non impostato per preservare il normale comportamento di sessione/modello.consultFastModeimposta un override fast-mode una tantum per le consultazioni Control UI Talk realtime senza modificare l’impostazione fast-mode normale della sessione.speechLocaleimposta l’id locale BCP 47 usato dal riconoscimento vocale Talk di iOS/macOS. Lasciare non impostato per usare il valore predefinito del dispositivo.silenceTimeoutMscontrolla per quanto tempo la modalità Talk attende dopo il silenzio dell’utente prima di inviare la trascrizione. Se non impostato, mantiene la finestra di pausa predefinita della piattaforma (700 ms su macOS e Android, 900 ms su iOS).realtime.instructionsaggiunge istruzioni di sistema rivolte al provider al prompt realtime integrato di OpenClaw, così lo stile vocale può essere configurato senza perdere la guida predefinita diopenclaw_agent_consult.
Correlati
- Riferimento alla configurazione — tutte le altre chiavi di configurazione
- Configurazione — attività comuni e configurazione rapida
- Esempi di configurazione