Klucze konfiguracji poszczególnych kanałów wDocumentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
channels.*. Obejmuje dostęp do DM i grup,
konfiguracje z wieloma kontami, bramkowanie wzmiankami oraz klucze poszczególnych kanałów dla Slack, Discord,
Telegram, WhatsApp, Matrix, iMessage i innych dołączonych Plugin kanałów.
Informacje o agentach, narzędziach, środowisku uruchomieniowym Gateway i innych kluczach najwyższego poziomu znajdziesz w
Dokumentacji konfiguracji.
Kanały
Każdy kanał uruchamia się automatycznie, gdy istnieje jego sekcja konfiguracji (chyba że ustawionoenabled: 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 otrzymują jednorazowy kod parowania; właściciel musi zatwierdzić |
allowlist | Tylko nadawcy w allowFrom (lub w sparowanym magazynie dozwolonych) |
open | Zezwól na wszystkie przychodzące DM (wymaga allowFrom: ["*"]) |
disabled | Ignoruj wszystkie przychodzące DM |
| Zasada grup | Zachowanie |
|---|---|
allowlist (domyślna) | Tylko grupy pasujące do skonfigurowanej listy dozwolonych |
open | Pomijaj listy dozwolonych grup (bramkowanie wzmiankami nadal obowiązuje) |
disabled | Blokuj wszystkie wiadomości z grup/pokoi |
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łkowicie brakuje bloku dostawcy (channels.<provider> jest nieobecne), zasada grup w środowisku uruchomieniowym wraca do allowlist (fail-closed) z ostrzeżeniem przy uruchomieniu.Nadpisania modelu kanału
Użyjchannels.modelByChannel, aby przypiąć konkretne identyfikatory kanałów do modelu. Wartości akceptują provider/model lub skonfigurowane aliasy modeli. Mapowanie kanału 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 dla wspólnych zachowań zasad grup i Heartbeat u różnych dostawców:
channels.defaults.groupPolicy: zastępcza zasada grup, 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ślna, uwzględnia cały cytowany/wątkowy/historyczny kontekst),allowlist(uwzględnia tylko kontekst od nadawców z listy dozwolonych),allowlist_quote(tak samo jak allowlist, ale zachowuje jawny kontekst cytatu/odpowiedzi). Nadpisanie dla kanału:channels.<channel>.contextVisibility.channels.defaults.heartbeat.showOk: uwzględniaj statusy zdrowych kanałów w wyniku Heartbeat.channels.defaults.heartbeat.showAlerts: uwzględniaj statusy zdegradowane/błędu w wyniku Heartbeat.channels.defaults.heartbeat.useIndicator: renderuj kompaktowy wynik Heartbeat w stylu wskaźnika.
WhatsApp z wieloma kontami
WhatsApp z wieloma kontami
- Polecenia wychodzące domyślnie używają konta
default, jeśli istnieje; w przeciwnym razie pierwszego skonfigurowanego identyfikatora konta (posortowanego). - Opcjonalne
channels.whatsapp.defaultAccountnadpisuje ten zastępczy domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. - Starszy katalog auth Baileys dla jednego konta jest migrowany przez
openclaw doctordowhatsapp/default. - Nadpisania dla konta:
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 odrzucane), zTELEGRAM_BOT_TOKENjako wartością zastępczą dla domyślnego konta. apiRootto tylko korzeń Telegram Bot API. Użyjhttps://api.telegram.orgalbo własnego korzenia self-hosted/proxy, niehttps://api.telegram.org/bot<TOKEN>;openclaw doctor --fixusuwa przypadkowy końcowy sufiks/bot<TOKEN>.- Opcjonalne
channels.telegram.defaultAccountnadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. - W konfiguracjach z wieloma kontami (2+ identyfikatory kont) ustaw jawne konto domyślne (
channels.telegram.defaultAccountlubchannels.telegram.accounts.default), aby uniknąć trasowania zastępczego;openclaw doctorostrzega, gdy go 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 Agentach ACP. - Podglądy strumienia Telegram używają
sendMessage+editMessageText(działa w czatach bezpośrednich i grupowych). - Zasada ponawiania: zobacz Zasadę ponawiania.
Discord
- Token:
channels.discord.token, zDISCORD_BOT_TOKENjako fallbackiem dla konta domyślnego. - Bezpośrednie wywołania wychodzące, które podają jawny Discord
token, używają tego tokenu dla wywołania; ustawienia ponawiania/polityki konta nadal pochodzą z wybranego konta w aktywnej migawce środowiska uruchomieniowego. - Opcjonalne
channels.discord.defaultAccountzastępuje wybór konta domyślnego, gdy pasuje do skonfigurowanego identyfikatora konta. - Użyj
user:<id>(DM) albochannel:<id>(kanał gildii) jako celów dostarczania; same identyfikatory numeryczne są odrzucane. - Slugi gildii są pisane małymi literami, a spacje zastępuje się
-; klucze kanałów używają nazwy w postaci sluga (bez#). Preferuj identyfikatory gildii. - Wiadomości autorstwa bota 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).channels.discord.mentionAliasesmapuje stabilny wychodzący tekst@handlena identyfikatory użytkowników Discord przed wysłaniem, dzięki czemu znani członkowie zespołu mogą być wspominani deterministycznie nawet wtedy, gdy tymczasowa pamięć podręczna katalogu jest pusta. Nadpisania dla poszczególnych kont znajdują się podchannels.discord.accounts.<accountId>.mentionAliases.maxLinesPerMessage(domyślnie 17) dzieli wysokie wiadomości nawet wtedy, gdy mają mniej niż 2000 znaków.channels.discord.threadBindingssteruje routingiem powiązanym z wątkami Discord:enabled: nadpisanie Discord dla funkcji sesji powiązanych z wątkiem (/focus,/unfocus,/agents,/session idle,/session max-ageoraz powiązane dostarczanie/routing)idleHours: nadpisanie Discord dla automatycznego wycofania fokusu po bezczynności, w godzinach (0wyłącza)maxAgeHours: nadpisanie Discord dla twardego maksymalnego wieku, w godzinach (0wyłącza)spawnSessions: przełącznik dlasessions_spawn({ thread: true })oraz automatycznego tworzenia/powiązania wątku ACP thread-spawn (domyślnie:true)defaultSpawnContext: natywny kontekst subagenta dla uruchomień powiązanych z wątkiem (domyślnie"fork")
- 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ólna w Agenci ACP. channels.discord.ui.components.accentColorustawia kolor akcentu dla kontenerów komponentów Discord v2.channels.discord.voicewłącza rozmowy w kanałach głosowych Discord oraz opcjonalne nadpisania automatycznego dołączania + LLM + TTS. Konfiguracje Discord wyłącznie tekstowe domyślnie pozostawiają głos wyłączony; ustawchannels.discord.voice.enabled=true, aby się włączyć.channels.discord.voice.modelopcjonalnie nadpisuje model LLM używany do odpowiedzi w kanale głosowym Discord.channels.discord.voice.daveEncryptionichannels.discord.voice.decryptionFailureTolerancesą przekazywane do opcji DAVE@discordjs/voice(domyślnietruei24).channels.discord.voice.connectTimeoutMskontroluje początkowe oczekiwanie Ready@discordjs/voicedla prób/vc joini automatycznego dołączania (domyślnie30000).channels.discord.voice.reconnectGraceMskontroluje, ile czasu rozłączona sesja głosowa może mieć na wejście w sygnalizację ponownego połączenia, zanim OpenClaw ją zniszczy (domyślnie15000).- Odtwarzanie głosu Discord nie jest przerywane przez zdarzenie rozpoczęcia mówienia innego użytkownika. Aby uniknąć pętli sprzężenia zwrotnego, OpenClaw ignoruje nowe przechwytywanie głosu podczas odtwarzania TTS.
- OpenClaw dodatkowo próbuje odzyskać odbiór głosu przez opuszczenie sesji głosowej i ponowne do niej dołączenie po powtarzających się błędach odszyfrowywania.
channels.discord.streamingjest kanonicznym kluczem trybu strumienia. Discord domyślnie używastreaming.mode: "progress", dzięki czemu postęp narzędzia/pracy pojawia się w jednej edytowanej wiadomości podglądu; ustawstreaming.mode: "off", aby go wyłączyć. Starsze wartościstreamModeoraz boolowskiestreamingpozostają aliasami środowiska uruchomieniowego; uruchomopenclaw doctor --fix, aby przepisać utrwaloną konfigurację.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 według zmiennej nazwy/tagu (tryb zgodności awaryjnej).channels.discord.execApprovals: natywne dla Discord dostarczanie zatwierdzeń exec i autoryzacja zatwierdzających.enabled:true,falsealbo"auto"(domyślnie). W trybie auto zatwierdzenia exec aktywują się, gdy zatwierdzających można rozpoznać zapproversalbocommands.ownerAllowFrom.approvers: identyfikatory użytkowników Discord uprawnionych do zatwierdzania żądań exec. Gdy pominięte, używa fallbacku 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 albo regex).target: gdzie wysyłać monity zatwierdzenia."dm"(domyślnie) wysyła do DM zatwierdzających,"channel"wysyła do kanału źródłowego,"both"wysyła do obu. Gdy target obejmuje"channel", przycisków mogą używać tylko rozpoznani zatwierdzający.cleanupAfterResolve: gdytrue, usuwa DM zatwierdzeń po zatwierdzeniu, odmowie albo przekroczeniu limitu czasu.
off (brak), own (wiadomości bota, domyślnie), all (wszystkie wiadomości), allowlist (z guilds.<id>.users we wszystkich wiadomościach).
Google Chat
- JSON konta usługi: wbudowany (
serviceAccount) albo oparty na pliku (serviceAccountFile). - Obsługiwany jest również SecretRef konta usługi (
serviceAccountRef). - Fallbacki env:
GOOGLE_CHAT_SERVICE_ACCOUNTalboGOOGLE_CHAT_SERVICE_ACCOUNT_FILE. - Użyj
spaces/<spaceId>albousers/<userId>jako celów dostarczania. channels.googlechat.dangerouslyAllowNameMatchingponownie włącza dopasowywanie według zmiennego pryncypała e-mail (tryb zgodności awaryjnej).
Slack
- Tryb Socket wymaga zarówno
botToken, jak iappToken(SLACK_BOT_TOKEN+SLACK_APP_TOKENdla fallbacku env konta domyślnego). - Tryb HTTP wymaga
botTokenorazsigningSecret(na poziomie root albo dla konta). socketModeprzekazuje strojenie transportu Slack SDK Socket Mode do publicznego API odbiornika Bolt. Używaj go tylko podczas badania limitów czasu ping/pong albo zachowania przestarzałego websocketu.botToken,appToken,signingSecretiuserTokenakceptują zwykłe tekstowe ciągi znaków albo obiekty SecretRef.- Migawki kont Slack ujawniają pola źródła/statusu dla poszczególnych poświadczeń, takie jak
botTokenSource,botTokenStatus,appTokenStatusoraz, w trybie HTTP,signingSecretStatus.configured_unavailableoznacza, że konto jest skonfigurowane przez SecretRef, ale bieżąca ścieżka polecenia/środowiska uruchomieniowego nie mogła rozpoznać wartości sekretu. configWrites: falseblokuje zapisy konfiguracji inicjowane przez Slack.- Opcjonalne
channels.slack.defaultAccountzastępuje wybór konta domyślnego, gdy pasuje do skonfigurowanego identyfikatora konta. channels.slack.streaming.modejest kanonicznym kluczem trybu strumienia Slack.channels.slack.streaming.nativeTransportsteruje natywnym transportem strumieniowym Slack. Starsze wartościstreamMode, boolowskiestreamingoraznativeStreamingpozostają aliasami środowiska uruchomieniowego; uruchomopenclaw doctor --fix, aby przepisać utrwaloną konfigurację.unfurlLinksiunfurlMediaprzekazują wartości boolowskie rozwijania linków i mediówchat.postMessageSlack dla odpowiedzi bota. Pomiń je, aby zachować domyślne zachowanie Slack; ustaw je wchannels.slack.accounts.<accountId>, aby nadpisać domyślną wartość najwyższego poziomu dla jednego konta.- Użyj
user:<id>(DM) albochannel:<id>jako celów dostarczania.
off, own (domyślnie), all, allowlist (z reactionAllowlist).
Izolacja sesji wątku: thread.historyScope jest osobny dla wątku (domyślnie) albo współdzielony w kanale. thread.inheritParent kopiuje transkrypt kanału nadrzędnego do nowych wątków.
- Natywne strumieniowanie Slack oraz status wątku w stylu asystenta Slack „is typing…” wymagają celu wątku odpowiedzi. DM najwyższego poziomu domyślnie pozostają poza wątkiem, więc nadal mogą strumieniować przez robocze podglądy publikowania i edycji Slack zamiast pokazywać podgląd natywnego strumienia/statusu w stylu wątku.
typingReactiondodaje tymczasową reakcję do przychodzącej wiadomości Slack podczas generowania odpowiedzi, a następnie usuwa ją po zakończeniu. Użyj skrótu emoji Slack, takiego jak"hourglass_flowing_sand".channels.slack.execApprovals: natywne dla Slack dostarczanie zatwierdzeń exec i autoryzacja zatwierdzających. Ten sam schemat co Discord:enabled(true/false/"auto"),approvers(identyfikatory użytkowników Slack),agentFilter,sessionFilteritarget("dm","channel"albo"both").
| Grupa akcji | Domyślnie | Uwagi |
|---|---|---|
| reactions | włączone | Reagowanie + lista reakcji |
| messages | włączone | Odczyt/wysyłanie/edycja/usuwanie |
| pins | włączone | Przypinanie/odpinanie/lista |
| memberInfo | włączone | Informacje o członku |
| emojiList | włączone | Lista niestandardowych emoji |
Mattermost
Mattermost jest dostarczany jako dołączany Plugin w bieżących wydaniach OpenClaw. Starsze albo niestandardowe kompilacje mogą zainstalować bieżący pakiet npm za pomocąopenclaw plugins install @openclaw/mattermost. Sprawdź
npmjs.com/package/@openclaw/mattermost
pod kątem bieżących dist-tags przed przypięciem wersji.
oncall (odpowiada na @-wzmiankę, domyślnie), onmessage (każda wiadomość), onchar (wiadomości zaczynające się od prefiksu wyzwalającego).
Gdy natywne polecenia Mattermost są włączone:
commands.callbackPathmusi być ścieżką (na przykład/api/channels/mattermost/command), a nie pełnym adresem URL.commands.callbackUrlmusi wskazywać endpoint Gateway OpenClaw i być osiągalny z serwera Mattermost.- Natywne wywołania zwrotne slash są uwierzytelniane za pomocą tokenów właściwych dla polecenia zwracanych
przez Mattermost podczas rejestracji polecenia slash. Jeśli rejestracja się nie powiedzie albo żadne
polecenia nie zostaną aktywowane, OpenClaw odrzuca wywołania zwrotne komunikatem
Unauthorized: invalid command token. - W przypadku prywatnych/tailnet/wewnętrznych hostów wywołań zwrotnych Mattermost może wymagać,
aby
ServiceSettings.AllowedUntrustedInternalConnectionszawierało host/domenę wywołania zwrotnego. Używaj wartości hosta/domeny, nie pełnych adresów URL. channels.mattermost.configWrites: zezwól na zapisy konfiguracji inicjowane przez Mattermost albo ich odmów.channels.mattermost.requireMention: wymagaj@mentionprzed odpowiedzią w kanałach.channels.mattermost.groups.<channelId>.requireMention: zastąpienie bramkowania wzmianki dla kanału ("*"jako domyślne).- Opcjonalne
channels.mattermost.defaultAccountzastępuje wybór domyślnego konta, gdy pasuje do skonfigurowanego identyfikatora konta.
Signal
off, own (domyślnie), all, allowlist (z reactionAllowlist).
channels.signal.account: przypnij uruchomienie kanału do konkretnej tożsamości konta Signal.channels.signal.configWrites: zezwól na zapisy konfiguracji inicjowane przez Signal albo ich odmów.- Opcjonalne
channels.signal.defaultAccountzastępuje wybór domyślnego konta, gdy pasuje do skonfigurowanego identyfikatora konta.
iMessage
OpenClaw uruchamiaimsg rpc (JSON-RPC przez stdio). Nie jest wymagany demon ani port. To preferowana ścieżka dla nowych konfiguracji OpenClaw iMessage, gdy host może przyznać uprawnienia do bazy danych Wiadomości i Automatyzacji.
Obsługa BlueBubbles została usunięta. channels.bluebubbles nie jest obsługiwaną powierzchnią konfiguracji runtime w bieżącym OpenClaw. Przenieś stare konfiguracje do channels.imessage; użyj Usunięcie BlueBubbles i ścieżka imsg iMessage dla krótkiej wersji oraz Migracja z BlueBubbles dla pełnej tabeli tłumaczeń.
Jeśli Gateway nie działa na Macu zalogowanym do Wiadomości, pozostaw channels.imessage.enabled=true i ustaw channels.imessage.cliPath na wrapper SSH, który uruchamia imsg "$@" na tym Macu. Domyślna lokalna ścieżka imsg działa tylko na macOS.
-
Opcjonalne
channels.imessage.defaultAccountzastępuje wybór domyślnego konta, gdy pasuje do skonfigurowanego identyfikatora konta. - Wymaga pełnego dostępu do dysku dla bazy danych Wiadomości.
-
Preferuj cele
chat_id:<id>. Użyjimsg chats --limit 20, aby wyświetlić czaty. -
cliPathmoże wskazywać wrapper SSH; ustawremoteHost(hostalbouser@host) do pobierania załączników przez SCP. -
attachmentRootsiremoteAttachmentRootsograniczają ścieżki załączników przychodzących (domyślnie:/Users/*/Library/Messages/Attachments). -
SCP używa ścisłego sprawdzania klucza hosta, więc upewnij się, że klucz hosta przekaźnika już istnieje w
~/.ssh/known_hosts. -
channels.imessage.configWrites: zezwól na zapisy konfiguracji inicjowane przez iMessage albo ich odmów. -
channels.imessage.actions.*: włącz akcje prywatnego API, które są również bramkowane przezimsg status/openclaw channels status --probe. -
channels.imessage.includeAttachmentsjest domyślnie wyłączone; ustaw je natrue, zanim zaczniesz oczekiwać multimediów przychodzących w turach agenta. -
channels.imessage.catchup.enabled: włącz odtwarzanie wiadomości przychodzących, które dotarły, gdy Gateway był wyłączony. -
channels.imessage.groups: rejestr grup i ustawienia dla grup. PrzygroupPolicy: "allowlist"skonfiguruj jawne kluczechat_idalbo wpis wieloznaczny"*", aby wiadomości grupowe mogły przejść przez bramkę rejestru. -
Wpisy najwyższego poziomu
bindings[]ztype: "acp"mogą powiązać rozmowy iMessage z trwałymi sesjami ACP. Użyj znormalizowanego uchwytu albo jawnego celu czatu (chat_id:*,chat_guid:*,chat_identifier:*) wmatch.peer.id. Semantyka pól współdzielonych: Agenci ACP.
Przykład wrappera SSH iMessage
Przykład wrappera SSH iMessage
Matrix
Matrix jest oparty na Plugin i konfigurowany wchannels.matrix.
- Uwierzytelnianie tokenem używa
accessToken; uwierzytelnianie hasłem używauserId+password. channels.matrix.proxykieruje ruch HTTP Matrix przez jawny serwer proxy HTTP(S). Nazwane konta mogą je zastąpić za pomocąchannels.matrix.accounts.<id>.proxy.channels.matrix.network.dangerouslyAllowPrivateNetworkzezwala na prywatne/wewnętrzne homeservery.proxyi ta zgoda sieciowa są niezależnymi kontrolkami.channels.matrix.defaultAccountwybiera preferowane konto w konfiguracjach z wieloma kontami.channels.matrix.autoJoindomyślnie ma wartośćoff, więc zaproszone pokoje i nowe zaproszenia w stylu DM są ignorowane, dopóki nie ustawiszautoJoin: "allowlist"zautoJoinAllowlistalboautoJoin: "always".channels.matrix.execApprovals: natywne dla Matrix dostarczanie zatwierdzeń exec i autoryzacja zatwierdzających.enabled:true,falsealbo"auto"(domyślnie). W trybie automatycznym zatwierdzenia exec aktywują się, gdy zatwierdzających można rozpoznać zapproversalbocommands.ownerAllowFrom.approvers: identyfikatory użytkowników Matrix (np.@owner:example.org) uprawnione do zatwierdzania żądań exec.agentFilter: opcjonalna lista dozwolonych identyfikatorów agentów. Pomiń, aby przekazywać zatwierdzenia dla wszystkich agentów.sessionFilter: opcjonalne wzorce kluczy sesji (podciąg albo wyrażenie regularne).target: dokąd wysyłać prośby o zatwierdzenie."dm"(domyślnie),"channel"(pokój źródłowy) albo"both".- Zastąpienia dla konta:
channels.matrix.accounts.<id>.execApprovals.
channels.matrix.dm.sessionScopekontroluje, jak DM Matrix grupują się w sesje:per-user(domyślnie) współdzieli według trasowanego rozmówcy, aper-roomizoluje każdy pokój DM.- Sondy statusu Matrix i dynamiczne wyszukiwania katalogu używają tej samej polityki proxy co ruch runtime.
- Pełna konfiguracja Matrix, reguły targetowania i przykłady konfiguracji są udokumentowane w Matrix.
Microsoft Teams
Microsoft Teams jest oparty na Plugin i konfigurowany wchannels.msteams.
- Główne ścieżki kluczy omówione tutaj:
channels.msteams,channels.msteams.configWrites. - Pełna konfiguracja Teams (poświadczenia, webhook, polityka DM/grup, zastąpienia dla zespołu/kanału) jest udokumentowana w Microsoft Teams.
IRC
IRC jest oparty na Plugin i konfigurowany wchannels.irc.
- Główne ścieżki kluczy omówione tutaj:
channels.irc,channels.irc.dmPolicy,channels.irc.configWrites,channels.irc.nickserv.*. - Opcjonalne
channels.irc.defaultAccountzastępuje wybór domyślnego konta, gdy pasuje do skonfigurowanego identyfikatora konta. - Pełna konfiguracja kanału IRC (host/port/TLS/kanały/listy dozwolonych/bramkowanie wzmianki) jest udokumentowana w IRC.
Wiele kont (wszystkie kanały)
Uruchamiaj wiele kont na kanał (każde z własnymaccountId):
defaultjest używane, gdyaccountIdzostanie pominięte (CLI + trasowanie).- Tokeny env dotyczą tylko konta domyślnego.
- Podstawowe ustawienia kanału dotyczą wszystkich kont, chyba że zostaną zastąpione dla konta.
- Użyj
bindings[].match.accountId, aby kierować każde konto do innego agenta. - Jeśli dodasz konto inne niż domyślne za pomocą
openclaw channels add(albo onboardingu kanału), gdy nadal używasz jednokontowej konfiguracji kanału najwyższego poziomu, OpenClaw najpierw promuje wartości jednokontowe najwyższego poziomu zależne od konta do mapy kont kanału, aby pierwotne 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 nazwany/domyślny cel. - Istniejące powiązania tylko kanału (bez
accountId) nadal pasują do domyślnego konta; powiązania zależne od konta pozostają opcjonalne. openclaw doctor --fixnaprawia także mieszane kształty, przenosząc wartości jednokontowe najwyższego poziomu zależne od konta do promowanego konta wybranego dla tego kanału. Większość kanałów używaaccounts.default; Matrix może zamiast tego zachować istniejący pasujący nazwany/domyślny cel.
Inne kanały Plugin
Wiele kanałów Plugin jest konfigurowanych jakochannels.<id> i dokumentowanych na swoich dedykowanych stronach kanałów (na przykład Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat i Twitch).
Zobacz pełny indeks kanałów: Kanały.
Bramkowanie wzmianek w czacie grupowym
Wiadomości grupowe domyślnie wymagają wzmianki (wzmianka metadanych albo bezpieczne wzorce regex). Dotyczy czatów grupowych WhatsApp, Telegram, Discord, Google Chat i iMessage. Widoczne odpowiedzi są kontrolowane osobno. Pokoje grup/kanałów domyślnie używająmessages.groupChat.visibleReplies: "message_tool": OpenClaw nadal przetwarza turę, ale zwykłe odpowiedzi końcowe pozostają prywatne, a widoczny wynik w pokoju wymaga message(action=send). Ustaw "automatic" tylko wtedy, gdy chcesz starsze zachowanie, w którym zwykłe odpowiedzi są publikowane z powrotem w pokoju. Aby zastosować takie samo zachowanie widocznej odpowiedzi wyłącznie przez narzędzie także do czatów bezpośrednich, ustaw messages.visibleReplies: "message_tool"; harness Codex używa również tego zachowania wyłącznie przez narzędzie jako domyślnego dla nieustawionych czatów bezpośrednich.
Widoczne odpowiedzi wyłącznie przez narzędzie wymagają modelu/środowiska runtime, które niezawodnie wywołuje narzędzia. Jeśli
dziennik sesji pokazuje tekst asystenta z didSendViaMessagingTool: false,
model utworzył prywatną odpowiedź końcową zamiast wywołać narzędzie wiadomości.
Przełącz ten kanał na silniejszy model wywołujący narzędzia albo ustaw
messages.groupChat.visibleReplies: "automatic", aby przywrócić starsze widoczne odpowiedzi
końcowe.
Jeśli narzędzie wiadomości jest niedostępne w ramach aktywnej polityki narzędzi, OpenClaw przechodzi na automatyczne widoczne odpowiedzi zamiast po cichu tłumić odpowiedź. openclaw doctor ostrzega o tej niezgodności.
Gateway przeładowuje konfigurację messages na gorąco po zapisaniu pliku. Uruchom ponownie tylko wtedy, gdy obserwowanie plików lub przeładowanie konfiguracji jest wyłączone we wdrożeniu.
Typy wzmianek:
- Wzmianki metadanych: natywne wzmianki @ platformy. Ignorowane w trybie czatu z samym sobą WhatsApp.
- Wzorce tekstowe: bezpieczne wzorce regex w
agents.list[].groupChat.mentionPatterns. Nieprawidłowe wzorce i niebezpieczne zagnieżdżone powtórzenia są ignorowane. - Bramkowanie wzmianek jest wymuszane tylko wtedy, gdy wykrywanie jest możliwe (wzmianki natywne lub co najmniej jeden wzorzec).
messages.groupChat.historyLimit ustawia globalną wartość domyślną. Kanały mogą ją nadpisać za pomocą channels.<channel>.historyLimit (lub dla poszczególnych kont). Ustaw 0, aby wyłączyć.
messages.visibleReplies jest globalną wartością domyślną dla tur źródłowych; messages.groupChat.visibleReplies nadpisuje ją dla tur źródłowych grup/kanałów. Gdy messages.visibleReplies nie jest ustawione, harness może dostarczyć własną domyślną wartość dla bezpośredniego/źródłowego czatu; harness Codex domyślnie używa message_tool. Listy dozwolonych kanałów i bramkowanie wzmianek nadal decydują, czy tura jest przetwarzana.
Limity historii DM
telegram, whatsapp, discord, slack, signal, imessage, msteams.
Tryb czatu z samym sobą
Dodaj własny numer doallowFrom, aby włączyć tryb czatu z samym sobą (ignoruje natywne wzmianki @, odpowiada tylko na wzorce tekstowe):
Polecenia (obsługa poleceń czatu)
Szczegóły poleceń
Szczegóły poleceń
- Ten blok konfiguruje powierzchnie poleceń. Aktualny katalog poleceń wbudowanych i dołączonych znajdziesz w Poleceniach ukośnikiem.
- Ta strona jest referencją kluczy konfiguracji, a nie pełnym katalogiem poleceń. Polecenia należące do kanałów/Plugin, takie jak QQ Bot
/bot-ping/bot-help/bot-logs, LINE/card, parowanie urządzeń/pair, pamięć/dreaming, sterowanie telefonem/phonei Talk/voice, są udokumentowane na stronach ich kanałów/Plugin oraz w Poleceniach ukośnikiem. - Polecenia tekstowe muszą być samodzielnymi wiadomościami z początkowym
/. native: "auto"włącza natywne polecenia dla Discord/Telegram, pozostawia Slack wyłączony.nativeSkills: "auto"włącza natywne polecenia Skills dla Discord/Telegram, pozostawia Slack wyłączony.- Nadpisanie dla kanału:
channels.discord.commands.native(bool lub"auto"). Dla Discordfalsepomija rejestrację i czyszczenie natywnych poleceń podczas uruchamiania. - Nadpisz rejestrację natywnych Skills dla kanału za pomocą
channels.<provider>.commands.nativeSkills. 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.mcp: truewłącza/mcpdla konfiguracji serwera MCP zarządzanego przez OpenClaw podmcp.servers.plugins: truewłącza/pluginsdla wykrywania Plugin, instalacji oraz kontrolek włączania/wyłączania.channels.<provider>.configWritesbramkuje mutacje konfiguracji dla kanału (domyślnie: true).- W kanałach wielokontowych
channels.<provider>.accounts.<id>.configWritestakże bramkuje zapisy kierowane do tego konta (na przykład/allowlist --config --account <id>lub/config set channels.<provider>.accounts.<id>...). restart: falsewyłącza/restarti akcje narzędzia restartu Gateway. Domyślnie:true.ownerAllowFromto jawna lista dozwolonych właścicieli dla poleceń/narzędzi tylko dla właściciela. Jest oddzielna odallowFrom.ownerDisplay: "hash"haszuje identyfikatory właścicieli w prompcie systemowym. UstawownerDisplaySecret, aby kontrolować haszowanie.allowFromjest per dostawca. Gdy jest ustawione, jest jedynym źródłem autoryzacji (listy dozwolonych kanałów/parowanie iuseAccessGroupssą ignorowane).useAccessGroups: falsepozwala poleceniom omijać polityki grup dostępu, gdyallowFromnie jest ustawione.- Mapa dokumentacji poleceń:
Powiązane
- Referencja konfiguracji — klucze najwyższego poziomu
- Konfiguracja — agenci
- Przegląd kanałów