agents.*, multiAgent.*, session.*,
messages.* i talk.*. Dla kanałów, narzędzi, runtime Gateway i innych
kluczy najwyższego poziomu zobacz Dokumentacja konfiguracji.
Ustawienia domyślne agenta
agents.defaults.workspace
Domyślnie: ~/.openclaw/workspace.
agents.defaults.repoRoot
Opcjonalny katalog główny repozytorium pokazywany w wierszu Runtime w prompt systemowym. Jeśli nie jest ustawiony, OpenClaw wykrywa go automatycznie, idąc w górę od obszaru roboczego.
agents.defaults.skills
Opcjonalna domyślna allowlist Skills dla agentów, które nie ustawiają
agents.list[].skills.
- Pomiń
agents.defaults.skills, aby domyślnie nie ograniczać Skills. - Pomiń
agents.list[].skills, aby dziedziczyć wartości domyślne. - Ustaw
agents.list[].skills: [], aby nie mieć żadnych Skills. - Niepusta lista
agents.list[].skillsjest ostatecznym zestawem dla tego agenta; nie łączy się z wartościami domyślnymi.
agents.defaults.skipBootstrap
Wyłącza automatyczne tworzenie plików bootstrap obszaru roboczego (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md).
agents.defaults.contextInjection
Kontroluje, kiedy pliki bootstrap obszaru roboczego są wstrzykiwane do promptu systemowego. Domyślnie: "always".
"continuation-skip": bezpieczne tury kontynuacji (po zakończonej odpowiedzi asystenta) pomijają ponowne wstrzyknięcie bootstrap obszaru roboczego, zmniejszając rozmiar promptu. Uruchomienia Heartbeat i ponowienia po Compaction nadal odbudowują kontekst.
agents.defaults.bootstrapMaxChars
Maksymalna liczba znaków na plik bootstrap obszaru roboczego przed obcięciem. Domyślnie: 12000.
agents.defaults.bootstrapTotalMaxChars
Maksymalna łączna liczba znaków wstrzykiwanych ze wszystkich plików bootstrap obszaru roboczego. Domyślnie: 60000.
agents.defaults.bootstrapPromptTruncationWarning
Kontroluje widoczny dla agenta tekst ostrzeżenia, gdy kontekst bootstrap jest obcinany.
Domyślnie: "once".
"off": nigdy nie wstrzykuj tekstu ostrzeżenia do promptu systemowego."once": wstrzyknij ostrzeżenie raz dla każdego unikalnego podpisu obcięcia (zalecane)."always": wstrzykuj ostrzeżenie przy każdym uruchomieniu, gdy istnieje obcięcie.
Mapa własności budżetu kontekstu
OpenClaw ma wiele budżetów promptu/kontekstu o dużej objętości i są one celowo rozdzielone według podsystemów zamiast przechodzić przez jedno ogólne ustawienie.agents.defaults.bootstrapMaxChars/agents.defaults.bootstrapTotalMaxChars: zwykłe wstrzykiwanie bootstrap obszaru roboczego.agents.defaults.startupContext.*: jednorazowe preludium startowe dla/newi/reset, w tym ostatnie dzienne plikimemory/*.md.skills.limits.*: kompaktowa lista Skills wstrzykiwana do promptu systemowego.agents.defaults.contextLimits.*: ograniczone fragmenty runtime i wstrzykiwane bloki należące do runtime.memory.qmd.limits.*: rozmiar fragmentów indeksowanego wyszukiwania pamięci i ich wstrzykiwania.
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextLimits.*
agents.defaults.startupContext
Kontroluje preludium startowe pierwszej tury wstrzykiwane przy pustych uruchomieniach /new i /reset.
agents.defaults.contextLimits
Współdzielone wartości domyślne dla ograniczonych powierzchni kontekstu runtime.
memoryGetMaxChars: domyślny limit fragmentumemory_getprzed dodaniem metadanych obcięcia i informacji o kontynuacji.memoryGetDefaultLines: domyślne okno wierszymemory_get, gdy pominiętolines.toolResultMaxChars: limit aktywnego wyniku narzędzia używany dla zapisanych wyników i odzyskiwania po przepełnieniu.postCompactionMaxChars: limit fragmentu AGENTS.md używany podczas wstrzykiwania odświeżenia po Compaction.
agents.list[].contextLimits
Nadpisanie per agent dla współdzielonych ustawień contextLimits. Pominięte pola dziedziczą
z agents.defaults.contextLimits.
skills.limits.maxSkillsPromptChars
Globalny limit dla kompaktowej listy Skills wstrzykiwanej do promptu systemowego. To
nie wpływa na odczytywanie plików SKILL.md na żądanie.
agents.list[].skillsLimits.maxSkillsPromptChars
Nadpisanie per agent dla budżetu promptu Skills.
agents.defaults.imageMaxDimensionPx
Maksymalny rozmiar w pikselach dla dłuższego boku obrazu w blokach obrazu transkryptu/narzędzi przed wywołaniami providera.
Domyślnie: 1200.
Niższe wartości zwykle zmniejszają użycie vision-tokenów i rozmiar ładunku żądania w przebiegach z dużą liczbą zrzutów ekranu.
Wyższe wartości zachowują więcej szczegółów wizualnych.
agents.defaults.userTimezone
Strefa czasowa dla kontekstu promptu systemowego (nie dla znaczników czasu wiadomości). Rezerwa to strefa czasowa hosta.
agents.defaults.timeFormat
Format czasu w promptcie systemowym. Domyślnie: auto (preferencja OS).
agents.defaults.model
model: akceptuje albo ciąg ("provider/model"), albo obiekt ({ primary, fallbacks }).- Forma ciągu ustawia tylko model podstawowy.
- Forma obiektu ustawia model podstawowy oraz uporządkowane modele failover.
imageModel: akceptuje albo ciąg ("provider/model"), albo obiekt ({ primary, fallbacks }).- Używany przez ścieżkę narzędzia
imagejako konfiguracja modelu vision. - Używany także jako routowanie rezerwowe, gdy wybrany/dom yślny model nie może przyjąć obrazu jako wejścia.
- Używany przez ścieżkę narzędzia
imageGenerationModel: akceptuje albo ciąg ("provider/model"), albo obiekt ({ primary, fallbacks }).- Używany przez współdzieloną możliwość generowania obrazów oraz każdą przyszłą powierzchnię narzędzia/Pluginu generującą obrazy.
- Typowe wartości:
google/gemini-3.1-flash-image-previewdla natywnego generowania obrazów Gemini,fal/fal-ai/flux/devdla fal alboopenai/gpt-image-2dla OpenAI Images. - Jeśli wybierzesz provider/model bezpośrednio, skonfiguruj też pasujące uwierzytelnianie providera (na przykład
GEMINI_API_KEYlubGOOGLE_API_KEYdlagoogle/*,OPENAI_API_KEYlub OpenAI Codex OAuth dlaopenai/gpt-image-2,FAL_KEYdlafal/*). - Jeśli to pole zostanie pominięte,
image_generatenadal może wywnioskować domyślnego providera z obsługą uwierzytelniania. Najpierw próbuje bieżącego domyślnego providera, a potem pozostałych zarejestrowanych providerów generowania obrazów w kolejności identyfikatorów providerów.
musicGenerationModel: akceptuje albo ciąg ("provider/model"), albo obiekt ({ primary, fallbacks }).- Używany przez współdzieloną możliwość generowania muzyki oraz wbudowane narzędzie
music_generate. - Typowe wartości:
google/lyria-3-clip-preview,google/lyria-3-pro-previewalbominimax/music-2.5+. - Jeśli to pole zostanie pominięte,
music_generatenadal może wywnioskować domyślnego providera z obsługą uwierzytelniania. Najpierw próbuje bieżącego domyślnego providera, a potem pozostałych zarejestrowanych providerów generowania muzyki w kolejności identyfikatorów providerów. - Jeśli wybierzesz provider/model bezpośrednio, skonfiguruj też pasujące uwierzytelnianie providera/klucz API.
- Używany przez współdzieloną możliwość generowania muzyki oraz wbudowane narzędzie
videoGenerationModel: akceptuje albo ciąg ("provider/model"), albo obiekt ({ primary, fallbacks }).- Używany przez współdzieloną możliwość generowania wideo oraz wbudowane narzędzie
video_generate. - Typowe wartości:
qwen/wan2.6-t2v,qwen/wan2.6-i2v,qwen/wan2.6-r2v,qwen/wan2.6-r2v-flashalboqwen/wan2.7-r2v. - Jeśli to pole zostanie pominięte,
video_generatenadal może wywnioskować domyślnego providera z obsługą uwierzytelniania. Najpierw próbuje bieżącego domyślnego providera, a potem pozostałych zarejestrowanych providerów generowania wideo w kolejności identyfikatorów providerów. - Jeśli wybierzesz provider/model bezpośrednio, skonfiguruj też pasujące uwierzytelnianie providera/klucz API.
- Bundled provider generowania wideo Qwen obsługuje maksymalnie 1 wyjściowe wideo, 1 wejściowy obraz, 4 wejściowe wideo, długość 10 sekund oraz opcje poziomu providera
size,aspectRatio,resolution,audioiwatermark.
- Używany przez współdzieloną możliwość generowania wideo oraz wbudowane narzędzie
pdfModel: akceptuje albo ciąg ("provider/model"), albo obiekt ({ primary, fallbacks }).- Używany przez narzędzie
pdfdo routowania modeli. - Jeśli zostanie pominięty, narzędzie PDF przechodzi rezerwowo do
imageModel, a następnie do rozwiązanego modelu sesji/dom yślnego.
- Używany przez narzędzie
pdfMaxBytesMb: domyślny limit rozmiaru PDF dla narzędziapdf, gdy podczas wywołania nie przekazanomaxBytesMb.pdfMaxPages: domyślna maksymalna liczba stron uwzględnianych przez tryb rezerwowego wyodrębniania w narzędziupdf.verboseDefault: domyślny poziom verbose dla agentów. Wartości:"off","on","full". Domyślnie:"off".elevatedDefault: domyślny poziom elevated-output dla agentów. Wartości:"off","on","ask","full". Domyślnie:"on".model.primary: formatprovider/model(np.openai/gpt-5.4dla dostępu przez klucz API alboopenai-codex/gpt-5.5dla Codex OAuth). Jeśli pominiesz providera, OpenClaw najpierw próbuje aliasu, potem jednoznacznego dopasowania skonfigurowanego providera dla dokładnego identyfikatora modelu, a dopiero potem wraca do skonfigurowanego domyślnego providera (przestarzałe zachowanie zgodności, więc preferuj jawneprovider/model). Jeśli ten provider nie udostępnia już skonfigurowanego modelu domyślnego, OpenClaw przechodzi do pierwszego skonfigurowanego provider/model zamiast ujawniać nieaktualny domyślny model usuniętego providera.models: skonfigurowany katalog modeli i allowlist dla/model. Każdy wpis może zawieraćalias(skrót) iparams(specyficzne dla providera, na przykładtemperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold).- Bezpieczne edycje: użyj
openclaw config set agents.defaults.models '<json>' --strict-json --merge, aby dodać wpisy.config setodmawia zastąpień, które usunęłyby istniejące wpisy allowlist, chyba że przekażesz--replace. - Przepływy configure/onboarding ograniczone do providera scalają wybrane modele providera z tą mapą i zachowują niepowiązanych providerów już skonfigurowanych.
- Dla bezpośrednich modeli OpenAI Responses server-side Compaction jest włączane automatycznie. Użyj
params.responsesServerCompaction: false, aby przestać wstrzykiwaćcontext_management, alboparams.responsesCompactThreshold, aby nadpisać próg. Zobacz OpenAI server-side compaction.
- Bezpieczne edycje: użyj
params: globalne domyślne parametry providera stosowane do wszystkich modeli. Ustawiane wagents.defaults.params(np.{ cacheRetention: "long" }).- Pierwszeństwo scalania
params(konfiguracja):agents.defaults.params(globalna baza) jest nadpisywane przezagents.defaults.models["provider/model"].params(per model), a następnieagents.list[].params(pasujący identyfikator agenta) nadpisuje według klucza. Zobacz Prompt Caching, aby poznać szczegóły. embeddedHarness: domyślne zasady niskopoziomowego runtime osadzonego agenta. Użyjruntime: "auto", aby zarejestrowane Plugin harnesses mogły przejąć obsługiwane modele,runtime: "pi", aby wymusić wbudowany harness PI, albo zarejestrowanego identyfikatora harness, takiego jakruntime: "codex". Ustawfallback: "none", aby wyłączyć automatyczny fallback PI.- Konfiguratory zapisujące te pola (na przykład
/models set,/models set-imageoraz polecenia add/remove dla fallback) zapisują kanoniczną formę obiektu i, gdy to możliwe, zachowują istniejące listy fallback. maxConcurrent: maksymalna liczba równoległych uruchomień agentów między sesjami (każda sesja nadal jest serializowana). Domyślnie: 4.
agents.defaults.embeddedHarness
embeddedHarness kontroluje, który niskopoziomowy wykonawca uruchamia osadzone tury agenta.
W większości wdrożeń należy pozostawić wartość domyślną { runtime: "auto", fallback: "pi" }.
Użyj tego, gdy zaufany Plugin udostępnia natywny harness, taki jak bundled
harness serwera aplikacji Codex.
runtime:"auto","pi"albo identyfikator zarejestrowanego Plugin harness. Bundled plugin Codex rejestrujecodex.fallback:"pi"albo"none"."pi"zachowuje wbudowany harness PI jako fallback zgodności, gdy nie wybrano żadnego Plugin harness."none"powoduje, że brakujący albo nieobsługiwany wybór Plugin harness kończy się błędem zamiast cichego użycia PI. Błędy wybranego Plugin harness są zawsze ujawniane bezpośrednio.- Nadpisania środowiskowe:
OPENCLAW_AGENT_RUNTIME=<id|auto|pi>nadpisujeruntime;OPENCLAW_AGENT_HARNESS_FALLBACK=nonewyłącza fallback PI dla tego procesu. - W przypadku wdrożeń tylko z Codex ustaw
model: "openai/gpt-5.5",embeddedHarness.runtime: "codex"iembeddedHarness.fallback: "none". - Wybór harness jest przypinany per identyfikator sesji po pierwszym osadzonym uruchomieniu. Zmiany konfiguracji/env wpływają na nowe lub zresetowane sesje, a nie na istniejący transkrypt. Starsze sesje z historią transkryptu, ale bez zapisanego przypięcia, są traktowane jako przypięte do PI.
/statuspokazuje identyfikatory harness inne niż PI, takie jakcodex, obokFast. - To kontroluje tylko osadzony harness czatu. Generowanie multimediów, vision, PDF, muzyka, wideo i TTS nadal używają swoich ustawień provider/model.
agents.defaults.models):
| Alias | Model |
|---|---|
opus | anthropic/claude-opus-4-6 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.4 lub skonfigurowany 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 albo samodzielnie zdefiniujesz agents.defaults.models["zai/<model>"].params.thinking.
Modele Z.AI domyślnie włączają tool_stream dla strumieniowania wywołań narzędzi. Ustaw agents.defaults.models["zai/<model>"].params.tool_stream na false, aby to wyłączyć.
Modele Anthropic Claude 4.6 domyślnie używają thinking adaptive, gdy nie ustawiono jawnego poziomu thinking.
agents.defaults.cliBackends
Opcjonalne backendy CLI dla tekstowych uruchomień rezerwowych (bez wywołań narzędzi). Przydatne jako kopia zapasowa, gdy providerzy API zawodzą.
- Backendy CLI są tekstowe w pierwszej kolejności; narzędzia są zawsze wyłączone.
- Sesje są obsługiwane, gdy ustawiono
sessionArg. - Przekazywanie obrazów jest obsługiwane, gdy
imageArgakceptuje ścieżki plików.
agents.defaults.systemPromptOverride
Zastępuje cały prompt systemowy złożony przez OpenClaw stałym ciągiem. Ustaw na poziomie domyślnym (agents.defaults.systemPromptOverride) albo per agent (agents.list[].systemPromptOverride). Wartości per agent mają pierwszeństwo; pusta wartość albo zawierająca tylko białe znaki jest ignorowana. Przydatne do kontrolowanych eksperymentów z promptami.
agents.defaults.promptOverlays
Niezależne od providera nakładki promptu stosowane według rodziny modeli. Identyfikatory modeli z rodziny GPT-5 otrzymują współdzielony kontrakt zachowania między providerami; personality kontroluje tylko warstwę przyjaznego stylu interakcji.
"friendly"(domyślnie) i"on"włączają warstwę przyjaznego stylu interakcji."off"wyłącza tylko warstwę przyjazną; oznaczony kontrakt zachowania GPT-5 pozostaje włączony.- Starsze
plugins.entries.openai.config.personalityjest nadal odczytywane, gdy to współdzielone ustawienie nie jest ustawione.
agents.defaults.heartbeat
Okresowe uruchomienia Heartbeat.
every: ciąg czasu trwania (ms/s/m/h). Domyślnie:30m(uwierzytelnianie kluczem API) albo1h(uwierzytelnianie OAuth). Ustaw0m, aby wyłączyć.includeSystemPromptSection: gdy ma wartość false, pomija sekcję Heartbeat w promptcie systemowym i pomija wstrzyknięcieHEARTBEAT.mddo kontekstu bootstrap. Domyślnie:true.suppressToolErrorWarnings: gdy ma wartość true, ukrywa ładunki ostrzeżeń o błędach narzędzi podczas uruchomień Heartbeat.timeoutSeconds: maksymalny czas w sekundach dozwolony dla tury agenta Heartbeat, po którym zostaje przerwana. Pozostaw nieustawione, aby użyćagents.defaults.timeoutSeconds.directPolicy: zasady dostarczania bezpośredniego/DM.allow(domyślnie) zezwala na dostarczanie do celu bezpośredniego.blockblokuje dostarczanie do celu bezpośredniego i emitujereason=dm-blocked.lightContext: gdy ma wartość true, uruchomienia Heartbeat używają lekkiego kontekstu bootstrap i zachowują tylkoHEARTBEAT.mdz plików bootstrap obszaru roboczego.isolatedSession: gdy ma wartość true, każdy Heartbeat działa w świeżej sesji bez wcześniejszej historii rozmowy. Ten sam wzorzec izolacji co CronsessionTarget: "isolated". Zmniejsza koszt tokenów per Heartbeat z około ~100K do ~2-5K tokenów.- Per agent: ustaw
agents.list[].heartbeat. Gdy jakikolwiek agent definiujeheartbeat, tylko ci agenci uruchamiają Heartbeat. - Heartbeat uruchamia pełne tury agenta — krótsze interwały spalają więcej tokenów.
agents.defaults.compaction
mode:defaultalbosafeguard(podsumowanie w fragmentach dla długich historii). Zobacz Compaction.provider: identyfikator zarejestrowanego Pluginu providera Compaction. Gdy ustawiony, wywoływane jestsummarize()providera zamiast wbudowanego podsumowania LLM. W przypadku błędu następuje fallback do wbudowanego rozwiązania. Ustawienie providera wymuszamode: "safeguard". Zobacz Compaction.timeoutSeconds: maksymalna liczba sekund dozwolona dla pojedynczej operacji Compaction, po której OpenClaw ją przerywa. Domyślnie:900.identifierPolicy:strict(domyślnie),offalbocustom.strictdodaje wbudowane wskazówki zachowania nieprzezroczystych identyfikatorów podczas podsumowywania Compaction.identifierInstructions: opcjonalny własny tekst zachowania identyfikatorów używany, gdyidentifierPolicy=custom.postCompactionSections: opcjonalne nazwy sekcji H2/H3 z AGENTS.md do ponownego wstrzyknięcia po Compaction. Domyślnie["Session Startup", "Red Lines"]; ustaw[], aby wyłączyć ponowne wstrzykiwanie. Gdy nieustawione albo jawnie ustawione na tę domyślną parę, starsze nagłówkiEvery Session/Safetysą również akceptowane jako starszy fallback.model: opcjonalne nadpisanieprovider/model-idtylko dla podsumowania Compaction. Użyj tego, gdy główna sesja powinna zachować jeden model, ale podsumowania Compaction powinny działać na innym; gdy nieustawione, Compaction używa modelu podstawowego sesji.notifyUser: gdytrue, wysyła użytkownikowi krótkie powiadomienia, gdy Compaction się zaczyna i kończy (na przykład „Compacting context…” i „Compaction complete”). Domyślnie wyłączone, aby Compaction pozostało ciche.memoryFlush: cicha tura agentowa przed automatycznym Compaction w celu zapisania trwałych wspomnień. Pomijane, gdy obszar roboczy jest tylko do odczytu.
agents.defaults.contextPruning
Przycina stare wyniki narzędzi z kontekstu w pamięci przed wysłaniem do LLM. Nie modyfikuje historii sesji na dysku.
Zachowanie trybu cache-ttl
Zachowanie trybu cache-ttl
mode: "cache-ttl"włącza przebiegi przycinania.ttlkontroluje, jak często przycinanie może uruchomić się ponownie (po ostatnim dotknięciu cache).- Przycinanie najpierw miękko obcina zbyt duże wyniki narzędzi, a następnie w razie potrzeby twardo czyści starsze wyniki narzędzi.
... pośrodku.Hard-clear zastępuje cały wynik narzędzia placeholderem.Uwagi:- Bloki obrazów nigdy nie są obcinane/czyszczone.
- Współczynniki są oparte na znakach (w przybliżeniu), a nie na dokładnej liczbie tokenów.
- Jeśli istnieje mniej niż
keepLastAssistantswiadomości asystenta, przycinanie jest pomijane.
Block streaming
- Kanały inne niż Telegram wymagają jawnego
*.blockStreaming: true, aby włączyć odpowiedzi blokowe. - Nadpisania kanałów:
channels.<channel>.blockStreamingCoalesce(oraz warianty per konto). Signal/Slack/Discord/Google Chat mają domyślnieminChars: 1500. humanDelay: losowa przerwa między odpowiedziami blokowymi.natural= 800–2500 ms. Nadpisanie per agent:agents.list[].humanDelay.
Wskaźniki pisania
- Domyślnie:
instantdla czatów bezpośrednich/wzmianek,messagedla niewspomnianych czatów grupowych. - Nadpisania per sesja:
session.typingMode,session.typingIntervalSeconds.
agents.defaults.sandbox
Opcjonalny sandboxing dla osadzonego agenta. Zobacz Sandboxing, aby zapoznać się z pełnym przewodnikiem.
Szczegóły sandbox
Szczegóły sandbox
Backend:Tryb OpenShell:
docker: lokalny runtime Docker (domyślnie)ssh: ogólny zdalny runtime oparty na SSHopenshell: runtime OpenShell
backend: "openshell", ustawienia specyficzne dla runtime przenoszą się do
plugins.entries.openshell.config.Konfiguracja backendu SSH:target: cel SSH w postaciuser@host[:port]command: polecenie klienta SSH (domyślnie:ssh)workspaceRoot: bezwzględny zdalny katalog główny używany dla obszarów roboczych per scopeidentityFile/certificateFile/knownHostsFile: istniejące lokalne pliki przekazywane do OpenSSHidentityData/certificateData/knownHostsData: treści inline albo SecretRef, które OpenClaw materializuje do plików tymczasowych w runtimestrictHostKeyChecking/updateHostKeys: ustawienia zasad kluczy hosta OpenSSH
identityDatama pierwszeństwo przedidentityFilecertificateDatama pierwszeństwo przedcertificateFileknownHostsDatama pierwszeństwo przedknownHostsFile- Wartości
*Dataoparte na SecretRef są rozwiązywane z aktywnej migawki runtime sekretów przed startem sesji sandbox
- inicjalizuje zdalny obszar roboczy raz po utworzeniu lub odtworzeniu
- następnie utrzymuje zdalny obszar roboczy SSH jako kanoniczny
- routuje
exec, narzędzia plikowe i ścieżki multimediów przez SSH - nie synchronizuje automatycznie zdalnych zmian z powrotem do hosta
- nie obsługuje kontenerów przeglądarki sandbox
none: obszar roboczy sandbox per scope w~/.openclaw/sandboxesro: obszar roboczy sandbox w/workspace, obszar roboczy agenta montowany tylko do odczytu w/agentrw: obszar roboczy agenta montowany do odczytu i zapisu w/workspace
session: kontener + obszar roboczy per sesjaagent: jeden kontener + obszar roboczy per agent (domyślnie)shared: współdzielony kontener i obszar roboczy (brak izolacji między sesjami)
mirror: zainicjalizuj zdalny obszar na podstawie lokalnego przed exec, zsynchronizuj z powrotem po exec; lokalny obszar roboczy pozostaje kanonicznyremote: zainicjalizuj zdalny obszar raz przy tworzeniu sandbox, a potem utrzymuj zdalny obszar roboczy jako kanoniczny
remote lokalne edycje hosta wykonane poza OpenClaw nie są automatycznie synchronizowane do sandbox po kroku inicjalizacji.
Transport odbywa się przez SSH do sandbox OpenShell, ale Plugin zarządza cyklem życia sandbox oraz opcjonalną synchronizacją mirror.setupCommand uruchamia się raz po utworzeniu kontenera (przez sh -lc). Wymaga wychodzącego dostępu do sieci, zapisywalnego katalogu głównego i użytkownika root.Kontenery domyślnie używają network: "none" — ustaw "bridge" (albo własną sieć bridge), jeśli agent potrzebuje dostępu wychodzącego.
"host" jest blokowane. "container:<id>" jest domyślnie blokowane, chyba że jawnie ustawisz
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true (awaryjnie).Załączniki przychodzące są przygotowywane w media/inbound/* w aktywnym obszarze roboczym.docker.binds montuje dodatkowe katalogi hosta; globalne oraz per-agent binds są scalane.Przeglądarka sandboxed (sandbox.browser.enabled): Chromium + CDP w kontenerze. Adres URL noVNC jest wstrzykiwany do promptu systemowego. Nie wymaga browser.enabled w openclaw.json.
Dostęp obserwacyjny noVNC domyślnie używa uwierzytelniania VNC, a OpenClaw emituje adres URL z krótkotrwałym tokenem (zamiast ujawniać hasło we współdzielonym adresie URL).allowHostControl: false(domyślnie) blokuje sesjom sandboxed kierowanie do przeglądarki hosta.networkdomyślnie ma wartośćopenclaw-sandbox-browser(dedykowana sieć bridge). Ustawbridgetylko wtedy, gdy jawnie chcesz globalnej łączności bridge.cdpSourceRangeopcjonalnie ogranicza ruch przychodzący CDP na krawędzi kontenera do zakresu CIDR (na przykład172.21.0.1/32).sandbox.browser.bindsmontuje dodatkowe katalogi hosta tylko do kontenera przeglądarki sandbox. Gdy jest ustawione (w tym[]), zastępujedocker.bindsdla kontenera przeglądarki.- Domyślne parametry uruchamiania są zdefiniowane w
scripts/sandbox-browser-entrypoint.shi dostrojone dla hostów kontenerowych:--remote-debugging-address=127.0.0.1--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>--user-data-dir=${HOME}/.chrome--no-first-run--no-default-browser-check--disable-3d-apis--disable-gpu--disable-software-rasterizer--disable-dev-shm-usage--disable-background-networking--disable-features=TranslateUI--disable-breakpad--disable-crash-reporter--renderer-process-limit=2--no-zygote--metrics-recording-only--disable-extensions(domyślnie włączone)--disable-3d-apis,--disable-software-rasterizeri--disable-gpusą domyślnie włączone i można je wyłączyć przezOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0, jeśli workflow wymaga WebGL/3D.OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0ponownie włącza rozszerzenia, jeśli twój workflow ich wymaga.--renderer-process-limit=2można zmienić przezOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>; ustaw0, aby użyć domyślnego limitu procesów Chromium.- plus
--no-sandboxi--disable-setuid-sandbox, gdy włączononoSandbox. - Domyślne ustawienia są bazą obrazu kontenera; użyj własnego obrazu przeglądarki z własnym entrypoint, aby zmienić domyślne ustawienia kontenera.
sandbox.docker.binds działają tylko dla Docker.
Zbuduj obrazy:
agents.list (nadpisania per agent)
id: stabilny identyfikator agenta (wymagany).default: gdy ustawiono wiele, wygrywa pierwszy (zapisywane jest ostrzeżenie). Jeśli żaden nie jest ustawiony, domyślny jest pierwszy wpis listy.model: forma ciągu nadpisuje tylkoprimary; forma obiektu{ primary, fallbacks }nadpisuje oba ([]wyłącza globalne fallback). Zadania Cron, które nadpisują tylkoprimary, nadal dziedziczą domyślne fallback, chyba że ustawiszfallbacks: [].params: parametry strumienia per agent scalane nad wybranym wpisem modelu wagents.defaults.models. Używaj tego do nadpisań specyficznych dla agenta, takich jakcacheRetention,temperaturelubmaxTokens, bez duplikowania całego katalogu modeli.skills: opcjonalna allowlist Skills per agent. Jeśli pominięta, agent dziedziczyagents.defaults.skills, gdy jest ustawione; jawna lista zastępuje wartości domyślne zamiast je scalać, a[]oznacza brak Skills.thinkingDefault: opcjonalny domyślny poziom thinking per agent (off | minimal | low | medium | high | xhigh | adaptive | max). Nadpisujeagents.defaults.thinkingDefaultdla tego agenta, gdy nie ustawiono nadpisania per wiadomość ani per sesja.reasoningDefault: opcjonalna domyślna widoczność reasoning per agent (on | off | stream). Obowiązuje, gdy nie ustawiono nadpisania reasoning per wiadomość ani per sesja.fastModeDefault: opcjonalna domyślna wartość trybu fast per agent (true | false). Obowiązuje, gdy nie ustawiono nadpisania per wiadomość ani per sesja.embeddedHarness: opcjonalne nadpisanie zasad niskopoziomowego harness per agent. Użyj{ runtime: "codex", fallback: "none" }, aby jeden agent był tylko dla Codex, podczas gdy inni agenci zachowują domyślny fallback PI.runtime: opcjonalny deskryptor runtime per agent. Użyjtype: "acp"z domyślnymi ustawieniamiruntime.acp(agent,backend,mode,cwd), gdy agent powinien domyślnie używać sesji harness ACP.identity.avatar: ścieżka względna do obszaru roboczego, adres URLhttp(s)albo URIdata:.identitywyprowadza wartości domyślne:ackReactionzemoji,mentionPatternszname/emoji.subagents.allowAgents: allowlist identyfikatorów agentów dlasessions_spawn(["*"]= dowolny; domyślnie: tylko ten sam agent).- Ochrona dziedziczenia sandbox: jeśli sesja żądająca jest sandboxed,
sessions_spawnodrzuca cele, które działałyby bez sandbox. subagents.requireAgentId: gdy ma wartość true, blokuje wywołaniasessions_spawn, które pomijająagentId(wymusza jawny wybór profilu; domyślnie: false).
Routowanie wielu agentów
Uruchamiaj wielu izolowanych agentów w jednej Gateway. Zobacz Multi-Agent.Pola dopasowania powiązań
type(opcjonalnie):routedla zwykłego routowania (brak typu domyślnie oznacza route),acpdla trwałych powiązań rozmów ACP.match.channel(wymagane)match.accountId(opcjonalnie;*= dowolne konto; pominięte = konto domyślne)match.peer(opcjonalnie;{ kind: direct|group|channel, id })match.guildId/match.teamId(opcjonalnie; specyficzne dla kanału)acp(opcjonalnie; tylko dlatype: "acp"):{ mode, label, cwd, backend }
match.peermatch.guildIdmatch.teamIdmatch.accountId(dokładne, bez peer/guild/team)match.accountId: "*"(dla całego kanału)- Agent domyślny
bindings.
Dla wpisów type: "acp" OpenClaw rozwiązuje po dokładnej tożsamości rozmowy (match.channel + konto + match.peer.id) i nie używa powyższej kolejności poziomów powiązań routingu.
Profile dostępu per agent
Pełny dostęp (bez sandbox)
Pełny dostęp (bez sandbox)
Narzędzia tylko do odczytu + obszar roboczy
Narzędzia tylko do odczytu + obszar roboczy
Brak dostępu do systemu plików (tylko wiadomości)
Brak dostępu do systemu plików (tylko wiadomości)
Sesja
Szczegóły pól sesji
Szczegóły pól sesji
scope: bazowa strategia grupowania sesji dla kontekstów czatów grupowych.per-sender(domyślnie): każdy nadawca dostaje izolowaną sesję w kontekście kanału.global: wszyscy uczestnicy w kontekście kanału współdzielą jedną sesję (używaj tylko wtedy, gdy zamierzony jest współdzielony kontekst).
dmScope: sposób grupowania DM.main: wszystkie DM współdzielą główną sesję.per-peer: izolacja według identyfikatora nadawcy między kanałami.per-channel-peer: izolacja per kanał + nadawca (zalecane dla skrzynek odbiorczych wielu użytkowników).per-account-channel-peer: izolacja per konto + kanał + nadawca (zalecane dla wielu kont).
identityLinks: mapuje kanoniczne identyfikatory na peery z prefiksem providera dla współdzielenia sesji między kanałami.reset: podstawowe zasady resetu.dailyresetuje oatHourczasu lokalnego;idleresetuje poidleMinutes. Gdy skonfigurowano oba, wygrywa to, które wygaśnie wcześniej.resetByType: nadpisania per typ (direct,group,thread). Starszedmjest akceptowane jako alias dladirect.parentForkMaxTokens: maksymalna liczbatotalTokenssesji nadrzędnej dozwolona przy tworzeniu sesji wątku z fork (100000domyślnie).- Jeśli
totalTokensnadrzędnej sesji przekracza tę wartość, OpenClaw uruchamia świeżą sesję wątku zamiast dziedziczyć historię transkryptu nadrzędnego. - Ustaw
0, aby wyłączyć tę ochronę i zawsze zezwalać na fork z rodzica.
- Jeśli
mainKey: starsze pole. Runtime zawsze używa"main"dla głównego zasobnika czatu bezpośredniego.agentToAgent.maxPingPongTurns: maksymalna liczba tur reply-back między agentami podczas wymiany agent-do-agenta (liczba całkowita, zakres:0–5).0wyłącza łańcuchowanie ping-pong.sendPolicy: dopasowuje wedługchannel,chatType(direct|group|channel, ze starszym aliasemdm),keyPrefixalborawKeyPrefix. Pierwsza reguła deny wygrywa.maintenance: kontrola czyszczenia + retencji magazynu sesji.mode:warnemituje tylko ostrzeżenia;enforcestosuje czyszczenie.pruneAfter: granica wieku dla nieaktualnych wpisów (domyślnie30d).maxEntries: maksymalna liczba wpisów wsessions.json(domyślnie500).rotateBytes: rotujesessions.json, gdy przekroczy ten rozmiar (domyślnie10mb).resetArchiveRetention: retencja dla archiwów transkryptów*.reset.<timestamp>. Domyślnie odpowiadapruneAfter; ustawfalse, aby wyłączyć.maxDiskBytes: opcjonalny budżet dyskowy katalogu sesji. W trybiewarnzapisuje ostrzeżenia; w trybieenforcenajpierw usuwa najstarsze artefakty/sesje.highWaterBytes: opcjonalny cel po czyszczeniu budżetu. Domyślnie80%zmaxDiskBytes.
threadBindings: globalne wartości domyślne dla funkcji sesji powiązanych z wątkiem.enabled: główny domyślny przełącznik (providerzy mogą nadpisywać; Discord używachannels.discord.threadBindings.enabled)idleHours: domyślne automatyczne odwiązanie po bezczynności w godzinach (0wyłącza; providerzy mogą nadpisywać)maxAgeHours: domyślny twardy maksymalny wiek w godzinach (0wyłącza; providerzy mogą nadpisywać)
Wiadomości
Prefiks odpowiedzi
Nadpisania per kanał/konto:channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Rozwiązywanie (wygrywa najbardziej szczegółowe): konto → kanał → globalne. "" wyłącza i zatrzymuje kaskadę. "auto" wyprowadza [{identity.name}].
Zmienne szablonu:
| Zmienna | Opis | Przykład |
|---|---|---|
{model} | Krótka nazwa modelu | claude-opus-4-6 |
{modelFull} | Pełny identyfikator modelu | anthropic/claude-opus-4-6 |
{provider} | Nazwa providera | anthropic |
{thinkingLevel} | Bieżący poziom thinking | high, low, off |
{identity.name} | Nazwa tożsamości agenta | (to samo co "auto") |
{think} to alias dla {thinkingLevel}.
Reakcja potwierdzająca
- Domyślnie używa
identity.emojiaktywnego agenta, w przeciwnym razie"👀". Ustaw"", aby wyłączyć. - Nadpisania per kanał:
channels.<channel>.ackReaction,channels.<channel>.accounts.<id>.ackReaction. - Kolejność rozwiązywania: konto → kanał →
messages.ackReaction→ fallback tożsamości. - Zakres:
group-mentions(domyślnie),group-all,direct,all. removeAckAfterReply: usuwa potwierdzenie po odpowiedzi w Slack, Discord i Telegram.messages.statusReactions.enabled: włącza reakcje statusu cyklu życia w Slack, Discord i Telegram. W Slack i Discord pozostawienie nieustawionego pola utrzymuje reakcje statusu włączone, gdy aktywne są reakcje potwierdzające. W Telegram ustaw to jawnie natrue, aby włączyć reakcje statusu cyklu życia.
Debounce wejściowy
Łączy szybkie wiadomości tekstowe od tego samego nadawcy w jedną turę agenta. Multimedia/załączniki są opróżniane natychmiast. Polecenia sterujące omijają debounce.TTS (zamiana tekstu na mowę)
autokontroluje domyślny tryb auto-TTS:off,always,inboundalbotagged./tts on|offmoże nadpisywać lokalne preferencje, a/tts statuspokazuje stan efektywny.summaryModelnadpisujeagents.defaults.model.primarydla auto-summary.modelOverridesjest domyślnie włączone;modelOverrides.allowProviderma domyślnie wartośćfalse(opcja opt-in).- Klucze API mają fallback do
ELEVENLABS_API_KEY/XI_API_KEYorazOPENAI_API_KEY. openai.baseUrlnadpisuje endpoint OpenAI TTS. Kolejność rozwiązywania to konfiguracja, potemOPENAI_TTS_BASE_URL, a na końcuhttps://api.openai.com/v1.- Gdy
openai.baseUrlwskazuje endpoint inny niż OpenAI, OpenClaw traktuje go jako serwer TTS zgodny z OpenAI i łagodzi walidację modelu/głosu.
Talk
Wartości domyślne dla trybu Talk (macOS/iOS/Android).talk.providermusi pasować do klucza wtalk.providers, gdy skonfigurowano wielu providerów Talk.- Starsze płaskie klucze Talk (
talk.voiceId,talk.voiceAliases,talk.modelId,talk.outputFormat,talk.apiKey) służą wyłącznie zgodności i są automatycznie migrowane dotalk.providers.<provider>. - Identyfikatory głosów mają fallback do
ELEVENLABS_VOICE_IDlubSAG_VOICE_ID. providers.*.apiKeyakceptuje zwykłe ciągi tekstowe albo obiekty SecretRef.- Fallback
ELEVENLABS_API_KEYdziała tylko wtedy, gdy nie skonfigurowano klucza API Talk. providers.*.voiceAliasespozwala dyrektywom Talk używać przyjaznych nazw.silenceTimeoutMskontroluje, jak długo tryb Talk czeka po ciszy użytkownika, zanim wyśle transkrypt. Pozostawienie nieustawionego pola zachowuje domyślne okno pauzy platformy (700 ms na macOS i Android, 900 ms na iOS).
Powiązane
- Dokumentacja konfiguracji — wszystkie pozostałe klucze konfiguracji
- Konfiguracja — typowe zadania i szybka konfiguracja
- Przykłady konfiguracji