agents.*, multiAgent.*, session.*,
messages.* und talk.*. Für Kanäle, Tools, Gateway-Runtime und andere
Schlüssel auf oberster Ebene siehe Konfigurationsreferenz.
Agent-Standardeinstellungen
agents.defaults.workspace
Standard: ~/.openclaw/workspace.
agents.defaults.repoRoot
Optionales Repository-Root, das in der Zeile Runtime des System-Prompts angezeigt wird. Wenn nicht gesetzt, erkennt OpenClaw es automatisch, indem vom Workspace nach oben gelaufen wird.
agents.defaults.skills
Optionale Standard-Allowlist für Skills bei Agenten, die
agents.list[].skills nicht setzen.
- Lassen Sie
agents.defaults.skillsweg, um standardmäßig uneingeschränkte Skills zuzulassen. - Lassen Sie
agents.list[].skillsweg, um die Standardwerte zu erben. - Setzen Sie
agents.list[].skills: [], um keine Skills zuzulassen. - Eine nicht leere Liste in
agents.list[].skillsist die endgültige Menge für diesen Agenten; sie wird nicht mit den Standardwerten zusammengeführt.
agents.defaults.skipBootstrap
Deaktiviert die automatische Erstellung von Workspace-Bootstrap-Dateien (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md).
agents.defaults.contextInjection
Steuert, wann Workspace-Bootstrap-Dateien in den System-Prompt injiziert werden. Standard: "always".
"continuation-skip": Sichere Fortsetzungsturns (nach einer abgeschlossenen Assistant-Antwort) überspringen die erneute Injektion des Workspace-Bootstraps, wodurch die Größe des Prompts reduziert wird. Heartbeat-Läufe und Wiederholungen nach Compaction bauen den Kontext weiterhin neu auf.
agents.defaults.bootstrapMaxChars
Maximale Zeichenanzahl pro Workspace-Bootstrap-Datei vor dem Abschneiden. Standard: 12000.
agents.defaults.bootstrapTotalMaxChars
Maximale Gesamtzahl an Zeichen, die über alle Workspace-Bootstrap-Dateien hinweg injiziert werden. Standard: 60000.
agents.defaults.bootstrapPromptTruncationWarning
Steuert agentensichtbaren Warntext, wenn Bootstrap-Kontext abgeschnitten wird.
Standard: "once".
"off": niemals Warntext in den System-Prompt injizieren."once": Warnung einmal pro eindeutiger Abschneidesignatur injizieren (empfohlen)."always": bei jedem Lauf Warnung injizieren, wenn Abschneidung vorliegt.
Zuordnung der Zuständigkeit für Kontextbudgets
OpenClaw hat mehrere Prompts-/Kontextbudgets mit hohem Volumen, und sie sind absichtlich nach Subsystemen aufgeteilt, anstatt alle über einen generischen Schalter zu laufen.agents.defaults.bootstrapMaxChars/agents.defaults.bootstrapTotalMaxChars: normale Injektion des Workspace-Bootstraps.agents.defaults.startupContext.*: einmaliges Startprelude für/newund/reset, einschließlich aktueller täglicher Dateien ausmemory/*.md.skills.limits.*: die kompakte Skills-Liste, die in den System-Prompt injiziert wird.agents.defaults.contextLimits.*: begrenzte Laufzeitauszüge und injizierte runtimeeigene Blöcke.memory.qmd.limits.*: Snippet- und Injektionsgrößen für indizierte Memory-Suche.
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextLimits.*
agents.defaults.startupContext
Steuert das Startup-Prelude des ersten Turns, das bei reinen /new- und /reset-
Läufen injiziert wird.
agents.defaults.contextLimits
Gemeinsame Standardwerte für begrenzte Laufzeit-Kontextoberflächen.
memoryGetMaxChars: standardmäßige Begrenzung vonmemory_get-Auszügen, bevor Metadaten zur Abschneidung und der Hinweis auf Fortsetzung hinzugefügt werden.memoryGetDefaultLines: standardmäßiges Zeilenfenster fürmemory_get, wennlinesweggelassen wird.toolResultMaxChars: Begrenzung für Tool-Ergebnisse im Live-Betrieb, die für persistierte Ergebnisse und Wiederherstellung bei Überläufen verwendet wird.postCompactionMaxChars: Begrenzung für AGENTS.md-Auszüge, die während der Injektion beim Refresh nach Compaction verwendet wird.
agents.list[].contextLimits
Überschreibung pro Agent für die gemeinsamen Schalter unter contextLimits. Weggelassene Felder erben
von agents.defaults.contextLimits.
skills.limits.maxSkillsPromptChars
Globale Obergrenze für die kompakte Skills-Liste, die in den System-Prompt injiziert wird. Dies
beeinflusst das bedarfsweise Lesen von SKILL.md-Dateien nicht.
agents.list[].skillsLimits.maxSkillsPromptChars
Überschreibung pro Agent für das Prompt-Budget der Skills.
agents.defaults.imageMaxDimensionPx
Maximale Pixelgröße der längsten Bildseite in Bildblöcken von Transcript/Tool vor Provider-Aufrufen.
Standard: 1200.
Niedrigere Werte reduzieren in der Regel die Verwendung von Vision-Tokens und die Größe der Request-Payload bei Läufen mit vielen Screenshots.
Höhere Werte erhalten mehr visuelle Details.
agents.defaults.userTimezone
Zeitzone für den System-Prompt-Kontext (nicht für Nachrichten-Zeitstempel). Fällt auf die Zeitzone des Hosts zurück.
agents.defaults.timeFormat
Zeitformat im System-Prompt. Standard: auto (OS-Einstellung).
agents.defaults.model
model: akzeptiert entweder einen String ("provider/model") oder ein Objekt ({ primary, fallbacks }).- Die String-Form setzt nur das primäre Modell.
- Die Objekt-Form setzt das primäre Modell plus geordnete Failover-Modelle.
imageModel: akzeptiert entweder einen String ("provider/model") oder ein Objekt ({ primary, fallbacks }).- Wird vom Tool-Pfad
imageals Konfiguration für das Vision-Modell verwendet. - Wird auch als Fallback-Routing verwendet, wenn das ausgewählte/standardmäßige Modell keine Bildeingaben akzeptieren kann.
- Wird vom Tool-Pfad
imageGenerationModel: akzeptiert entweder einen String ("provider/model") oder ein Objekt ({ primary, fallbacks }).- Wird von der gemeinsamen Funktion zur Bildgenerierung und jeder zukünftigen Tool-/Plugin-Oberfläche verwendet, die Bilder erzeugt.
- Typische Werte:
google/gemini-3.1-flash-image-previewfür native Gemini-Bildgenerierung,fal/fal-ai/flux/devfür fal oderopenai/gpt-image-2für OpenAI Images. - Wenn Sie direkt ein Provider-/Modellpaar auswählen, konfigurieren Sie auch die passende Provider-Authentifizierung (zum Beispiel
GEMINI_API_KEYoderGOOGLE_API_KEYfürgoogle/*,OPENAI_API_KEYoder OpenAI Codex OAuth füropenai/gpt-image-2,FAL_KEYfürfal/*). - Wenn weggelassen, kann
image_generatetrotzdem einen auth-gestützten Standardprovider ableiten. Es versucht zuerst den aktuellen Standardprovider und danach die übrigen registrierten Bildgenerierungsprovider in der Reihenfolge ihrer Provider-ID.
musicGenerationModel: akzeptiert entweder einen String ("provider/model") oder ein Objekt ({ primary, fallbacks }).- Wird von der gemeinsamen Funktion zur Musikgenerierung und vom eingebauten Tool
music_generateverwendet. - Typische Werte:
google/lyria-3-clip-preview,google/lyria-3-pro-previewoderminimax/music-2.5+. - Wenn weggelassen, kann
music_generatetrotzdem einen auth-gestützten Standardprovider ableiten. Es versucht zuerst den aktuellen Standardprovider und danach die übrigen registrierten Musikgenerierungsprovider in der Reihenfolge ihrer Provider-ID. - Wenn Sie direkt ein Provider-/Modellpaar auswählen, konfigurieren Sie auch die passende Provider-Authentifizierung/API-Key.
- Wird von der gemeinsamen Funktion zur Musikgenerierung und vom eingebauten Tool
videoGenerationModel: akzeptiert entweder einen String ("provider/model") oder ein Objekt ({ primary, fallbacks }).- Wird von der gemeinsamen Funktion zur Videogenerierung und vom eingebauten Tool
video_generateverwendet. - Typische Werte:
qwen/wan2.6-t2v,qwen/wan2.6-i2v,qwen/wan2.6-r2v,qwen/wan2.6-r2v-flashoderqwen/wan2.7-r2v. - Wenn weggelassen, kann
video_generatetrotzdem einen auth-gestützten Standardprovider ableiten. Es versucht zuerst den aktuellen Standardprovider und danach die übrigen registrierten Videogenerierungsprovider in der Reihenfolge ihrer Provider-ID. - Wenn Sie direkt ein Provider-/Modellpaar auswählen, konfigurieren Sie auch die passende Provider-Authentifizierung/API-Key.
- Der gebündelte Qwen-Provider für Videogenerierung unterstützt bis zu 1 Ausgabevideo, 1 Eingabebild, 4 Eingabevideos, 10 Sekunden Dauer sowie die Optionen auf Providerebene
size,aspectRatio,resolution,audioundwatermark.
- Wird von der gemeinsamen Funktion zur Videogenerierung und vom eingebauten Tool
pdfModel: akzeptiert entweder einen String ("provider/model") oder ein Objekt ({ primary, fallbacks }).- Wird vom Tool
pdffür das Modell-Routing verwendet. - Wenn weggelassen, fällt das PDF-Tool auf
imageModelund dann auf das aufgelöste Sitzungs-/Standardmodell zurück.
- Wird vom Tool
pdfMaxBytesMb: standardmäßiges PDF-Größenlimit für das Toolpdf, wennmaxBytesMbzur Aufrufzeit nicht übergeben wird.pdfMaxPages: standardmäßige maximale Seitenanzahl, die vom Extraktions-Fallback-Modus im Toolpdfberücksichtigt wird.verboseDefault: Standard-Verbose-Level für Agenten. Werte:"off","on","full". Standard:"off".elevatedDefault: Standardlevel für erhöhte Ausgabe bei Agenten. Werte:"off","on","ask","full". Standard:"on".model.primary: Formatprovider/model(z. B.openai/gpt-5.4für Zugriff per API-Key oderopenai-codex/gpt-5.5für Codex OAuth). Wenn Sie den Provider weglassen, versucht OpenClaw zuerst einen Alias, dann ein eindeutiges Match mit einem konfigurierten Provider für genau diese Modell-ID und greift erst dann auf den konfigurierten Standardprovider zurück (veraltetes Kompatibilitätsverhalten, daher bevorzugen Sie explizitesprovider/model). Wenn dieser Provider das konfigurierte Standardmodell nicht mehr bereitstellt, fällt OpenClaw auf das erste konfigurierte Provider-/Modellpaar zurück, anstatt einen veralteten Standard eines entfernten Providers anzuzeigen.models: der konfigurierte Modellkatalog und die Allowlist für/model. Jeder Eintrag kannalias(Abkürzung) undparams(providerspezifisch, z. B.temperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold) enthalten.- Sichere Bearbeitungen: Verwenden Sie
openclaw config set agents.defaults.models '<json>' --strict-json --merge, um Einträge hinzuzufügen.config setverweigert Ersetzungen, die bestehende Allowlist-Einträge entfernen würden, sofern Sie nicht--replaceübergeben. - Providerbezogene Abläufe für
configure/Onboarding führen ausgewählte Providermodelle in diese Zuordnung ein und erhalten bereits konfigurierte nicht zusammenhängende Provider. - Für direkte OpenAI-Responses-Modelle ist serverseitige Compaction automatisch aktiviert. Verwenden Sie
params.responsesServerCompaction: false, um die Injektion voncontext_managementzu stoppen, oderparams.responsesCompactThreshold, um den Schwellenwert zu überschreiben. Siehe OpenAI server-side compaction.
- Sichere Bearbeitungen: Verwenden Sie
params: globale Standard-Providerparameter, die auf alle Modelle angewendet werden. Werden unteragents.defaults.paramsgesetzt (z. B.{ cacheRetention: "long" }).- Priorität beim Zusammenführen von
params(Konfiguration):agents.defaults.params(globale Basis) wird vonagents.defaults.models["provider/model"].params(pro Modell) überschrieben, danach überschreibtagents.list[].params(mit passender Agent-ID) nach Schlüssel. Siehe Prompt Caching für Details. embeddedHarness: Standardrichtlinie für die Low-Level-Runtime eingebetteter Agenten. Verwenden Sieruntime: "auto", damit registrierte Plugin-Harnesses unterstützte Modelle übernehmen können,runtime: "pi"zum Erzwingen des eingebauten PI-Harness oder eine registrierte Harness-ID wieruntime: "codex". Setzen Siefallback: "none", um den automatischen PI-Fallback zu deaktivieren.- Konfigurationsschreiber, die diese Felder verändern (zum Beispiel
/models set,/models set-imageund Befehle zum Hinzufügen/Entfernen von Fallbacks), speichern die kanonische Objektform und erhalten nach Möglichkeit vorhandene Fallback-Listen. maxConcurrent: maximale Anzahl paralleler Agent-Läufe über Sitzungen hinweg (jede Sitzung bleibt weiterhin serialisiert). Standard: 4.
agents.defaults.embeddedHarness
embeddedHarness steuert, welcher Low-Level-Executor eingebettete Agent-Turns ausführt.
Die meisten Bereitstellungen sollten den Standard { runtime: "auto", fallback: "pi" } beibehalten.
Verwenden Sie ihn, wenn ein vertrauenswürdiges Plugin ein natives Harness bereitstellt, zum Beispiel das gebündelte
Codex-App-Server-Harness.
runtime:"auto","pi"oder eine registrierte Plugin-Harness-ID. Das gebündelte Codex-Plugin registriertcodex.fallback:"pi"oder"none"."pi"behält das eingebaute PI-Harness als Kompatibilitätsfallback bei, wenn kein Plugin-Harness ausgewählt ist."none"sorgt dafür, dass eine fehlende oder nicht unterstützte Auswahl eines Plugin-Harness fehlschlägt, statt stillschweigend PI zu verwenden. Fehler des ausgewählten Plugin-Harness werden immer direkt angezeigt.- Umgebungsüberschreibungen:
OPENCLAW_AGENT_RUNTIME=<id|auto|pi>überschreibtruntime;OPENCLAW_AGENT_HARNESS_FALLBACK=nonedeaktiviert den PI-Fallback für diesen Prozess. - Für reine Codex-Bereitstellungen setzen Sie
model: "openai/gpt-5.5",embeddedHarness.runtime: "codex"undembeddedHarness.fallback: "none". - Die Wahl des Harness wird pro Sitzungs-ID nach dem ersten eingebetteten Lauf festgeschrieben. Änderungen in Konfiguration/Umgebung wirken sich auf neue oder zurückgesetzte Sitzungen aus, nicht auf ein bestehendes Transcript. Legacy-Sitzungen mit Transcript-Verlauf, aber ohne aufgezeichnete Festlegung, werden als auf PI festgelegt behandelt.
/statuszeigt Nicht-PI-Harness-IDs wiecodexnebenFastan. - Dies steuert nur das eingebettete Chat-Harness. Mediengenerierung, Vision, PDF, Musik, Video und TTS verwenden weiterhin ihre Provider-/Modell-Einstellungen.
agents.defaults.models enthalten ist):
| Alias | Modell |
|---|---|
opus | anthropic/claude-opus-4-6 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.4 oder konfiguriertes Codex OAuth 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 setzen oder agents.defaults.models["zai/<model>"].params.thinking selbst definieren.
Modelle von Z.AI aktivieren standardmäßig tool_stream für Streaming von Tool-Aufrufen. Setzen Sie agents.defaults.models["zai/<model>"].params.tool_stream auf false, um dies zu deaktivieren.
Modelle von Anthropic Claude 4.6 verwenden standardmäßig adaptive Thinking, wenn kein explizites Thinking-Level gesetzt ist.
agents.defaults.cliBackends
Optionale CLI-Backends für textbasierte Fallback-Läufe (ohne Tool-Aufrufe). Nützlich als Absicherung, wenn API-Provider ausfallen.
- CLI-Backends sind textorientiert; Tools sind immer deaktiviert.
- Sitzungen werden unterstützt, wenn
sessionArggesetzt ist. - Bilddurchreichung wird unterstützt, wenn
imageArgDateipfade akzeptiert.
agents.defaults.systemPromptOverride
Ersetzt den vollständig von OpenClaw zusammengestellten System-Prompt durch einen festen String. Wird auf Standardebene (agents.defaults.systemPromptOverride) oder pro Agent (agents.list[].systemPromptOverride) gesetzt. Werte pro Agent haben Vorrang; ein leerer oder nur aus Leerraum bestehender Wert wird ignoriert. Nützlich für kontrollierte Prompt-Experimente.
agents.defaults.promptOverlays
Providerunabhängige Prompt-Overlays, die nach Modellfamilie angewendet werden. Modell-IDs der GPT-5-Familie erhalten denselben gemeinsamen Verhaltensvertrag über Provider hinweg; personality steuert nur die freundliche Interaktionsschicht.
"friendly"(Standard) und"on"aktivieren die freundliche Interaktionsschicht."off"deaktiviert nur die freundliche Schicht; der getaggte GPT-5-Verhaltensvertrag bleibt aktiv.- Das ältere
plugins.entries.openai.config.personalitywird weiterhin gelesen, wenn diese gemeinsame Einstellung nicht gesetzt ist.
agents.defaults.heartbeat
Periodische Heartbeat-Läufe.
every: Dauer-String (ms/s/m/h). Standard:30m(API-Key-Authentifizierung) oder1h(OAuth-Authentifizierung). Setzen Sie0m, um zu deaktivieren.includeSystemPromptSection: wennfalse, wird der Heartbeat-Abschnitt aus dem System-Prompt weggelassen und die Injektion vonHEARTBEAT.mdin den Bootstrap-Kontext übersprungen. Standard:true.suppressToolErrorWarnings: wenntrue, werden Nutzlasten für Tool-Fehlerwarnungen während Heartbeat-Läufen unterdrückt.timeoutSeconds: maximale Zeit in Sekunden, die ein Heartbeat-Agent-Turn ausführen darf, bevor er abgebrochen wird. Nicht gesetzt verwendetagents.defaults.timeoutSeconds.directPolicy: Richtlinie für direkte/DM-Zustellung.allow(Standard) erlaubt direkte Zielzustellung.blockunterdrückt direkte Zielzustellung und erzeugtreason=dm-blocked.lightContext: wenntrue, verwenden Heartbeat-Läufe einen leichtgewichtigen Bootstrap-Kontext und behalten aus den Workspace-Bootstrap-Dateien nurHEARTBEAT.md.isolatedSession: wenntrue, wird jeder Heartbeat in einer frischen Sitzung ohne vorherigen Gesprächsverlauf ausgeführt. Dasselbe Isolationsmuster wie bei CronsessionTarget: "isolated". Reduziert die Tokenkosten pro Heartbeat von etwa ~100K auf ~2–5K Tokens.- Pro Agent: setzen Sie
agents.list[].heartbeat. Wenn irgendein Agentheartbeatdefiniert, führen nur diese Agenten Heartbeats aus. - Heartbeats führen vollständige Agent-Turns aus — kürzere Intervalle verbrauchen mehr Tokens.
agents.defaults.compaction
mode:defaultodersafeguard(stückweise Zusammenfassung für lange Verläufe). Siehe Compaction.provider: ID eines registrierten Compaction-Provider-Plugins. Wenn gesetzt, wirdsummarize()dieses Providers anstelle der eingebauten LLM-Zusammenfassung aufgerufen. Bei Fehlern fällt es auf das eingebaute Verhalten zurück. Das Setzen eines Providers erzwingtmode: "safeguard". Siehe Compaction.timeoutSeconds: maximale Anzahl an Sekunden, die für eine einzelne Compaction-Operation erlaubt sind, bevor OpenClaw sie abbricht. Standard:900.identifierPolicy:strict(Standard),offodercustom.strictstellt bei der Zusammenfassung während der Compaction eingebaute Anweisungen zur Beibehaltung undurchsichtiger Bezeichner voran.identifierInstructions: optionaler benutzerdefinierter Text zur Beibehaltung von Bezeichnern, der verwendet wird, wennidentifierPolicy=custom.postCompactionSections: optionale Namen von H2-/H3-Abschnitten in AGENTS.md, die nach der Compaction erneut injiziert werden. Standard ist["Session Startup", "Red Lines"]; setzen Sie[], um die Re-Injektion zu deaktivieren. Wenn nicht gesetzt oder explizit auf dieses Standardpaar gesetzt, werden ältere ÜberschriftenEvery Session/Safetyauch als Legacy-Fallback akzeptiert.model: optionale Überschreibungprovider/model-idnur für die Zusammenfassung während der Compaction. Verwenden Sie dies, wenn die Hauptsitzung ein Modell behalten soll, Compaction-Zusammenfassungen aber auf einem anderen Modell laufen sollen; wenn nicht gesetzt, verwendet Compaction das primäre Modell der Sitzung.notifyUser: wenntrue, sendet kurze Hinweise an den Benutzer, wenn die Compaction beginnt und wenn sie abgeschlossen ist (zum Beispiel „Compacting context…“ und „Compaction complete“). Standardmäßig deaktiviert, damit Compaction still bleibt.memoryFlush: stiller agentischer Turn vor automatischer Compaction, um dauerhafte Erinnerungen zu speichern. Wird übersprungen, wenn der Workspace schreibgeschützt ist.
agents.defaults.contextPruning
Beschneidet alte Tool-Ergebnisse aus dem Kontext im Arbeitsspeicher, bevor er an das LLM gesendet wird. Verändert nicht den Sitzungsverlauf auf dem Datenträger.
Verhalten des Modus cache-ttl
Verhalten des Modus cache-ttl
mode: "cache-ttl"aktiviert Durchläufe zur Beschneidung.ttlsteuert, wie oft die Beschneidung erneut ausgeführt werden kann (nach dem letzten Cache-Touch).- Die Beschneidung kürzt zuerst zu große Tool-Ergebnisse weich und löscht dann bei Bedarf ältere Tool-Ergebnisse hart.
... ein.Hard-clear ersetzt das gesamte Tool-Ergebnis durch den Platzhalter.Hinweise:- Bildblöcke werden niemals gekürzt/gelöscht.
- Verhältnisse basieren auf Zeichen (ungefähr), nicht auf exakten Tokenzahlen.
- Wenn weniger als
keepLastAssistantsAssistant-Nachrichten existieren, wird die Beschneidung übersprungen.
Block-Streaming
- Nicht-Telegram-Kanäle erfordern explizit
*.blockStreaming: true, um Blockantworten zu aktivieren. - Kanalüberschreibungen:
channels.<channel>.blockStreamingCoalesce(und Varianten pro Konto). Signal/Slack/Discord/Google Chat verwenden standardmäßigminChars: 1500. humanDelay: zufällige Pause zwischen Blockantworten.natural= 800–2500 ms. Überschreibung pro Agent:agents.list[].humanDelay.
Tippindikatoren
- Standardwerte:
instantfür direkte Chats/Erwähnungen,messagefür Gruppenchats ohne Erwähnung. - Überschreibungen pro Sitzung:
session.typingMode,session.typingIntervalSeconds.
agents.defaults.sandbox
Optionale Sandbox für den eingebetteten Agenten. Den vollständigen Leitfaden finden Sie unter Sandboxing.
Details zur Sandbox
Details zur Sandbox
Backend:OpenShell-Modus:
docker: lokale Docker-Runtime (Standard)ssh: generische Remote-Runtime über SSHopenshell: OpenShell-Runtime
backend: "openshell" ausgewählt ist, werden runtimespezifische Einstellungen nach
plugins.entries.openshell.config verschoben.Konfiguration des SSH-Backends:target: SSH-Ziel im Formatuser@host[:port]command: SSH-Client-Befehl (Standard:ssh)workspaceRoot: absolute Remote-Wurzel, die für Workspaces pro Scope verwendet wirdidentityFile/certificateFile/knownHostsFile: vorhandene lokale Dateien, die an OpenSSH übergeben werdenidentityData/certificateData/knownHostsData: Inline-Inhalte oder SecretRefs, die OpenClaw zur Laufzeit in temporäre Dateien materialisiertstrictHostKeyChecking/updateHostKeys: Schalter für die Host-Key-Richtlinie von OpenSSH
identityDatahat Vorrang voridentityFilecertificateDatahat Vorrang vorcertificateFileknownHostsDatahat Vorrang vorknownHostsFile- SecretRef-gestützte
*Data-Werte werden aus dem aktiven Snapshot der Secrets-Runtime aufgelöst, bevor die Sandbox-Sitzung startet
- initialisiert den Remote-Workspace einmal nach Erstellen oder Neuerstellen
- behält dann den Remote-SSH-Workspace als kanonisch bei
- leitet
exec, Dateitools und Medienpfade über SSH - synchronisiert Remote-Änderungen nicht automatisch zurück auf den Host
- unterstützt keine Browser-Container in der Sandbox
none: Sandbox-Workspace pro Scope unter~/.openclaw/sandboxesro: Sandbox-Workspace unter/workspace, Agenten-Workspace schreibgeschützt unter/agenteingebundenrw: Agenten-Workspace unter/workspacemit Lese-/Schreibzugriff eingebunden
session: Container + Workspace pro Sitzungagent: ein Container + Workspace pro Agent (Standard)shared: geteilter Container und Workspace (keine sitzungsübergreifende Isolation)
mirror: Seed des Remotes aus dem Lokalen vorexec, Synchronisierung zurück nachexec; der lokale Workspace bleibt kanonischremote: Seed des Remotes einmal beim Erstellen der Sandbox, danach bleibt der Remote-Workspace kanonisch
remote werden hostlokale Änderungen, die außerhalb von OpenClaw vorgenommen wurden, nach dem Seed-Schritt nicht automatisch in die Sandbox synchronisiert.
Der Transport erfolgt per SSH in die OpenShell-Sandbox, aber das Plugin besitzt den Sandbox-Lebenszyklus und optional die Spiegel-Synchronisierung.setupCommand wird einmal nach der Erstellung des Containers ausgeführt (über sh -lc). Benötigt ausgehenden Netzwerkzugriff, beschreibbares Root und Root-Benutzer.Container verwenden standardmäßig network: "none" — setzen Sie es auf "bridge" (oder ein benutzerdefiniertes Bridge-Netzwerk), wenn der Agent ausgehenden Zugriff benötigt.
"host" ist blockiert. "container:<id>" ist standardmäßig blockiert, es sei denn, Sie setzen
explizit sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true (Break-Glass).Eingehende Anhänge werden in media/inbound/* im aktiven Workspace bereitgestellt.docker.binds bindet zusätzliche Host-Verzeichnisse ein; globale und agentenspezifische Binds werden zusammengeführt.Sandboxed browser (sandbox.browser.enabled): Chromium + CDP in einem Container. Die noVNC-URL wird in den System-Prompt injiziert. Erfordert kein browser.enabled in openclaw.json.
noVNC-Beobachterzugriff verwendet standardmäßig VNC-Authentifizierung, und OpenClaw gibt eine kurzlebige Token-URL aus (anstatt das Passwort in der gemeinsam genutzten URL offenzulegen).allowHostControl: false(Standard) blockiert, dass sandboxed Sitzungen den Browser des Hosts ansprechen.networkist standardmäßigopenclaw-sandbox-browser(dediziertes Bridge-Netzwerk). Setzen Sie es nur dann aufbridge, wenn Sie ausdrücklich globale Bridge-Konnektivität möchten.cdpSourceRangeschränkt eingehenden CDP-Verkehr optional an der Containergrenze auf einen CIDR-Bereich ein (zum Beispiel172.21.0.1/32).sandbox.browser.bindsbindet zusätzliche Host-Verzeichnisse nur in den Sandbox-Browser-Container ein. Wenn gesetzt (einschließlich[]), ersetzt esdocker.bindsfür den Browser-Container.- Start-Standards sind in
scripts/sandbox-browser-entrypoint.shdefiniert und für Container-Hosts abgestimmt:--remote-debugging-address=127.0.0.1--remote-debugging-port=<abgeleitet aus 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(standardmäßig aktiviert)--disable-3d-apis,--disable-software-rasterizerund--disable-gpusind standardmäßig aktiviert und können mitOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0deaktiviert werden, wenn WebGL-/3D-Nutzung dies erfordert.OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0aktiviert Extensions wieder, wenn Ihr Workflow davon abhängt.--renderer-process-limit=2kann mitOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>geändert werden; setzen Sie0, um den Standardprozessgrenzwert von Chromium zu verwenden.- plus
--no-sandboxund--disable-setuid-sandbox, wennnoSandboxaktiviert ist. - Die Standardwerte bilden die Basis des Container-Images; verwenden Sie ein benutzerdefiniertes Browser-Image mit eigenem Entry Point, um Container-Standards zu ändern.
sandbox.docker.binds sind nur für Docker verfügbar.
Images bauen:
agents.list (Überschreibungen pro Agent)
id: stabile Agent-ID (erforderlich).default: wenn mehrere gesetzt sind, gewinnt die erste (Warnung wird protokolliert). Wenn keine gesetzt ist, ist der erste Listeneintrag der Standard.model: Die String-Form überschreibt nurprimary; die Objekt-Form{ primary, fallbacks }überschreibt beides ([]deaktiviert globale Fallbacks). Cron-Jobs, die nurprimaryüberschreiben, erben weiterhin Standard-Fallbacks, sofern Sie nichtfallbacks: []setzen.params: Stream-Parameter pro Agent, die über den ausgewählten Modelleintrag inagents.defaults.modelszusammengeführt werden. Verwenden Sie dies für agentenspezifische Überschreibungen wiecacheRetention,temperatureodermaxTokens, ohne den gesamten Modellkatalog zu duplizieren.skills: optionale Skill-Allowlist pro Agent. Wenn weggelassen, erbt der Agentagents.defaults.skills, sofern gesetzt; eine explizite Liste ersetzt die Standards statt sie zusammenzuführen, und[]bedeutet keine Skills.thinkingDefault: optionale Standard-Thinking-Stufe pro Agent (off | minimal | low | medium | high | xhigh | adaptive | max). Überschreibtagents.defaults.thinkingDefaultfür diesen Agenten, wenn kein Override pro Nachricht oder Sitzung gesetzt ist.reasoningDefault: optionale Standardsichtbarkeit für Reasoning pro Agent (on | off | stream). Gilt, wenn kein Override für Reasoning pro Nachricht oder Sitzung gesetzt ist.fastModeDefault: optionaler Standard für den Fast-Modus pro Agent (true | false). Gilt, wenn kein Override für den Fast-Modus pro Nachricht oder Sitzung gesetzt ist.embeddedHarness: optionale Überschreibung der Low-Level-Harness-Richtlinie pro Agent. Verwenden Sie{ runtime: "codex", fallback: "none" }, um einen Agenten nur mit Codex auszuführen, während andere Agenten den Standard-PI-Fallback behalten.runtime: optionaler Runtime-Deskriptor pro Agent. Verwenden Sietype: "acp"mit den Standardwerten inruntime.acp(agent,backend,mode,cwd), wenn der Agent standardmäßig ACP-Harness-Sitzungen verwenden soll.identity.avatar: relativer Pfad zum Workspace,http(s)-URL oderdata:-URI.identityleitet Standardwerte ab:ackReactionausemoji,mentionPatternsausname/emoji.subagents.allowAgents: Allowlist von Agent-IDs fürsessions_spawn(["*"]= beliebig; Standard: nur derselbe Agent).- Schutz bei Vererbung der Sandbox: Wenn die anfragende Sitzung sandboxed ist, lehnt
sessions_spawnZiele ab, die unsandboxed ausgeführt würden. subagents.requireAgentId: wenntrue, werden Aufrufe vonsessions_spawnblockiert, dieagentIdweglassen (erzwingt explizite Profilauswahl; Standard: false).
Multi-Agent-Routing
Führen Sie mehrere isolierte Agenten in einem Gateway aus. Siehe Multi-Agent.Match-Felder für Bindungen
type(optional):routefür normales Routing (fehlender Typ verwendet standardmäßigroute),acpfür persistente ACP-Unterhaltungsbindungen.match.channel(erforderlich)match.accountId(optional;*= beliebiges Konto; weggelassen = Standardkonto)match.peer(optional;{ kind: direct|group|channel, id })match.guildId/match.teamId(optional; kanalspezifisch)acp(optional; nur fürtype: "acp"):{ mode, label, cwd, backend }
match.peermatch.guildIdmatch.teamIdmatch.accountId(exakt, ohne Peer/Guild/Team)match.accountId: "*"(kanalweit)- Standardagent
bindings.
Für Einträge vom Typ type: "acp" löst OpenClaw nach exakter Unterhaltungsidentität auf (match.channel + Konto + match.peer.id) und verwendet nicht die oben genannte Stufenreihenfolge der Route-Bindungen.
Zugriffsprofile pro Agent
Voller Zugriff (keine Sandbox)
Voller Zugriff (keine Sandbox)
Schreibgeschützte Tools + Workspace
Schreibgeschützte Tools + Workspace
Kein Dateisystemzugriff (nur Messaging)
Kein Dateisystemzugriff (nur Messaging)
Sitzung
Details zu Sitzungsfeldern
Details zu Sitzungsfeldern
scope: grundlegende Strategie zur Sitzungsgruppierung für Gruppenchats.per-sender(Standard): jeder Absender erhält eine isolierte Sitzung innerhalb eines Kanalkontexts.global: alle Teilnehmenden in einem Kanalkontext teilen sich eine einzige Sitzung (nur verwenden, wenn gemeinsamer Kontext beabsichtigt ist).
dmScope: wie DMs gruppiert werden.main: alle DMs teilen sich die Hauptsitzung.per-peer: Isolierung nach Absender-ID über Kanäle hinweg.per-channel-peer: Isolierung pro Kanal + Absender (empfohlen für Mehrbenutzer-Postfächer).per-account-channel-peer: Isolierung pro Konto + Kanal + Absender (empfohlen für Multi-Account).
identityLinks: Zuordnung kanonischer IDs zu providerpräfixierten Peers für sitzungsübergreifendes Teilen über Kanäle hinweg.reset: primäre Reset-Richtlinie.dailysetzt täglich zuatHourlokaler Zeit zurück;idlesetzt nachidleMinuteszurück. Wenn beides konfiguriert ist, gewinnt das zuerst ablaufende Kriterium.resetByType: Überschreibungen pro Typ (direct,group,thread). Legacy-dmwird als Alias fürdirectakzeptiert.parentForkMaxTokens: maximaletotalTokensder Parent-Sitzung, die beim Erstellen einer geforkten Thread-Sitzung erlaubt sind (Standard100000).- Wenn
totalTokensdes Parent über diesem Wert liegt, startet OpenClaw eine frische Thread-Sitzung, statt den Transcript-Verlauf des Parent zu erben. - Setzen Sie
0, um diese Schutzmaßnahme zu deaktivieren und Parent-Forking immer zuzulassen.
- Wenn
mainKey: Legacy-Feld. Die Runtime verwendet immer"main"für den Haupt-Bucket direkter Chats.agentToAgent.maxPingPongTurns: maximale Anzahl an Antwort-Zügen zwischen Agenten bei Agent-zu-Agent-Austausch (Ganzzahl, Bereich:0–5).0deaktiviert Ping-Pong-Verkettung.sendPolicy: Match nachchannel,chatType(direct|group|channel, mit Legacy-Aliasdm),keyPrefixoderrawKeyPrefix. Der erste Treffer mitdenygewinnt.maintenance: Bereinigung + Aufbewahrungssteuerung für den Session Store.mode:warngibt nur Warnungen aus;enforcewendet die Bereinigung an.pruneAfter: Altersgrenze für veraltete Einträge (Standard30d).maxEntries: maximale Anzahl von Einträgen insessions.json(Standard500).rotateBytes: rotiertsessions.json, wenn diese Größe überschritten wird (Standard10mb).resetArchiveRetention: Aufbewahrung für Transcript-Archive*.reset.<timestamp>. StandardmäßigpruneAfter; setzen Siefalse, um dies zu deaktivieren.maxDiskBytes: optionales Festplattenbudget für das Sitzungsverzeichnis. Im Moduswarnwerden Warnungen protokolliert; im Modusenforcewerden zuerst die ältesten Artefakte/Sitzungen entfernt.highWaterBytes: optionales Ziel nach der Bereinigung auf Basis des Budgets. Standard ist80%vonmaxDiskBytes.
threadBindings: globale Standardwerte für threadgebundene Sitzungsfunktionen.enabled: globaler Standardschalter (Provider können überschreiben; Discord verwendetchannels.discord.threadBindings.enabled)idleHours: Standardwert für automatisches Entfokussieren nach Inaktivität in Stunden (0deaktiviert; Provider können überschreiben)maxAgeHours: Standardwert für harte Maximaldauer in Stunden (0deaktiviert; Provider können überschreiben)
Nachrichten
Antwortpräfix
Überschreibungen pro Kanal/Konto:channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Auflösung (spezifischster Eintrag gewinnt): Konto → Kanal → global. "" deaktiviert und stoppt die Kaskade. "auto" leitet [{identity.name}] ab.
Template-Variablen:
| Variable | Beschreibung | Beispiel |
|---|---|---|
{model} | Kurzer Modellname | claude-opus-4-6 |
{modelFull} | Vollständiger Modellbezeichner | anthropic/claude-opus-4-6 |
{provider} | Providername | anthropic |
{thinkingLevel} | Aktuelle Thinking-Stufe | high, low, off |
{identity.name} | Name der Agentenidentität | (entspricht "auto") |
{think} ist ein Alias für {thinkingLevel}.
Bestätigungsreaktion
- Standard ist das
identity.emojides aktiven Agenten, andernfalls"👀". Setzen Sie"", um zu deaktivieren. - Überschreibungen pro Kanal:
channels.<channel>.ackReaction,channels.<channel>.accounts.<id>.ackReaction. - Auflösungsreihenfolge: Konto → Kanal →
messages.ackReaction→ Fallback über Identität. - Scope:
group-mentions(Standard),group-all,direct,all. removeAckAfterReply: entfernt die Bestätigungsreaktion nach der Antwort auf Slack, Discord und Telegram.messages.statusReactions.enabled: aktiviert Lifecycle-Statusreaktionen auf Slack, Discord und Telegram. Auf Slack und Discord bleiben Statusreaktionen bei fehlender Einstellung aktiviert, wenn Bestätigungsreaktionen aktiv sind. Auf Telegram setzen Sie dies explizit auftrue, um Lifecycle-Statusreaktionen zu aktivieren.
Inbound-Debounce
Fasst schnelle reinen Textnachrichten desselben Absenders zu einem einzelnen Agent-Turn zusammen. Medien/Anhänge werden sofort geleert. Steuerbefehle umgehen Debouncing.TTS (Text-to-Speech)
autosteuert den Standardmodus für Auto-TTS:off,always,inboundodertagged./tts on|offkann lokale Einstellungen überschreiben, und/tts statuszeigt den effektiven Status.summaryModelüberschreibtagents.defaults.model.primaryfür die automatische Zusammenfassung.modelOverridesist standardmäßig aktiviert;modelOverrides.allowProviderist standardmäßigfalse(Opt-in).- API-Keys fallen auf
ELEVENLABS_API_KEY/XI_API_KEYundOPENAI_API_KEYzurück. openai.baseUrlüberschreibt den OpenAI-TTS-Endpunkt. Die Auflösungsreihenfolge ist Konfiguration, dannOPENAI_TTS_BASE_URL, dannhttps://api.openai.com/v1.- Wenn
openai.baseUrlauf einen Nicht-OpenAI-Endpunkt verweist, behandelt OpenClaw dies als OpenAI-kompatiblen TTS-Server und lockert die Validierung von Modell/Stimme.
Talk
Standardwerte für den Talk-Modus (macOS/iOS/Android).talk.providermuss zu einem Schlüssel intalk.providerspassen, wenn mehrere Talk-Provider konfiguriert sind.- Legacy-Schlüssel für Talk in flacher Form (
talk.voiceId,talk.voiceAliases,talk.modelId,talk.outputFormat,talk.apiKey) dienen nur der Kompatibilität und werden automatisch nachtalk.providers.<provider>migriert. - Voice-IDs fallen auf
ELEVENLABS_VOICE_IDoderSAG_VOICE_IDzurück. providers.*.apiKeyakzeptiert Klartext-Strings oder SecretRef-Objekte.- Der Fallback
ELEVENLABS_API_KEYgilt nur, wenn kein API-Key für Talk konfiguriert ist. providers.*.voiceAliaseserlaubt es Talk-Direktiven, freundliche Namen zu verwenden.silenceTimeoutMssteuert, wie lange der Talk-Modus nach Benutzerschweigen wartet, bevor das Transcript gesendet wird. Nicht gesetzt verwendet das Standard-Pausenfenster der Plattform (700 ms auf macOS und Android, 900 ms auf iOS).
Verwandt
- Konfigurationsreferenz — alle anderen Konfigurationsschlüssel
- Konfiguration — häufige Aufgaben und Schnelleinrichtung
- Konfigurationsbeispiele