Referencja konfiguracji
Każde pole dostępne w~/.openclaw/openclaw.json. Aby uzyskać przegląd zorientowany na zadania, zobacz Configuration.
Format konfiguracji to JSON5 (dozwolone komentarze i końcowe przecinki). Wszystkie pola są opcjonalne — OpenClaw używa bezpiecznych wartości domyślnych, gdy zostaną pominięte.
Kanały
Każdy kanał uruchamia się automatycznie, gdy jego sekcja konfiguracji istnieje (chyba żeenabled: false).
Dostęp do DM i grup
Wszystkie kanały obsługują zasady DM i zasady grup:| Zasada DM | Zachowanie |
|---|---|
pairing (domyślna) | Nieznani nadawcy dostają jednorazowy kod parowania; właściciel musi zatwierdzić |
allowlist | Tylko nadawcy z allowFrom (lub sparowanego magazynu dozwolonych) |
open | Zezwalaj na wszystkie przychodzące DM (wymaga allowFrom: ["*"]) |
disabled | Ignoruj wszystkie przychodzące DM |
| Zasada grupy | Zachowanie |
|---|---|
allowlist (domyślna) | Tylko grupy pasujące do skonfigurowanej listy dozwolonych |
open | Pomija listy dozwolonych grup (gating wzmiankami nadal obowiązuje) |
disabled | Blokuje wszystkie wiadomości grupowe/pokojów |
channels.defaults.groupPolicy ustawia wartość domyślną, gdy groupPolicy dostawcy nie jest ustawione.
Kody parowania wygasają po 1 godzinie. Oczekujące żądania parowania DM są ograniczone do 3 na kanał.
Jeśli cały blok dostawcy jest nieobecny (channels.<provider> nie istnieje), zasada grupowa środowiska uruchomieniowego wraca do allowlist (fail-closed) z ostrzeżeniem podczas uruchamiania.Nadpisania modeli dla kanałów
Użyjchannels.modelByChannel, aby przypiąć konkretne identyfikatory kanałów do modelu. Wartości akceptują provider/model lub skonfigurowane aliasy modeli. Mapowanie kanałów ma zastosowanie, gdy sesja nie ma już nadpisania modelu (na przykład ustawionego przez /model).
Domyślne ustawienia kanałów i heartbeat
Użyjchannels.defaults do współdzielonych zasad grupowych i zachowania heartbeat między dostawcami:
channels.defaults.groupPolicy: zapasowa zasada grupowa, gdygroupPolicyna poziomie dostawcy nie jest ustawione.channels.defaults.contextVisibility: domyślny tryb widoczności kontekstu uzupełniającego dla wszystkich kanałów. Wartości:all(domyślnie, uwzględnia cały kontekst cytatów/wątków/historii),allowlist(uwzględnia tylko kontekst od nadawców z listy dozwolonych),allowlist_quote(jak allowlist, ale zachowuje jawny kontekst cytatu/odpowiedzi). Nadpisanie per kanał:channels.<channel>.contextVisibility.channels.defaults.heartbeat.showOk: uwzględnia zdrowe stany kanałów w wyjściu heartbeat.channels.defaults.heartbeat.showAlerts: uwzględnia stany obniżonej sprawności/błędów w wyjściu heartbeat.channels.defaults.heartbeat.useIndicator: renderuje kompaktowe wyjście heartbeat w stylu wskaźnika.
Baileys Web). Uruchamia się automatycznie, gdy istnieje połączona sesja.
Wielokontowe WhatsApp
Wielokontowe WhatsApp
- Polecenia wychodzące domyślnie używają konta
default, jeśli istnieje; w przeciwnym razie pierwszego skonfigurowanego identyfikatora konta (sortowanego). - Opcjonalne
channels.whatsapp.defaultAccountnadpisuje ten zapasowy wybór konta domyślnego, gdy pasuje do skonfigurowanego identyfikatora konta. - Starszy jednokontowy katalog uwierzytelniania Baileys jest migrowany przez
openclaw doctordowhatsapp/default. - Nadpisania per konto:
channels.whatsapp.accounts.<id>.sendReadReceipts,channels.whatsapp.accounts.<id>.dmPolicy,channels.whatsapp.accounts.<id>.allowFrom.
Telegram
- Token bota:
channels.telegram.botTokenlubchannels.telegram.tokenFile(tylko zwykły plik; symlinki są odrzucane), zTELEGRAM_BOT_TOKENjako wartością zapasową dla konta domyślnego. - Opcjonalne
channels.telegram.defaultAccountnadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. - W konfiguracjach wielokontowych (2+ identyfikatory kont) ustaw jawne konto domyślne (
channels.telegram.defaultAccountlubchannels.telegram.accounts.default), aby uniknąć routingu zapasowego;openclaw doctorostrzega, gdy tego brakuje lub jest nieprawidłowe. configWrites: falseblokuje zapisy konfiguracji inicjowane przez Telegram (migracje identyfikatorów supergrup,/config set|unset).- Wpisy najwyższego poziomu
bindings[]ztype: "acp"konfigurują trwałe powiązania ACP dla tematów forum (użyj kanonicznegochatId:topic:topicIdwmatch.peer.id). Semantyka pól jest współdzielona w ACP Agents. - Podglądy strumieni Telegram używają
sendMessage+editMessageText(działa w czatach bezpośrednich i grupowych). - Zasada ponawiania: zobacz Retry policy.
Discord
- Token:
channels.discord.token, zDISCORD_BOT_TOKENjako wartością zapasową dla konta domyślnego. - Bezpośrednie wywołania wychodzące, które podają jawny
tokenDiscord, używają tego tokena dla wywołania; ustawienia ponawiania/zasad konta nadal pochodzą z wybranego konta w aktywnym snapshotcie środowiska uruchomieniowego. - Opcjonalne
channels.discord.defaultAccountnadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. - Używaj
user:<id>(DM) lubchannel:<id>(kanał guild) jako celów dostarczenia; same numeryczne identyfikatory są odrzucane. - Slugi guild są pisane małymi literami, a spacje zastępowane przez
-; klucze kanałów używają nazwy w postaci slug (bez#). Preferuj identyfikatory guild. - Wiadomości autorstwa botów są domyślnie ignorowane.
allowBots: trueje włącza; użyjallowBots: "mentions", aby akceptować tylko wiadomości botów, które wspominają bota (własne wiadomości nadal są filtrowane). channels.discord.guilds.<id>.ignoreOtherMentions(oraz nadpisania kanałów) odrzuca wiadomości, które wspominają innego użytkownika lub rolę, ale nie bota (z wyłączeniem @everyone/@here).maxLinesPerMessage(domyślnie 17) dzieli wysokie wiadomości nawet wtedy, gdy mają mniej niż 2000 znaków.channels.discord.threadBindingskontroluje routing powiązany z wątkami Discord:enabled: nadpisanie Discord dla funkcji sesji powiązanych z wątkiem (/focus,/unfocus,/agents,/session idle,/session max-ageoraz dostarczenie/routing powiązany)idleHours: nadpisanie Discord dla automatycznego odfokusowania po bezczynności w godzinach (0wyłącza)maxAgeHours: nadpisanie Discord dla sztywnego maksymalnego wieku w godzinach (0wyłącza)spawnSubagentSessions: przełącznik opt-in dla automatycznego tworzenia/powiązywania wątków przezsessions_spawn({ thread: true })
- Wpisy najwyższego poziomu
bindings[]ztype: "acp"konfigurują trwałe powiązania ACP dla kanałów i wątków (użyj identyfikatora kanału/wątku wmatch.peer.id). Semantyka pól jest współdzielona w ACP Agents. channels.discord.ui.components.accentColorustawia kolor akcentu dla kontenerów Discord components v2.channels.discord.voicewłącza rozmowy w kanałach głosowych Discord oraz opcjonalne automatyczne dołączanie i nadpisania TTS.channels.discord.voice.daveEncryptionichannels.discord.voice.decryptionFailureTolerancesą przekazywane do opcji DAVE w@discordjs/voice(domyślnietruei24).- OpenClaw dodatkowo próbuje odzyskać odbiór głosu przez opuszczenie i ponowne dołączenie do sesji głosowej po powtarzających się błędach deszyfrowania.
channels.discord.streamingto kanoniczny klucz trybu strumieniowania. Starsze wartościstreamModeoraz logicznestreamingsą automatycznie migrowane.channels.discord.autoPresencemapuje dostępność środowiska uruchomieniowego na obecność bota (healthy => online, degraded => idle, exhausted => dnd) i pozwala na opcjonalne nadpisania tekstu statusu.channels.discord.dangerouslyAllowNameMatchingponownie włącza dopasowywanie po zmiennej nazwie/tagu (tryb zgodności break-glass).channels.discord.execApprovals: natywne dostarczanie zatwierdzeń exec przez Discord i autoryzacja zatwierdzających.enabled:true,falselub"auto"(domyślnie). W trybie auto zatwierdzenia exec aktywują się, gdy zatwierdzających można rozwiązać zapproverslubcommands.ownerAllowFrom.approvers: identyfikatory użytkowników Discord, którzy mogą zatwierdzać żądania exec. Gdy pominięte, następuje powrót docommands.ownerAllowFrom.agentFilter: opcjonalna lista dozwolonych identyfikatorów agentów. Pomiń, aby przekazywać zatwierdzenia dla wszystkich agentów.sessionFilter: opcjonalne wzorce kluczy sesji (podciąg lub regex).target: gdzie wysyłać prompty zatwierdzeń."dm"(domyślnie) wysyła do DM zatwierdzających,"channel"wysyła do kanału źródłowego,"both"wysyła do obu. Gdy cel obejmuje"channel", przycisków mogą używać tylko rozwiązani zatwierdzający.cleanupAfterResolve: gdytrue, usuwa DM-y zatwierdzeń po zatwierdzeniu, odrzuceniu lub upływie czasu.
off (brak), own (wiadomości bota, domyślnie), all (wszystkie wiadomości), allowlist (z guilds.<id>.users dla wszystkich wiadomości).
Google Chat
- JSON konta usługi: inline (
serviceAccount) lub z pliku (serviceAccountFile). - SecretRef konta usługi jest również obsługiwany (
serviceAccountRef). - Zapasowe wartości z env:
GOOGLE_CHAT_SERVICE_ACCOUNTlubGOOGLE_CHAT_SERVICE_ACCOUNT_FILE. - Używaj
spaces/<spaceId>lubusers/<userId>jako celów dostarczenia. channels.googlechat.dangerouslyAllowNameMatchingponownie włącza dopasowywanie po zmiennym principal email (tryb zgodności break-glass).
Slack
- Socket mode wymaga zarówno
botToken, jak iappToken(SLACK_BOT_TOKEN+SLACK_APP_TOKENjako zapasowe wartości env dla konta domyślnego). - HTTP mode wymaga
botTokenplussigningSecret(na poziomie głównym lub per konto). botToken,appToken,signingSecretiuserTokenakceptują jawne stringi lub obiekty SecretRef.- Snapshoty kont Slack udostępniają pola źródła/statusu poświadczeń, takie jak
botTokenSource,botTokenStatus,appTokenStatus, a w trybie HTTP takżesigningSecretStatus.configured_unavailableoznacza, że konto jest skonfigurowane przez SecretRef, ale bieżąca ścieżka polecenia/środowiska uruchomieniowego nie mogła rozwiązać wartości sekretu. configWrites: falseblokuje zapisy konfiguracji inicjowane przez Slack.- Opcjonalne
channels.slack.defaultAccountnadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. channels.slack.streamingto kanoniczny klucz trybu strumieniowania. Starsze wartościstreamModeoraz logicznestreamingsą automatycznie migrowane.- Używaj
user:<id>(DM) lubchannel:<id>jako celów dostarczenia.
off, own (domyślnie), all, allowlist (z reactionAllowlist).
Izolacja sesji wątków: thread.historyScope jest per wątek (domyślnie) lub współdzielony w kanale. thread.inheritParent kopiuje transkrypt kanału nadrzędnego do nowych wątków.
typingReactiondodaje tymczasową reakcję do przychodzącej wiadomości Slack podczas generowania odpowiedzi, a po zakończeniu ją usuwa. Użyj skrótu emoji Slack, takiego jak"hourglass_flowing_sand".channels.slack.execApprovals: natywne dostarczanie zatwierdzeń exec przez Slack i autoryzacja zatwierdzających. Ten sam schemat co Discord:enabled(true/false/"auto"),approvers(identyfikatory użytkowników Slack),agentFilter,sessionFilteritarget("dm","channel"lub"both").
| Grupa akcji | Domyślnie | Uwagi |
|---|---|---|
| reactions | enabled | Reagowanie + lista reakcji |
| messages | enabled | Odczyt/wysyłanie/edycja/usuwanie |
| pins | enabled | Przypinanie/odpinanie/lista |
| memberInfo | enabled | Informacje o członku |
| emojiList | enabled | Lista niestandardowych emoji |
Mattermost
Mattermost jest dostarczany jako plugin:openclaw plugins install @openclaw/mattermost.
oncall (odpowiada przy wzmiance @, domyślnie), onmessage (każda wiadomość), onchar (wiadomości zaczynające się od prefiksu wyzwalacza).
Gdy natywne polecenia Mattermost są włączone:
commands.callbackPathmusi być ścieżką (na przykład/api/channels/mattermost/command), a nie pełnym URL-em.commands.callbackUrlmusi wskazywać endpoint gateway OpenClaw i być osiągalny z serwera Mattermost.- Natywne callbacki slash są uwierzytelniane tokenami per polecenie zwróconymi
przez Mattermost podczas rejestracji poleceń slash. Jeśli rejestracja się nie powiedzie lub nie
aktywowano żadnych poleceń, OpenClaw odrzuca callbacki z
Unauthorized: invalid command token. - W przypadku prywatnych/tailnet/internal hostów callbacków Mattermost może wymagać, aby
ServiceSettings.AllowedUntrustedInternalConnectionszawierało host/domenę callbacku. Używaj wartości host/domena, a nie pełnych URL-i. channels.mattermost.configWrites: zezwalaj lub odmawiaj zapisów konfiguracji inicjowanych przez Mattermost.channels.mattermost.requireMention: wymagaj@mentionprzed odpowiedzią w kanałach.channels.mattermost.groups.<channelId>.requireMention: nadpisanie gatingu wzmiankami per kanał ("*"dla domyślnego).- Opcjonalne
channels.mattermost.defaultAccountnadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta.
Signal
off, own (domyślnie), all, allowlist (z reactionAllowlist).
channels.signal.account: przypina uruchamianie kanału do konkretnej tożsamości konta Signal.channels.signal.configWrites: zezwalaj lub odmawiaj zapisów konfiguracji inicjowanych przez Signal.- Opcjonalne
channels.signal.defaultAccountnadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta.
BlueBubbles
BlueBubbles to zalecana ścieżka iMessage (oparta na pluginie, konfigurowana wchannels.bluebubbles).
- Kluczowe ścieżki rdzeniowe omówione tutaj:
channels.bluebubbles,channels.bluebubbles.dmPolicy. - Opcjonalne
channels.bluebubbles.defaultAccountnadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. - Wpisy najwyższego poziomu
bindings[]ztype: "acp"mogą wiązać rozmowy BlueBubbles z trwałymi sesjami ACP. Użyj uchwytu BlueBubbles lub ciągu docelowego (chat_id:*,chat_guid:*,chat_identifier:*) wmatch.peer.id. Współdzielona semantyka pól: ACP Agents. - Pełna konfiguracja kanału BlueBubbles jest udokumentowana w BlueBubbles.
iMessage
OpenClaw uruchamiaimsg rpc (JSON-RPC przez stdio). Nie jest wymagany daemon ani port.
-
Opcjonalne
channels.imessage.defaultAccountnadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. - Wymaga Full Disk Access do bazy danych Messages.
-
Preferuj cele
chat_id:<id>. Użyjimsg chats --limit 20, aby wyświetlić listę czatów. -
cliPathmoże wskazywać wrapper SSH; ustawremoteHost(hostlubuser@host) dla pobierania załączników przez SCP. -
attachmentRootsiremoteAttachmentRootsograniczają ścieżki przychodzących załączników (domyślnie:/Users/*/Library/Messages/Attachments). -
SCP używa ścisłej kontroli klucza hosta, więc upewnij się, że klucz hosta przekaźnika już istnieje w
~/.ssh/known_hosts. -
channels.imessage.configWrites: zezwalaj lub odmawiaj zapisów konfiguracji inicjowanych przez iMessage. -
Wpisy najwyższego poziomu
bindings[]ztype: "acp"mogą wiązać rozmowy iMessage z trwałymi sesjami ACP. Użyj znormalizowanego uchwytu lub jawnego celu czatu (chat_id:*,chat_guid:*,chat_identifier:*) wmatch.peer.id. Współdzielona semantyka pól: ACP Agents.
Przykład wrappera SSH для iMessage
Przykład wrappera SSH для iMessage
Matrix
Matrix jest oparty na rozszerzeniu i konfigurowany wchannels.matrix.
- Uwierzytelnianie tokenem używa
accessToken; uwierzytelnianie hasłem używauserId+password. channels.matrix.proxykieruje ruch HTTP Matrix przez jawny proxy HTTP(S). Nazwane konta mogą go nadpisać przezchannels.matrix.accounts.<id>.proxy.channels.matrix.allowPrivateNetworkzezwala na prywatne/wewnętrzne homeserwery.proxyiallowPrivateNetworkto niezależne mechanizmy kontroli.channels.matrix.defaultAccountwybiera preferowane konto w konfiguracjach wielokontowych.channels.matrix.execApprovals: natywne dostarczanie zatwierdzeń exec przez Matrix i autoryzacja zatwierdzających.enabled:true,falselub"auto"(domyślnie). W trybie auto zatwierdzenia exec aktywują się, gdy zatwierdzających można rozwiązać zapproverslubcommands.ownerAllowFrom.approvers: identyfikatory użytkowników Matrix (np.@owner:example.org) mogące zatwierdzać żądania exec.agentFilter: opcjonalna lista dozwolonych identyfikatorów agentów. Pomiń, aby przekazywać zatwierdzenia dla wszystkich agentów.sessionFilter: opcjonalne wzorce kluczy sesji (podciąg lub regex).target: gdzie wysyłać prompty zatwierdzeń."dm"(domyślnie),"channel"(pokój źródłowy) lub"both".- Nadpisania per konto:
channels.matrix.accounts.<id>.execApprovals.
- Sondy stanu Matrix i wyszukiwania katalogowe na żywo używają tej samej polityki proxy co ruch środowiska uruchomieniowego.
- Pełna konfiguracja Matrix, reguły targetowania i przykłady konfiguracji są udokumentowane w Matrix.
Microsoft Teams
Microsoft Teams jest oparty na rozszerzeniu i konfigurowany wchannels.msteams.
- Kluczowe ścieżki rdzeniowe omówione tutaj:
channels.msteams,channels.msteams.configWrites. - Pełna konfiguracja Teams (poświadczenia, webhook, zasady DM/grup, nadpisania per zespół/per kanał) jest udokumentowana w Microsoft Teams.
IRC
IRC jest oparte na rozszerzeniu i konfigurowane wchannels.irc.
- Kluczowe ścieżki rdzeniowe omówione tutaj:
channels.irc,channels.irc.dmPolicy,channels.irc.configWrites,channels.irc.nickserv.*. - Opcjonalne
channels.irc.defaultAccountnadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. - Pełna konfiguracja kanału IRC (host/port/TLS/kanały/listy dozwolonych/gating wzmiankami) jest udokumentowana w IRC.
Wielokontowość (wszystkie kanały)
Uruchamiaj wiele kont na kanał (każde z własnymaccountId):
defaultjest używane, gdyaccountIdzostanie pominięte (CLI + routing).- Tokeny env mają zastosowanie tylko do konta default.
- Bazowe ustawienia kanału mają zastosowanie do wszystkich kont, chyba że zostaną nadpisane per konto.
- Użyj
bindings[].match.accountId, aby skierować każde konto do innego agenta. - Jeśli dodasz konto inne niż domyślne przez
openclaw channels add(lub onboarding kanału), będąc nadal przy jednokontowej konfiguracji kanału na poziomie głównym, OpenClaw najpierw promuje wartości najwyższego poziomu o zakresie konta do mapy kont kanału, aby oryginalne konto nadal działało. Większość kanałów przenosi je dochannels.<channel>.accounts.default; Matrix może zamiast tego zachować istniejący pasujący cel named/default. - Istniejące powiązania tylko kanałowe (bez
accountId) nadal pasują do konta domyślnego; powiązania o zakresie konta pozostają opcjonalne. openclaw doctor --fixnaprawia też mieszane kształty, przenosząc wartości jednokontowe najwyższego poziomu o zakresie konta do promowanego konta wybranego dla danego kanału. Większość kanałów używaaccounts.default; Matrix może zamiast tego zachować istniejący pasujący cel named/default.
Inne kanały rozszerzeń
Wiele kanałów rozszerzeń jest konfigurowanych jakochannels.<id> i udokumentowanych na ich dedykowanych stronach kanałów (na przykład Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat i Twitch).
Zobacz pełny indeks kanałów: Channels.
Gating wzmiankami w czatach grupowych
Wiadomości grupowe domyślnie wymagają wzmianki (wzmianka w metadanych lub bezpieczne wzorce regex). Dotyczy WhatsApp, Telegram, Discord, Google Chat oraz czatów grupowych iMessage. Typy wzmianek:- Wzmianki w metadanych: natywne wzmianki @ platformy. Ignorowane w trybie self-chat WhatsApp.
- Wzorce tekstowe: bezpieczne wzorce regex w
agents.list[].groupChat.mentionPatterns. Nieprawidłowe wzorce i niebezpieczne zagnieżdżone powtórzenia są ignorowane. - Gating wzmiankami jest egzekwowany tylko wtedy, gdy wykrycie jest możliwe (natywne wzmianki lub co najmniej jeden wzorzec).
messages.groupChat.historyLimit ustawia globalną wartość domyślną. Kanały mogą ją nadpisać przez channels.<channel>.historyLimit (lub per konto). Ustaw 0, aby wyłączyć.
Limity historii DM
telegram, whatsapp, discord, slack, signal, imessage, msteams.
Tryb self-chat
Dodaj własny numer doallowFrom, aby włączyć tryb self-chat (ignoruje natywne wzmianki @, odpowiada tylko na wzorce tekstowe):
Commands (obsługa poleceń czatu)
Szczegóły poleceń
Szczegóły poleceń
- Polecenia tekstowe muszą być samodzielnymi wiadomościami zaczynającymi się od
/. native: "auto"włącza natywne polecenia dla Discord/Telegram, zostawia Slack wyłączony.- Nadpisanie per kanał:
channels.discord.commands.native(bool lub"auto").falseczyści wcześniej zarejestrowane polecenia. channels.telegram.customCommandsdodaje dodatkowe wpisy menu bota Telegram.bash: truewłącza! <cmd>dla powłoki hosta. Wymagatools.elevated.enabledi nadawcy wtools.elevated.allowFrom.<channel>.config: truewłącza/config(odczytuje/zapisujeopenclaw.json). Dla klientów gatewaychat.sendtrwałe zapisy/config set|unsetwymagają takżeoperator.admin; tylko do odczytu/config showpozostaje dostępne dla zwykłych klientów operatora z zakresem zapisu.channels.<provider>.configWriteskontroluje mutacje konfiguracji per kanał (domyślnie: true).- Dla kanałów wielokontowych
channels.<provider>.accounts.<id>.configWritesrównież kontroluje zapisy, które dotyczą tego konta (na przykład/allowlist --config --account <id>lub/config set channels.<provider>.accounts.<id>...). allowFromjest per dostawca. Gdy jest ustawione, jest to jedyne źródło autoryzacji (listy dozwolonych/parowanie kanału iuseAccessGroupssą ignorowane).useAccessGroups: falsepozwala poleceniom omijać zasady grup dostępu, gdyallowFromnie jest ustawione.
Domyślne ustawienia agentów
agents.defaults.workspace
Domyślnie: ~/.openclaw/workspace.
agents.defaults.repoRoot
Opcjonalny katalog główny repozytorium pokazywany w wierszu Runtime system promptu. Jeśli nieustawiony, OpenClaw wykrywa go automatycznie, idąc w górę od workspace.
agents.defaults.skills
Opcjonalna domyślna lista dozwolonych Skills dla agentów, które nie ustawiają
agents.list[].skills.
- Pomiń
agents.defaults.skills, aby domyślnie Skills nie były ograniczone. - 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 danego agenta; nie jest scalana z wartościami domyślnymi.
agents.defaults.skipBootstrap
Wyłącza automatyczne tworzenie plików bootstrap workspace (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md).
agents.defaults.bootstrapMaxChars
Maksymalna liczba znaków na plik bootstrap workspace przed obcięciem. Domyślnie: 20000.
agents.defaults.bootstrapTotalMaxChars
Maksymalna łączna liczba znaków wstrzykiwanych przez wszystkie pliki bootstrap workspace. Domyślnie: 150000.
agents.defaults.bootstrapPromptTruncationWarning
Kontroluje tekst ostrzeżenia widoczny dla agenta, gdy kontekst bootstrap został obcięty.
Domyślnie: "once".
"off": nigdy nie wstrzykuje tekstu ostrzeżenia do system promptu."once": wstrzykuje ostrzeżenie raz na unikalną sygnaturę obcięcia (zalecane)."always": wstrzykuje ostrzeżenie przy każdym uruchomieniu, gdy istnieje obcięcie.
agents.defaults.imageMaxDimensionPx
Maksymalny rozmiar w pikselach dla dłuższego boku obrazu w blokach obrazów transkryptu/narzędzi przed wywołaniami dostawcy.
Domyślnie: 1200.
Niższe wartości zwykle zmniejszają zużycie tokenów vision i rozmiar ładunku żądania w przebiegach obfitujących w zrzuty ekranu.
Wyższe wartości zachowują więcej szczegółów wizualnych.
agents.defaults.userTimezone
Strefa czasowa dla kontekstu system promptu (nie dla timestampów wiadomości). Wartość zapasowa to strefa czasowa hosta.
agents.defaults.timeFormat
Format czasu w system prompt. Domyślnie: auto (preferencja OS).
agents.defaults.model
model: akceptuje albo string ("provider/model"), albo obiekt ({ primary, fallbacks }).- Forma string ustawia tylko model główny.
- Forma obiektu ustawia model główny plus uporządkowane modele failover.
imageModel: akceptuje albo string ("provider/model"), albo obiekt ({ primary, fallbacks }).- Używany przez ścieżkę narzędzia
imagejako konfiguracja modelu vision. - Używany też jako routing zapasowy, gdy wybrany/domyslny model nie akceptuje wejścia obrazowego.
- Używany przez ścieżkę narzędzia
imageGenerationModel: akceptuje albo string ("provider/model"), albo obiekt ({ primary, fallbacks }).- Używany przez współdzieloną funkcję generowania obrazów i każdą przyszłą powierzchnię narzędzi/pluginów generującą obrazy.
- Typowe wartości:
google/gemini-3.1-flash-image-previewdla natywnego generowania obrazów Gemini,fal/fal-ai/flux/devdla fal lubopenai/gpt-image-1dla OpenAI Images. - Jeśli wybierzesz bezpośrednio dostawcę/model, skonfiguruj też pasujące uwierzytelnianie/klucz API dostawcy (na przykład
GEMINI_API_KEYlubGOOGLE_API_KEYdlagoogle/*,OPENAI_API_KEYdlaopenai/*,FAL_KEYdlafal/*). - Jeśli pominięte,
image_generatenadal może wywnioskować domyślnego dostawcę z uwierzytelniania. Najpierw próbuje bieżącego domyślnego dostawcy, a potem pozostałych zarejestrowanych dostawców generowania obrazów w kolejności identyfikatorów dostawców.
videoGenerationModel: akceptuje albo string ("provider/model"), albo obiekt ({ primary, fallbacks }).- Używany przez współdzieloną funkcję generowania wideo.
- Typowe wartości:
qwen/wan2.6-t2v,qwen/wan2.6-i2v,qwen/wan2.6-r2v,qwen/wan2.6-r2v-flashlubqwen/wan2.7-r2v. - Ustaw to jawnie przed użyciem współdzielonego generowania wideo. W przeciwieństwie do
imageGenerationModel, środowisko uruchomieniowe generowania wideo nie wywnioskuje jeszcze domyślnego dostawcy. - Jeśli wybierzesz bezpośrednio dostawcę/model, skonfiguruj też pasujące uwierzytelnianie/klucz API dostawcy.
- Dołączony dostawca generowania wideo Qwen obsługuje obecnie maksymalnie 1 wideo wyjściowe, 1 obraz wejściowy, 4 wideo wejściowe, 10 sekund czasu trwania oraz opcje na poziomie dostawcy
size,aspectRatio,resolution,audioiwatermark.
pdfModel: akceptuje albo string ("provider/model"), albo obiekt ({ primary, fallbacks }).- Używany przez narzędzie
pdfdo routingu modeli. - Jeśli pominięty, narzędzie PDF wraca do
imageModel, a następnie do rozwiązanego modelu sesji/domyslnego.
- Używany przez narzędzie
pdfMaxBytesMb: domyślny limit rozmiaru PDF dla narzędziapdf, gdymaxBytesMbnie jest przekazane podczas wywołania.pdfMaxPages: domyślna maksymalna liczba stron uwzględnianych przez tryb zapasowy ekstrakcji w narzędziupdf.verboseDefault: domyślny poziom verbose dla agentów. Wartości:"off","on","full". Domyślnie:"off".elevatedDefault: domyślny poziom wyjścia elevated dla agentów. Wartości:"off","on","ask","full". Domyślnie:"on".model.primary: formatprovider/model(np.openai/gpt-5.4). Jeśli pominiesz dostawcę, OpenClaw najpierw próbuje aliasu, potem unikalnego dopasowania skonfigurowanego dostawcy dla dokładnie tego identyfikatora modelu, a dopiero potem wraca do skonfigurowanego dostawcy domyślnego (przestarzałe zachowanie zgodności, więc preferuj jawneprovider/model). Jeśli ten dostawca nie udostępnia już skonfigurowanego modelu domyślnego, OpenClaw wraca do pierwszego skonfigurowanego dostawcy/modelu zamiast eksponować nieaktualną wartość domyślną usuniętego dostawcy.models: skonfigurowany katalog modeli i lista dozwolonych dla/model. Każdy wpis może zawieraćalias(skrót) iparams(specyficzne dla dostawcy, np.temperature,maxTokens,cacheRetention,context1m).params: globalne domyślne parametry dostawcy stosowane do wszystkich modeli. Ustawiane wagents.defaults.params(np.{ cacheRetention: "long" }).- Priorytet scalania
params(konfiguracja):agents.defaults.params(globalna baza) jest nadpisywane przezagents.defaults.models["provider/model"].params(per model), następnieagents.list[].params(dla pasującego identyfikatora agenta) nadpisuje per klucz. Szczegóły: Prompt Caching. - Mechanizmy zapisu konfiguracji, które modyfikują te pola (na przykład
/models set,/models set-imagei polecenia add/remove fallback), zapisują kanoniczną formę obiektową i w miarę możliwości 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.models):
| Alias | Model |
|---|---|
opus | anthropic/claude-opus-4-6 |
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-preview |
--thinking off lub 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ą adaptive thinking, gdy nie ustawiono jawnego poziomu thinking.
agents.defaults.cliBackends
Opcjonalne backendy CLI dla przebiegów zapasowych tylko tekstowych (bez wywołań narzędzi). Przydatne jako kopia zapasowa, gdy dostawcy API zawodzą.
- Backendy CLI są ukierunkowane na tekst; 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.heartbeat
Okresowe uruchomienia heartbeat.
every: ciąg czasu (ms/s/m/h). Domyślnie:30m(uwierzytelnianie kluczem API) lub1h(uwierzytelnianie OAuth). Ustaw0m, aby wyłączyć.suppressToolErrorWarnings: gdy true, tłumi ładunki ostrzeżeń o błędach narzędzi podczas uruchomień heartbeat.directPolicy: zasada dostarczania bezpośredniego/DM.allow(domyślnie) pozwala na dostarczanie do celu bezpośredniego.blocktłumi dostarczanie do celu bezpośredniego i emitujereason=dm-blocked.lightContext: gdy true, uruchomienia heartbeat używają lekkiego kontekstu bootstrap i zachowują tylkoHEARTBEAT.mdz plików bootstrap workspace.isolatedSession: gdy true, każde uruchomienie heartbeat odbywa się w nowej sesji bez wcześniejszej historii rozmowy. Ten sam wzorzec izolacji co cronsessionTarget: "isolated". Zmniejsza koszt tokenów na heartbeat z około ~100K do ~2-5K tokenów.- Per agent: ustaw
agents.list[].heartbeat. Gdy jakikolwiek agent definiujeheartbeat, heartbeat uruchamia się tylko dla tych agentów. - Heartbeat wykonują pełne tury agenta — krótsze interwały zużywają więcej tokenów.
agents.defaults.compaction
mode:defaultlubsafeguard(sumaryzacja kawałkami dla długich historii). Zobacz Compaction.timeoutSeconds: maksymalna liczba sekund dozwolona dla jednej operacji kompaktowania, zanim OpenClaw ją przerwie. Domyślnie:900.identifierPolicy:strict(domyślnie),offlubcustom.strictpoprzedza sumaryzację kompaktowania wbudowanymi wskazówkami zachowania nieprzezroczystych identyfikatorów.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 kompaktowaniu. Domyślnie["Session Startup", "Red Lines"]; ustaw[], aby wyłączyć ponowne wstrzykiwanie. Gdy nieustawione lub ustawione jawnie na tę domyślną parę, starsze nagłówkiEvery Session/Safetysą również akceptowane jako zapasowa zgodność.model: opcjonalne nadpisanieprovider/model-idtylko dla sumaryzacji kompaktowania. Użyj tego, gdy główna sesja powinna pozostać przy jednym modelu, ale podsumowania kompaktowania powinny działać na innym; gdy nieustawione, kompaktowanie używa modelu głównego sesji.notifyUser: gdytrue, wysyła użytkownikowi krótkie powiadomienie, gdy rozpoczyna się kompaktowanie (na przykład „Compacting context…”). Domyślnie wyłączone, aby kompaktowanie pozostało ciche.memoryFlush: cicha agentska tura przed automatycznym kompaktowaniem w celu zapisania trwałych wspomnień. Pomijana, gdy workspace 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 zostać uruchomione 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.
....Hard-clear zastępuje cały wynik narzędzia placeholderem.Uwagi:- Bloki obrazów nigdy nie są przycinane/czyszczone.
- Współczynniki są oparte na znakach (przybliżenie), a nie na dokładnej liczbie tokenów.
- Jeśli istnieje mniej niż
keepLastAssistantswiadomości assistant, 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 domyślnie używająminChars: 1500. humanDelay: losowa pauza 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
Opcjonalne sandboxowanie dla wbudowanego agenta. Pełny przewodnik: Sandboxing.
Szczegóły sandbox
Szczegóły sandbox
Backend:Tryb OpenShell:
docker: lokalne środowisko Docker (domyślnie)ssh: generyczne zdalne środowisko oparte na SSHopenshell: środowisko OpenShell
backend: "openshell", ustawienia specyficzne dla środowiska uruchomieniowego przenoszą się do
plugins.entries.openshell.config.Konfiguracja backendu SSH:target: cel SSH w formieuser@host[:port]command: polecenie klienta SSH (domyślnie:ssh)workspaceRoot: bezwzględny zdalny katalog główny używany dla workspace per zakresidentityFile/certificateFile/knownHostsFile: istniejące lokalne pliki przekazywane do OpenSSHidentityData/certificateData/knownHostsData: zawartość inline lub SecretRef, które OpenClaw materializuje do plików tymczasowych podczas uruchomieniastrictHostKeyChecking/updateHostKeys: kontrolki zasad kluczy hosta OpenSSH
identityDatama pierwszeństwo przedidentityFilecertificateDatama pierwszeństwo przedcertificateFileknownHostsDatama pierwszeństwo przedknownHostsFile- Wartości
*Dataoparte na SecretRef są rozwiązywane z aktywnego snapshotu środowiska sekretów przed rozpoczęciem sesji sandbox
- zasiewa zdalny workspace raz po create lub recreate
- następnie utrzymuje zdalny workspace SSH jako kanoniczny
- kieruje
exec, narzędzia plikowe i ścieżki mediów przez SSH - nie synchronizuje automatycznie zmian zdalnych z powrotem do hosta
- nie obsługuje kontenerów przeglądarki w sandboxie
none: workspace sandbox per zakres w~/.openclaw/sandboxesro: workspace sandbox w/workspace, workspace agenta montowany tylko do odczytu w/agentrw: workspace agenta montowany do odczytu/zapisu w/workspace
session: kontener + workspace per sesjaagent: jeden kontener + workspace na agenta (domyślnie)shared: współdzielony kontener i workspace (brak izolacji między sesjami)
mirror: zasiewa zdalne środowisko z lokalnego przed exec, synchronizuje z powrotem po exec; lokalny workspace pozostaje kanonicznyremote: zasiewa zdalne środowisko raz podczas tworzenia sandbox, a następnie utrzymuje zdalny workspace jako kanoniczny
remote lokalne edycje hosta wykonane poza OpenClaw nie są automatycznie synchronizowane do sandbox po kroku zasiewania.
Transport odbywa się przez SSH do sandbox OpenShell, ale plugin zarządza cyklem życia sandbox i opcjonalną synchronizacją mirror.setupCommand uruchamia się raz po utworzeniu kontenera (przez sh -lc). Wymaga dostępu do sieci, zapisywalnego systemu root i użytkownika root.Kontenery domyślnie używają network: "none" — ustaw "bridge" (lub 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 (break-glass).Załączniki przychodzące są umieszczane w media/inbound/* w aktywnym workspace.docker.binds montuje dodatkowe katalogi hosta; globalne i per-agent bindy są scalane.Przeglądarka w sandboxie (sandbox.browser.enabled): Chromium + CDP w kontenerze. URL noVNC jest wstrzykiwany do system promptu. Nie wymaga browser.enabled w openclaw.json.
Dostęp obserwatora noVNC domyślnie używa uwierzytelniania VNC, a OpenClaw emituje URL z krótkotrwałym tokenem (zamiast ujawniać hasło we współdzielonym URL-u).allowHostControl: false(domyślnie) blokuje sesjom sandbox targetowanie przeglądarki hosta.networkdomyślnie ma wartośćopenclaw-sandbox-browser(dedykowana sieć bridge). Ustawbridgetylko wtedy, gdy jawnie chcesz globalnej łączności bridge.cdpSourceRangeopcjonalnie ogranicza wejście CDP na granicy 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 opcje uruchamiania są zdefiniowane w
scripts/sandbox-browser-entrypoint.shi dostrojone do 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 użycie WebGL/3D tego wymaga.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, gdynoSandboxjest włączone. - Wartości domyślne stanowią bazę obrazu kontenera; użyj niestandardowego obrazu przeglądarki z własnym entrypointem, aby zmienić domyślne ustawienia kontenera.
sandbox.docker.binds są obecnie dostępne tylko dla Docker.
Budowanie obrazów:
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 string nadpisuje tylkoprimary; forma obiektowa{ primary, fallbacks }nadpisuje oba ([]wyłącza globalne fallbacki). Zadania cron, które nadpisują tylkoprimary, nadal dziedziczą domyślne fallbacki, 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 lista dozwolonych Skills per agent. Jeśli pominięte, 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). Nadpisujeagents.defaults.thinkingDefaultdla tego agenta, gdy nie ustawiono nadpisania per wiadomość lub per sesję.reasoningDefault: opcjonalna domyślna widoczność reasoning per agent (on | off | stream). Ma zastosowanie, gdy nie ustawiono nadpisania reasoning per wiadomość lub per sesję.fastModeDefault: opcjonalna domyślna wartość fast mode per agent (true | false). Ma zastosowanie, gdy nie ustawiono fast mode per wiadomość lub per sesję.runtime: opcjonalny deskryptor środowiska uruchomieniowego per agent. Użyjtype: "acp"z wartościami domyślnymiruntime.acp(agent,backend,mode,cwd), gdy agent ma domyślnie używać sesji harness ACP.identity.avatar: ścieżka względna względem workspace, URLhttp(s)lub URIdata:.identitywyprowadza wartości domyślne:ackReactionzemoji,mentionPatternszname/emoji.subagents.allowAgents: lista dozwolonych identyfikatorów agentów dlasessions_spawn(["*"]= dowolny; domyślnie: tylko ten sam agent).- Guard dziedziczenia sandbox: jeśli sesja żądająca jest sandboxowana,
sessions_spawnodrzuca cele, które działałyby bez sandboxa. subagents.requireAgentId: gdy true, blokuje wywołaniasessions_spawn, które pomijająagentId(wymusza jawny wybór profilu; domyślnie: false).
Routing wielu agentów
Uruchamiaj wielu izolowanych agentów w jednym Gateway. Zobacz Multi-Agent.Pola dopasowania powiązania
type(opcjonalne):routedla normalnego routingu (brak typu domyślnie oznacza route),acpdla trwałych powiązań rozmów ACP.match.channel(wymagane)match.accountId(opcjonalne;*= dowolne konto; pominięte = konto domyślne)match.peer(opcjonalne;{ kind: direct|group|channel, id })match.guildId/match.teamId(opcjonalne; specyficzne dla kanału)acp(opcjonalne; tylko dlatype: "acp"):{ mode, label, cwd, backend }
match.peermatch.guildIdmatch.teamIdmatch.accountId(dokładne, bez peer/guild/team)match.accountId: "*"(cały kanał)- 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 wiązań route.
Profile dostępu per agent
Pełny dostęp (bez sandboxa)
Pełny dostęp (bez sandboxa)
Narzędzia i workspace tylko do odczytu
Narzędzia i workspace tylko do odczytu
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 czatu grupowego.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ą sesję główną.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 wielokontowości).
identityLinks: mapuje kanoniczne identyfikatory do peerów z prefiksem dostawcy dla współdzielenia sesji między kanałami.reset: główna zasada resetu.dailyresetuje oatHourczasu lokalnego;idleresetuje poidleMinutes. Gdy skonfigurowano oba, wygrywa to, co wygaśnie wcześniej.resetByType: nadpisania per typ (direct,group,thread). Starszedmakceptowane jako alias dladirect.parentForkMaxTokens: maksymalna liczbatotalTokensw sesji nadrzędnej dozwolona przy tworzeniu sforkowanej sesji wątku (domyślnie100000).- Jeśli
totalTokensrodzica przekracza tę wartość, OpenClaw rozpoczyna nową sesję wątku zamiast dziedziczyć historię transkryptu rodzica. - Ustaw
0, aby wyłączyć tę ochronę i zawsze zezwalać na forking od rodzica.
- Jeśli
mainKey: pole starsze. Środowisko uruchomieniowe zawsze używa teraz"main"dla głównego bucketu czatu bezpośredniego.agentToAgent.maxPingPongTurns: maksymalna liczba tur odpowiedzi zwrotnych między agentami podczas wymian agent-agent (liczba całkowita, zakres:0–5).0wyłącza łańcuchy ping-pong.sendPolicy: dopasowuje pochannel,chatType(direct|group|channel, ze starszym aliasemdm),keyPrefixlubrawKeyPrefix. Pierwsze deny wygrywa.maintenance: kontrolki czyszczenia magazynu sesji i retencji.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: obracasessions.json, gdy przekroczy ten rozmiar (domyślnie10mb).resetArchiveRetention: retencja dla archiwów transkryptów*.reset.<timestamp>. DomyślniepruneAfter; ustawfalse, aby wyłączyć.maxDiskBytes: opcjonalny budżet dyskowy katalogu sesji. W trybiewarnzapisuje ostrzeżenia; w trybieenforceusuwa najstarsze artefakty/sesje jako pierwsze.highWaterBytes: opcjonalny cel po czyszczeniu budżetu. Domyślnie80%wartościmaxDiskBytes.
threadBindings: globalne wartości domyślne dla funkcji sesji powiązanych z wątkami.enabled: główny przełącznik domyślny (dostawcy mogą nadpisać; Discord używachannels.discord.threadBindings.enabled)idleHours: domyślne automatyczne odfokusowanie po bezczynności w godzinach (0wyłącza; dostawcy mogą nadpisać)maxAgeHours: domyślny sztywny maksymalny wiek w godzinach (0wyłącza; dostawcy mogą nadpisać)
Wiadomości
Prefiks odpowiedzi
Nadpisania per kanał/konto:channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Rozstrzyganie (najbardziej szczegółowe wygrywa): 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 dostawcy | anthropic |
{thinkingLevel} | Bieżący poziom thinking | high, low, off |
{identity.name} | Nazwa tożsamości agenta | (to samo co "auto") |
{think} jest aliasem dla {thinkingLevel}.
Reakcja ack
- 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ść rozstrzygania: konto → kanał →
messages.ackReaction→ wartość zapasowa z identity. - Zakres:
group-mentions(domyślnie),group-all,direct,all. removeAckAfterReply: usuwa ack 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 brak ustawienia utrzymuje reakcje statusu włączone, gdy aktywne są reakcje ack. W Telegram ustaw to jawnie natrue, aby włączyć reakcje statusu cyklu życia.
Debounce przychodzących
Łączy szybkie wiadomości tekstowe od tego samego nadawcy w jedną turę agenta. Media/załączniki są opróżniane natychmiast. Polecenia kontrolne omijają debounce.TTS (text-to-speech)
autokontroluje auto-TTS./tts off|always|inbound|taggednadpisuje per sesję.summaryModelnadpisujeagents.defaults.model.primarydla automatycznego podsumowania.modelOverridesjest domyślnie włączone;modelOverrides.allowProviderdomyślnie ma wartośćfalse(opt-in).- Klucze API wracają do
ELEVENLABS_API_KEY/XI_API_KEYorazOPENAI_API_KEY. openai.baseUrlnadpisuje endpoint OpenAI TTS. Kolejność rozstrzygania to config, potemOPENAI_TTS_BASE_URL, a następniehttps://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
Domyślne ustawienia trybu Talk (macOS/iOS/Android).talk.providermusi odpowiadać kluczowi wtalk.providers, gdy skonfigurowano wielu dostawcó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 wracają do
ELEVENLABS_VOICE_IDlubSAG_VOICE_ID. providers.*.apiKeyakceptuje jawne stringi lub obiekty SecretRef.- Wartość zapasowa
ELEVENLABS_API_KEYma zastosowanie 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 przed wysłaniem transkryptu. Brak ustawienia zachowuje domyślne okno pauzy platformy (700 ms na macOS i Android, 900 ms na iOS).
Narzędzia
Profile narzędzi
tools.profile ustawia bazową listę dozwolonych przed tools.allow/tools.deny:
Lokalny onboarding domyślnie ustawia w nowych lokalnych konfiguracjach tools.profile: "coding", gdy brak ustawienia (istniejące jawne profile są zachowywane).
| Profil | Zawiera |
|---|---|
minimal | Tylko session_status |
coding | group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate |
messaging | group:messaging, sessions_list, sessions_history, sessions_send, session_status |
full | Bez ograniczeń (tak samo jak brak ustawienia) |
Grupy narzędzi
| Grupa | Narzędzia |
|---|---|
group:runtime | exec, process, code_execution (bash jest akceptowane jako alias dla exec) |
group:fs | read, write, edit, apply_patch |
group:sessions | sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory | memory_search, memory_get |
group:web | web_search, x_search, web_fetch |
group:ui | browser, canvas |
group:automation | cron, gateway |
group:messaging | message |
group:nodes | nodes |
group:agents | agents_list |
group:media | image, image_generate, tts |
group:openclaw | Wszystkie wbudowane narzędzia (bez pluginów dostawców) |
tools.allow / tools.deny
Globalna polityka allow/deny dla narzędzi (deny wygrywa). Bez rozróżniania wielkości liter, obsługuje wildcardy *. Stosowana nawet wtedy, gdy sandbox Docker jest wyłączony.
tools.byProvider
Dalsze ograniczanie narzędzi dla określonych dostawców lub modeli. Kolejność: profil bazowy → profil dostawcy → allow/deny.
tools.elevated
Kontroluje elevated доступ do exec poza sandboxem:
- Nadpisanie per agent (
agents.list[].tools.elevated) może tylko dalej ograniczać. /elevated on|off|ask|fullzapisuje stan per sesja; dyrektywy inline mają zastosowanie do pojedynczej wiadomości.- Elevated
execomija sandbox i używa skonfigurowanej ścieżki wyjścia (gatewaydomyślnie lubnode, gdy celem exec jestnode).
tools.exec
tools.loopDetection
Kontrole bezpieczeństwa pętli narzędzi są domyślnie wyłączone. Ustaw enabled: true, aby włączyć wykrywanie.
Ustawienia można definiować globalnie w tools.loopDetection i nadpisywać per agent w agents.list[].tools.loopDetection.
historySize: maksymalna historia wywołań narzędzi zachowywana do analizy pętli.warningThreshold: próg ostrzeżeń dla powtarzających się wzorców bez postępu.criticalThreshold: wyższy próg blokowania krytycznych pętli.globalCircuitBreakerThreshold: próg twardego zatrzymania dla każdego przebiegu bez postępu.detectors.genericRepeat: ostrzegaj przy powtarzających się wywołaniach tego samego narzędzia z tymi samymi argumentami.detectors.knownPollNoProgress: ostrzegaj/blokuj przy znanych narzędziach poll (process.poll,command_statusitp.).detectors.pingPong: ostrzegaj/blokuj przy naprzemiennych parach wzorców bez postępu.- Jeśli
warningThreshold >= criticalThresholdlubcriticalThreshold >= globalCircuitBreakerThreshold, walidacja kończy się niepowodzeniem.
tools.web
tools.media
Konfiguruje rozumienie mediów przychodzących (obraz/audio/wideo):
Pola wpisu modelu mediów
Pola wpisu modelu mediów
Wpis dostawcy (
type: "provider" lub pominięte):provider: identyfikator dostawcy API (openai,anthropic,google/gemini,groqitd.)model: nadpisanie identyfikatora modeluprofile/preferredProfile: wybór profilu zauth-profiles.json
type: "cli"):command: wykonywalne polecenie do uruchomieniaargs: argumenty szablonowe (obsługuje{{MediaPath}},{{Prompt}},{{MaxChars}}itd.)
capabilities: opcjonalna lista (image,audio,video). Domyślnie:openai/anthropic/minimax→ image,google→ image+audio+video,groq→ audio.prompt,maxChars,maxBytes,timeoutSeconds,language: nadpisania per wpis.- Błędy powodują przejście do następnego wpisu.
auth-profiles.json → zmienne env → models.providers.*.apiKey.tools.agentToAgent
tools.sessions
Kontroluje, które sesje mogą być celem narzędzi sesji (sessions_list, sessions_history, sessions_send).
Domyślnie: tree (bieżąca sesja + sesje utworzone z niej, takie jak subagenci).
self: tylko bieżący klucz sesji.tree: bieżąca sesja + sesje utworzone przez bieżącą sesję (subagenci).agent: dowolna sesja należąca do bieżącego identyfikatora agenta (może obejmować innych użytkowników, jeśli uruchamiasz sesje per nadawca pod tym samym identyfikatorem agenta).all: dowolna sesja. Targetowanie między agentami nadal wymagatools.agentToAgent.- Ograniczenie sandbox: gdy bieżąca sesja jest sandboxowana i
agents.defaults.sandbox.sessionToolsVisibility="spawned", widoczność jest wymuszana natree, nawet jeślitools.sessions.visibility="all".
tools.sessions_spawn
Kontroluje obsługę załączników inline dla sessions_spawn.
- Załączniki są obsługiwane tylko dla
runtime: "subagent". Środowisko ACP je odrzuca. - Pliki są materializowane w workspace dziecka w
.openclaw/attachments/<uuid>/z plikiem.manifest.json. - Zawartość załączników jest automatycznie redagowana przy zapisie transkryptu.
- Wejścia base64 są walidowane przy użyciu ścisłych kontroli alfabetu/paddingu i ochrony rozmiaru przed dekodowaniem.
- Uprawnienia plików to
0700dla katalogów i0600dla plików. - Czyszczenie podąża za zasadą
cleanup:deletezawsze usuwa załączniki;keepzachowuje je tylko wtedy, gdyretainOnSessionKeep: true.
tools.experimental
Eksperymentalne flagi wbudowanych narzędzi. Domyślnie wyłączone, chyba że zastosowanie ma reguła auto-enable specyficzna dla środowiska uruchomieniowego.
planTool: włącza strukturalne narzędzieupdate_plando śledzenia nietrywialnych prac wieloetapowych.- Domyślnie:
falsedla dostawców innych niż OpenAI. Przebiegi OpenAI i OpenAI Codex włączają je automatycznie. - Gdy włączone, system prompt dodaje też wskazówki użycia, aby model korzystał z niego tylko przy znaczącej pracy i utrzymywał co najwyżej jeden krok
in_progress.
agents.defaults.subagents
model: domyślny model dla uruchamianych subagentów. Jeśli pominięty, subagenci dziedziczą model wywołującego.allowAgents: domyślna lista dozwolonych docelowych identyfikatorów agentów dlasessions_spawn, gdy agent żądający nie ustawia własnegosubagents.allowAgents(["*"]= dowolny; domyślnie: tylko ten sam agent).runTimeoutSeconds: domyślny timeout (sekundy) dlasessions_spawn, gdy wywołanie narzędzia pomijarunTimeoutSeconds.0oznacza brak timeoutu.- Polityka narzędzi per subagent:
tools.subagents.tools.allow/tools.subagents.tools.deny.
Niestandardowi dostawcy i base URL
OpenClaw używa wbudowanego katalogu modeli. Dodawaj niestandardowych dostawców przezmodels.providers w konfiguracji lub ~/.openclaw/agents/<agentId>/agent/models.json.
- Użyj
authHeader: true+headersdla niestandardowych potrzeb uwierzytelniania. - Nadpisz katalog główny konfiguracji agenta przez
OPENCLAW_AGENT_DIR(lubPI_CODING_AGENT_DIR, starszy alias zmiennej środowiskowej). - Priorytet scalania dla pasujących identyfikatorów dostawców:
- Niepuste wartości
baseUrlwmodels.jsonagenta wygrywają. - Niepuste wartości
apiKeyagenta wygrywają tylko wtedy, gdy ten dostawca nie jest zarządzany przez SecretRef w bieżącym kontekście konfiguracji/profilu uwierzytelniania. - Wartości
apiKeydostawców zarządzanych przez SecretRef są odświeżane na podstawie znaczników źródła (ENV_VAR_NAMEdla referencji env,secretref-manageddla referencji file/exec) zamiast utrwalania rozwiązanych sekretów. - Wartości nagłówków dostawców zarządzanych przez SecretRef są odświeżane na podstawie znaczników źródła (
secretref-env:ENV_VAR_NAMEdla referencji env,secretref-manageddla referencji file/exec). - Puste lub brakujące
apiKey/baseUrlagenta wracają domodels.providersw konfiguracji. - Dla pasujących modeli
contextWindow/maxTokensużywają wyższej wartości spośród jawnej konfiguracji i niejawnych wartości katalogowych. - Dla pasujących modeli
contextTokenszachowuje jawny limit środowiska uruchomieniowego, jeśli jest obecny; użyj go, aby ograniczyć efektywny kontekst bez zmiany natywnych metadanych modelu. - Użyj
models.mode: "replace", gdy chcesz, aby konfiguracja całkowicie przepisałamodels.json. - Utrwalanie znaczników jest źródłowo-autorytatywne: znaczniki są zapisywane z aktywnego snapshotu konfiguracji źródłowej (przed rozwiązaniem), a nie z rozwiązanych wartości sekretów środowiska uruchomieniowego.
- Niepuste wartości
Szczegóły pól dostawcy
models.mode: zachowanie katalogu dostawców (mergelubreplace).models.providers: mapa niestandardowych dostawców kluczowana po identyfikatorze dostawcy.models.providers.*.api: adapter żądań (openai-completions,openai-responses,anthropic-messages,google-generative-aiitd.).models.providers.*.apiKey: poświadczenie dostawcy (preferuj SecretRef/zastępowanie env).models.providers.*.auth: strategia uwierzytelniania (api-key,token,oauth,aws-sdk).models.providers.*.injectNumCtxForOpenAICompat: dla Ollama +openai-completions, wstrzykujoptions.num_ctxdo żądań (domyślnie:true).models.providers.*.authHeader: wymuś transport poświadczeń w nagłówkuAuthorization, gdy to wymagane.models.providers.*.baseUrl: bazowy URL upstream API.models.providers.*.headers: dodatkowe statyczne nagłówki dla routingu proxy/tenant.models.providers.*.request: nadpisania transportu dla żądań HTTP dostawcy modeli.request.headers: dodatkowe nagłówki (scalane z domyślnymi nagłówkami dostawcy). Wartości akceptują SecretRef.request.auth: nadpisanie strategii uwierzytelniania. Tryby:"provider-default"(użyj wbudowanego uwierzytelniania dostawcy),"authorization-bearer"(ztoken),"header"(zheaderName,value, opcjonalnymprefix).request.proxy: nadpisanie proxy HTTP. Tryby:"env-proxy"(użyj zmiennych envHTTP_PROXY/HTTPS_PROXY),"explicit-proxy"(zurl). Oba tryby akceptują opcjonalny pod-obiekttls.request.tls: nadpisanie TLS dla połączeń bezpośrednich. Pola:ca,cert,key,passphrase(wszystkie akceptują SecretRef),serverName,insecureSkipVerify.
models.providers.*.models: jawne wpisy katalogu modeli dostawcy.models.providers.*.models.*.contextWindow: metadane natywnego okna kontekstu modelu.models.providers.*.models.*.contextTokens: opcjonalny limit kontekstu środowiska uruchomieniowego. Użyj tego, gdy chcesz mniejszego efektywnego budżetu kontekstu niż natywnecontextWindowmodelu.models.providers.*.models.*.compat.supportsDeveloperRole: opcjonalna wskazówka zgodności. Dlaapi: "openai-completions"z niepustym, nienatywnymbaseUrl(host inny niżapi.openai.com), OpenClaw wymusza to nafalsew środowisku uruchomieniowym. Puste/pominiętebaseUrlzachowuje domyślne zachowanie OpenAI.plugins.entries.amazon-bedrock.config.discovery: główny katalog ustawień auto-discovery Bedrock.plugins.entries.amazon-bedrock.config.discovery.enabled: włącz/wyłącz niejawne discovery.plugins.entries.amazon-bedrock.config.discovery.region: region AWS dla discovery.plugins.entries.amazon-bedrock.config.discovery.providerFilter: opcjonalny filtr identyfikatorów dostawców dla ukierunkowanego discovery.plugins.entries.amazon-bedrock.config.discovery.refreshInterval: interwał odświeżania polling discovery.plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: zapasowe okno kontekstu dla wykrytych modeli.plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: zapasowa maksymalna liczba tokenów wyjściowych dla wykrytych modeli.
Przykłady dostawców
Cerebras (GLM 4.6 / 4.7)
Cerebras (GLM 4.6 / 4.7)
cerebras/zai-glm-4.7 dla Cerebras; zai/glm-4.7 dla bezpośredniego Z.AI.OpenCode
OpenCode
OPENCODE_API_KEY (lub OPENCODE_ZEN_API_KEY). Używaj odwołań opencode/... dla katalogu Zen lub opencode-go/... dla katalogu Go. Skrót: openclaw onboard --auth-choice opencode-zen lub openclaw onboard --auth-choice opencode-go.Z.AI (GLM-4.7)
Z.AI (GLM-4.7)
ZAI_API_KEY. z.ai/* i z-ai/* są akceptowanymi aliasami. Skrót: openclaw onboard --auth-choice zai-api-key.- Ogólny endpoint:
https://api.z.ai/api/paas/v4 - Endpoint coding (domyślnie):
https://api.z.ai/api/coding/paas/v4 - Dla ogólnego endpointu zdefiniuj niestandardowego dostawcę z nadpisaniem base URL.
Moonshot AI (Kimi)
Moonshot AI (Kimi)
baseUrl: "https://api.moonshot.cn/v1" lub openclaw onboard --auth-choice moonshot-api-key-cn.Natywne endpointy Moonshot deklarują zgodność użycia strumieniowania na współdzielonym
transporcie openai-completions, a OpenClaw ustala to teraz na podstawie możliwości endpointu,
a nie tylko wbudowanego identyfikatora dostawcy.Kimi Coding
Kimi Coding
openclaw onboard --auth-choice kimi-code-api-key.Synthetic (zgodny z Anthropic)
Synthetic (zgodny z Anthropic)
/v1 (klient Anthropic sam je dopisuje). Skrót: openclaw onboard --auth-choice synthetic-api-key.MiniMax M2.7 (bezpośrednio)
MiniMax M2.7 (bezpośrednio)
MINIMAX_API_KEY. Skróty:
openclaw onboard --auth-choice minimax-global-api lub
openclaw onboard --auth-choice minimax-cn-api.
Katalog modeli domyślnie zawiera teraz tylko M2.7.
Na ścieżce strumieniowania zgodnej z Anthropic OpenClaw domyślnie wyłącza thinking MiniMax,
chyba że jawnie ustawisz thinking. /fast on lub
params.fastMode: true przepisuje MiniMax-M2.7 na
MiniMax-M2.7-highspeed.Modele lokalne (LM Studio)
Modele lokalne (LM Studio)
Zobacz Local Models. W skrócie: uruchom duży model lokalny przez LM Studio Responses API na mocnym sprzęcie; zachowaj hostowane modele scalone jako fallback.
Skills
allowBundled: opcjonalna lista dozwolonych tylko dla dołączonych Skills (zarządzane/workspace Skills pozostają bez wpływu).load.extraDirs: dodatkowe współdzielone katalogi główne Skills (najniższy priorytet).install.preferBrew: gdy true, preferuje instalatory Homebrew, jeślibrewjest dostępne, zanim wróci do innych typów instalatorów.install.nodeManager: preferencja instalatora Node dla specyfikacjimetadata.openclaw.install(npm|pnpm|yarn|bun).entries.<skillKey>.enabled: falsewyłącza Skill nawet jeśli jest dołączony/zainstalowany.entries.<skillKey>.apiKey: pole wygody dla Skills deklarujących podstawową zmienną env (jawny string lub obiekt SecretRef).
Plugins
- Ładowane z
~/.openclaw/extensions,<workspace>/.openclaw/extensionsorazplugins.load.paths. - Discovery akceptuje natywne plugins OpenClaw oraz zgodne bundy Codex i Claude, w tym bundle Claude w domyślnym układzie bez manifestu.
- Zmiany konfiguracji wymagają restartu gateway.
allow: opcjonalna lista dozwolonych (ładują się tylko wymienione plugins).denywygrywa.plugins.entries.<id>.apiKey: wygodne pole klucza API na poziomie pluginu (gdy wspierane przez plugin).plugins.entries.<id>.env: mapa zmiennych env o zakresie pluginu.plugins.entries.<id>.hooks.allowPromptInjection: gdyfalse, rdzeń blokujebefore_prompt_buildi ignoruje pola mutujące prompt ze starszegobefore_agent_start, zachowując starszemodelOverrideiproviderOverride. Dotyczy natywnych hooków pluginów i wspieranych katalogów hooków dostarczanych przez bundle.plugins.entries.<id>.subagent.allowModelOverride: jawnie ufa temu pluginowi, że może żądać nadpisańproviderimodeldla uruchomień subagentów w tle.plugins.entries.<id>.subagent.allowedModels: opcjonalna lista dozwolonych kanonicznych celówprovider/modeldla zaufanych nadpisań subagentów. Używaj"*", tylko gdy świadomie chcesz zezwolić na dowolny model.plugins.entries.<id>.config: obiekt konfiguracji zdefiniowany przez plugin (walidowany przez natywny schemat pluginu OpenClaw, jeśli dostępny).plugins.entries.firecrawl.config.webFetch: ustawienia dostawcy web-fetch Firecrawl.apiKey: klucz API Firecrawl (akceptuje SecretRef). Wraca doplugins.entries.firecrawl.config.webSearch.apiKey, starszegotools.web.fetch.firecrawl.apiKeylub zmiennej envFIRECRAWL_API_KEY.baseUrl: bazowy URL API Firecrawl (domyślnie:https://api.firecrawl.dev).onlyMainContent: wyciągaj tylko główną treść stron (domyślnie:true).maxAgeMs: maksymalny wiek cache w milisekundach (domyślnie:172800000/ 2 dni).timeoutSeconds: timeout żądania scrape w sekundach (domyślnie:60).
plugins.entries.xai.config.xSearch: ustawienia xAI X Search (wyszukiwanie web Grok).enabled: włącza dostawcę X Search.model: model Grok używany do wyszukiwania (np."grok-4-1-fast").
plugins.entries.memory-core.config.dreaming: ustawienia memory dreaming (eksperymentalne). Zobacz Dreaming, aby poznać tryby i progi.mode: preset częstotliwości dreaming ("off","core","rem","deep"). Domyślnie:"off".cron: opcjonalne nadpisanie wyrażenia cron dla harmonogramu dreaming.timezone: strefa czasowa dla oceny harmonogramu (wraca doagents.defaults.userTimezone).limit: maksymalna liczba kandydatów do promowania na cykl.minScore: minimalny ważony próg wyniku dla promowania.minRecallCount: minimalny próg liczby recall.minUniqueQueries: minimalny próg liczby unikalnych zapytań.
- Włączone plugins bundle Claude mogą również dostarczać osadzone domyślne ustawienia Pi z
settings.json; OpenClaw stosuje je jako oczyszczone ustawienia agenta, a nie jako