Kanalspezifische Konfigurationsschlüssel unterDocumentation 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.*. Behandelt DM- und Gruppen-Zugriff,
Multi-Account-Setups, Mention-Gating und kanalspezifische Schlüssel für Slack, Discord,
Telegram, WhatsApp, Matrix, iMessage und die anderen gebündelten Kanal-Plugins.
Informationen zu Agenten, Tools, Gateway-Laufzeit und anderen Schlüsseln auf oberster Ebene finden Sie in der
Konfigurationsreferenz.
Kanäle
Jeder Kanal startet automatisch, wenn sein Konfigurationsabschnitt vorhanden ist (außer beienabled: false).
DM- und Gruppen-Zugriff
Alle Kanäle unterstützen DM-Richtlinien und Gruppenrichtlinien:| DM-Richtlinie | Verhalten |
|---|---|
pairing (Standard) | Unbekannte Absender erhalten einen einmaligen Kopplungscode; der Owner muss ihn genehmigen |
allowlist | Nur Absender in allowFrom (oder im Speicher für gekoppelte Zulassungen) |
open | Alle eingehenden DMs zulassen (erfordert allowFrom: ["*"]) |
disabled | Alle eingehenden DMs ignorieren |
| Gruppenrichtlinie | Verhalten |
|---|---|
allowlist (Standard) | Nur Gruppen, die der konfigurierten Allowlist entsprechen |
open | Gruppen-Allowlists umgehen (Mention-Gating gilt weiterhin) |
disabled | Alle Gruppen-/Raumnachrichten blockieren |
channels.defaults.groupPolicy legt den Standard fest, wenn groupPolicy eines Providers nicht gesetzt ist.
Kopplungscodes laufen nach 1 Stunde ab. Ausstehende DM-Kopplungsanfragen sind auf 3 pro Kanal begrenzt.
Wenn ein Provider-Block vollständig fehlt (channels.<provider> nicht vorhanden), fällt die Laufzeit-Gruppenrichtlinie auf allowlist (fail-closed) mit einer Startwarnung zurück.Kanalmodell-Overrides
Verwenden Siechannels.modelByChannel, um bestimmte Kanal-IDs an ein Modell zu binden. Werte akzeptieren provider/model oder konfigurierte Modell-Aliasse. Die Kanalzuordnung gilt, wenn eine Sitzung noch keinen Modell-Override hat (zum Beispiel per /model gesetzt).
Kanalstandards und Heartbeat
Verwenden Siechannels.defaults für gemeinsame Gruppenrichtlinien- und Heartbeat-Verhalten über Provider hinweg:
channels.defaults.groupPolicy: Fallback-Gruppenrichtlinie, wenn ein Provider-weitesgroupPolicynicht gesetzt ist.channels.defaults.contextVisibility: Standardmodus für die Sichtbarkeit von zusätzlichem Kontext für alle Kanäle. Werte:all(Standard, gesamten zitierten/Thread-/Verlaufskontext einschließen),allowlist(nur Kontext von Absendern auf der Allowlist einschließen),allowlist_quote(wie Allowlist, aber expliziten Zitat-/Antwortkontext beibehalten). Kanalspezifischer Override:channels.<channel>.contextVisibility.channels.defaults.heartbeat.showOk: Gesunde Kanalstatus in die Heartbeat-Ausgabe aufnehmen.channels.defaults.heartbeat.showAlerts: Verschlechterte/Fehlerstatus in die Heartbeat-Ausgabe aufnehmen.channels.defaults.heartbeat.useIndicator: Kompakte Heartbeat-Ausgabe im Indikatorstil rendern.
Multi-Account-WhatsApp
Multi-Account-WhatsApp
- Ausgehende Befehle verwenden standardmäßig das Konto
default, sofern vorhanden; andernfalls die erste konfigurierte Konto-ID (sortiert). - Das optionale
channels.whatsapp.defaultAccountüberschreibt diese Fallback-Standardkontoauswahl, wenn es einer konfigurierten Konto-ID entspricht. - Das alte Baileys-Auth-Verzeichnis für Einzelkonten wird von
openclaw doctornachwhatsapp/defaultmigriert. - Pro-Konto-Overrides:
channels.whatsapp.accounts.<id>.sendReadReceipts,channels.whatsapp.accounts.<id>.dmPolicy,channels.whatsapp.accounts.<id>.allowFrom.
Telegram
- Bot-Token:
channels.telegram.botTokenoderchannels.telegram.tokenFile(nur reguläre Datei; Symlinks werden abgelehnt), mitTELEGRAM_BOT_TOKENals Fallback für das Standardkonto. apiRootist ausschließlich der Root der Telegram Bot API. Verwenden Siehttps://api.telegram.orgoder Ihren selbst gehosteten/Proxy-Root, nichthttps://api.telegram.org/bot<TOKEN>;openclaw doctor --fixentfernt ein versehentliches nachgestelltes Suffix/bot<TOKEN>.- Das optionale
channels.telegram.defaultAccountüberschreibt die Standardkontoauswahl, wenn es einer konfigurierten Konto-ID entspricht. - Legen Sie in Multi-Account-Setups (2+ Konto-IDs) einen expliziten Standard fest (
channels.telegram.defaultAccountoderchannels.telegram.accounts.default), um Fallback-Routing zu vermeiden;openclaw doctorwarnt, wenn dieser fehlt oder ungültig ist. configWrites: falseblockiert von Telegram initiierte Konfigurationsschreibvorgänge (Supergroup-ID-Migrationen,/config set|unset).- Einträge auf oberster Ebene in
bindings[]mittype: "acp"konfigurieren persistente ACP-Bindungen für Forumsthemen (verwenden Sie das kanonischechatId:topic:topicIdinmatch.peer.id). Die Feldsemantik ist in ACP-Agenten gemeinsam beschrieben. - Telegram-Streamvorschauen verwenden
sendMessage+editMessageText(funktioniert in Direkt- und Gruppenchats). - Wiederholungsrichtlinie: siehe Wiederholungsrichtlinie.
Discord
- Token:
channels.discord.token, mitDISCORD_BOT_TOKENals Fallback für das Standardkonto. - Direkte ausgehende Aufrufe, die ein explizites Discord-
tokenbereitstellen, verwenden dieses Token für den Aufruf; Einstellungen für Konto-Wiederholungen und Richtlinien stammen weiterhin aus dem ausgewählten Konto im aktiven Laufzeit-Snapshot. - Das optionale
channels.discord.defaultAccountüberschreibt die Standardkontoauswahl, wenn es mit einer konfigurierten Konto-ID übereinstimmt. - Verwenden Sie
user:<id>(DM) oderchannel:<id>(Guild-Kanal) für Zustellziele; reine numerische IDs werden abgelehnt. - Guild-Slugs sind kleingeschrieben, Leerzeichen werden durch
-ersetzt; Kanalschlüssel verwenden den Namen als Slug (ohne#). Bevorzugen Sie Guild-IDs. - Von Bots erstellte Nachrichten werden standardmäßig ignoriert.
allowBots: trueaktiviert sie; verwenden SieallowBots: "mentions", um nur Bot-Nachrichten zu akzeptieren, die den Bot erwähnen (eigene Nachrichten werden weiterhin gefiltert). channels.discord.guilds.<id>.ignoreOtherMentions(und Kanalüberschreibungen) verwirft Nachrichten, die einen anderen Benutzer oder eine Rolle, aber nicht den Bot erwähnen (ausgenommen @everyone/@here).channels.discord.mentionAliasesordnet stabilen ausgehenden@handle-Text vor dem Senden Discord-Benutzer-IDs zu, sodass bekannte Teammitglieder deterministisch erwähnt werden können, selbst wenn der flüchtige Verzeichniscache leer ist. Kontospezifische Überschreibungen liegen unterchannels.discord.accounts.<accountId>.mentionAliases.maxLinesPerMessage(Standard 17) teilt hohe Nachrichten auch dann auf, wenn sie unter 2000 Zeichen liegen.channels.discord.threadBindingssteuert Discord-Thread-gebundenes Routing:enabled: Discord-Überschreibung für Thread-gebundene Sitzungsfunktionen (/focus,/unfocus,/agents,/session idle,/session max-agesowie gebundene Zustellung/Routing)idleHours: Discord-Überschreibung für automatisches Unfocus bei Inaktivität in Stunden (0deaktiviert)maxAgeHours: Discord-Überschreibung für hartes Maximalalter in Stunden (0deaktiviert)spawnSessions: Schalter fürsessions_spawn({ thread: true })und automatische ACP-Thread-Erstellung/-Bindung beim Thread-Spawn (Standard:true)defaultSpawnContext: nativer Subagent-Kontext für Thread-gebundene Spawns (standardmäßig"fork")
- Einträge auf oberster Ebene in
bindings[]mittype: "acp"konfigurieren persistente ACP-Bindungen für Kanäle und Threads (Kanal-/Thread-ID inmatch.peer.idverwenden). Die Feldsemantik wird in ACP-Agenten gemeinsam beschrieben. channels.discord.ui.components.accentColorlegt die Akzentfarbe für Discord-Komponenten-v2-Container fest.channels.discord.voiceaktiviert Discord-Sprachkanal-Unterhaltungen sowie optionale Auto-Join-, LLM- und TTS-Überschreibungen. Reine Text-Discord-Konfigurationen lassen Sprache standardmäßig deaktiviert; setzen Siechannels.discord.voice.enabled=true, um sie zu aktivieren.channels.discord.voice.modelüberschreibt optional das LLM-Modell, das für Discord-Sprachkanalantworten verwendet wird.channels.discord.voice.daveEncryptionundchannels.discord.voice.decryptionFailureTolerancewerden an die DAVE-Optionen von@discordjs/voicedurchgereicht (standardmäßigtrueund24).channels.discord.voice.connectTimeoutMssteuert die anfängliche@discordjs/voice-Ready-Wartezeit für/vc joinund Auto-Join-Versuche (standardmäßig30000).channels.discord.voice.reconnectGraceMssteuert, wie lange eine getrennte Sprachsitzung brauchen darf, um in die Wiederverbindungs-Signalisierung einzutreten, bevor OpenClaw sie beendet (standardmäßig15000).- Die Discord-Sprachwiedergabe wird nicht durch das Sprechbeginn-Ereignis eines anderen Benutzers unterbrochen. Um Rückkopplungsschleifen zu vermeiden, ignoriert OpenClaw neue Sprachaufnahmen, während TTS abgespielt wird.
- OpenClaw versucht zusätzlich, den Sprachempfang wiederherzustellen, indem es eine Sprachsitzung nach wiederholten Entschlüsselungsfehlern verlässt und erneut beitritt.
channels.discord.streamingist der kanonische Schlüssel für den Stream-Modus. Discord verwendet standardmäßigstreaming.mode: "progress", sodass Tool-/Arbeitsfortschritt in einer bearbeiteten Vorschaunachricht erscheint; setzen Siestreaming.mode: "off", um dies zu deaktivieren. ÄlterestreamMode- und booleschestreaming-Werte bleiben Laufzeit-Aliasse; führen Sieopenclaw doctor --fixaus, um gespeicherte Konfiguration umzuschreiben.channels.discord.autoPresenceordnet die Laufzeitverfügbarkeit der Bot-Präsenz zu (healthy => online, degraded => idle, exhausted => dnd) und erlaubt optionale Überschreibungen für Statustext.channels.discord.dangerouslyAllowNameMatchingaktiviert veränderlichen Namens-/Tag-Abgleich wieder (Break-Glass-Kompatibilitätsmodus).channels.discord.execApprovals: Discord-native Zustellung von Exec-Genehmigungen und Autorisierung von Genehmigern.enabled:true,falseoder"auto"(Standard). Im Auto-Modus werden Exec-Genehmigungen aktiviert, wenn Genehmiger ausapproversodercommands.ownerAllowFromaufgelöst werden können.approvers: Discord-Benutzer-IDs, die Exec-Anfragen genehmigen dürfen. Fällt aufcommands.ownerAllowFromzurück, wenn ausgelassen.agentFilter: optionale Allowlist für Agent-IDs. Auslassen, um Genehmigungen für alle Agenten weiterzuleiten.sessionFilter: optionale Sitzungs-Schlüsselmuster (Teilzeichenfolge oder Regex).target: wohin Genehmigungsaufforderungen gesendet werden."dm"(Standard) sendet an Genehmiger-DMs,"channel"sendet an den Ursprungskanal,"both"sendet an beide. Wenn das Ziel"channel"enthält, sind Schaltflächen nur für aufgelöste Genehmiger nutzbar.cleanupAfterResolve: löscht beitrueGenehmigungs-DMs nach Genehmigung, Ablehnung oder Timeout.
off (keine), own (Nachrichten des Bots, Standard), all (alle Nachrichten), allowlist (aus guilds.<id>.users für alle Nachrichten).
Google Chat
- Dienstkonto-JSON: inline (
serviceAccount) oder dateibasiert (serviceAccountFile). - Dienstkonto-SecretRef wird ebenfalls unterstützt (
serviceAccountRef). - Env-Fallbacks:
GOOGLE_CHAT_SERVICE_ACCOUNToderGOOGLE_CHAT_SERVICE_ACCOUNT_FILE. - Verwenden Sie
spaces/<spaceId>oderusers/<userId>für Zustellziele. channels.googlechat.dangerouslyAllowNameMatchingaktiviert veränderlichen E-Mail-Prinzipal-Abgleich wieder (Break-Glass-Kompatibilitätsmodus).
Slack
- Socket-Modus erfordert sowohl
botTokenals auchappToken(SLACK_BOT_TOKEN+SLACK_APP_TOKENals Env-Fallback für das Standardkonto). - HTTP-Modus erfordert
botTokenplussigningSecret(auf Root-Ebene oder kontospezifisch). socketModereicht die Slack-SDK-Socket-Mode-Transportabstimmung an die öffentliche Bolt-Receiver-API durch. Verwenden Sie dies nur, wenn Sie Ping/Pong-Timeouts oder veraltetes Websocket-Verhalten untersuchen.botToken,appToken,signingSecretunduserTokenakzeptieren Klartextzeichenfolgen oder SecretRef-Objekte.- Slack-Konto-Snapshots stellen Quellen-/Statusfelder pro Anmeldedaten bereit, z. B.
botTokenSource,botTokenStatus,appTokenStatusund im HTTP-ModussigningSecretStatus.configured_unavailablebedeutet, dass das Konto über SecretRef konfiguriert ist, der aktuelle Befehls-/Laufzeitpfad den Secret-Wert aber nicht auflösen konnte. configWrites: falseblockiert durch Slack initiierte Konfigurationsschreibvorgänge.- Das optionale
channels.slack.defaultAccountüberschreibt die Standardkontoauswahl, wenn es mit einer konfigurierten Konto-ID übereinstimmt. channels.slack.streaming.modeist der kanonische Slack-Schlüssel für den Stream-Modus.channels.slack.streaming.nativeTransportsteuert Slacks nativen Streaming-Transport. Ältere Werte fürstreamMode, booleschesstreamingundnativeStreamingbleiben Laufzeit-Aliasse; führen Sieopenclaw doctor --fixaus, um gespeicherte Konfiguration umzuschreiben.unfurlLinksundunfurlMediareichen Slacks boolesche Werte für Link- und Medien-Unfurling vonchat.postMessagefür Bot-Antworten durch. Lassen Sie sie aus, um Slacks Standardverhalten beizubehalten; setzen Sie sie unterchannels.slack.accounts.<accountId>, um den Standard auf oberster Ebene für ein Konto zu überschreiben.- Verwenden Sie
user:<id>(DM) oderchannel:<id>für Zustellziele.
off, own (Standard), all, allowlist (aus reactionAllowlist).
Thread-Sitzungsisolation: thread.historyScope ist pro Thread (Standard) oder kanalübergreifend gemeinsam. thread.inheritParent kopiert das Transkript des übergeordneten Kanals in neue Threads.
- Slack-natives Streaming plus der Slack-Assistant-artige Thread-Status „is typing…“ erfordern ein Antwort-Thread-Ziel. DMs auf oberster Ebene bleiben standardmäßig außerhalb von Threads, sodass sie weiterhin über Slack-Entwurfs-Post-and-Edit-Vorschauen streamen können, statt die Thread-artige native Stream-/Statusvorschau anzuzeigen.
typingReactionfügt der eingehenden Slack-Nachricht eine temporäre Reaktion hinzu, während eine Antwort läuft, und entfernt sie anschließend bei Abschluss. Verwenden Sie einen Slack-Emoji-Shortcode wie"hourglass_flowing_sand".channels.slack.execApprovals: Slack-native Zustellung von Exec-Genehmigungen und Autorisierung von Genehmigern. Gleiches Schema wie Discord:enabled(true/false/"auto"),approvers(Slack-Benutzer-IDs),agentFilter,sessionFilterundtarget("dm","channel"oder"both").
| Aktionsgruppe | Standard | Hinweise |
|---|---|---|
| reactions | aktiviert | Reaktionen hinzufügen + auflisten |
| messages | aktiviert | Lesen/senden/bearbeiten/löschen |
| pins | aktiviert | Anheften/lösen/auflisten |
| memberInfo | aktiviert | Mitgliedsinformationen |
| emojiList | aktiviert | Liste benutzerdefinierter Emojis |
Mattermost
Mattermost wird in aktuellen OpenClaw-Versionen als gebündeltes Plugin ausgeliefert. Ältere oder benutzerdefinierte Builds können ein aktuelles npm-Paket mitopenclaw plugins install @openclaw/mattermost installieren. Prüfen Sie
npmjs.com/package/@openclaw/mattermost
auf die aktuellen Dist-Tags, bevor Sie eine Version pinnen.
oncall (Antwort bei @-Erwähnung, Standard), onmessage (jede Nachricht), onchar (Nachrichten, die mit einem Auslösepräfix beginnen).
Wenn native Mattermost-Befehle aktiviert sind:
commands.callbackPathmuss ein Pfad sein (zum Beispiel/api/channels/mattermost/command), keine vollständige URL.commands.callbackUrlmuss zum OpenClaw-Gateway-Endpunkt auflösen und vom Mattermost-Server erreichbar sein.- Native Slash-Callbacks werden mit den befehlsspezifischen Tokens authentifiziert, die Mattermost bei der Registrierung von Slash-Befehlen zurückgibt. Wenn die Registrierung fehlschlägt oder keine Befehle aktiviert sind, weist OpenClaw Callbacks mit
Unauthorized: invalid command token.zurück. - Für private/Tailnet/interne Callback-Hosts kann Mattermost erfordern, dass
ServiceSettings.AllowedUntrustedInternalConnectionsden Callback-Host bzw. die Callback-Domain enthält. Verwenden Sie Host-/Domain-Werte, keine vollständigen URLs. channels.mattermost.configWrites: Mattermost-initiierte Konfigurationsschreibvorgänge erlauben oder verweigern.channels.mattermost.requireMention: vor Antworten in Kanälen eine@mentionverlangen.channels.mattermost.groups.<channelId>.requireMention: kanalspezifische Überschreibung des Erwähnungs-Gatings ("*"für Standard).- Optionales
channels.mattermost.defaultAccountüberschreibt die Auswahl des Standardkontos, wenn es mit einer konfigurierten Konto-ID übereinstimmt.
Signal
off, own (Standard), all, allowlist (aus reactionAllowlist).
channels.signal.account: Kanalstart an eine bestimmte Signal-Kontoidentität binden.channels.signal.configWrites: Signal-initiierte Konfigurationsschreibvorgänge erlauben oder verweigern.- Optionales
channels.signal.defaultAccountüberschreibt die Auswahl des Standardkontos, wenn es mit einer konfigurierten Konto-ID übereinstimmt.
iMessage
OpenClaw startetimsg rpc (JSON-RPC über stdio). Kein Daemon und kein Port erforderlich. Dies ist der bevorzugte Weg für neue OpenClaw-iMessage-Einrichtungen, wenn der Host Berechtigungen für die Nachrichten-Datenbank und Automation gewähren kann.
BlueBubbles-Unterstützung wurde entfernt. channels.bluebubbles ist in aktuellem OpenClaw keine unterstützte Runtime-Konfigurationsoberfläche. Migrieren Sie alte Konfigurationen zu channels.imessage; verwenden Sie Entfernung von BlueBubbles und der imsg-iMessage-Pfad für die Kurzfassung und Von BlueBubbles kommend für die vollständige Übersetzungstabelle.
Wenn der Gateway nicht auf dem angemeldeten Messages-Mac ausgeführt wird, lassen Sie channels.imessage.enabled=true gesetzt und setzen Sie channels.imessage.cliPath auf einen SSH-Wrapper, der imsg "$@" auf diesem Mac ausführt. Der standardmäßige lokale imsg-Pfad ist nur für macOS vorgesehen.
-
Optionales
channels.imessage.defaultAccountüberschreibt die Auswahl des Standardkontos, wenn es mit einer konfigurierten Konto-ID übereinstimmt. - Erfordert vollständigen Festplattenzugriff auf die Messages-DB.
-
Bevorzugen Sie
chat_id:<id>-Ziele. Verwenden Sieimsg chats --limit 20, um Chats aufzulisten. -
cliPathkann auf einen SSH-Wrapper zeigen; setzen SieremoteHost(hostoderuser@host) für das Abrufen von Anhängen per SCP. -
attachmentRootsundremoteAttachmentRootsbeschränken eingehende Anhangspfade (Standard:/Users/*/Library/Messages/Attachments). -
SCP verwendet strikte Host-Key-Prüfung; stellen Sie daher sicher, dass der Schlüssel des Relay-Hosts bereits in
~/.ssh/known_hostsvorhanden ist. -
channels.imessage.configWrites: iMessage-initiierte Konfigurationsschreibvorgänge erlauben oder verweigern. -
channels.imessage.actions.*: private API-Aktionen aktivieren, die zusätzlich durchimsg status/openclaw channels status --probeabgesichert sind. -
channels.imessage.includeAttachmentsist standardmäßig deaktiviert; setzen Sie es auftrue, bevor Sie eingehende Medien in Agent-Turns erwarten. -
channels.imessage.catchup.enabled: opt-in für das erneute Abspielen eingehender Nachrichten, die eingetroffen sind, während der Gateway ausgefallen war. -
channels.imessage.groups: Gruppenregistrierung und gruppenspezifische Einstellungen. Konfigurieren Sie beigroupPolicy: "allowlist"entweder explizitechat_id-Schlüssel oder einen"*"-Wildcard-Eintrag, damit Gruppennachrichten das Registry-Gate passieren können. -
Top-Level-Einträge in
bindings[]mittype: "acp"können iMessage-Unterhaltungen an persistente ACP-Sitzungen binden. Verwenden Sie ein normalisiertes Handle oder ein explizites Chat-Ziel (chat_id:*,chat_guid:*,chat_identifier:*) inmatch.peer.id. Gemeinsame Feldsemantik: ACP-Agenten.
iMessage SSH wrapper example
iMessage SSH wrapper example
Matrix
Matrix ist Plugin-gestützt und unterchannels.matrix konfiguriert.
- Token-Authentifizierung verwendet
accessToken; Passwort-Authentifizierung verwendetuserId+password. channels.matrix.proxyleitet Matrix-HTTP-Traffic über einen expliziten HTTP(S)-Proxy. Benannte Konten können dies mitchannels.matrix.accounts.<id>.proxyüberschreiben.channels.matrix.network.dangerouslyAllowPrivateNetworkerlaubt private/interne Homeserver.proxyund dieses Netzwerk-Opt-in sind unabhängige Steuerelemente.channels.matrix.defaultAccountwählt das bevorzugte Konto in Multi-Konto-Setups aus.channels.matrix.autoJoinist standardmäßigoff, sodass eingeladene Räume und neue DM-artige Einladungen ignoriert werden, bis SieautoJoin: "allowlist"mitautoJoinAllowlistoderautoJoin: "always"setzen.channels.matrix.execApprovals: Matrix-native Zustellung von Exec-Genehmigungen und Autorisierung von Genehmigenden.enabled:true,falseoder"auto"(Standard). Im Auto-Modus werden Exec-Genehmigungen aktiviert, wenn Genehmigende ausapproversodercommands.ownerAllowFromaufgelöst werden können.approvers: Matrix-Benutzer-IDs (z. B.@owner:example.org), die Exec-Anfragen genehmigen dürfen.agentFilter: optionale Allowlist für Agent-IDs. Weglassen, um Genehmigungen für alle Agenten weiterzuleiten.sessionFilter: optionale Sitzungsschlüsselmuster (Teilzeichenfolge oder Regex).target: wohin Genehmigungsaufforderungen gesendet werden."dm"(Standard),"channel"(ursprünglicher Raum) oder"both".- Kontoabhängige Überschreibungen:
channels.matrix.accounts.<id>.execApprovals.
channels.matrix.dm.sessionScopesteuert, wie Matrix-DMs zu Sitzungen gruppiert werden:per-user(Standard) teilt nach geroutetem Peer, währendper-roomjeden DM-Raum isoliert.- Matrix-Statusprobes und Live-Verzeichnisabfragen verwenden dieselbe Proxy-Richtlinie wie Runtime-Traffic.
- Die vollständige Matrix-Konfiguration, Zielregeln und Einrichtungsbeispiele sind in Matrix dokumentiert.
Microsoft Teams
Microsoft Teams ist Plugin-gestützt und unterchannels.msteams konfiguriert.
- Hier behandelte zentrale Schlüsselpfade:
channels.msteams,channels.msteams.configWrites. - Die vollständige Teams-Konfiguration (Anmeldedaten, Webhook, DM-/Gruppenrichtlinie, Überschreibungen pro Team/pro Kanal) ist in Microsoft Teams dokumentiert.
IRC
IRC ist Plugin-gestützt und unterchannels.irc konfiguriert.
- Hier behandelte zentrale Schlüsselpfade:
channels.irc,channels.irc.dmPolicy,channels.irc.configWrites,channels.irc.nickserv.*. - Optionales
channels.irc.defaultAccountüberschreibt die Auswahl des Standardkontos, wenn es mit einer konfigurierten Konto-ID übereinstimmt. - Die vollständige IRC-Kanalkonfiguration (Host/Port/TLS/Kanäle/Allowlists/Erwähnungs-Gating) ist in IRC dokumentiert.
Multi-Konto (alle Kanäle)
Führen Sie mehrere Konten pro Kanal aus (jedes mit eigeneraccountId):
defaultwird verwendet, wennaccountIdausgelassen wird (CLI + Routing).- Env-Tokens gelten nur für das Standardkonto.
- Basiskanal-Einstellungen gelten für alle Konten, sofern sie nicht pro Konto überschrieben werden.
- Verwenden Sie
bindings[].match.accountId, um jedes Konto an einen anderen Agenten zu routen. - Wenn Sie über
openclaw channels add(oder Kanal-Onboarding) ein Nicht-Standardkonto hinzufügen, während noch eine Top-Level-Kanalkonfiguration für ein einzelnes Konto verwendet wird, verschiebt OpenClaw zuerst kontospezifische Top-Level-Einzelkontowerte in die Kontozuordnung des Kanals, damit das ursprüngliche Konto weiter funktioniert. Die meisten Kanäle verschieben sie nachchannels.<channel>.accounts.default; Matrix kann stattdessen ein vorhandenes passendes benanntes/Standardziel beibehalten. - Vorhandene kanal-only Bindings (ohne
accountId) stimmen weiterhin mit dem Standardkonto überein; kontospezifische Bindings bleiben optional. openclaw doctor --fixrepariert auch gemischte Formen, indem kontospezifische Top-Level-Einzelkontowerte in das für diesen Kanal gewählte hochgestufte Konto verschoben werden. Die meisten Kanäle verwendenaccounts.default; Matrix kann stattdessen ein vorhandenes passendes benanntes/Standardziel beibehalten.
Weitere Plugin-Kanäle
Viele Plugin-Kanäle werden alschannels.<id> konfiguriert und in ihren jeweiligen Kanalseiten dokumentiert (zum Beispiel Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat und Twitch).
Siehe den vollständigen Kanalindex: Kanäle.
Erwähnungs-Gating in Gruppenchats
Gruppennachrichten erfordern standardmäßig eine Erwähnung (Metadaten-Erwähnung oder sichere Regex-Muster). Gilt für WhatsApp, Telegram, Discord, Google Chat und iMessage-Gruppenchats. Sichtbare Antworten werden separat gesteuert. Gruppen-/Kanalräume verwenden standardmäßigmessages.groupChat.visibleReplies: "message_tool": OpenClaw verarbeitet den Turn weiterhin, normale finale Antworten bleiben jedoch privat, und sichtbare Raumausgabe erfordert message(action=send). Setzen Sie "automatic" nur, wenn Sie das Legacy-Verhalten wünschen, bei dem normale Antworten zurück in den Raum gepostet werden. Um dasselbe Tool-only-Verhalten für sichtbare Antworten auch auf direkte Chats anzuwenden, setzen Sie messages.visibleReplies: "message_tool"; das Codex Harness verwendet dieses Tool-only-Verhalten außerdem als nicht gesetzten Standard für direkte Chats.
Tool-only-sichtbare Antworten erfordern ein Modell/eine Runtime, das bzw. die zuverlässig Tools aufruft. Wenn
das Sitzungsprotokoll Assistant-Text mit didSendViaMessagingTool: false zeigt, hat das
Modell eine private finale Antwort erzeugt, statt das Message-Tool aufzurufen.
Wechseln Sie für diesen Kanal zu einem stärkeren Tool-Calling-Modell, oder setzen Sie
messages.groupChat.visibleReplies: "automatic", um sichtbare finale Antworten im Legacy-Stil
wiederherzustellen.
Wenn das Message-Tool unter der aktiven Tool-Richtlinie nicht verfügbar ist, fällt OpenClaw auf automatische sichtbare Antworten zurück, statt die Antwort stillschweigend zu unterdrücken. openclaw doctor warnt vor dieser Abweichung.
Der Gateway lädt die messages-Konfiguration nach dem Speichern der Datei per Hot-Reload neu. Starten Sie nur neu, wenn File Watching oder das Neuladen der Konfiguration in der Bereitstellung deaktiviert ist.
Mention-Typen:
- Metadata-Mentions: Native Plattform-@-Mentions. Werden im WhatsApp-Self-Chat-Modus ignoriert.
- Textmuster: Sichere Regex-Muster in
agents.list[].groupChat.mentionPatterns. Ungültige Muster und unsichere verschachtelte Wiederholungen werden ignoriert. - Mention-Gating wird nur erzwungen, wenn Erkennung möglich ist (native Mentions oder mindestens ein Muster).
messages.groupChat.historyLimit legt den globalen Standard fest. Kanäle können ihn mit channels.<channel>.historyLimit (oder pro Konto) überschreiben. Setzen Sie 0, um ihn zu deaktivieren.
messages.visibleReplies ist der globale Standard für Source-Turns; messages.groupChat.visibleReplies überschreibt ihn für Gruppen-/Kanal-Source-Turns. Wenn messages.visibleReplies nicht gesetzt ist, kann ein Harness seinen eigenen Standard für Direkt-/Source-Chats bereitstellen; das Codex Harness verwendet standardmäßig message_tool. Kanal-Allowlists und Mention-Gating entscheiden weiterhin, ob ein Turn verarbeitet wird.
DM-Verlaufslimits
telegram, whatsapp, discord, slack, signal, imessage, msteams.
Self-Chat-Modus
Fügen Sie Ihre eigene Nummer inallowFrom ein, um den Self-Chat-Modus zu aktivieren (ignoriert native @-Mentions und antwortet nur auf Textmuster):
Befehle (Chat-Befehlsverarbeitung)
Befehlsdetails
Befehlsdetails
- Dieser Block konfiguriert Befehlsoberflächen. Den aktuellen integrierten und gebündelten Befehlskatalog finden Sie unter Slash-Befehle.
- Diese Seite ist eine Konfigurationsschlüssel-Referenz, nicht der vollständige Befehlskatalog. Kanal-/Plugin-eigene Befehle wie QQ Bot
/bot-ping/bot-help/bot-logs, LINE/card, Geräte-Pairing/pair, Memory/dreaming, Telefonsteuerung/phoneund Talk/voicesind auf ihren Kanal-/Plugin-Seiten sowie unter Slash-Befehle dokumentiert. - Textbefehle müssen eigenständige Nachrichten mit führendem
/sein. native: "auto"aktiviert native Befehle für Discord/Telegram und lässt Slack deaktiviert.nativeSkills: "auto"aktiviert native Skill-Befehle für Discord/Telegram und lässt Slack deaktiviert.- Überschreiben pro Kanal:
channels.discord.commands.native(Boolescher Wert oder"auto"). Für Discord überspringtfalsedie Registrierung und Bereinigung nativer Befehle beim Start. - Überschreiben Sie die native Skill-Registrierung pro Kanal mit
channels.<provider>.commands.nativeSkills. channels.telegram.customCommandsfügt zusätzliche Einträge im Telegram-Bot-Menü hinzu.bash: trueaktiviert! <cmd>für die Host-Shell. Erforderttools.elevated.enabledund einen Sender intools.elevated.allowFrom.<channel>.config: trueaktiviert/config(liest/schreibtopenclaw.json). Für Gateway-chat.send-Clients erfordern persistente/config set|unset-Schreibvorgänge außerdemoperator.admin; das schreibgeschützte/config showbleibt normalen Operator-Clients mit Schreibbereich verfügbar.mcp: trueaktiviert/mcpfür von OpenClaw verwaltete MCP-Serverkonfiguration untermcp.servers.plugins: trueaktiviert/pluginsfür Plugin-Erkennung, Installation sowie Aktivierungs-/Deaktivierungssteuerungen.channels.<provider>.configWritessteuert Konfigurationsmutationen pro Kanal (Standard: true).- Bei Multi-Account-Kanälen steuert
channels.<provider>.accounts.<id>.configWritesaußerdem Schreibvorgänge, die auf dieses Konto zielen (zum Beispiel/allowlist --config --account <id>oder/config set channels.<provider>.accounts.<id>...). restart: falsedeaktiviert/restartund Gateway-Neustart-Tool-Aktionen. Standard:true.ownerAllowFromist die explizite Owner-Allowlist für Owner-only-Befehle/-Tools. Sie ist vonallowFromgetrennt.ownerDisplay: "hash"hasht Owner-IDs im System-Prompt. Setzen SieownerDisplaySecret, um das Hashing zu steuern.allowFromist pro Provider. Wenn gesetzt, ist es die einzige Autorisierungsquelle (Kanal-Allowlists/Pairing unduseAccessGroupswerden ignoriert).useAccessGroups: falseerlaubt Befehlen, Access-Group-Richtlinien zu umgehen, wennallowFromnicht gesetzt ist.- Befehlsdokumentationskarte:
Verwandt
- Konfigurationsreferenz — Schlüssel der obersten Ebene
- Konfiguration — Agents
- Kanalübersicht