Gateway
Konfiguration — Agenten
Agent-spezifische Konfigurationsschlüssel unter agents.*, multiAgent.*, session.*,
messages.* und talk.*. Informationen zu Kanälen, Tools, der Gateway-Laufzeit und anderen
Schlüsseln auf oberster Ebene finden Sie in der Konfigurationsreferenz.
Agent-Standardwerte
agents.defaults.workspace
Standard: OPENCLAW_WORKSPACE_DIR, wenn gesetzt, andernfalls ~/.openclaw/workspace (oder ~/.openclaw/workspace-<profile>, wenn OPENCLAW_PROFILE auf ein vom Standard abweichendes Profil gesetzt ist).
{ agents: { defaults: { workspace: "~/.openclaw/workspace" } },}Ein expliziter Wert für agents.defaults.workspace hat Vorrang vor
OPENCLAW_WORKSPACE_DIR. Verwenden Sie die Umgebungsvariable, um Standard-Agenten
auf einen eingebundenen Arbeitsbereich zu verweisen, wenn Sie diesen Pfad nicht in die Konfiguration schreiben möchten.
agents.defaults.repoRoot
Optionales Repository-Stammverzeichnis, das in der Runtime-Zeile des System-Prompts angezeigt wird. Wenn nicht gesetzt, erkennt OpenClaw es automatisch, indem es vom Arbeitsbereich aus die Verzeichnishierarchie nach oben durchsucht.
{ agents: { defaults: { repoRoot: "~/Projects/openclaw" } },}agents.defaults.skills
Optionale standardmäßige Skills-Zulassungsliste für Agenten, die
agents.list[].skills nicht festlegen.
{ agents: { defaults: { skills: ["github", "weather"] }, list: [ { id: "writer" }, // übernimmt github, weather { id: "docs", skills: ["docs-search"] }, // ersetzt die Standardwerte { id: "locked-down", skills: [] }, // keine Skills ], },}- Lassen Sie
agents.defaults.skillsweg, um standardmäßig uneingeschränkte Skills zuzulassen. - Lassen Sie
agents.list[].skillsweg, um die Standardwerte zu übernehmen. - Setzen Sie
agents.list[].skills: [], um keine Skills zuzulassen. - Eine nicht leere Liste
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 Bootstrap-Dateien im Arbeitsbereich (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md).
{ agents: { defaults: { skipBootstrap: true } },}agents.defaults.skipOptionalBootstrapFiles
Überspringt die Erstellung ausgewählter optionaler Arbeitsbereichsdateien, während erforderliche Bootstrap-Dateien (AGENTS.md, TOOLS.md, BOOTSTRAP.md) weiterhin geschrieben werden. Gültige Werte: SOUL.md, USER.md, HEARTBEAT.md und IDENTITY.md.
{ agents: { defaults: { skipOptionalBootstrapFiles: ["SOUL.md", "USER.md"], }, },}agents.defaults.contextInjection
Steuert, wann Bootstrap-Dateien des Arbeitsbereichs in den System-Prompt eingefügt werden. Standard: "always".
"continuation-skip": Bei sicheren Fortsetzungsdurchläufen (nach einer abgeschlossenen Assistentenantwort) wird das erneute Einfügen des Arbeitsbereichs-Bootstraps übersprungen, wodurch sich die Prompt-Größe verringert. Heartbeat-Ausführungen und Wiederholungen nach einer Compaction erstellen den Kontext weiterhin neu."never": Deaktiviert bei jedem Durchlauf die Einfügung des Arbeitsbereichs-Bootstraps und der Kontextdateien. Verwenden Sie dies nur für Agenten, die ihren Prompt-Lebenszyklus vollständig selbst verwalten (benutzerdefinierte Kontext-Engines, native Laufzeiten, die ihren eigenen Kontext erstellen, oder spezialisierte Arbeitsabläufe ohne Bootstrap). Auch bei Heartbeat- und Wiederherstellungsdurchläufen nach einer Compaction wird die Einfügung übersprungen.
{ agents: { defaults: { contextInjection: "continuation-skip" } },}Agent-spezifische Überschreibung: agents.list[].contextInjection. Fehlende Werte übernehmen
agents.defaults.contextInjection.
agents.defaults.bootstrapMaxChars
Maximale Zeichenanzahl pro Bootstrap-Datei des Arbeitsbereichs vor der Kürzung. Standard: 20000.
{ agents: { defaults: { bootstrapMaxChars: 20000 } },}Agent-spezifische Überschreibung: agents.list[].bootstrapMaxChars. Fehlende Werte übernehmen
agents.defaults.bootstrapMaxChars.
agents.defaults.bootstrapTotalMaxChars
Maximale Gesamtzahl der Zeichen, die aus allen Bootstrap-Dateien des Arbeitsbereichs eingefügt werden. Standard: 60000.
{ agents: { defaults: { bootstrapTotalMaxChars: 60000 } },}Agent-spezifische Überschreibung: agents.list[].bootstrapTotalMaxChars. Fehlende Werte
übernehmen agents.defaults.bootstrapTotalMaxChars.
Agent-spezifische Überschreibungen des Bootstrap-Profils
Verwenden Sie agent-spezifische Überschreibungen des Bootstrap-Profils, wenn ein Agent ein anderes
Verhalten bei der Prompt-Einfügung als die gemeinsamen Standardwerte benötigt. Fehlende Felder übernehmen die Werte aus
agents.defaults.
{ agents: { defaults: { contextInjection: "continuation-skip", bootstrapMaxChars: 20000, bootstrapTotalMaxChars: 60000, }, list: [ { id: "strict-worker", contextInjection: "always", bootstrapMaxChars: 50000, bootstrapTotalMaxChars: 300000, }, ], },}agents.defaults.bootstrapPromptTruncationWarning
Steuert den für den Agenten sichtbaren Hinweis im System-Prompt, wenn der Bootstrap-Kontext gekürzt wird.
Standard: "always".
"off": Fügt niemals einen Kürzungshinweis in den System-Prompt ein."once": Fügt für jede eindeutige Kürzungssignatur einmal einen knappen Hinweis ein."always": Fügt bei jeder Ausführung einen knappen Hinweis ein, wenn eine Kürzung vorliegt (empfohlen).
Detaillierte Roh-/Einfügungszahlen und Felder zur Konfigurationsanpassung verbleiben in Diagnosen wie Kontext-/Statusberichten und Protokollen; der reguläre WebChat-Benutzer-/Laufzeitkontext erhält nur den knappen Wiederherstellungshinweis.
{ agents: { defaults: { bootstrapPromptTruncationWarning: "always" } }, // off | once | always}Zuordnung der Zuständigkeit für Kontextbudgets
OpenClaw verfügt über mehrere Prompt-/Kontextbudgets mit hohem Volumen, die bewusst nach Subsystem aufgeteilt sind, statt alle über einen einzigen generischen Regler zu steuern.
| Budget | Deckt ab |
|---|---|
agents.defaults.bootstrapMaxChars / bootstrapTotalMaxChars |
Normale Einfügung des Arbeitsbereichs-Bootstraps |
agents.defaults.startupContext.* |
Einmaliger Vorspann für Modellausführungen beim Zurücksetzen/Starten, einschließlich aktueller täglicher memory/*.md-Dateien. Bloße Chat-Befehle /new und /reset werden bestätigt, ohne das Modell aufzurufen |
skills.limits.* |
Die kompakte Skills-Liste, die in den System-Prompt eingefügt wird |
agents.defaults.contextLimits.* |
Begrenzte Laufzeitauszüge und eingefügte, von der Laufzeit verwaltete Blöcke |
memory.qmd.limits.* |
Größenbegrenzung für indizierte Speichersuchauszüge und deren Einfügung |
Entsprechende agent-spezifische Überschreibungen:
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextInjectionagents.list[].bootstrapMaxCharsagents.list[].bootstrapTotalMaxCharsagents.list[].contextLimits.*
agents.defaults.startupContext
Steuert den beim ersten Durchlauf eingefügten Startvorspann für Modellausführungen beim Zurücksetzen/Starten.
Bloße Chat-Befehle /new und /reset bestätigen das Zurücksetzen, ohne
das Modell aufzurufen, sodass dieser Vorspann nicht geladen wird.
{ agents: { defaults: { startupContext: { enabled: true, applyOn: ["new", "reset"], dailyMemoryDays: 2, maxFileBytes: 16384, maxFileChars: 1200, maxTotalChars: 2800, }, }, },}agents.defaults.contextLimits
Gemeinsame Standardwerte für begrenzte Laufzeitkontextflächen.
{ agents: { defaults: { contextLimits: { memoryGetMaxChars: 12000, memoryGetDefaultLines: 120, postCompactionMaxChars: 1800, }, }, },}memoryGetMaxChars: standardmäßige Obergrenze fürmemory_get-Auszüge, bevor Kürzungsmetadaten und ein Fortsetzungshinweis hinzugefügt werden.memoryGetDefaultLines: standardmäßigesmemory_get-Zeilenfenster, wennlinesnicht angegeben ist.toolResultMaxChars: erweiterte Obergrenze für Live-Tool-Ergebnisse, die für persistierte Ergebnisse und die Wiederherstellung bei Überschreitung verwendet wird. Lassen Sie den Wert für die automatische Modellkontext-Obergrenze ungesetzt:16000Zeichen unter 100K Tokens,32000Zeichen bei 100K+ Tokens und64000Zeichen bei 200K+ Tokens. Explizite Werte bis1000000werden für Modelle mit langem Kontext akzeptiert, die effektive Obergrenze bleibt jedoch auf etwa 30 % des Modellkontextfensters begrenzt.openclaw doctor --deepgibt die effektive Obergrenze aus, und Doctor warnt nur, wenn eine explizite Überschreibung veraltet oder wirkungslos ist.postCompactionMaxChars: Obergrenze für AGENTS.md-Auszüge, die bei der Aktualisierungseinfügung nach einer Compaction verwendet wird.
agents.list[].contextLimits
Agent-spezifische Überschreibung für die gemeinsamen contextLimits-Regler. Fehlende Felder übernehmen
die Werte aus agents.defaults.contextLimits.
{ agents: { defaults: { contextLimits: { memoryGetMaxChars: 12000 }, }, list: [ { id: "tiny-local", contextLimits: { memoryGetMaxChars: 6000, toolResultMaxChars: 8000, // erweiterte Obergrenze für diesen Agenten }, }, ], },}skills.limits.maxSkillsPromptChars
Globale Obergrenze für die kompakte Skills-Liste, die in den System-Prompt eingefügt wird. Dies
wirkt sich nicht auf das bedarfsgesteuerte Lesen von SKILL.md-Dateien aus.
{ skills: { limits: { maxSkillsPromptChars: 18000 } },}agents.list[].skillsLimits.maxSkillsPromptChars
Agent-spezifische Überschreibung für das Skills-Prompt-Budget.
{ agents: { list: [{ id: "tiny-local", skillsLimits: { maxSkillsPromptChars: 6000 } }], },}agents.defaults.imageMaxDimensionPx
Maximale Pixelgröße der längsten Bildseite in Transkript-/Tool-Bildblöcken vor Provider-Aufrufen.
Standard: 1200.
Niedrigere Werte reduzieren bei screenshotlastigen Ausführungen in der Regel die Nutzung von Vision-Tokens und die Größe der Anfrage-Nutzlast. Höhere Werte bewahren mehr visuelle Details.
{ agents: { defaults: { imageMaxDimensionPx: 1200 } },}agents.defaults.imageQuality
Präferenz für Komprimierung/Detailgrad des Bild-Tools bei Bildern, die aus Dateipfaden, URLs und Medienreferenzen geladen werden.
Standard: auto.
OpenClaw passt die Größenänderungsstufen an das ausgewählte Bildmodell an. Beispielsweise können Claude Opus 4.8, OpenAI GPT-5.6 Sol, Qwen VL und gehostete Llama-4-Vision-Modelle größere Bilder als ältere/standardmäßige Vision-Pfade mit hohem Detailgrad verwenden, während Durchläufe mit mehreren Bildern im Modus auto stärker komprimiert werden, um Token- und Latenzkosten zu begrenzen.
Werte:
auto: An Modellgrenzen und Bildanzahl anpassen.efficient: Kleinere Bilder für eine geringere Token- und Byte-Nutzung bevorzugen.balanced: Die standardmäßige, ausgewogene Größenabstufung verwenden.high: Mehr Details für Screenshots, Diagramme und Dokumentbilder bewahren.
{ agents: { defaults: { imageQuality: "auto" } },}agents.defaults.userTimezone
Zeitzone für den System-Prompt-Kontext (nicht für Nachrichtenzeitstempel). Fällt auf die Zeitzone des Hosts zurück.
{ agents: { defaults: { userTimezone: "America/Chicago" } },}agents.defaults.timeFormat
Zeitformat im System-Prompt. Standard: auto (Betriebssystemeinstellung).
{ agents: { defaults: { timeFormat: "auto" } }, // auto | 12 | 24}agents.defaults.model
{ agents: { defaults: { models: { "anthropic/claude-opus-4-6": { alias: "opus" }, "minimax/MiniMax-M2.7": { alias: "minimax" }, }, model: { primary: "anthropic/claude-opus-4-6", fallbacks: ["minimax/MiniMax-M2.7"], }, utilityModel: "openai/gpt-5.4-mini", imageModel: { primary: "openrouter/qwen/qwen-2.5-vl-72b-instruct:free", fallbacks: ["openrouter/google/gemini-2.0-flash-vision:free"], }, imageGenerationModel: { primary: "openai/gpt-image-2", fallbacks: ["google/gemini-3.1-flash-image-preview"], }, videoGenerationModel: { primary: "qwen/wan2.6-t2v", fallbacks: ["qwen/wan2.6-i2v"], }, pdfModel: { primary: "anthropic/claude-opus-4-6", fallbacks: ["openai/gpt-5.4-mini"], }, params: { cacheRetention: "long" }, // globale standardmäßige Provider-Parameter pdfMaxBytesMb: 10, pdfMaxPages: 20, thinkingDefault: "low", verboseDefault: "off", toolProgressDetail: "explain", reasoningDefault: "off", elevatedDefault: "on", timeoutSeconds: 600, mediaMaxMb: 5, contextTokens: 200000, maxConcurrent: 4, }, },}model: akzeptiert entweder einen String ("provider/model") oder ein Objekt ({ primary, fallbacks }).- Die String-Form legt nur das primäre Modell fest.
- Die Objektform legt das primäre Modell sowie geordnete Failover-Modelle fest.
utilityModel: optionaleprovider/model-Referenz oder optionaler Alias für kurze interne Aufgaben. Derzeit wird dies für generierte Sitzungstitel in der Control UI, Thementitel für Telegram-Direktnachrichten, automatische Thread-Titel in Discord und Fortschrittsentwurf-Erzählungen verwendet. Wenn nicht festgelegt, leitet OpenClaw den deklarierten Standard des primären Providers für kleine Modelle ab, sofern vorhanden (OpenAI →gpt-5.6-luna, Anthropic →claude-haiku-4-5); andernfalls greifen Titelaufgaben auf das primäre Modell des Agenten zurück und die Erzählung bleibt deaktiviert. Legen SieutilityModel: ""fest, um das Utility-Routing vollständig zu deaktivieren.agents.list[].utilityModelüberschreibt den Standardwert (ein leerer agentenspezifischer Wert deaktiviert es für diesen Agenten), und eine operationsspezifische Modellüberschreibung hat Vorrang vor beiden. Utility-Aufgaben führen separate Modellaufrufe durch und senden aufgabenspezifische Inhalte an den ausgewählten Modell-Provider. Die Titelerzeugung im Dashboard sendet höchstens die ersten 1.000 Zeichen der ersten Nachricht, die kein Befehl ist; die Erzählung sendet die eingehende Anfrage sowie kompakte, redigierte Werkzeugzusammenfassungen. Wählen Sie einen Provider, der Ihren Anforderungen an Kosten und Datenverarbeitung entspricht.imageModel: akzeptiert entweder einen String ("provider/model") oder ein Objekt ({ primary, fallbacks }).- Wird vom Pfad des Werkzeugs
imageals Konfiguration für das Vision-Modell verwendet. - Wird außerdem als Fallback-Routing verwendet, wenn das ausgewählte bzw. standardmäßige Modell keine Bildeingaben akzeptieren kann.
- Bevorzugen Sie explizite
provider/model-Referenzen. Reine IDs werden aus Kompatibilitätsgründen akzeptiert; wenn eine reine ID eindeutig einem konfigurierten bildfähigen Eintrag inmodels.providers.*.modelsentspricht, ergänzt OpenClaw den zugehörigen Provider. Mehrdeutige konfigurierte Treffer erfordern ein explizites Provider-Präfix.
- Wird vom Pfad des Werkzeugs
imageGenerationModel: akzeptiert entweder einen String ("provider/model") oder ein Objekt ({ primary, fallbacks }).- Wird von der gemeinsamen Bilderzeugungsfunktion und allen zukünftigen Werkzeug-/Plugin-Oberflächen verwendet, die Bilder erzeugen.
- Typische Werte:
google/gemini-3.1-flash-image-previewfür native Gemini-Bilderzeugung,fal/fal-ai/flux/devfür fal,openai/gpt-image-2für OpenAI Images oderopenai/gpt-image-1.5für OpenAI-PNG-/WebP-Ausgabe mit transparentem Hintergrund. - Wenn Sie einen Provider bzw. ein Modell direkt auswählen, konfigurieren Sie auch die passende Provider-Authentifizierung (beispielsweise
GEMINI_API_KEYoderGOOGLE_API_KEYfürgoogle/*,OPENAI_API_KEYoder OpenAI Codex OAuth füropenai/gpt-image-2/openai/gpt-image-1.5,FAL_KEYfürfal/*). - Wenn nicht angegeben, kann
image_generateweiterhin einen durch Authentifizierung gestützten Provider-Standard ableiten. Dabei wird zuerst der aktuelle Standard-Provider und anschließend die übrigen registrierten Bilderzeugungs-Provider in der Reihenfolge ihrer Provider-IDs versucht.
musicGenerationModel: akzeptiert entweder einen String ("provider/model") oder ein Objekt ({ primary, fallbacks }).- Wird von der gemeinsamen Musikerzeugungsfunktion und dem integrierten Werkzeug
music_generateverwendet. - Typische Werte:
google/lyria-3-clip-preview,google/lyria-3-pro-previewoderminimax/music-2.6. - Wenn nicht angegeben, kann
music_generateweiterhin einen durch Authentifizierung gestützten Provider-Standard ableiten. Dabei wird zuerst der aktuelle Standard-Provider und anschließend die übrigen registrierten Musikerzeugungs-Provider in der Reihenfolge ihrer Provider-IDs versucht. - Wenn Sie einen Provider bzw. ein Modell direkt auswählen, konfigurieren Sie auch die passende Provider-Authentifizierung bzw. den passenden API-Schlüssel.
- Wird von der gemeinsamen Musikerzeugungsfunktion und dem integrierten Werkzeug
videoGenerationModel: akzeptiert entweder einen String ("provider/model") oder ein Objekt ({ primary, fallbacks }).- Wird von der gemeinsamen Videoerzeugungsfunktion und dem integrierten Werkzeug
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 nicht angegeben, kann
video_generateweiterhin einen durch Authentifizierung gestützten Provider-Standard ableiten. Dabei wird zuerst der aktuelle Standard-Provider und anschließend die übrigen registrierten Videoerzeugungs-Provider in der Reihenfolge ihrer Provider-IDs versucht. - Wenn Sie einen Provider bzw. ein Modell direkt auswählen, konfigurieren Sie auch die passende Provider-Authentifizierung bzw. den passenden API-Schlüssel.
- Das offizielle Qwen-Plugin zur Videoerzeugung unterstützt bis zu 1 Ausgabevideo, 1 Eingabebild, 4 Eingabevideos, eine Dauer von 10 Sekunden sowie die Optionen
size,aspectRatio,resolution,audioundwatermarkauf Provider-Ebene.
- Wird von der gemeinsamen Videoerzeugungsfunktion und dem integrierten Werkzeug
pdfModel: akzeptiert entweder einen String ("provider/model") oder ein Objekt ({ primary, fallbacks }).- Wird vom Werkzeug
pdffür das Modell-Routing verwendet. - Wenn nicht angegeben, greift das PDF-Werkzeug zunächst auf
imageModelund anschließend auf das aufgelöste Sitzungs-/Standardmodell zurück.
- Wird vom Werkzeug
pdfMaxBytesMb: standardmäßige PDF-Größenbegrenzung für das Werkzeugpdf, wenn beim Aufruf keinmaxBytesMbübergeben wird.pdfMaxPages: standardmäßige maximale Anzahl der Seiten, die im Extraktions-Fallback-Modus des Werkzeugspdfberücksichtigt werden.verboseDefault: standardmäßige Ausführlichkeitsstufe für Agenten. Werte:"off","on","full". Standard:"off".toolProgressDetail: Detailmodus für Werkzeugzusammenfassungen von/verboseund Werkzeugzeilen in Fortschrittsentwürfen. Werte:"explain"(Standard, kompakte menschenlesbare Bezeichnungen) oder"raw"(hängt den unverarbeiteten Befehl bzw. Details an, sofern verfügbar). Das agentenspezifischeagents.list[].toolProgressDetailüberschreibt diesen Standardwert.reasoningDefault: standardmäßige Sichtbarkeit der Schlussfolgerungen für Agenten. Werte:"off","on","stream". Das agentenspezifischeagents.list[].reasoningDefaultüberschreibt diesen Standardwert. Konfigurierte Standardwerte für Schlussfolgerungen werden nur für Eigentümer, autorisierte Absender oder Gateway-Kontexte mit Operator-Administratorrechten angewendet, wenn keine nachrichten- oder sitzungsspezifische Überschreibung für Schlussfolgerungen festgelegt ist.elevatedDefault: standardmäßige Stufe für privilegierte Ausgaben von Agenten. Werte:"off","on","ask","full". Standard:"on".model.primary: Formatprovider/model(z. B.openai/gpt-5.6-solfür den Zugriff über Codex OAuth). Wenn Sie den Provider weglassen, versucht OpenClaw zunächst einen Alias, dann einen eindeutigen Treffer bei konfigurierten Providern für genau diese Modell-ID und greift erst danach auf den konfigurierten Standard-Provider zurück (veraltetes Kompatibilitätsverhalten; bevorzugen Sie daher ein explizitesprovider/model). Wenn dieser Provider das konfigurierte Standardmodell nicht mehr bereitstellt, greift OpenClaw auf den ersten konfigurierten Provider bzw. das erste konfigurierte Modell zurück, anstatt einen veralteten Standardwert eines entfernten Providers anzuzeigen.models: der konfigurierte Modellkatalog und die Zulassungsliste für/model. Jeder Eintrag kannalias(Kurzform) undparams(Provider-spezifisch, beispielsweisetemperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold, OpenRouter-provider-Routing,chat_template_kwargs,extra_body/extraBody) enthalten.- Verwenden Sie
provider/*-Einträge wie"openai/*": {}oder"vllm/*": {}, um alle erkannten Modelle ausgewählter Provider anzuzeigen, ohne jede Modell-ID manuell aufzuführen. - Fügen Sie einem
provider/*-EintragagentRuntimehinzu, wenn jedes für diesen Provider dynamisch erkannte Modell dieselbe Laufzeit verwenden soll. Die Laufzeitrichtlinie eines exaktenprovider/modelhat weiterhin Vorrang vor dem Platzhalter. - Sichere Änderungen: Verwenden Sie
openclaw config set agents.defaults.models '<json>' --strict-json --merge, um Einträge hinzuzufügen.config setlehnt Ersetzungen ab, die vorhandene Einträge der Zulassungsliste entfernen würden, sofern Sie nicht--replaceübergeben. - Provider-spezifische Konfigurations-/Onboarding-Abläufe führen die ausgewählten Provider-Modelle mit dieser Zuordnung zusammen und behalten bereits konfigurierte, nicht betroffene Provider bei.
- Für direkte OpenAI-Responses-Modelle wird die serverseitige Compaction automatisch aktiviert. Verwenden Sie
params.responsesServerCompaction: false, um die Einfügung voncontext_managementzu unterbinden, oderparams.responsesCompactThreshold, um den Schwellenwert zu überschreiben. Siehe serverseitige OpenAI-Compaction.
- Verwenden Sie
params: globale standardmäßige Provider-Parameter, die auf alle Modelle angewendet werden. Festzulegen unteragents.defaults.params(z. B.{ cacheRetention: "long" }).- Zusammenführungsrangfolge für
params(Konfiguration):agents.defaults.params(globale Basis) wird durchagents.defaults.models["provider/model"].params(modellspezifisch) überschrieben; anschließend überschreibtagents.list[].params(bei übereinstimmender Agenten-ID) die Werte schlüsselweise. Einzelheiten finden Sie unter Prompt-Caching. models.providers.openrouter.params.provider: OpenRouter-weiter Standard für die Provider-Routing-Richtlinie. OpenClaw leitet diesen an dasprovider-Objekt der OpenRouter-Anfrage weiter; modellspezifischeagents.defaults.models["openrouter/<model>"].params.providerund Agentenparameter überschreiben ihn schlüsselweise. Siehe OpenRouter-Provider-Routing.params.extra_body/params.extraBody: erweitertes, unverändert weitergereichtes JSON, das mit den Anfragetexten vonapi: "openai-completions"für OpenAI-kompatible Proxys zusammengeführt wird. Bei einer Kollision mit erzeugten Anfrageschlüsseln hat der zusätzliche Anfragetext Vorrang; nicht native Completions-Routen entfernen anschließend weiterhin das ausschließlich für OpenAI vorgesehenestore.params.chat_template_kwargs: vLLM-/OpenAI-kompatible Chat-Template-Argumente, die mit den Anfragetexten der obersten Ebene vonapi: "openai-completions"zusammengeführt werden. Fürvllm/nemotron-3-*bei deaktiviertem Denken sendet das gebündelte vLLM-Plugin automatischenable_thinking: falseundforce_nonempty_content: true; explizitechat_template_kwargsüberschreiben erzeugte Standardwerte, undextra_body.chat_template_kwargshat weiterhin die endgültige Priorität. Konfigurierte vLLM-Qwen- und Nemotron-Denkmodelle stellen binäre/think-Optionen (off,on) anstelle der mehrstufigen Aufwandsstaffel bereit.compat.thinkingFormat: OpenAI-kompatibles Format der Denk-Nutzdaten. Verwenden Sie"together"fürreasoning.enabledim Together-Stil,"qwen"fürenable_thinkingauf oberster Ebene im Qwen-Stil oder"qwen-chat-template"fürchat_template_kwargs.enable_thinkingbei Backends der Qwen-Familie, die Chat-Template-Kwargs auf Anfrageebene unterstützen, etwa vLLM. OpenClaw ordnet deaktiviertes Denkenfalseund aktiviertes Denkentruezu; konfigurierte vLLM-Qwen-Modelle stellen für diese Formate binäre/think-Optionen bereit.compat.supportedReasoningEfforts: modellspezifische Liste OpenAI-kompatibler Schlussfolgerungsaufwände. Nehmen Sie"xhigh"für benutzerdefinierte Endpunkte auf, die diesen Wert tatsächlich akzeptieren; OpenClaw stellt dann/think xhighin Befehlsmenüs, Gateway-Sitzungszeilen, der Validierung von Sitzungsänderungen, der Agenten-CLI-Validierung und derllm-task-Validierung für diesen konfigurierten Provider bzw. dieses Modell bereit. Verwenden Siecompat.reasoningEffortMap, wenn das Backend für eine kanonische Stufe einen Provider-spezifischen Wert erwartet.params.preserveThinking: ausschließlich für Z.AI vorgesehene Opt-in-Option zur Beibehaltung des Denkverlaufs. Wenn sie aktiviert und das Denken eingeschaltet ist, sendet OpenClawthinking.clear_thinking: falseund spielt vorherigereasoning_contenterneut ein; siehe Z.AI-Denken und beibehaltener Denkverlauf.localService: optionaler Prozessmanager auf Provider-Ebene für lokale bzw. selbst gehostete Modellserver. Wenn das ausgewählte Modell zu diesem Provider gehört, prüft OpenClawhealthUrl(oderbaseUrl + "/models"), startet bei nicht erreichbarem Endpunktcommandmitargs, wartet bis zureadyTimeoutMsund sendet anschließend die Modellanfrage.commandmuss ein absoluter Pfad sein.idleStopMs: 0hält den Prozess bis zum Beenden von OpenClaw aktiv; ein positiver Wert beendet den von OpenClaw gestarteten Prozess nach entsprechend vielen Millisekunden Inaktivität. Siehe Lokale Modelldienste.- Laufzeitrichtlinien gehören zu Providern oder Modellen, nicht zu
agents.defaults. Verwenden Siemodels.providers.<provider>.agentRuntimefür Provider-weite Regeln oderagents.defaults.models["provider/model"].agentRuntime/agents.list[].models["provider/model"].agentRuntimefür modellspezifische Regeln. Ein Provider-/Modellpräfix allein wählt niemals ein Harness aus. Wenn die Laufzeit nicht festgelegt oder aufautogesetzt ist, kann OpenAI Codex nur für eine exakt passende offizielle HTTPS-Route für Platform Responses oder ChatGPT Responses ohne benutzerdefinierte Anfrageüberschreibung implizit auswählen. Siehe Implizite OpenAI-Agentenlaufzeit. - Konfigurationsschreiber, die diese Felder ändern (beispielsweise
/models set,/models set-imagesowie Befehle zum Hinzufügen/Entfernen von Fallbacks), speichern die kanonische Objektform und behalten vorhandene Fallback-Listen nach Möglichkeit bei. maxConcurrent: maximale Anzahl paralleler Agentenausführungen über Sitzungen hinweg (jede Sitzung wird weiterhin serialisiert). Standard:4.
Laufzeitrichtlinie
{ models: { providers: { openai: { agentRuntime: { id: "codex" }, }, }, }, agents: { defaults: { model: "openai/gpt-5.6-sol", models: { "anthropic/claude-opus-4-8": { agentRuntime: { id: "claude-cli" }, }, "vllm/*": { agentRuntime: { id: "openclaw" }, }, }, }, },}id:"auto","openclaw", die ID eines registrierten Plugin-Harness oder ein unterstützter Alias eines CLI-Backends. Das mitgelieferte Codex-Plugin registriertcodex; das mitgelieferte Anthropic-Plugin stellt das CLI-Backendclaude-clibereit.- Mit
id: "auto"können registrierte Plugin-Harnesses effektive Routen übernehmen, die ihren Unterstützungsvertrag deklarieren oder anderweitig erfüllen; wenn kein Harness passt, wird OpenClaw verwendet. Eine explizite Plugin-Laufzeit wieid: "codex"erfordert dieses Harness und eine kompatible effektive Route; sie schlägt sicher fehl, wenn eines von beiden nicht verfügbar ist oder die Ausführung fehlschlägt. id: "pi"wird nur als veralteter Alias füropenclawakzeptiert, um ausgelieferte Konfigurationen aus v2026.5.22 und früher beizubehalten. Neue Konfigurationen solltenopenclawverwenden.- Bei der Laufzeitpräzedenz gilt zuerst die Richtlinie für das exakte Modell (
agents.list[].models["provider/model"],agents.defaults.models["provider/model"]odermodels.providers.<provider>.models[]), dannagents.list[]/agents.defaults.models["provider/*"]und anschließend die Provider-weite Richtlinie untermodels.providers.<provider>.agentRuntime. - Laufzeitschlüssel für den gesamten Agenten sind veraltet.
agents.defaults.agentRuntime,agents.list[].agentRuntime, Laufzeit-Pins für Sitzungen undOPENCLAW_AGENT_RUNTIMEwerden bei der Laufzeitauswahl ignoriert. Führen Sieopenclaw doctor --fixaus, um veraltete Werte zu entfernen. - Geeignete offizielle exakte HTTPS-Routen für OpenAI Responses/ChatGPT ohne vom Autor festgelegte Anfrageüberschreibung können das Codex-Harness implizit verwenden.
agentRuntime.id: "codex"für Provider/Modell macht Codex zu einer Anforderung, bei deren Nichterfüllung die Ausführung sicher fehlschlägt, macht eine inkompatible Route jedoch nicht kompatibel. - Bevorzugen Sie für Claude-CLI-Bereitstellungen
model: "anthropic/claude-opus-4-8"zusammen mit dem modellspezifischenagentRuntime.id: "claude-cli". Veraltete Referenzen im Formatclaude-cli/<model>funktionieren aus Kompatibilitätsgründen weiterhin, neue Konfigurationen sollten die Provider-/Modellauswahl jedoch kanonisch halten und das Ausführungs-Backend in der Laufzeitrichtlinie für Provider/Modell festlegen. - Dies steuert nur die Ausführung textbasierter Agenten-Turns. Mediengenerierung, Bilderkennung, PDF, Musik, Video und TTS verwenden weiterhin ihre jeweiligen Provider-/Modelleinstellungen.
Integrierte Alias-Kurzformen (gelten nur, wenn das Modell in agents.defaults.models enthalten ist):
| Alias | Modell |
|---|---|
opus |
anthropic/claude-opus-4-8 |
sonnet |
anthropic/claude-sonnet-4-6 |
gpt |
openai/gpt-5.4 |
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 |
Ihre konfigurierten Aliase haben immer Vorrang vor den Standardwerten.
Z.AI-GLM-4.x-Modelle aktivieren automatisch den Denkmodus, sofern Sie nicht --thinking off festlegen oder agents.defaults.models["zai/<model>"].params.thinking selbst definieren.
Z.AI-Modelle aktivieren standardmäßig tool_stream für das Streaming von Werkzeugaufrufen. Setzen Sie agents.defaults.models["zai/<model>"].params.tool_stream auf false, um es zu deaktivieren.
Bei Anthropic Claude Opus 4.8 bleibt das Denken in OpenClaw standardmäßig deaktiviert; wenn adaptives Denken explizit aktiviert wird, ist der vom Anthropic-Provider vorgegebene Standardwert für den Aufwand high. Claude-4.6-Modelle verwenden standardmäßig adaptive, wenn keine explizite Denkstufe festgelegt ist.
agents.defaults.cliBackends
Optionale CLI-Backends für reine Text-Fallback-Ausführungen (keine Werkzeugaufrufe). Nützlich als Ausweichlösung, wenn API-Provider ausfallen.
{ agents: { defaults: { cliBackends: { "claude-cli": { command: "/opt/homebrew/bin/claude", }, "my-cli": { command: "my-cli", args: ["--json"], output: "json", modelArg: "--model", sessionArg: "--session", sessionMode: "existing", systemPromptArg: "--system", // Oder verwenden Sie systemPromptFileArg, wenn die CLI ein Flag für eine Prompt-Datei akzeptiert. systemPromptWhen: "first", imageArg: "--image", imageMode: "repeat", }, }, }, },}- CLI-Backends sind primär textbasiert; Werkzeuge sind immer deaktiviert.
- Sitzungen werden unterstützt, wenn
sessionArgfestgelegt ist. - Die Durchleitung von Bildern wird unterstützt, wenn
imageArgDateipfade akzeptiert. - Mit
reseedFromRawTranscriptWhenUncompacted: truekann ein Backend sichere ungültig gewordene Sitzungen aus dem begrenzten Ende eines OpenClaw-Rohtranskripts wiederherstellen, bevor die erste Compaction-Zusammenfassung vorhanden ist. Änderungen am Authentifizierungsprofil oder an der Zugangsdaten-Epoche führen dennoch niemals zu einer Wiederherstellung aus Rohdaten.
agents.defaults.promptOverlays
Provider-unabhängige Prompt-Overlays, die nach Modellfamilie auf von OpenClaw zusammengestellte Prompt-Oberflächen angewendet werden. Modell-IDs der GPT-5-Familie erhalten den gemeinsamen Verhaltensvertrag über OpenClaw-/Provider-Routen hinweg; personality steuert nur die Ebene für einen freundlichen Interaktionsstil. Native Codex-App-Server-Routen behalten die Codex-eigenen Basis-/Modellanweisungen anstelle dieses OpenClaw-GPT-5-Overlays bei, und OpenClaw deaktiviert die integrierte Persönlichkeit von Codex für native Threads.
{ agents: { defaults: { promptOverlays: { gpt5: { personality: "friendly", // freundlich | ein | aus }, }, }, },}"friendly"(Standard) und"on"aktivieren die Ebene für einen freundlichen Interaktionsstil."off"deaktiviert nur die freundliche Ebene; der gekennzeichnete GPT-5-Verhaltensvertrag bleibt aktiviert.- Das veraltete
plugins.entries.openai.config.personalitywird weiterhin gelesen, wenn diese gemeinsame Einstellung nicht gesetzt ist.
agents.defaults.heartbeat
Regelmäßige Heartbeat-Ausführungen.
{ agents: { defaults: { heartbeat: { every: "30m", // 0m deaktiviert model: "openai/gpt-5.4-mini", includeReasoning: false, includeSystemPromptSection: true, // Standard: true; false lässt den Heartbeat-Abschnitt im System-Prompt aus lightContext: false, // Standard: false; true behält aus den Workspace-Bootstrap-Dateien nur HEARTBEAT.md bei isolatedSession: false, // Standard: false; true führt jeden Heartbeat in einer neuen Sitzung aus (ohne Konversationsverlauf) skipWhenBusy: false, // Standard: false; true wartet auch auf die Subagent-/verschachtelten Ausführungspfade dieses Agenten session: "main", to: "+15555550123", directPolicy: "allow", // allow (Standard) | block target: "none", // Standard: none | Optionen: last | whatsapp | telegram | discord | ... prompt: "HEARTBEAT.md lesen, falls die Datei vorhanden ist...", ackMaxChars: 300, suppressToolErrorWarnings: false, timeoutSeconds: 45, }, }, },}every: Zeitdauerzeichenfolge (ms/s/m/h). Standard:30m(API-Schlüssel-Authentifizierung) oder1h(OAuth-Authentifizierung). Zum Deaktivieren auf0msetzen.includeSystemPromptSection: Wenn false, wird der Heartbeat-Abschnitt im System-Prompt ausgelassen und die Einfügung vonHEARTBEAT.mdin den Bootstrap-Kontext übersprungen. Standard:true.suppressToolErrorWarnings: Wenn true, werden Warnnutzlasten zu Tool-Fehlern während Heartbeat-Ausführungen unterdrückt.timeoutSeconds: Maximal zulässige Zeit in Sekunden für einen Heartbeat-Agentendurchlauf, bevor er abgebrochen wird. Nicht setzen, um den Wert vonagents.defaults.timeoutSecondszu verwenden, sofern dieser gesetzt ist; andernfalls wird das Heartbeat-Intervall mit einer Obergrenze von 600 Sekunden verwendet.directPolicy: Richtlinie für direkte Zustellung/DM-Zustellung.allow(Standard) erlaubt die Zustellung an direkte Ziele.blockunterdrückt die Zustellung an direkte Ziele und gibtreason=dm-blockedaus.lightContext: Wenn true, verwenden Heartbeat-Ausführungen einen schlanken Bootstrap-Kontext und behalten aus den Workspace-Bootstrap-Dateien nurHEARTBEAT.mdbei.isolatedSession: Wenn true, wird jeder Heartbeat in einer neuen Sitzung ohne vorherigen Konversationsverlauf ausgeführt. Dasselbe Isolationsmuster wie bei Cron mitsessionTarget: "isolated". Reduziert die Token-Kosten pro Heartbeat von ~100K auf ~2-5K Token.skipWhenBusy: Wenn true, werden Heartbeat-Ausführungen bei zusätzlichen ausgelasteten Ausführungspfaden dieses Agenten zurückgestellt: bei seiner eigenen sitzungsschlüsselgebundenen Subagent-Arbeit oder verschachtelten Befehlsarbeit. Cron-Ausführungspfade stellen Heartbeats immer zurück, auch ohne dieses Flag.- Pro Agent:
agents.list[].heartbeatsetzen. Wenn ein Agentheartbeatdefiniert, führen nur diese Agenten Heartbeats aus. - Heartbeats führen vollständige Agentendurchläufe aus — kürzere Intervalle verbrauchen mehr Token.
agents.defaults.compaction
{ agents: { defaults: { compaction: { mode: "safeguard", // default | safeguard provider: "my-provider", // ID eines registrierten Compaction-Provider-Plugins (optional) timeoutSeconds: 180, reserveTokensFloor: 24000, keepRecentTokens: 50000, recentTurnsPreserve: 3, maxHistoryShare: 0.7, identifierPolicy: "strict", // strict | off | custom identifierInstructions: "Bereitstellungs-IDs, Ticket-IDs und Host:Port-Paare exakt beibehalten.", // verwendet, wenn identifierPolicy=custom qualityGuard: { enabled: true, maxRetries: 1 }, midTurnPrecheck: { enabled: false }, // optionale Prüfung auf Belastung der Tool-Schleife postIndexSync: "async", // off | async | await postCompactionSections: ["Session Startup", "Red Lines"], // AGENTS.md-Abschnitte für die erneute Einfügung explizit aktivieren model: "openrouter/anthropic/claude-sonnet-4-6", // optionale Modellüberschreibung nur für Compaction truncateAfterCompaction: true, // nach der Compaction zu einer kleineren nachfolgenden JSONL-Datei rotieren maxActiveTranscriptBytes: "20mb", // optionaler Vorab-Auslöser für lokale Compaction notifyUser: true, // Benachrichtigungen bei Beginn/Abschluss der Compaction und bei Beeinträchtigung des Speicher-Flushs (Standard: false) memoryFlush: { enabled: true, model: "ollama/qwen3:8b", // optionale Modellüberschreibung nur für den Speicher-Flush softThresholdTokens: 6000, forceFlushTranscriptBytes: "2mb", systemPrompt: "Die Sitzung nähert sich der Compaction. Dauerhafte Erinnerungen jetzt speichern.", prompt: "Alle dauerhaften Notizen in memory/YYYY-MM-DD.md schreiben; mit dem exakten stillen Token NO_REPLY antworten, wenn nichts zu speichern ist.", }, }, }, },}mode:defaultodersafeguard(abschnittsweise Zusammenfassung für lange Verläufe). Siehe Compaction.provider: ID eines registrierten Compaction-Provider-Plugins. Wenn festgelegt, wirdsummarize()des Providers anstelle der integrierten LLM-Zusammenfassung aufgerufen. Bei einem Fehler wird auf die integrierte Zusammenfassung zurückgegriffen. Das Festlegen eines Providers erzwingtmode: "safeguard". Siehe Compaction.timeoutSeconds: maximale Anzahl von Sekunden, die für einen einzelnen Compaction-Vorgang zulässig ist, bevor OpenClaw ihn abbricht. Standard:180.reserveTokens: Token-Reserve, die nach der Compaction für die Modellausgabe und zukünftige Tool-Ergebnisse verfügbar bleibt. Wenn das Kontextfenster des Modells bekannt ist, begrenzt OpenClaw die effektive Reserve, damit sie das Prompt-Budget nicht aufbrauchen kann.reserveTokensFloor: vom eingebetteten Runtime erzwungene Mindestreserve. Legen Sie0fest, um die Untergrenze zu deaktivieren. Die Untergrenze unterliegt weiterhin der aktiven Begrenzung des Kontextfensters.keepRecentTokens: Budget für den Trennpunkt des Agents, um das neueste Ende des Transkripts unverändert beizubehalten. Manuelles/compactberücksichtigt dies, wenn es ausdrücklich festgelegt ist; andernfalls ist die manuelle Compaction ein fester Prüfpunkt.recentTurnsPreserve: Anzahl der neuesten Benutzer-/Assistenten-Runden, die außerhalb der Safeguard-Zusammenfassung unverändert beibehalten werden. Standard:3.maxHistoryShare: maximaler Anteil des gesamten Kontextbudgets, der nach der Compaction für den beibehaltenen Verlauf zulässig ist (Bereich0.1-0.9).identifierPolicy:strict(Standard),offodercustom.strictstellt bei der Compaction-Zusammenfassung integrierte Anweisungen zur Beibehaltung undurchsichtiger Bezeichner voran.identifierInstructions: optionaler benutzerdefinierter Text zur Beibehaltung von Bezeichnern, der verwendet wird, wennidentifierPolicy=customgilt.qualityGuard: Prüfungen mit erneutem Versuch bei fehlerhaft formatierter Ausgabe für Safeguard-Zusammenfassungen. Im Safeguard-Modus standardmäßig aktiviert; legen Sieenabled: falsefest, um die Prüfung zu überspringen.midTurnPrecheck: optionale Prüfung des Tool-Schleifendrucks. Wennenabled: truefestgelegt ist, prüft OpenClaw den Kontextdruck, nachdem Tool-Ergebnisse angehängt wurden und bevor das Modell erneut aufgerufen wird. Wenn der Kontext nicht mehr passt, bricht es den aktuellen Versuch vor dem Absenden des Prompts ab und verwendet den bestehenden Wiederherstellungspfad der Vorabprüfung erneut, um Tool-Ergebnisse zu kürzen oder eine Compaction durchzuführen und den Versuch zu wiederholen. Funktioniert sowohl mit dem Compaction-Modusdefaultals auch mitsafeguard. Standard: deaktiviert.postIndexSync: Modus zur Neuindizierung des Sitzungsspeichers nach der Compaction. Standard:"async". Verwenden Sie"await"für die höchste Aktualität,"async"für eine geringere Compaction-Latenz oder"off"nur, wenn die Synchronisierung des Sitzungsspeichers anderweitig verarbeitet wird.postCompactionSections: optionale Namen von H2-/H3-Abschnitten aus AGENTS.md, die nach der Compaction erneut eingefügt werden. Das erneute Einfügen ist deaktiviert, wenn die Einstellung nicht gesetzt oder auf[]gesetzt ist. Durch ausdrückliches Festlegen von["Session Startup", "Red Lines"]wird dieses Paar aktiviert und der bisherige FallbackEvery Session/Safetybeibehalten. Aktivieren Sie dies nur, wenn der zusätzliche Kontext das Risiko wert ist, bereits in der Compaction-Zusammenfassung erfasste Projektanweisungen zu duplizieren.model: optionale Angabeprovider/model-idoder reiner Alias ausagents.defaults.models, ausschließlich für die Compaction-Zusammenfassung. Reine Aliasse werden vor der Weiterleitung aufgelöst; konfigurierte wörtliche Modell-IDs behalten bei Kollisionen Vorrang. Verwenden Sie dies, wenn die Hauptsitzung ein Modell beibehalten, Compaction-Zusammenfassungen jedoch mit einem anderen Modell ausführen soll; wenn nicht festgelegt, verwendet die Compaction das primäre Modell der Sitzung.truncateAfterCompaction: rotiert das aktive Sitzungstranskript nach der Compaction, sodass zukünftige Runden nur die Zusammenfassung und das nicht zusammengefasste Ende laden, während das vorherige vollständige Transkript archiviert bleibt. Verhindert ein unbegrenztes Wachstum des aktiven Transkripts in lang laufenden Sitzungen. Standard:false.maxActiveTranscriptBytes: optionaler Byte-Schwellenwert (numberoder Zeichenfolgen wie"20mb"), der vor einer Ausführung eine normale lokale Compaction auslöst, wenn der Transkriptverlauf den Schwellenwert überschreitet. ErforderttruncateAfterCompaction, damit eine erfolgreiche Compaction zu einem kleineren Nachfolgetranskript rotieren kann. Deaktiviert, wenn nicht festgelegt oder auf0gesetzt.notifyUser: sendet beitruekurze Hinweise zur Kontextpflege an den Benutzer: wenn die Compaction beginnt und abgeschlossen ist (zum Beispiel „Kontext wird komprimiert ...“ und „Compaction abgeschlossen“), und wenn eine Speicherleerung vor der Compaction ausgeschöpft ist, sodass die Antwort in einem eingeschränkten Zustand fortgesetzt wird (zum Beispiel „Die Speicherpflege ist vorübergehend fehlgeschlagen; Ihre Antwort wird fortgesetzt.“). Standardmäßig deaktiviert, damit diese Hinweise nicht angezeigt werden.memoryFlush: stille agentische Runde vor der automatischen Compaction, um dauerhafte Erinnerungen zu speichern. Legen Siemodelauf einen exakten Provider/ein exaktes Modell wieollama/qwen3:8bfest, wenn diese Wartungsrunde auf einem lokalen Modell verbleiben soll; die Überschreibung übernimmt nicht die aktive Fallback-Kette der Sitzung.forceFlushTranscriptByteserzwingt die Leerung, wenn die Transkriptgröße den Schwellenwert erreicht, selbst wenn die Token-Zähler veraltet sind. Wird übersprungen, wenn der Arbeitsbereich schreibgeschützt ist.
agents.defaults.runRetries
Grenzen für die Wiederholungsiterationen der äußeren Ausführungsschleife des eingebetteten Agent-Runtime, um Endlosschleifen während der Fehlerbehebung zu verhindern. Diese Einstellung gilt nur für den eingebetteten Agent-Runtime, nicht für ACP- oder CLI-Runtimes.
{ agents: { defaults: { runRetries: { base: 24, perProfile: 8, min: 32, max: 160, }, }, list: [ { id: "main", runRetries: { max: 50 }, // optionale Überschreibungen pro Agent }, ], },}base: Basisanzahl der Wiederholungsiterationen für die äußere Ausführungsschleife. Standard:24.perProfile: zusätzliche Wiederholungsiterationen, die pro Kandidat für ein Fallback-Profil gewährt werden. Standard:8.min: absolute Mindestgrenze für Wiederholungsiterationen. Standard:32.max: absolute Höchstgrenze für Wiederholungsiterationen, um eine außer Kontrolle geratene Ausführung zu verhindern. Standard:160.
agents.defaults.contextPruning
Entfernt alte Tool-Ergebnisse aus dem Arbeitsspeicherkontext, bevor dieser an das LLM gesendet wird. Ändert den Sitzungsverlauf auf dem Datenträger nicht. Standardmäßig deaktiviert; legen Sie zum Aktivieren mode: "cache-ttl" fest.
{ agents: { defaults: { contextPruning: { mode: "cache-ttl", // aus (Standard) | cache-ttl ttl: "1h", // Dauer (ms/s/m/h), Standardeinheit: Minuten; Standard: 5m keepLastAssistants: 3, softTrimRatio: 0.3, hardClearRatio: 0.5, minPrunableToolChars: 50000, softTrim: { maxChars: 4000, headChars: 1500, tailChars: 1500 }, hardClear: { enabled: true, placeholder: "[Old tool result content cleared]" }, tools: { deny: ["browser", "canvas"] }, }, }, },}Verhalten des Modus cache-ttl
mode: "cache-ttl"aktiviert Bereinigungsdurchläufe.ttlsteuert, wie häufig die Bereinigung erneut ausgeführt werden kann (nach dem letzten Cache-Zugriff). Standard:5m.- Die Bereinigung kürzt zunächst übergroße Tool-Ergebnisse behutsam und löscht anschließend bei Bedarf ältere Tool-Ergebnisse vollständig.
softTrimRatioundhardClearRatioakzeptieren Werte von0.0bis1.0; die Konfigurationsvalidierung weist Werte außerhalb dieses Bereichs zurück.
Behutsames Kürzen behält Anfang und Ende bei und fügt in der Mitte ... ein.
Vollständiges Löschen ersetzt das gesamte Tool-Ergebnis durch den Platzhalter.
Hinweise:
- Bildblöcke werden niemals gekürzt oder gelöscht.
- Verhältnisse basieren auf Zeichen (näherungsweise), nicht auf exakten Token-Anzahlen.
- Wenn weniger als
keepLastAssistantsAssistentennachrichten vorhanden sind, wird die Bereinigung übersprungen.
Weitere Einzelheiten zum Verhalten finden Sie unter Sitzungsbereinigung.
Block-Streaming
{ agents: { defaults: { blockStreamingDefault: "off", // ein | aus blockStreamingBreak: "text_end", // text_end | message_end blockStreamingChunk: { minChars: 800, maxChars: 1200, breakPreference: "paragraph" }, blockStreamingCoalesce: { idleMs: 1000 }, humanDelay: { mode: "natural" }, // aus (Standard) | natural | custom (minMs/maxMs verwenden) }, },}- Kanäle außer Telegram erfordern ausdrücklich
*.blockStreaming: true, um Blockantworten zu aktivieren. - Kanalüberschreibungen:
channels.<channel>.blockStreamingCoalesce(sowie Varianten pro Konto). Discord, Google Chat, Mattermost, MS Teams, Signal und Slack verwenden standardmäßigminChars: 1500/idleMs: 1000. blockStreamingChunk.breakPreference: bevorzugte Abschnittsgrenze ("paragraph" | "newline" | "sentence").humanDelay: zufällige Pause zwischen Blockantworten. Standard:off.natural= 800-2500ms.customverwendetminMs/maxMs(für jede nicht festgelegte Grenze wird auf den natürlichen Bereich zurückgegriffen). Überschreibung pro Agent:agents.list[].humanDelay.
Weitere Einzelheiten zum Verhalten und zur Abschnittsbildung finden Sie unter Streaming.
Tippindikatoren
{ agents: { defaults: { typingMode: "instant", // never | instant | thinking | message typingIntervalSeconds: 6, }, },}- Standardwerte:
instantfür direkte Chats/Erwähnungen,messagefür Gruppenchats ohne Erwähnung. - Standard für
typingIntervalSeconds:6. - Überschreibungen pro Sitzung:
session.typingMode,session.typingIntervalSeconds.
Siehe Tippindikatoren.
agents.defaults.sandbox
Optionale Sandbox-Isolierung für den eingebetteten Agent. Die vollständige Anleitung finden Sie unter Sandbox-Isolierung.
{ agents: { defaults: { sandbox: { mode: "non-main", // aus (Standard) | non-main | all backend: "docker", // docker (Standard) | ssh | openshell scope: "agent", // session | agent (Standard) | shared workspaceAccess: "none", // none (Standard) | ro | rw workspaceRoot: "~/.openclaw/sandboxes", docker: { image: "openclaw-sandbox:bookworm-slim", containerPrefix: "openclaw-sbx-", workdir: "/workspace", readOnlyRoot: true, tmpfs: ["/tmp", "/var/tmp", "/run"], network: "none", user: "1000:1000", capDrop: ["ALL"], env: { LANG: "C.UTF-8" }, setupCommand: "apt-get update && apt-get install -y git curl jq", pidsLimit: 256, memory: "1g", memorySwap: "2g", cpus: 1, gpus: "all", ulimits: { nofile: { soft: 1024, hard: 2048 }, nproc: 256, }, seccompProfile: "/path/to/seccomp.json", apparmorProfile: "openclaw-sandbox", dns: ["1.1.1.1", "8.8.8.8"], extraHosts: ["internal.service:10.0.0.5"], binds: ["/home/user/source:/source:rw"], }, ssh: { target: "user@gateway-host:22", command: "ssh", workspaceRoot: "/tmp/openclaw-sandboxes", strictHostKeyChecking: true, updateHostKeys: true, identityFile: "~/.ssh/id_ed25519", certificateFile: "~/.ssh/id_ed25519-cert.pub", knownHostsFile: "~/.ssh/known_hosts", // SecretRefs / eingebettete Inhalte werden ebenfalls unterstützt: // identityData: { source: "env", provider: "default", id: "SSH_IDENTITY" }, // certificateData: { source: "env", provider: "default", id: "SSH_CERTIFICATE" }, // knownHostsData: { source: "env", provider: "default", id: "SSH_KNOWN_HOSTS" }, }, browser: { enabled: false, image: "openclaw-sandbox-browser:bookworm-slim", network: "openclaw-sandbox-browser", cdpPort: 9222, cdpSourceRange: "172.21.0.1/32", vncPort: 5900, noVncPort: 6080, headless: false, enableNoVnc: true, allowHostControl: false, autoStart: true, autoStartTimeoutMs: 12000, }, prune: { idleHours: 24, maxAgeDays: 7, }, }, }, }, tools: { sandbox: { tools: { allow: [ "exec", "process", "read", "write", "edit", "apply_patch", "sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status", ], deny: ["browser", "canvas", "nodes", "cron", "discord", "gateway"], }, }, },}Die oben gezeigten Standardwerte (off/docker/agent/none/Image bookworm-slim/Netzwerk none/usw.) sind die tatsächlichen OpenClaw-Standardwerte und nicht nur beispielhafte Werte.
Sandbox-Details
Backend:
docker: lokale Docker-Laufzeit (Standard)ssh: generische, SSH-gestützte Remote-Laufzeitopenshell: OpenShell-Laufzeit
Wenn backend: "openshell" ausgewählt ist, werden laufzeitspezifische Einstellungen nach
plugins.entries.openshell.config verschoben.
SSH-Backend-Konfiguration:
target: SSH-Ziel im Formatuser@host[:port]command: SSH-Client-Befehl (Standard:ssh)workspaceRoot: absoluter Remote-Stammordner für Arbeitsbereiche pro Geltungsbereich (Standard:/tmp/openclaw-sandboxes)identityFile/certificateFile/knownHostsFile: vorhandene lokale Dateien, die an OpenSSH übergeben werdenidentityData/certificateData/knownHostsData: Inline-Inhalte oder SecretRefs, die OpenClaw zur Laufzeit in temporären Dateien materialisiertstrictHostKeyChecking/updateHostKeys: Einstellungen für die OpenSSH-Hostschlüsselrichtlinie (beide standardmäßigtrue)
Priorität der SSH-Authentifizierung:
identityDatahat Vorrang voridentityFilecertificateDatahat Vorrang vorcertificateFileknownHostsDatahat Vorrang vorknownHostsFile- SecretRef-gestützte
*Data-Werte werden vor Beginn der Sandbox-Sitzung aus dem aktiven Laufzeit-Snapshot der Secrets aufgelöst
Verhalten des SSH-Backends:
- initialisiert den Remote-Arbeitsbereich einmal nach der Erstellung oder Neuerstellung
- verwendet anschließend den Remote-SSH-Arbeitsbereich als kanonische Quelle
- leitet
exec, Dateiwerkzeuge und Medienpfade über SSH - synchronisiert Remote-Änderungen nicht automatisch zurück zum Host
- unterstützt keine Sandbox-Browser-Container
Zugriff auf den Arbeitsbereich:
none: Sandbox-Arbeitsbereich pro Geltungsbereich unter~/.openclaw/sandboxes(Standard)ro: Sandbox-Arbeitsbereich unter/workspace, Agent-Arbeitsbereich schreibgeschützt unter/agenteingehängtrw: Agent-Arbeitsbereich mit Lese-/Schreibzugriff unter/workspaceeingehängt
Geltungsbereich:
session: Container und Arbeitsbereich pro Sitzungagent: ein Container und Arbeitsbereich pro Agent (Standard)shared: gemeinsam genutzter Container und Arbeitsbereich (keine sitzungsübergreifende Isolation)
OpenShell-Plugin-Konfiguration:
{plugins: { entries: { openshell: { enabled: true, config: { mode: "mirror", // Spiegelung (Standard) | Remote command: "openshell", from: "openclaw", remoteWorkspaceDir: "/sandbox", remoteAgentWorkspaceDir: "/agent", gateway: "lab", // optional gatewayEndpoint: "https://lab.example", // optional policy: "strict", // optionale OpenShell-Richtlinien-ID providers: ["openai"], // optional autoProviders: true, timeoutSeconds: 120, }, }, },},}OpenShell-Modus:
mirror: Remote-Bereich vor der Ausführung aus dem lokalen Bereich initialisieren und nach der Ausführung zurücksynchronisieren; der lokale Arbeitsbereich bleibt kanonischremote: Remote-Bereich einmal bei Erstellung der Sandbox initialisieren und anschließend den Remote-Arbeitsbereich als kanonische Quelle verwenden
Im Modus remote werden lokale Änderungen auf dem Host, die außerhalb von OpenClaw vorgenommen wurden, nach dem Initialisierungsschritt nicht automatisch in die Sandbox synchronisiert.
Der Transport erfolgt per SSH in die OpenShell-Sandbox, das Plugin verwaltet jedoch den Lebenszyklus der Sandbox und die optionale Spiegelsynchronisierung.
setupCommand wird einmal nach der Container-Erstellung ausgeführt (über sh -lc). Erfordert ausgehenden Netzwerkzugriff, einen beschreibbaren Stammordner und den Root-Benutzer.
Container verwenden standardmäßig network: "none" – setzen Sie den Wert auf "bridge" (oder ein benutzerdefiniertes Bridge-Netzwerk), wenn der Agent ausgehenden Zugriff benötigt.
"host" ist gesperrt. "container:<id>" ist standardmäßig gesperrt, sofern Sie nicht ausdrücklich
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true festlegen (Notfalloption).
Codex-App-Server-Durchläufe in einer aktiven OpenClaw-Sandbox verwenden dieselbe Einstellung für ausgehenden Zugriff für ihren nativen Netzwerkzugriff im Code-Modus.
Eingehende Anhänge werden unter media/inbound/* im aktiven Arbeitsbereich bereitgestellt.
docker.binds hängt zusätzliche Host-Verzeichnisse ein; globale und agentspezifische Bind-Mounts werden zusammengeführt.
Sandbox-Browser (sandbox.browser.enabled, Standard false): Chromium + CDP in einem Container. Die noVNC-URL wird in den System-Prompt eingefügt. Erfordert nicht browser.enabled in openclaw.json.
Der noVNC-Beobachterzugriff verwendet standardmäßig VNC-Authentifizierung, und OpenClaw erzeugt eine kurzlebige Token-URL (anstatt das Passwort in der gemeinsam genutzten URL offenzulegen).
allowHostControl: false(Standard) verhindert, dass Sandbox-Sitzungen den Host-Browser ansteuern.networkverwendet standardmäßigopenclaw-sandbox-browser(dediziertes Bridge-Netzwerk). Setzen Sie den Wert nur dann aufbridge, wenn Sie ausdrücklich globale Bridge-Konnektivität wünschen."host"ist auch hier gesperrt.cdpSourceRangebeschränkt optional den eingehenden CDP-Zugriff am Container-Rand auf einen CIDR-Bereich (zum Beispiel172.21.0.1/32).sandbox.browser.bindshängt zusätzliche Host-Verzeichnisse ausschließlich in den Sandbox-Browser-Container ein. Wenn diese Option festgelegt ist (einschließlich[]), ersetzt siedocker.bindsfür den Browser-Container.- Chromium im Sandbox-Browser-Container wird immer mit
--no-sandbox --disable-setuid-sandboxgestartet (Container verfügen nicht über die Kernel-Primitive, die Chromes eigene Sandbox benötigt); dafür gibt es keine Konfigurationsoption. - Die Startstandardwerte sind in
scripts/sandbox-browser-entrypoint.shdefiniert und für Container-Hosts optimiert: --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-dev-shm-usage--disable-background-networking--disable-breakpad--disable-crash-reporter--no-zygote--metrics-recording-only--password-store=basic--use-mock-keychain--disable-3d-apis,--disable-gpuund--disable-software-rasterizersind standardmäßig aktiviert und können mitOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0deaktiviert werden, wenn die Verwendung von WebGL/3D dies erfordert.--disable-extensions(standardmäßig aktiviert);OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0aktiviert Erweiterungen erneut, wenn Ihr Arbeitsablauf von ihnen abhängt.--renderer-process-limit=2standardmäßig; ändern Sie den Wert mitOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>oder setzen Sie ihn auf0, um Chromiums standardmäßiges Prozesslimit zu verwenden.--headless=newnur, wennheadlessaktiviert ist.- Die Standardwerte bilden die Basis des Container-Images; verwenden Sie ein benutzerdefiniertes Browser-Image mit einem benutzerdefinierten Einstiegspunkt, um die Container-Standardwerte zu ändern.
Browser-Sandboxing und sandbox.docker.binds sind ausschließlich mit Docker verfügbar.
Images erstellen (aus einem Quellcode-Checkout):
scripts/sandbox-setup.sh # Haupt-Sandbox-Imagescripts/sandbox-browser-setup.sh # optionales Browser-ImageInformationen zu npm-Installationen ohne Quellcode-Checkout finden Sie unter Sandboxing § Images und Einrichtung mit Inline-Befehlen für docker build.
agents.list (agentspezifische Überschreibungen)
Verwenden Sie agents.list[].tts, um einem Agent einen eigenen TTS-Provider, eine eigene Stimme, ein eigenes Modell,
einen eigenen Stil oder einen eigenen automatischen TTS-Modus zuzuweisen. Der Agent-Block wird tief mit dem globalen
messages.tts zusammengeführt. So können gemeinsam genutzte Anmeldedaten an einer Stelle verbleiben, während einzelne
Agenten nur die benötigten Felder für Stimme oder Provider überschreiben. Die Überschreibung des aktiven Agenten
gilt für automatische gesprochene Antworten, /tts audio, /tts status und
das Agent-Werkzeug tts. Beispiele für Provider und die Rangfolge finden Sie unter Text-to-Speech.
{ agents: { list: [ { id: "main", default: true, name: "Main Agent", workspace: "~/.openclaw/workspace", agentDir: "~/.openclaw/agents/main/agent", model: "anthropic/claude-opus-4-6", // oder { primary, fallbacks } utilityModel: "openai/gpt-5.4-mini", thinkingDefault: "high", // agentspezifische Überschreibung der Denkstufe reasoningDefault: "on", // agentspezifische Überschreibung der Sichtbarkeit der Schlussfolgerungen fastModeDefault: false, // agentspezifische Überschreibung des Schnellmodus params: { cacheRetention: "none" }, // überschreibt übereinstimmende defaults.models-Parameter anhand des Schlüssels tts: { providers: { elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL" }, }, }, skills: ["docs-search"], // ersetzt agents.defaults.skills, wenn festgelegt identity: { name: "Samantha", theme: "hilfsbereites Faultier", emoji: "🦥", avatar: "avatars/samantha.png", }, groupChat: { mentionPatterns: ["@openclaw"] }, sandbox: { mode: "off" }, runtime: { type: "acp", acp: { agent: "codex", backend: "acpx", mode: "persistent", // persistent | oneshot cwd: "/workspace/openclaw", }, }, subagents: { allowAgents: ["*"] }, tools: { profile: "coding", allow: ["browser"], deny: ["canvas"], elevated: { enabled: true }, }, }, ], },}id: stabile Agent-ID (erforderlich).default: Wenn mehrere festgelegt sind, gilt der erste Eintrag (eine Warnung wird protokolliert). Ist keiner festgelegt, ist der erste Listeneintrag der Standardwert.model: Die Zeichenfolgenform legt ein striktes primäres Modell pro Agent ohne Modell-Fallback fest; die Objektform{ primary }ist ebenfalls strikt, sofern Sie keinefallbackshinzufügen. Verwenden Sie{ primary, fallbacks: [...] }, um den Fallback für diesen Agent zu aktivieren, oder{ primary, fallbacks: [] }, um das strikte Verhalten ausdrücklich festzulegen. Cron-Aufträge, die nurprimaryüberschreiben, übernehmen weiterhin die standardmäßigen Fallbacks, sofern Sie nichtfallbacks: []festlegen.utilityModel: optionale Überschreibung pro Agent für kurze interne Aufgaben wie generierte Sitzungs- und Thread-Titel. Fällt aufagents.defaults.utilityModel, dann auf den deklarierten Standard des primären Providers für kleine Modelle und schließlich auf das primäre Modell dieses Agents zurück. Eine leere Zeichenfolge deaktiviert das Utility-Routing für diesen Agent.params: Stream-Parameter pro Agent, die über den ausgewählten Modelleintrag inagents.defaults.modelsgelegt werden. Verwenden Sie dies für agentspezifische Überschreibungen wiecacheRetention,temperatureodermaxTokens, ohne den gesamten Modellkatalog zu duplizieren.tts: optionale Text-to-Speech-Überschreibungen pro Agent. Der Block wird rekursiv übermessages.ttsgelegt. Belassen Sie daher gemeinsam verwendete Provider-Anmeldedaten und die Fallback-Richtlinie inmessages.ttsund legen Sie hier nur personaspezifische Werte wie Provider, Stimme, Modell, Stil oder automatischen Modus fest.skills: optionale Skill-Zulassungsliste pro Agent. Wenn sie weggelassen wird, übernimmt der Agent den Wert vonagents.defaults.skills, sofern dieser festgelegt ist; eine explizite Liste ersetzt die Standardwerte, statt sie zusammenzuführen, und[]bedeutet, dass keine Skills verfügbar sind.thinkingDefault: optionale Standard-Denkstufe pro Agent (off | minimal | low | medium | high | xhigh | adaptive | max). Überschreibtagents.defaults.thinkingDefaultfür diesen Agent, wenn keine Überschreibung pro Nachricht oder Sitzung festgelegt ist. Das ausgewählte Provider-/Modellprofil bestimmt, welche Werte gültig sind; bei Google Gemini behältadaptivedas vom Provider gesteuerte dynamische Denken bei (thinkingLevelwird bei Gemini 3/3.1 weggelassen,thinkingBudget: -1bei Gemini 2.5).reasoningDefault: optionale Standardsichtbarkeit der Schlussfolgerungen pro Agent (on | off | stream). Überschreibtagents.defaults.reasoningDefaultfür diesen Agent, wenn keine Überschreibung der Schlussfolgerungen pro Nachricht oder Sitzung festgelegt ist.fastModeDefault: optionale Standardeinstellung für den schnellen Modus pro Agent ("auto" | true | false). Gilt, wenn keine Überschreibung des schnellen Modus pro Nachricht oder Sitzung festgelegt ist.models: optionale Überschreibungen des Modellkatalogs bzw. der Laufzeit pro Agent, indiziert nach vollständigenprovider/model-IDs. Verwenden Siemodels["provider/model"].agentRuntimefür Laufzeitausnahmen pro Agent.runtime: optionale Laufzeitbeschreibung pro Agent. Verwenden Sietype: "acp"mit den Standardwerten unterruntime.acp(agent,backend,mode,cwd), wenn der Agent standardmäßig ACP-Harness-Sitzungen verwenden soll.identity.avatar: arbeitsbereichsrelativer Pfad,http(s)-URL oderdata:-URI.- Lokale arbeitsbereichsrelative
identity.avatar-Bilddateien sind auf 2 MB begrenzt.http(s)-URLs unddata:-URIs werden nicht anhand der lokalen Dateigrößenbeschränkung geprüft. identityleitet Standardwerte ab:ackReactionausemoji,mentionPatternsausname/emoji.subagents.allowAgents: Zulassungsliste konfigurierter Agent-IDs für explizitesessions_spawn.agentId-Ziele (["*"]= jedes konfigurierte Ziel; Standard: nur derselbe Agent). Nehmen Sie die ID des anfordernden Agents auf, wenn selbstreferenzierendeagentId-Aufrufe zulässig sein sollen. Veraltete Einträge, deren Agent-Konfiguration gelöscht wurde, werden vonsessions_spawnabgelehnt und ausagents_listweggelassen. Führen Sieopenclaw doctor --fixaus, um sie zu bereinigen, oder fügen Sie einen minimalenagents.list[]-Eintrag hinzu, wenn dieses Ziel weiterhin erzeugt werden können soll und dabei die Standardwerte übernehmen soll.- Schutz für die Sandbox-Vererbung: Wenn die anfordernde Sitzung in einer Sandbox ausgeführt wird, lehnt
sessions_spawnZiele ab, die ohne Sandbox ausgeführt würden. subagents.requireAgentId: Wenn „true“, werdensessions_spawn-Aufrufe blockiert, dieagentIdweglassen (erzwingt die explizite Profilauswahl; Standard: „false“).subagents.maxConcurrent: maximale Anzahl gleichzeitig ausgeführter untergeordneter Agent-Läufe über die Subagent-Ausführung hinweg. Standard:8.subagents.maxChildrenPerAgent: maximale Anzahl aktiver untergeordneter Agents, die eine einzelne Agent-Sitzung erzeugen kann. Standard:5.subagents.maxSpawnDepth: maximale Verschachtelungstiefe für das Erzeugen von Subagents (1-5). Standard:1(keine Verschachtelung).subagents.archiveAfterMinutes: Zeitspanne, nach der der Status abgeschlossener Subagents archiviert wird. Standard:60.
Multi-Agent-Routing
Führen Sie mehrere isolierte Agents innerhalb eines Gateways aus. Siehe Multi-Agent.
{ agents: { list: [ { id: "home", default: true, workspace: "~/.openclaw/workspace-home" }, { id: "work", workspace: "~/.openclaw/workspace-work" }, ], }, bindings: [ { agentId: "home", match: { channel: "whatsapp", accountId: "personal" } }, { agentId: "work", match: { channel: "whatsapp", accountId: "biz" } }, ],}Felder für den Binding-Abgleich
type(optional):routefür normales Routing (bei fehlendem Typ ist der Standardwert „route“),acpfür persistente ACP-Konversationsbindungen.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 }
Deterministische Abgleichreihenfolge:
match.peermatch.guildIdmatch.teamIdmatch.accountId(exakt, ohne Peer/Guild/Team)match.accountId: "*"(kanalweit)- Standard-Agent
Innerhalb jeder Stufe gilt der erste passende bindings-Eintrag.
Für Einträge mit type: "acp" erfolgt die Auflösung in OpenClaw anhand der exakten Konversationsidentität (match.channel + Konto + match.peer.id); die oben angegebene Stufenreihenfolge der Routenbindungen wird dabei nicht verwendet.
Zugriffsprofile pro Agent
Vollzugriff (keine Sandbox)
{agents: { list: [ { id: "personal", workspace: "~/.openclaw/workspace-personal", sandbox: { mode: "off" }, }, ],},}Schreibgeschützte Tools + Arbeitsbereich
{agents: { list: [ { id: "family", workspace: "~/.openclaw/workspace-family", sandbox: { mode: "all", scope: "agent", workspaceAccess: "ro" }, tools: { allow: [ "read", "sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status", ], deny: ["write", "edit", "apply_patch", "exec", "process", "browser"], }, }, ],},}Kein Dateisystemzugriff (nur Nachrichtenübermittlung)
{agents: { list: [ { id: "public", workspace: "~/.openclaw/workspace-public", sandbox: { mode: "all", scope: "agent", workspaceAccess: "none" }, tools: { allow: [ "sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status", "whatsapp", "telegram", "slack", "discord", "gateway", ], deny: [ "read", "write", "edit", "apply_patch", "exec", "process", "browser", "canvas", "nodes", "cron", "gateway", "image", ], }, }, ],},}Einzelheiten zur Rangfolge finden Sie unter Multi-Agent-Sandbox und -Tools.
Sitzung
{ session: { scope: "per-sender", dmScope: "main", // main | per-peer | per-channel-peer | per-account-channel-peer identityLinks: { alice: ["telegram:123456789", "discord:987654321012345678"], }, reset: { mode: "daily", // daily | idle atHour: 4, idleMinutes: 60, }, resetByType: { thread: { mode: "daily", atHour: 4 }, direct: { mode: "idle", idleMinutes: 240 }, group: { mode: "idle", idleMinutes: 120 }, }, resetByChannel: { discord: { mode: "idle", idleMinutes: 30 }, }, resetTriggers: ["/new", "/reset"], store: "~/.openclaw/agents/{agentId}/sessions/sessions.json", maintenance: { mode: "enforce", // enforce (Standard) | warn pruneAfter: "30d", maxEntries: 500, resetArchiveRetention: "30d", // Dauer oder false maxDiskBytes: "500mb", // optionales festes Limit highWaterBytes: "400mb", // optionales Bereinigungsziel }, writeLock: { acquireTimeoutMs: 60000, staleMs: 1800000, maxHoldMs: 300000, }, threadBindings: { enabled: true, idleHours: 24, // standardmäßige automatische Aufhebung des Fokus nach Inaktivität in Stunden (`0` deaktiviert dies) maxAgeHours: 0, // standardmäßiges festes Höchstalter in Stunden (`0` deaktiviert dies) }, mainKey: "main", // veraltet (die Laufzeit verwendet immer "main") agentToAgent: { maxPingPongTurns: 5 }, sendPolicy: { rules: [{ action: "deny", match: { channel: "discord", chatType: "group" } }], default: "allow", }, },}Details zu Sitzungsfeldern
scope: grundlegende Strategie zur Sitzungsgruppierung für Gruppenchat-Kontexte.per-sender(Standard): Jeder Absender erhält innerhalb eines Kanalkontexts eine isolierte Sitzung.global: Alle Teilnehmer in einem Kanalkontext teilen sich eine einzige Sitzung (nur verwenden, wenn ein gemeinsamer Kontext beabsichtigt ist).dmScope: legt fest, wie Direktnachrichten gruppiert werden.main: Alle Direktnachrichten teilen sich die Hauptsitzung.per-peer: nach Absender-ID kanalübergreifend isolieren.per-channel-peer: pro Kanal + Absender isolieren (für Posteingänge mit mehreren Benutzern empfohlen).per-account-channel-peer: pro Konto + Kanal + Absender isolieren (für mehrere Konten empfohlen).identityLinks: ordnet kanonische IDs Provider-präfigierten Kommunikationspartnern zu, um Sitzungen kanalübergreifend zu teilen. Dock-Befehle wie/dock_discordverwenden dieselbe Zuordnung, um die Antwort-Route der aktiven Sitzung auf einen anderen verknüpften Kanalpartner umzuschalten; siehe Kanal-Docking.reset: primäre Rücksetzrichtlinie.dailysetzt zur lokalen UhrzeitatHourzurück;idlesetzt nachidleMinuteszurück. Wenn beide konfiguriert sind, gilt die zuerst ablaufende Bedingung. Die Aktualität für tägliche Rücksetzungen basiert aufsessionStartedAtdes Sitzungseintrags; die Aktualität für Leerlaufrücksetzungen basiert auflastInteractionAt. Schreibvorgänge durch Hintergrund-/Systemereignisse wie Heartbeat, Cron-Aktivierungen, Ausführungsbenachrichtigungen und Gateway-Verwaltung könnenupdatedAtaktualisieren, halten tägliche bzw. Leerlaufsitzungen jedoch nicht aktuell.resetByType: typspezifische Überschreibungen (direct,group,thread). Das veraltetedmwird als Alias fürdirectakzeptiert.resetByChannel: kanalspezifische Rücksetzungsüberschreibungen, deren Schlüssel die Provider-/Kanal-ID ist. Wenn der Kanal der Sitzung einen passenden Eintrag hat, hat dieser für die Sitzung uneingeschränkt Vorrang vorresetByType/reset. Nur verwenden, wenn ein Kanal ein von der Richtlinie auf Typebene abweichendes Rücksetzverhalten benötigt.mainKey: veraltetes Feld. Die Laufzeit verwendet für den Hauptbereich direkter Chats immer"main".agentToAgent.maxPingPongTurns: maximale Anzahl wechselseitiger Antwortrunden zwischen Agenten bei Agent-zu-Agent-Austauschen (Ganzzahl, Bereich:0-20, Standard:5).0deaktiviert die Pingpong-Verkettung.sendPolicy: Abgleich anhand vonchannel,chatType(direct|group|channel, mit dem veralteten Aliasdm),keyPrefixoderrawKeyPrefix. Die erste Ablehnung hat Vorrang.maintenance: Bereinigung des Sitzungsspeichers + Aufbewahrungssteuerung.mode:enforceführt die Bereinigung aus und ist der Standard;warngibt nur Warnungen aus.pruneAfter: Altersgrenze für veraltete Einträge (Standard30d).maxEntries: maximale Anzahl von SQLite-Sitzungseinträgen (Standard500). Laufzeitschreibvorgänge führen die Bereinigung stapelweise mit einem kleinen Puffer oberhalb des Grenzwerts für produktionsübliche Höchstwerte aus;openclaw sessions cleanup --enforcewendet den Grenzwert sofort an.- Kurzlebige Gateway-Prüfsitzungen für Modellläufe verwenden eine feste Aufbewahrung von
24h, die Bereinigung erfolgt jedoch nur unter Speicherdruck: Veraltete Einträge strikter Modelllaufprüfungen werden nur entfernt, wenn Wartungs-/Grenzwertdruck bei Sitzungseinträgen erreicht wird. Nur streng explizite Prüfschlüssel, dieagent:*:explicit:model-run-<uuid>entsprechen, kommen infrage; normale Direkt-, Gruppen-, Thread-, Cron-, Hook-, Heartbeat-, ACP- und Subagent-Sitzungen übernehmen diese Aufbewahrung von 24 Stunden nicht. Wenn die Modelllaufbereinigung ausgeführt wird, erfolgt sie vor der umfassenderen Bereinigung veralteter Einträge gemäßpruneAfterund dem GrenzwertmaxEntries. rotateBytes: veraltet und wird ignoriert;openclaw doctor --fixentfernt es aus älteren Konfigurationen.resetArchiveRetention: Aufbewahrung für Transkriptarchive im Format*.reset.<timestamp>. Verwendet standardmäßigpruneAfter; auffalsesetzen, um sie zu deaktivieren.maxDiskBytes: optionales Speicherplatzbudget für das Sitzungsverzeichnis. Im Moduswarnwerden Warnungen protokolliert; im Modusenforcewerden zuerst die ältesten Artefakte/Sitzungen entfernt.highWaterBytes: optionaler Zielwert nach der Budgetbereinigung. Standardmäßig80%vonmaxDiskBytes.writeLock: Steuerung der Schreibsperre für Sitzungstranskripte. Nur anpassen, wenn legitime Transkriptvorbereitung, Bereinigung, Compaction oder Spiegelung länger als gemäß den Standardrichtlinien um die Sperre konkurrieren.acquireTimeoutMs: Wartezeit in Millisekunden beim Anfordern einer Sperre, bevor die Sitzung als beschäftigt gemeldet wird. Standard:60000; UmgebungsüberschreibungOPENCLAW_SESSION_WRITE_LOCK_ACQUIRE_TIMEOUT_MS.staleMs: Zeit in Millisekunden, nach der eine bestehende Sperre als veraltet behandelt und zurückgefordert wird. Standard:1800000; UmgebungsüberschreibungOPENCLAW_SESSION_WRITE_LOCK_STALE_MS.maxHoldMs: Zeit in Millisekunden, die eine prozessintern gehaltene Sperre maximal bestehen darf, bevor der Watchdog sie freigibt. Standard:300000; UmgebungsüberschreibungOPENCLAW_SESSION_WRITE_LOCK_MAX_HOLD_MS.threadBindings: globale Standardwerte für an Threads gebundene Sitzungsfunktionen.enabled: übergeordneter Standardschalter (Provider können ihn überschreiben; Discord verwendetchannels.discord.threadBindings.enabled)idleHours: standardmäßige automatische Aufhebung des Fokus nach Inaktivität in Stunden (0deaktiviert; Provider können den Wert überschreiben)maxAgeHours: standardmäßiges absolutes Höchstalter in Stunden (0deaktiviert; Provider können den Wert überschreiben)spawnSessions: standardmäßige Freigabe zum Erstellen threadgebundener Arbeitssitzungen übersessions_spawnund ACP-Thread-Erstellungen. Standardmäßigtrue, wenn Threadbindungen aktiviert sind; Provider/Konten können den Wert überschreiben.defaultSpawnContext: standardmäßiger nativer Subagent-Kontext für threadgebundene Erstellungen ("fork"oder"isolated"). Standardmäßig"fork".
Nachrichten
{ messages: { responsePrefix: "🦞", // oder "auto" ackReaction: "👀", ackReactionScope: "group-mentions", // group-mentions | group-all | direct | all | off | none removeAckAfterReply: false, queue: { mode: "steer", // steer (Standard) | followup | collect | interrupt debounceMs: 500, cap: 20, drop: "summarize", // old | new | summarize (Standard) byChannel: { whatsapp: "followup", telegram: "followup", }, }, inbound: { debounceMs: 2000, // 0 deaktiviert byChannel: { whatsapp: 5000, slack: 1500, }, }, },}Antwortpräfix
Überschreibungen pro Kanal/Konto: channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Auflösung (der spezifischste Wert hat Vorrang): Konto → Kanal → global. "" deaktiviert die Funktion und beendet die Kaskade. "auto" leitet [{identity.name}] ab.
Vorlagenvariablen:
| Variable | Beschreibung | Beispiel |
|---|---|---|
{model} |
Kurzer Modellname | claude-opus-4-6 |
{modelFull} |
Vollständige Modellkennung | anthropic/claude-opus-4-6 |
{provider} |
Providername | anthropic |
{thinkingLevel} |
Aktuelle Denkstufe | high, low, off |
{identity.name} |
Name der Agentenidentität | (entspricht "auto") |
Bei Variablen wird nicht zwischen Groß- und Kleinschreibung unterschieden. {think} ist ein Alias für {thinkingLevel}.
Bestätigungsreaktion
- Verwendet standardmäßig
identity.emojides aktiven Agenten, andernfalls"👀". Zum Deaktivieren auf""setzen. - Kanalspezifische Überschreibungen:
channels.<channel>.ackReaction,channels.<channel>.accounts.<id>.ackReaction. - Auflösungsreihenfolge: Konto → Kanal →
messages.ackReaction→ Identitäts-Fallback. - Geltungsbereich:
group-mentions(Standard),group-all,direct,alloderoff/none(deaktiviert Bestätigungsreaktionen vollständig). removeAckAfterReply: entfernt die Bestätigung nach der Antwort auf Kanälen, die Reaktionen unterstützen, etwa Slack, Discord, Signal, Telegram, WhatsApp und iMessage.messages.statusReactions.enabled: aktiviert Statusreaktionen für den Lebenszyklus auf Slack, Discord, Signal, Telegram und WhatsApp. Bei Discord bleiben Statusreaktionen aktiviert, wenn der Wert nicht gesetzt ist und Bestätigungsreaktionen aktiv sind. Bei Slack, Signal, Telegram und WhatsApp müssen Sie den Wert explizit auftruesetzen, um Statusreaktionen für den Lebenszyklus zu aktivieren. Slack verwendet standardmäßig seinen nativen Assistenten-Threadstatus und wechselnde Lademeldungen für Fortschrittsanzeigen, während die konfigurierte Bestätigungsreaktion unverändert bleibt.messages.statusReactions.emojis: überschreibt die Emoji-Schlüssel für den Lebenszyklusstatus:queued,thinking,compacting,tool,coding,web,deploy,build,concierge,done,error,stallSoftundstallHard. Telegram erlaubt nur einen festen Reaktionssatz, daher werden nicht unterstützte konfigurierte Emojis auf die nächstgelegene unterstützte Statusvariante für diesen Chat zurückgesetzt.
Warteschlange
mode: Warteschlangenstrategie für eingehende Nachrichten, die eintreffen, während ein Sitzungslauf aktiv ist. Standard:"steer".steer: fügt die neue Eingabeaufforderung in den aktiven Lauf ein.followup: führt die neue Eingabeaufforderung aus, nachdem der aktive Lauf abgeschlossen ist.collect: fasst kompatible Nachrichten zusammen und führt sie später gemeinsam aus.interrupt: bricht den aktiven Lauf ab, bevor die neueste Eingabeaufforderung gestartet wird.
debounceMs: Verzögerung vor dem Weiterleiten einer in die Warteschlange gestellten/gesteuerten Nachricht. Standard:500.cap: maximale Anzahl von Nachrichten in der Warteschlange, bevor die Verwerfungsrichtlinie angewendet wird. Standard:20.drop: Strategie bei Überschreitung des Grenzwerts."summarize"(Standard) verwirft die ältesten Einträge, behält jedoch kompakte Zusammenfassungen bei;"old"verwirft die ältesten Einträge ohne Zusammenfassungen;"new"lehnt den neuesten Eintrag ab.byChannel: kanalspezifische Überschreibungen fürmode, deren Schlüssel die Provider-ID ist.debounceMsByChannel: kanalspezifische Überschreibungen fürdebounceMs, deren Schlüssel die Provider-ID ist.
Entprellung eingehender Nachrichten
Fasst schnell aufeinanderfolgende reine Textnachrichten desselben Absenders zu einem einzigen Agentendurchlauf zusammen. Medien/Anhänge lösen die Weiterleitung sofort aus. Steuerbefehle umgehen die Entprellung. Standardwert für debounceMs: 2000.
Weitere Nachrichtenschlüssel
messages.messagePrefix: Präfixtext, der eingehenden Benutzernachrichten vorangestellt wird, bevor sie die Agentenlaufzeit erreichen. Sparsam für Kanalkontextmarkierungen verwenden.messages.visibleReplies: steuert sichtbare Antworten auf Ursprungsnachrichten in Direkt-, Gruppen- und Kanalunterhaltungen ("message_tool"erfordertmessage(action=send)für eine sichtbare Ausgabe;"automatic"veröffentlicht normale Antworten wie zuvor).messages.usageTemplate/messages.responseUsage: benutzerdefinierte Vorlage für die/usage-Fußzeile und standardmäßiger Nutzungsmodus pro Antwort (off | tokens | full, zusätzlich der veraltete Aliasonfürtokens).messages.groupChat.mentionPatterns/historyLimit: Erwähnungsauslöser für Gruppennachrichten und Größe des Verlaufsfensters.messages.suppressToolErrors: unterdrückt beitruedie dem Benutzer angezeigten⚠️-Warnungen zu Werkzeugfehlern (der Agent sieht die Fehler weiterhin im Kontext und kann es erneut versuchen). Standard:false.
TTS (Text-zu-Sprache)
{ messages: { tts: { auto: "off", // off (Standard) | always | inbound | tagged mode: "final", // final | all provider: "elevenlabs", summaryModel: "openai/gpt-5.4-mini", modelOverrides: { enabled: true }, maxTextLength: 4000, timeoutMs: 30000, prefsPath: "~/.openclaw/settings/tts.json", providers: { elevenlabs: { apiKey: "elevenlabs_api_key", baseUrl: "https://api.elevenlabs.io", speakerVoiceId: "voice_id", modelId: "eleven_multilingual_v2", seed: 42, applyTextNormalization: "auto", languageCode: "en", voiceSettings: { stability: 0.5, similarityBoost: 0.75, style: 0.0, useSpeakerBoost: true, speed: 1.0, }, }, microsoft: { speakerVoice: "en-US-MichelleNeural", lang: "en-US", outputFormat: "audio-24khz-48kbitrate-mono-mp3", }, openai: { apiKey: "openai_api_key", baseUrl: "https://api.openai.com/v1", model: "gpt-4o-mini-tts", speakerVoice: "coral", }, }, }, },}autosteuert den standardmäßigen Auto-TTS-Modus:off,always,inboundodertagged./tts on|offkann lokale Einstellungen überschreiben, und/tts statuszeigt den effektiven Status an.summaryModelüberschreibtagents.defaults.model.primaryfür die automatische Zusammenfassung.modelOverridesist standardmäßig aktiviert (enabled !== false);modelOverrides.allowProvidermuss explizit aktiviert werden.- API-Schlüssel greifen ersatzweise auf
ELEVENLABS_API_KEY/XI_API_KEYundOPENAI_API_KEYzurück. - Mitgelieferte Sprachausgabe-Provider gehören jeweils einem Plugin. Wenn
plugins.allowfestgelegt ist, nehmen Sie jedes TTS-Provider-Plugin auf, das Sie verwenden möchten, beispielsweisemicrosoftfür Edge TTS. Die veraltete Provider-IDedgewird als Alias fürmicrosoftakzeptiert. providers.openai.baseUrlüberschreibt den OpenAI-TTS-Endpunkt. Die Auflösungsreihenfolge lautet: Konfiguration, dannOPENAI_TTS_BASE_URL, dannhttps://api.openai.com/v1.- Wenn
providers.openai.baseUrlauf einen Endpunkt verweist, der nicht von OpenAI stammt, behandelt OpenClaw ihn als OpenAI-kompatiblen TTS-Server und lockert die Modell-/Stimmenvalidierung.
Sprechen
Standardwerte für den Sprechmodus (macOS/iOS/Android und die browserbasierte Control UI).
{ talk: { provider: "elevenlabs", providers: { elevenlabs: { speakerVoiceId: "elevenlabs_voice_id", voiceAliases: { Clawd: "EXAVITQu4vr4xnSDxMaL", Roger: "CwhRBWXzGAHq8TQ4Fs17", }, modelId: "eleven_multilingual_v2", outputFormat: "mp3_44100_128", apiKey: "elevenlabs_api_key", }, mlx: { modelId: "mlx-community/Soprano-80M-bf16", }, system: {}, }, consultThinkingLevel: "low", consultFastMode: true, speechLocale: "ru-RU", silenceTimeoutMs: 1500, interruptOnSpeech: true, realtime: { provider: "openai", providers: { openai: { model: "gpt-realtime-2.1", speakerVoice: "cedar", }, }, instructions: "Sprechen Sie freundlich und halten Sie die Antworten kurz.", mode: "realtime", // realtime | stt-tts | transcription transport: "webrtc", // webrtc | provider-websocket | gateway-relay | managed-room vadThreshold: 0.5, silenceDurationMs: 500, prefixPaddingMs: 300, reasoningEffort: "medium", brain: "agent-consult", // agent-consult | direct-tools | none }, },}talk.providermuss mit einem Schlüssel intalk.providersübereinstimmen, wenn mehrere Talk-Provider konfiguriert sind.- Veraltete flache Talk-Schlüssel (
talk.voiceId,talk.voiceAliases,talk.modelId,talk.outputFormat,talk.apiKey) dienen nur der Kompatibilität. Führen Sieopenclaw doctor --fixaus, um die persistierte Konfiguration intalk.providers.<provider>umzuschreiben. - Sprach-IDs greifen auf
ELEVENLABS_VOICE_IDoderSAG_VOICE_IDzurück (Verhalten des macOS-Talk-Clients). providers.*.apiKeyakzeptiert Klartextzeichenfolgen oder SecretRef-Objekte.- Der Fallback
ELEVENLABS_API_KEYgilt nur, wenn kein Talk-API-Schlüssel konfiguriert ist. providers.*.voiceAliasesermöglicht Talk-Direktiven die Verwendung benutzerfreundlicher Namen.providers.mlx.modelIdwählt das Hugging-Face-Repository aus, das vom lokalen MLX-Hilfsprogramm unter macOS verwendet wird. Falls nicht angegeben, verwendet macOSmlx-community/Soprano-80M-bf16.- Die macOS-MLX-Wiedergabe erfolgt über das gebündelte Hilfsprogramm
openclaw-mlx-tts, sofern vorhanden, oder über eine ausführbare Datei inPATH;OPENCLAW_MLX_TTS_BINüberschreibt den Pfad des Hilfsprogramms für die Entwicklung. consultThinkingLevelsteuert die Denkstufe für den vollständigen OpenClaw-Agentenlauf hinter den Echtzeitaufrufenopenclaw_agent_consultvon Control UI Talk. Lassen Sie die Einstellung nicht gesetzt, um das normale Sitzungs-/Modellverhalten beizubehalten.consultFastModelegt eine einmalige Überschreibung des Schnellmodus für Echtzeitkonsultationen von Control UI Talk fest, ohne die normale Schnellmoduseinstellung der Sitzung zu ändern.speechLocalelegt die BCP-47-Gebietsschema-ID fest, die von der Talk-Spracherkennung unter iOS/macOS verwendet wird. Lassen Sie die Einstellung nicht gesetzt, um den Gerätestandard zu verwenden.silenceTimeoutMssteuert, wie lange der Talk-Modus nach dem Verstummen des Benutzers wartet, bevor er das Transkript sendet. Wenn die Einstellung nicht gesetzt ist, bleibt das standardmäßige Pausenfenster der Plattform (700 ms on macOS and Android, 900 ms on iOS) erhalten.realtime.instructionshängt an den Provider gerichtete Systemanweisungen an den integrierten Echtzeit-Prompt von OpenClaw an, sodass der Sprachstil konfiguriert werden kann, ohne die standardmäßigen Hinweise vonopenclaw_agent_consultzu verlieren.realtime.vadThresholdlegt den Schwellenwert des Providers für Sprachaktivität von0(höchste Empfindlichkeit) bis1(niedrigste Empfindlichkeit) fest. Wenn die Einstellung nicht gesetzt ist, bleibt der Standardwert des Providers erhalten.realtime.silenceDurationMslegt das positive ganzzahlige Stillefenster fest, bevor der Provider einen Echtzeit-Benutzerbeitrag übernimmt. Wenn die Einstellung nicht gesetzt ist, bleibt der Standardwert des Providers erhalten.realtime.prefixPaddingMslegt die nicht negative ganzzahlige Audiomenge fest, die vor dem Beginn erkannter Sprache beibehalten wird. Wenn die Einstellung nicht gesetzt ist, bleibt der Standardwert des Providers erhalten.realtime.reasoningEffortlegt die providerspezifische Schlussfolgerungsstufe für Echtzeitsitzungen fest. Wenn die Einstellung nicht gesetzt ist, bleibt der Standardwert des Providers erhalten.realtime.consultRouting:"provider-direct"(Standard) behält direkte Provider-Antworten bei, wenn der Echtzeit-Provider ein endgültiges Benutzertranskript ohneopenclaw_agent_consulterzeugt."force-agent-consult"leitet die abgeschlossene Anfrage stattdessen durch OpenClaw.
Verwandte Themen
- Konfigurationsreferenz — alle weiteren Konfigurationsschlüssel
- Konfiguration — häufige Aufgaben und schnelle Einrichtung
- Konfigurationsbeispiele