channels.*: DM- und Gruppenzugriff, Mehrkontoeinrichtungen, Erwähnungssteuerung sowie kanalspezifische Schlüssel für Slack, Discord, Telegram, WhatsApp, Matrix, iMessage und andere Kanal-Plugins.
Informationen zu Agenten, Tools, Gateway-Laufzeit und anderen Schlüsseln der obersten Ebene finden Sie in der Konfigurationsreferenz.
Kanäle
Jeder Kanal startet automatisch, wenn sein Konfigurationsabschnitt vorhanden ist (sofern nichtenabled: false). Telegram und iMessage sind im zentralen openclaw-Paket enthalten. Andere offizielle Kanäle (Discord, Slack, WhatsApp, Matrix, Microsoft Teams, IRC, Google Chat, Signal, Mattermost und weitere) werden mit openclaw plugins install <spec> als separate Plugins installiert; die vollständige Liste und Installationsspezifikationen finden Sie unter Kanäle.
DM- und Gruppenzugriff
Alle Kanäle unterstützen DM- und Gruppenrichtlinien:channels.defaults.groupPolicy legt den Standardwert fest, wenn groupPolicy eines Providers nicht gesetzt ist.
Kopplungscodes laufen nach 1 Stunde ab. Ausstehende Kopplungsanfragen sind auf 3 pro Konto begrenzt (nach Kanal und Konto-ID getrennt).
Wenn ein Provider-Block vollständig fehlt (channels.<provider> nicht vorhanden), fällt die Gruppenrichtlinie der Laufzeit mit einer Startwarnung auf allowlist zurück (standardmäßig ablehnend).Kanalspezifische Modellüberschreibungen
Verwenden Siechannels.modelByChannel, um bestimmte Kanal-IDs oder Direktnachrichtenkontakte an ein Modell zu binden. Als Werte werden provider/model oder konfigurierte Modellaliase akzeptiert. Die Kanalzuordnung gilt nur, wenn eine Sitzung noch keine aktive Modellüberschreibung besitzt (beispielsweise eine über /model festgelegte).
Bei Gruppen-/Thread-Unterhaltungen sind die Schlüssel kanalspezifische Gruppen-IDs, Themen-IDs oder Kanalnamen. Bei Direktnachrichten-Unterhaltungen (DM) sind die Schlüssel Kontaktkennungen, die aus der Absenderidentität des Kanals abgeleitet werden (nativeDirectUserId, origin.from, origin.to, OriginatingTo, From oder SenderId). Die genaue Schlüsselform hängt vom Kanal ab:
Kanalstandards und Heartbeat
Verwenden Siechannels.defaults für gemeinsames Verhalten von Gruppenrichtlinien, impliziten Erwähnungen und Heartbeat über mehrere Provider hinweg:
channels.defaults.groupPolicy: Ersatz-Gruppenrichtlinie, wenngroupPolicyauf Providerebene nicht gesetzt ist.channels.defaults.contextVisibility: standardmäßiger Modus für die Sichtbarkeit ergänzenden Kontexts für alle Kanäle. Werte:all(Standard; gesamten zitierten, Thread- und Verlaufskontext einbeziehen),allowlist(nur Kontext von Absendern auf der Zulassungsliste einbeziehen),allowlist_quote(wie die Zulassungsliste, aber expliziten Zitat-/Antwortkontext beibehalten). Kanalspezifische Überschreibung:channels.<channel>.contextVisibility.channels.defaults.implicitMentions: steuert, welche unterstützten eingehenden Fakten als Erwähnungen gelten.replyToBot,quotedBotundthreadParticipationverwenden jeweils standardmäßigtrue, wodurch das aktuelle Verhalten erhalten bleibt. Überschreiben Sie dies pro Kanal mitchannels.<channel>.implicitMentionsoder pro Konto mitchannels.<channel>.accounts.<id>.implicitMentions; jedes Flag wird unabhängig in der Reihenfolge Konto -> Kanal -> Standardwerte aufgelöst. Die Namen sind positiv formuliert: Setzen Sie ein Flag auffalse, damit dieser Fakt die Erwähnungssteuerung nicht mehr umgeht. Native explizite Erwähnungen sind immer zulässig, und ein Flag hat keine Wirkung, wenn der Kanal diesen Fakt nicht erzeugt. Die aktuelle Erzeugermatrix finden Sie unter Erwähnungssteuerung. Diese Einstellungen ändern weder die Modi für ausgehende Antworten/Threads noch die Verarbeitung autorisierter Befehle.channels.defaults.heartbeat.showOk: fehlerfreie Kanalstatus in die Heartbeat-Ausgabe aufnehmen (Standardfalse).channels.defaults.heartbeat.showAlerts: beeinträchtigte/fehlerhafte Status in die Heartbeat-Ausgabe aufnehmen (Standardtrue).channels.defaults.heartbeat.useIndicator: kompakte Heartbeat-Ausgabe im Indikatorstil darstellen (Standardtrue).
- Einträge der obersten Ebene in
bindings[]mittype: "acp"konfigurieren persistente ACP-Bindungen für WhatsApp-DMs und -Gruppen. Verwenden Sie inmatch.peer.ideine direkte Nummer im E.164-Format oder eine WhatsApp-Gruppen-JID. Die Feldsemantik wird unter ACP-Agenten beschrieben.
WhatsApp mit mehreren Konten
WhatsApp mit mehreren Konten
- Ausgehende Befehle verwenden standardmäßig das Konto
default, falls vorhanden; andernfalls die erste konfigurierte Konto-ID (sortiert). - Das optionale
channels.whatsapp.defaultAccountüberschreibt diese standardmäßige Auswahl des Ersatzkontos, wenn es mit einer konfigurierten Konto-ID übereinstimmt. - Das veraltete Baileys-Authentifizierungsverzeichnis für ein einzelnes Konto wird durch
openclaw doctornachwhatsapp/defaultmigriert. - Kontospezifische Überschreibungen:
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; symbolische Links werden abgelehnt), mitTELEGRAM_BOT_TOKENals Ersatz für das Standardkonto. apiRootist ausschließlich die Wurzel der Telegram Bot API. Verwenden Siehttps://api.telegram.orgoder die Wurzel Ihrer selbst gehosteten beziehungsweise Proxy-Instanz, nichthttps://api.telegram.org/bot<TOKEN>;openclaw doctor --fixentfernt ein versehentlich angehängtes/bot<TOKEN>-Suffix.- Bei einem selbst gehosteten Bot-API-Server im
--local-Modus listettrustedLocalFileRootsdie Hostpfade auf, die OpenClaw lesen darf. Binden Sie das Datenvolume des Servers auf dem OpenClaw-Host ein und konfigurieren Sie entweder dessen Datenstamm oder das Token-spezifische Verzeichnis; Containerpfade unter/var/lib/telegram-bot-apiwerden diesen Stammverzeichnissen zugeordnet. Andere absolute Pfade werden weiterhin abgelehnt. - Das optionale
channels.telegram.defaultAccountüberschreibt die Auswahl des Standardkontos, wenn es mit einer konfigurierten Konto-ID übereinstimmt. - Legen Sie bei Mehrkontoeinrichtungen (2+ Konto-IDs) einen expliziten Standardwert fest (
channels.telegram.defaultAccountoderchannels.telegram.accounts.default), um Ersatz-Routing zu vermeiden;openclaw doctorwarnt, wenn dieser fehlt oder ungültig ist. configWrites: falseblockiert von Telegram initiierte Konfigurationsschreibvorgänge (Supergruppen-ID-Migrationen,/config set|unset).- Einträge der obersten Ebene in
bindings[]mittype: "acp"konfigurieren persistente ACP-Bindungen für Forenthemen (verwenden Sie das kanonischechatId:topic:topicIdinmatch.peer.id). Die Feldsemantik wird unter ACP-Agenten beschrieben. - Telegram-Streamingvorschauen verwenden
sendMessage+editMessageText(funktioniert in Direkt- und Gruppenchats). network.dnsResultOrderverwendet standardmäßig"ipv4first", um häufige IPv6-Abruffehler zu vermeiden.- Wiederholungsrichtlinie: siehe Wiederholungsrichtlinie.
Discord
- Token:
channels.discord.token, mitDISCORD_BOT_TOKENals Fallback für das Standardkonto. - Direkte ausgehende Aufrufe, die explizit ein Discord-
tokenangeben, verwenden dieses Token für den Aufruf; Einstellungen für Wiederholungsversuche und Richtlinien des Kontos stammen weiterhin aus dem ausgewählten Konto im aktiven Runtime-Snapshot. - Das optionale
channels.discord.defaultAccountüberschreibt die Auswahl des Standardkontos, wenn es mit einer konfigurierten Konto-ID übereinstimmt. - Verwenden Sie
user:<id>(DM) oderchannel:<id>(Guild-Kanal) für Zustellungsziele; reine numerische IDs werden abgelehnt. - Guild-Slugs bestehen aus Kleinbuchstaben, wobei Leerzeichen durch
-ersetzt werden; Kanalschlüssel verwenden den Namen als Slug (ohne#). Bevorzugen Sie Guild-IDs. - Von Bots verfasste Nachrichten werden standardmäßig ignoriert.
allowBots: trueaktiviert sie; verwenden SieallowBots: "mentions", um nur Bot-Nachrichten zu akzeptieren, in denen der Bot erwähnt wird (eigene Nachrichten werden weiterhin herausgefiltert). - Kanäle, die von Bots verfasste eingehende Nachrichten unterstützen, können den gemeinsamen Bot-Schleifenschutz verwenden. Legen Sie
channels.defaults.botLoopProtectionfür grundlegende Paarbudgets fest und überschreiben Sie anschließend den Kanal oder das Konto nur, wenn eine Oberfläche andere Grenzwerte benötigt. channels.discord.guilds.<id>.ignoreOtherMentions(und Kanalüberschreibungen) verwirft Nachrichten, die einen anderen Benutzer oder eine andere 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 auch dann deterministisch erwähnt werden können, wenn der temporäre Verzeichnis-Cache leer ist. Kontospezifische Überschreibungen befinden sich unterchannels.discord.accounts.<accountId>.mentionAliases.maxLinesPerMessage(Standard:17) teilt hohe Nachrichten auch dann auf, wenn sie weniger als 2000 Zeichen umfassen.channels.discord.suppressEmbedsist standardmäßigtrue, sodass ausgehende URLs nicht zu Discord-Linkvorschauen erweitert werden, sofern dies nicht deaktiviert wird. Expliziteembeds-Payloads werden weiterhin normal gesendet; Tool-Aufrufe für einzelne Nachrichten können dies mitsuppressEmbedsüberschreiben.channels.discord.threadBindingssteuert das an Discord-Threads gebundene Routing:enabled: Discord-Überschreibung für an Threads gebundene Sitzungsfunktionen (/focus,/unfocus,/agents,/session idle,/session max-agesowie gebundene Zustellung und gebundenes Routing)idleHours: Discord-Überschreibung für das automatische Aufheben des Fokus nach Inaktivität in Stunden (0deaktiviert dies)maxAgeHours: Discord-Überschreibung für das feste Höchstalter in Stunden (0deaktiviert dies)spawnSessions: Schalter fürsessions_spawn({ thread: true })und die automatische Thread-Erstellung/-Bindung beim Erzeugen von ACP-Threads (Standard:true)defaultSpawnContext: nativer Subagent-Kontext für an Threads gebundene Erzeugungen (standardmäßig"fork")
- Einträge der obersten Ebene unter
bindings[]mittype: "acp"konfigurieren persistente ACP-Bindungen für Kanäle und Threads (verwenden Sie die Kanal-/Thread-ID inmatch.peer.id). Die Feldsemantik wird unter ACP-Agenten gemeinsam erläutert. channels.discord.ui.components.accentColorlegt die Akzentfarbe für Discord-Komponentencontainer der Version 2 fest.channels.discord.agentComponents.ttlMssteuert, wie lange Callbacks gesendeter Discord-Komponenten registriert bleiben. Standard:1800000(30 Minuten), Maximum:86400000(24 Stunden). Kontospezifische Überschreibungen befinden sich unterchannels.discord.accounts.<accountId>.agentComponents.ttlMs. Bevorzugen Sie die kürzeste TTL, die für den Workflow ausreicht.channels.discord.voiceaktiviert Unterhaltungen in Discord-Sprachkanälen sowie optionale Überschreibungen für automatischen Beitritt, LLM und TTS. Reine Textkonfigurationen für Discord lassen Sprachfunktionen 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 Antworten in Discord-Sprachkanälen verwendet wird.channels.discord.voice.daveEncryption(Standard:true) undchannels.discord.voice.decryptionFailureTolerance(Standard:24) werden an die DAVE-Optionen von@discordjs/voicedurchgereicht.channels.discord.voice.connectTimeoutMssteuert die anfängliche Wartezeit auf den@discordjs/voice-Ready-Zustand für/vc joinund Versuche zum automatischen Beitritt (Standard:30000).channels.discord.voice.reconnectGraceMssteuert, wie lange eine getrennte Sprachsitzung benötigen darf, um in die Signalisierung für die Wiederverbindung einzutreten, bevor OpenClaw sie beendet (Standard:15000).- Die Discord-Sprachwiedergabe wird nicht durch das Ereignis zum Sprechbeginn eines anderen Benutzers unterbrochen. Um Rückkopplungsschleifen zu vermeiden, ignoriert OpenClaw neue Sprachaufnahmen, während TTS wiedergegeben wird.
- OpenClaw versucht zusätzlich, den Sprachempfang nach wiederholten Entschlüsselungsfehlern wiederherzustellen, indem es eine Sprachsitzung verlässt und ihr erneut beitritt.
channels.discord.streamingist der kanonische Schlüssel für den Streaming-Modus. Discord verwendet standardmäßigstreaming.mode: "progress", sodass der Fortschritt von Tools und Arbeiten in einer einzigen bearbeiteten Vorschaunachricht erscheint; setzen Siestreaming.mode: "off", um dies zu deaktivieren. Veraltete flache Schlüssel (streamMode,chunkMode,blockStreaming,draftChunk,blockStreamingCoalesce) werden zur Laufzeit nicht mehr gelesen; führen Sieopenclaw doctor --fixaus, um die persistierte Konfiguration zu migrieren.channels.discord.autoPresenceordnet die Runtime-Verfügbarkeit der Bot-Präsenz zu (fehlerfrei => online, beeinträchtigt => idle, erschöpft => dnd) und erlaubt optionale Überschreibungen des Statustexts.channels.discord.guilds.<id>.presenceEventsleitet Ereignisse zur Verfügbarkeit von Personen als Agent-Systemereignisse an einen konfigurierten Discord-Kanal weiter. Berechtigte Mitglieder müssenchannelIdsehen können; öffentliche Threads erben die Sichtbarkeit des übergeordneten Elements, während private Threads zusätzlich eine Mitgliedschaft oder Manage Threads erfordern.userskann diesen Personenkreis weiter einschränken. Die Funktion initialisiert aktuell online befindliche Mitglieder aus vollständigenGUILD_CREATE-Snapshots, leitet beobachtete Übergänge von offline zu online weiter und behandelt ein erstes späteres Online-Signal eines zuvor nicht gesehenen Mitglieds als neu verfügbar, ohne festzustellen, ob die Person online gegangen oder erst nach dem Snapshot beigetreten ist. Guilds oberhalb des Discord-Snapshot-Limits von 75,000 Mitgliedern benötigen zunächst eine explizite Offline-Aktualisierung. Optionen zur Drosselung:reconnectSuppressSeconds(Ruhefenster nach einer neuen Gateway-Sitzung, während der Guild-Präsenzstatus neu aufgebaut wird; Standard: 300,0deaktiviert es) undburstLimit/burstWindowSeconds(Ratenbegrenzung für erfolgreich in die Warteschlange gestellte Ereignisse pro Guild; Standard: 8 Ereignisse pro gleitendem 60s-Fenster). Fortgesetzte Sitzungen starten das Unterdrückungsfenster für Wiederverbindungen nicht. Die bestehende Abklingzeit für erneute Begrüßungen pro Benutzer bleibt bei acht Stunden. Erforderlich sindchannels.discord.intents.presence=true, der privilegierte Presence Intent im Developer Portal von Discord und ein aktivierter Agent-Heartbeat.channels.discord.dangerouslyAllowNameMatchingaktiviert die veränderliche Namens-/Tag-Zuordnung erneut (Break-Glass-Kompatibilitätsmodus).channels.discord.execApprovals: Discord-native Zustellung von Ausführungsgenehmigungen und Autorisierung der Genehmigenden.enabled:true,falseoder"auto"(Standard). Im automatischen Modus werden Ausführungsgenehmigungen aktiviert, wenn Genehmigende überapproversodercommands.ownerAllowFromaufgelöst werden können.approvers: Discord-Benutzer-IDs, die Ausführungsanfragen genehmigen dürfen. Fällt bei Auslassung aufcommands.ownerAllowFromzurück.agentFilter: optionale Positivliste für Agent-IDs. Lassen Sie sie weg, um Genehmigungen für alle Agenten weiterzuleiten.sessionFilter: optionale Muster für Sitzungsschlüssel (Teilzeichenfolge oder regulärer Ausdruck).target: Ziel für Genehmigungsaufforderungen."dm"(Standard) sendet sie an die DMs der Genehmigenden,"channel"sendet sie an den Ursprungskanal und"both"sendet sie an beide. Wenn das Ziel"channel"umfasst, können die Schaltflächen nur von den ermittelten Genehmigenden verwendet werden.cleanupAfterResolve: Wenntruegesetzt ist, werden Genehmigungs-DMs nach Genehmigung, Ablehnung oder Zeitüberschreitung gelöscht.
off (keine), own (Nachrichten des Bots, Standard), all (alle Nachrichten), allowlist (von guilds.<id>.users bei allen Nachrichten).
Google Chat
- Dienstkonto-JSON: inline (
serviceAccount) oder dateibasiert (serviceAccountFile). serviceAccountakzeptiert direkt eine SecretRef.- Umgebungs-Fallbacks:
GOOGLE_CHAT_SERVICE_ACCOUNToderGOOGLE_CHAT_SERVICE_ACCOUNT_FILE(nur für das Standardkonto). - Verwenden Sie
spaces/<spaceId>oderusers/<userId>für Zustellungsziele. channels.googlechat.dangerouslyAllowNameMatchingaktiviert die veränderliche Zuordnung von E-Mail-Principals erneut (Break-Glass-Kompatibilitätsmodus).
Slack
- Socket-Modus erfordert sowohl
botTokenals auchappToken(SLACK_BOT_TOKEN+SLACK_APP_TOKENfür den Umgebungsvariablen-Fallback des Standardkontos). - HTTP-Modus erfordert
botTokensowiesigningSecret(auf Stammebene oder pro Konto). - Benutzeridentität (
identity: "user") veröffentlicht und liest als der autorisierende Mensch. Sie erfordertuserTokensowieappTokenim Socket-Modus oderuserTokensowiesigningSecretim HTTP-Modus. Weder ein Bot-Token noch ein Bot-Benutzer ist erforderlich. Informationen zu Benutzerberechtigungen und Ereignisabonnements finden Sie unter Benutzeridentität. enterpriseOrgInstall: truebindet ein Konto in den organisationsweiten Ereignispfad von Slack Enterprise Grid ein. Beim Start wird das Bot-Token mitauth.testüberprüft; der Start schlägt fehl, wenn der konfigurierte Modus nicht mit der Installationsidentität von Slack übereinstimmt. Unternehmens-DMs müssen deaktiviert sein oderdmPolicy: "open"mit einem wirksamenallowFrom: ["*"]verwenden. Kanal- und Benutzerrichtlinien müssen stabile Slack-IDs verwenden; veränderliche Namen und nicht unterstützte Kanalpräfixe führen zum Fehlschlagen des Starts. V1 verarbeitet nur direkte Socket-Modus- oder HTTP-Ereignisse vom Typmessageundapp_mentionmit sofortigen Antworten; Relay, Befehle, Interaktionen, App Home, Listener für Reaktionsereignisse, Pins, Aktionswerkzeuge, native Genehmigungen, Bindungen, verzögerte Zustellung und proaktives Senden sind nicht verfügbar. Listener-eigene Bestätigungen, Tipp- und Statusreaktionen bleiben mitreactions:writeverfügbar; eingehende Reaktionsbenachrichtigungen und Reaktionsaktionswerkzeuge sind nicht verfügbar. Informationen zum Least-Privilege-Manifest, Einrichtungsablauf und zu allen Einschränkungen finden Sie unter Organisationsweite Enterprise-Grid-Installationen.socketModeübergibt die Transportoptimierung des Slack-SDK-Socket-Modus an die öffentliche Bolt-Receiver-API. Verwenden Sie dies nur zur Untersuchung von Ping/Pong-Zeitüberschreitungen oder veraltetem WebSocket-Verhalten.clientPingTimeoutverwendet standardmäßig15000;serverPingTimeoutundpingPongLoggingEnabledwerden nur übergeben, wenn sie konfiguriert sind.botToken,appToken,signingSecretunduserTokenakzeptieren Klartextzeichenfolgen oder SecretRef-Objekte.- Slack-Kontomomentaufnahmen stellen quell- und statusbezogene Felder pro Anmeldedaten bereit, beispielsweise
botTokenSource,botTokenStatus,userTokenSource,userTokenStatus,appTokenStatusund im HTTP-ModussigningSecretStatus.configured_unavailablebedeutet, dass das Konto über SecretRef konfiguriert ist, der aktuelle Befehls- bzw. Laufzeitpfad den Geheimniswert jedoch nicht auflösen konnte. configWrites: falseblockiert von Slack initiierte Konfigurationsschreibvorgänge.- Das optionale
channels.slack.defaultAccountüberschreibt die Auswahl des Standardkontos, wenn es mit einer konfigurierten Konto-ID übereinstimmt. channels.slack.streaming.modeist der kanonische Schlüssel für den Slack-Stream-Modus (Standard:"partial").channels.slack.streaming.nativeTransportsteuert den nativen Streaming-Transport von Slack (Standard:true). Veraltete Werte fürstreamMode, den booleschen Wertstreaming,chunkMode,blockStreaming,blockStreamingCoalesceundnativeStreamingwerden zur Laufzeit nicht mehr gelesen; führen Sieopenclaw doctor --fixaus, um die persistierte Konfiguration zustreaming.{mode,chunkMode,block.enabled,block.coalesce,nativeTransport}zu migrieren.unfurlLinksundunfurlMediaübergeben die booleschen Slack-Wertechat.postMessagefür Link- und Medienvorschauen bei Bot-Antworten.unfurlLinksverwendet standardmäßigfalse, sodass ausgehende Bot-Links nicht inline erweitert werden, sofern dies nicht aktiviert ist;unfurlMediawird weggelassen, sofern es nicht konfiguriert ist. Legen Sie einen der Werte unterchannels.slack.accounts.<accountId>fest, um den Wert der obersten Ebene für ein einzelnes Konto zu überschreiben.- Verwenden Sie
user:<id>(DM) oderchannel:<id>als Zustellungsziele.
off, own (Standard), all, allowlist (von reactionAllowlist).
Thread-Sitzungsisolierung: thread.historyScope gilt pro Thread (Standard) oder wird kanalweit geteilt. thread.inheritParent kopiert das Transkript des übergeordneten Kanals in neue Threads. thread.initialHistoryLimit (Standard: 20) begrenzt die Anzahl vorhandener Thread-Nachrichten, die beim Start einer neuen Thread-Sitzung abgerufen werden; 0 deaktiviert das Abrufen des Thread-Verlaufs.
- Natives Slack-Streaming sowie der assistentenähnliche Thread-Status „is typing…“ von Slack erfordern einen Antwort-Thread als Ziel. DMs auf oberster Ebene bleiben standardmäßig außerhalb von Threads, sodass sie weiterhin über Slack-Entwurfsvorschauen mit Veröffentlichung und Bearbeitung streamen können, anstatt die native, threadbasierte Stream-/Statusvorschau anzuzeigen.
typingReactionfügt der eingehenden Slack-Nachricht vorübergehend eine Reaktion hinzu, während eine Antwort ausgeführt wird, und entfernt sie nach Abschluss. Verwenden Sie einen Slack-Emoji-Shortcode wie"hourglass_flowing_sand".channels.slack.execApprovals: Slack-native Zustellung an den Genehmigungsclient und Autorisierung ausführender Genehmiger. Dasselbe Schema wie bei Discord:enabled(true/false/"auto"),approvers(Slack-Benutzer-IDs),agentFilter,sessionFilterundtarget("dm","channel"oder"both"). Plugin-Genehmigungen können diesen nativen Clientpfad für von Slack stammende Anfragen verwenden, wenn Slack-Plugin-Genehmiger aufgelöst werden; die Slack-native Zustellung von Plugin-Genehmigungen kann außerdem überapprovals.pluginfür von Slack stammende Sitzungen oder Slack-Ziele aktiviert werden. Plugin-Genehmigungen verwenden Slack-Plugin-Genehmiger ausallowFromund das Standardrouting, nicht die ausführenden Genehmiger.
Mattermost
Mattermost wird genau wie Discord, Slack und WhatsApp als separates Plugin installiert:oncall (bei @-Erwähnung antworten, Standard), onmessage (jede Nachricht), onchar (Nachrichten, die mit einem Auslösepräfix beginnen).
Wenn native Mattermost-Befehle aktiviert sind:
commands.callbackPathmuss ein Pfad sein (beispielsweise/api/channels/mattermost/command), keine vollständige URL.commands.callbackUrlmuss zum OpenClaw-Gateway-Endpunkt aufgelöst werden 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 werden, lehnt OpenClaw Callbacks mit
Unauthorized: invalid command token.ab. - Bei privaten Callback-Hosts bzw. Callback-Hosts im Tailnet oder internen Netz kann Mattermost verlangen,
dass
ServiceSettings.AllowedUntrustedInternalConnectionsden Callback-Host bzw. die Callback-Domain enthält. Verwenden Sie Host-/Domainwerte, keine vollständigen URLs. channels.mattermost.configWrites: von Mattermost initiierte Konfigurationsschreibvorgänge zulassen oder verweigern.channels.mattermost.requireMention:@mentionvor dem Antworten in Kanälen voraussetzen.channels.mattermost.groups.<channelId>.requireMention: kanalspezifische Überschreibung der Erwähnungspflicht ("*"für den Standard).- Das optionale
channels.mattermost.defaultAccountüberschreibt die Auswahl des Standardkontos, wenn es mit einer konfigurierten Konto-ID übereinstimmt.
Signal
off, own (Standard), all, allowlist (von reactionAllowlist).
channels.signal.account: den Kanalstart an eine bestimmte Signal-Kontoidentität binden.channels.signal.configWrites: von Signal initiierte Konfigurationsschreibvorgänge zulassen oder verweigern.- Das optionale
channels.signal.defaultAccountüberschreibt die Auswahl des Standardkontos, wenn es mit einer konfigurierten Konto-ID übereinstimmt.
iMessage
OpenClaw startetimsg rpc (JSON-RPC über stdio). Es ist weder ein Daemon noch ein Port erforderlich. Dies ist der bevorzugte Pfad für neue OpenClaw-iMessage-Einrichtungen, wenn der Host Berechtigungen für die Messages-Datenbank und Automation erteilen kann.
Die Unterstützung für BlueBubbles wurde entfernt. channels.bluebubbles ist im aktuellen OpenClaw keine unterstützte Laufzeitkonfigurationsoberfläche. Migrieren Sie alte Konfigurationen zu channels.imessage; die Kurzfassung finden Sie unter Entfernung von BlueBubbles und der imsg-iMessage-Pfad, die vollständige Übersetzungstabelle unter Umstieg von BlueBubbles.
Wenn das Gateway nicht auf dem bei Messages angemeldeten Mac ausgeführt wird, behalten Sie channels.imessage.enabled=true bei und setzen Sie channels.imessage.cliPath auf einen SSH-Wrapper, der imsg "$@" auf diesem Mac ausführt. Der standardmäßige lokale Pfad imsg ist ausschließlich für macOS vorgesehen.
Bevor Sie sich für produktive Sendevorgänge auf einen SSH-Wrapper verlassen, verifizieren Sie einen ausgehenden imsg send über genau diesen Wrapper. In einigen macOS-TCC-Zuständen wird die Nachrichtenautomatisierung /usr/libexec/sshd-keygen-wrapper zugewiesen, wodurch Lesevorgänge und Prüfungen funktionieren können, während Sendevorgänge mit AppleEvents -1743 fehlschlagen; siehe den Abschnitt zur Fehlerbehebung für SSH-Wrapper unter iMessage.
- Optional überschreibt
channels.imessage.defaultAccountdie standardmäßige Kontoauswahl, wenn der Wert mit einer konfigurierten Konto-ID übereinstimmt. - Erfordert vollständigen Festplattenzugriff auf die Nachrichtendatenbank.
- Bevorzugen Sie
chat_id:<id>-Ziele. Verwenden Sieimsg chats --limit 20, um Chats aufzulisten. cliPathkann auf einen SSH-Wrapper verweisen; legen SieremoteHost(hostoderuser@host) für den Abruf von Anhängen per SCP fest.attachmentRootsundremoteAttachmentRootsbeschränken die Pfade eingehender Anhänge (Standard:/Users/*/Library/Messages/Attachments).- SCP verwendet eine strikte Hostschlüsselprüfung. Stellen Sie daher sicher, dass der Hostschlüssel des Relay-Hosts bereits in
~/.ssh/known_hostsvorhanden ist. channels.imessage.configWrites: Von iMessage initiierte Konfigurationsschreibvorgänge zulassen oder verweigern.channels.imessage.sendTransport: bevorzugterimsg-RPC-Sendetransport für normale ausgehende Antworten.auto(Standard) verwendet für bestehende Chats die IMCore-Bridge, wenn sie ausgeführt wird, und greift anschließend auf AppleScript zurück;bridgeerfordert die Zustellung über eine private API;applescripterzwingt den öffentlichen Automatisierungspfad von Nachrichten.channels.imessage.actions.*: Private API-Aktionen aktivieren, die zusätzlich durchimsg status/openclaw channels status --probeeingeschränkt werden.channels.imessage.includeAttachmentsist standardmäßig deaktiviert; legen Sie den Wert auftruefest, bevor Sie eingehende Medien in Agentendurchläufen erwarten.- Die Wiederherstellung eingehender Nachrichten nach einem Neustart der Bridge/des Gateways erfolgt automatisch (GUID-Deduplizierung plus Altersgrenze für veraltete Rückstände). Bestehende
channels.imessage.catchup.enabled: true-Konfigurationen werden weiterhin als veraltetes Kompatibilitätsprofil berücksichtigt;catchupist standardmäßig deaktiviert. channels.imessage.groups: Gruppenregister und gruppenspezifische Einstellungen. Konfigurieren Sie beigroupPolicy: "allowlist"entweder explizitechat_id-Schlüssel oder einen"*"-Platzhaltereintrag, damit Gruppennachrichten die Registerprüfung passieren können.- Einträge der obersten Ebene unter
bindings[]mittype: "acp"können iMessage-Unterhaltungen an persistente ACP-Sitzungen binden. Verwenden Sie inmatch.peer.idein normalisiertes Handle oder ein explizites Chatziel (chat_id:*,chat_guid:*,chat_identifier:*). Gemeinsame Feldsemantik: ACP-Agenten.
Beispiel für einen iMessage-SSH-Wrapper
Beispiel für einen iMessage-SSH-Wrapper
Matrix
Matrix wird durch ein Plugin bereitgestellt und unterchannels.matrix konfiguriert.
- Die Token-Authentifizierung verwendet
accessToken; die Passwortauthentifizierung verwendetuserId+password. channels.matrix.proxyleitet den Matrix-HTTP-Datenverkehr über einen expliziten HTTP(S)-Proxy. Benannte Konten können dies mitchannels.matrix.accounts.<id>.proxyüberschreiben.channels.matrix.network.dangerouslyAllowPrivateNetworklässt private/interne Homeserver zu.proxyund diese Netzwerkfreigabe sind voneinander unabhängige Steuerelemente.channels.matrix.defaultAccountwählt das bevorzugte Konto in Konfigurationen mit mehreren Konten aus.channels.matrix.autoJoinverwendet standardmäßig"off", sodass Einladungen zu Räumen und neue DM-ähnliche Einladungen ignoriert werden, bis SieautoJoin: "allowlist"mitautoJoinAllowlistoderautoJoin: "always"festlegen.channels.matrix.execApprovals: Matrix-native Übermittlung von Ausführungsgenehmigungen und Autorisierung der Genehmigenden.enabled:true,falseoder"auto"(Standard). Im automatischen Modus werden Ausführungsgenehmigungen aktiviert, wenn die Genehmigenden ausapproversodercommands.ownerAllowFromermittelt werden können.approvers: Matrix-Benutzer-IDs (z. B.@owner:example.org), die Ausführungsanfragen genehmigen dürfen.agentFilter: optionale Positivliste für Agenten-IDs. Lassen Sie sie weg, um Genehmigungen für alle Agenten weiterzuleiten.sessionFilter: optionale Muster für Sitzungsschlüssel (Teilzeichenfolge oder regulärer Ausdruck).target: Ziel für Genehmigungsaufforderungen."dm"(Standard),"channel"(Ursprungsraum) oder"both".- Kontospezifische Überschreibungen:
channels.matrix.accounts.<id>.execApprovals.
channels.matrix.dm.sessionScopesteuert, wie Matrix-DMs zu Sitzungen gruppiert werden:per-user(Standard) verwendet eine gemeinsame Sitzung pro weitergeleitetem Kommunikationspartner, währendper-roomjeden DM-Raum isoliert.- Matrix-Statusprüfungen und Live-Verzeichnissuchen verwenden dieselbe Proxy-Richtlinie wie der Laufzeitdatenverkehr.
- Die vollständige Matrix-Konfiguration, Zielregeln und Einrichtungsbeispiele sind unter Matrix dokumentiert.
Microsoft Teams
Microsoft Teams wird durch ein Plugin bereitgestellt und unterchannels.msteams konfiguriert.
- Hier behandelte zentrale Schlüsselpfade:
channels.msteams,channels.msteams.configWrites. - Die vollständige Teams-Konfiguration (Anmeldedaten, Webhook, DM-/Gruppenrichtlinie sowie team- und kanalspezifische Überschreibungen) ist unter Microsoft Teams dokumentiert.
IRC
IRC wird durch ein Plugin bereitgestellt und unterchannels.irc konfiguriert.
- Hier behandelte zentrale Schlüsselpfade:
channels.irc,channels.irc.dmPolicy,channels.irc.configWrites,channels.irc.nickserv.*. - Optional überschreibt
channels.irc.defaultAccountdie standardmäßige Kontoauswahl, wenn der Wert mit einer konfigurierten Konto-ID übereinstimmt. - Die vollständige IRC-Kanalkonfiguration (Host/Port/TLS/Kanäle/Positivlisten/Erwähnungsprüfung) ist unter IRC dokumentiert.
Mehrere Konten (alle Kanäle)
Führen Sie mehrere Konten pro Kanal aus (jeweils mit einem eigenenaccountId):
defaultwird verwendet, wennaccountIdweggelassen wird (CLI + Routing).- Umgebungsvariablen-Token gelten nur für das Standardkonto.
- Die grundlegenden Kanaleinstellungen gelten für alle Konten, sofern sie nicht kontospezifisch überschrieben werden.
- Verwenden Sie
bindings[].match.accountId, um jedes Konto an einen anderen Agenten weiterzuleiten. - Wenn Sie über
openclaw channels add(oder die Kanaleinrichtung) ein nicht standardmäßiges Konto hinzufügen, während weiterhin eine Einkontokonfiguration des Kanals auf oberster Ebene verwendet wird, verschiebt OpenClaw zunächst die kontospezifischen Einkontowerte der obersten Ebene in die Kontozuordnung des Kanals, damit das ursprüngliche Konto weiterhin funktioniert. Die meisten Kanäle verschieben sie nachchannels.<channel>.accounts.default; Matrix kann stattdessen ein vorhandenes passendes benanntes Ziel oder Standardziel beibehalten. - Bestehende rein kanalbezogene Bindungen (ohne
accountId) stimmen weiterhin mit dem Standardkonto überein; kontospezifische Bindungen bleiben optional. openclaw doctor --fixrepariert außerdem gemischte Strukturen, indem kontospezifische Einkontowerte der obersten Ebene in das für diesen Kanal ausgewählte hochgestufte Konto verschoben werden. Die meisten Kanäle verwendenaccounts.default; Matrix kann stattdessen ein vorhandenes passendes benanntes Ziel oder Standardziel beibehalten.
Weitere Plugin-Kanäle
Viele Plugin-Kanäle werden alschannels.<id> konfiguriert und auf ihren jeweiligen Kanalseiten dokumentiert (zum Beispiel Feishu, LINE, Nextcloud Talk, Nostr, QQ Bot, Synology Chat, Twitch und Zalo).
Den vollständigen Kanalindex finden Sie unter Kanäle.
Erwähnungsprüfung in Gruppenchats
Gruppennachrichten erfordern standardmäßig eine Erwähnung (Metadaten-Erwähnung oder sichere Regex-Muster). Dies gilt für Gruppenchats in WhatsApp, Telegram, Discord, Google Chat und iMessage. Sichtbare Antworten werden separat gesteuert. Normale direkte Anfragen aus Gruppen, Kanälen und dem internen WebChat verwenden standardmäßig die automatische abschließende Zustellung: Der endgültige Assistententext wird über den bisherigen Pfad für sichtbare Antworten veröffentlicht. Aktivieren Siemessages.visibleReplies: "message_tool" oder messages.groupChat.visibleReplies: "message_tool", wenn vom Modell verfasste Antworten an die Quelle erst veröffentlicht werden sollen, nachdem der Agent message(action=send) aufgerufen hat. Wenn das Modell in einem aktivierten Nur-Tool-Modus eine inhaltlich relevante endgültige Antwort zurückgibt, ohne das Nachrichtenwerkzeug aufzurufen, bleibt dieser endgültige Text privat, das ausführliche Gateway-Protokoll zeichnet Metadaten der unterdrückten Nutzlast auf und OpenClaw stellt einen Wiederherstellungsversuch in die Warteschlange, der das Modell auffordert, dieselbe Antwort über message(action=send) zuzustellen.
Die Nur-Tool-Richtlinie gilt für Assistentenantworten an die Quelle und generische Tool-Medien. Sie unterdrückt keine laufzeiteigenen Terminalausgaben wie autorisierte Befehlsantworten, dauerhafte Abschlussbenachrichtigungen oder Provider-native Artefakte, die das zuständige Ausführungssystem ausdrücklich als hosteigen klassifiziert. Hosteigene Artefakte werden über den normalen Kanalversandpfad zugestellt und berücksichtigen weiterhin eine ausgehende Verweigerung durch sendPolicy. Umgebungsgesteuerte room_event-Durchläufe bleiben still, sofern es sich nicht um explizite Befehle handelt, selbst wenn Laufzeitausgaben als hosteigen markiert sind.
Nur-Tool-Antworten erfordern ein Modell/eine Laufzeit, das bzw. die Werkzeuge zuverlässig aufruft, und werden für gemeinsam genutzte, umgebungsgesteuerte Räume mit Modellen der neuesten Generation wie GPT-5.6 Sol empfohlen. Einige schwächere Modelle können endgültigen Text ausgeben, verstehen jedoch nicht, dass für die Quelle sichtbare Ausgaben mit message(action=send) gesendet werden müssen. OpenClaw stellt den häufigen Fall einer nicht zugestellten endgültigen Antwort standardmäßig nur dann wieder her, wenn die endgültige Antwort inhaltlich relevant ist, der Quelldurchlauf kein Raumereignis war, die Senderichtlinie die Zustellung nicht verweigert hat und noch keine Antwort an die Quelle gesendet wurde. Die Wiederherstellung ist auf einen Versuch begrenzt; sie unterdrückt die Persistierung der synthetischen Wiederholungsaufforderung und schließt diesen Wiederholungsversuch von der Sammelverarbeitung aus, sodass er nicht mit unabhängigen Aufforderungen in der Warteschlange zusammengeführt werden kann. Wenn auch der Wiederholungsversuch nicht zugestellt oder nicht in die Warteschlange gestellt werden kann, liefert OpenClaw lediglich eine bereinigte Diagnose wie „Ich habe eine Antwort erstellt, konnte sie jedoch nicht an diesen Chat zustellen. Bitte versuchen Sie es erneut.“ Der ursprüngliche private endgültige Text wird niemals für eine automatische Zustellung an die Quelle markiert. Verwenden Sie bei Modellen, die Antworten wiederholt nicht zustellen, "automatic", sodass der letzte Assistentendurchlauf als Pfad für sichtbare Antworten dient, wechseln Sie zu einem leistungsfähigeren Modell für Tool-Aufrufe, prüfen Sie das ausführliche Gateway-Protokoll auf die Zusammenfassung der unterdrückten Nutzlast oder legen Sie messages.groupChat.visibleReplies: "automatic" fest, um für jede Gruppen-/Kanalanfrage sichtbare endgültige Antworten zu verwenden.
Wenn das Nachrichten-Tool gemäß der aktiven Tool-Richtlinie nicht verfügbar ist, greift OpenClaw auf automatische sichtbare Antworten zurück, statt die Antwort stillschweigend zu unterdrücken. openclaw doctor warnt vor dieser Diskrepanz.
Diese Regel gilt für den normalen finalen Agententext. Plugin-eigene Konversationsbindungen verwenden bei beanspruchten Nachrichten in gebundenen Threads die vom zuständigen Plugin zurückgegebene Antwort als sichtbare Antwort; das Plugin muss für diese Bindungsantworten message(action=send) nicht aufrufen.
Fehlerbehebung: Eine @Erwähnung in einer Gruppe löst eine Tippanzeige aus, danach bleibt es still (kein Fehler)
Symptom: Eine @Erwähnung in einer Gruppe/einem Kanal zeigt die Tippanzeige an und das Gateway-Protokoll meldet dispatch complete (queuedFinal=false, replies=0), aber im Raum kommt keine Nachricht an. Direktnachrichten an denselben Agenten werden normal beantwortet.
Ursache: Der Modus für sichtbare Antworten in Gruppen/Kanälen wird zu "message_tool" aufgelöst. OpenClaw führt die Verarbeitung daher aus, unterdrückt aber den finalen Assistententext, sofern der Agent nicht message(action=send) aufruft. In diesem Modus gibt es keinen NO_REPLY-Vertrag; ohne Aufruf des Nachrichten-Tools bleibt der ursprüngliche finale Text privat. Bei substanziellen Quellnachrichten versucht OpenClaw nun eine einzelne abgesicherte Wiederholung zur Wiederherstellung; kurze Notizen, explizites Schweigen, Raumereignisse, aufgrund der Senderichtlinie abgelehnte Verarbeitungen und bereits zugestellte Verarbeitungen werden nicht wiederholt. Normale Gruppen- und Kanalverarbeitungen verwenden standardmäßig "automatic", sodass dieses Symptom nur auftritt, wenn messages.groupChat.visibleReplies (oder global messages.visibleReplies) explizit auf "message_tool" gesetzt ist. Harness-defaultVisibleReplies gilt hier nicht – der Resolver für Gruppen/Kanäle ignoriert es; es wirkt sich nur auf Direkt-/Quellchats aus (das Codex-Harness unterdrückt auf diese Weise finale Antworten in Direktchats).
Behebung: Wählen Sie entweder ein Modell, das Tools zuverlässiger aufruft, entfernen Sie die explizite "message_tool"-Überschreibung, um auf den Standardwert "automatic" zurückzufallen, oder setzen Sie messages.groupChat.visibleReplies: "automatic", um sichtbare Antworten für jede Gruppen-/Kanalanfrage zu erzwingen. Eine substanzielle, nicht zugestellte finale Antwort sollte nicht mehr als stillschweigender Erfolg enden; sie sollte entweder durch eine einzelne message(action=send)-Wiederholung wiederhergestellt werden oder die bereinigte Diagnose zum Zustellungsfehler anzeigen. Das Gateway lädt die messages-Konfiguration nach dem Speichern der Datei dynamisch neu; starten Sie das Gateway nur dann neu, wenn die Dateiüberwachung oder das erneute Laden der Konfiguration in der Bereitstellung deaktiviert ist.
Erwähnungstypen:
- Metadaten-Erwähnungen: Native @Erwähnungen der Plattform. Werden im WhatsApp-Selbstchatmodus ignoriert.
- Textmuster: Sichere Regex-Muster in
agents.entries.*.groupChat.mentionPatterns. Ungültige Muster und unsichere verschachtelte Wiederholungen werden ignoriert. - Die Erwähnungsbeschränkung wird nur durchgesetzt, wenn eine Erkennung möglich ist (native Erwähnungen oder mindestens ein Muster).
messages.groupChat.historyLimit legt den globalen Standardwert fest. Kanäle können ihn mit channels.<channel>.historyLimit (oder pro Konto) überschreiben. Setzen Sie 0, um ihn zu deaktivieren.
messages.groupChat.unmentionedInbound: "room_event" übermittelt nicht erwähnende, dauerhaft aktive Gruppen-/Kanalnachrichten auf unterstützten Kanälen als stillen Raumkontext. Erwähnte Nachrichten, Befehle und Direktnachrichten bleiben Benutzeranfragen. Vollständige Beispiele für Discord, Slack und Telegram finden Sie unter Umgebende Raumereignisse.
messages.visibleReplies ist der globale Standardwert für Quellereignisse; messages.groupChat.visibleReplies überschreibt ihn für Gruppen-/Kanalquellereignisse. Wenn messages.visibleReplies nicht gesetzt ist, verwenden Direkt-/Quellchats den ausgewählten Runtime- oder Harness-Standardwert, interne direkte WebChat-Verarbeitungen verwenden jedoch die automatische finale Zustellung, um die Prompt-Parität zwischen Pi und Codex sicherzustellen. Setzen Sie messages.visibleReplies: "message_tool", um für sichtbare Ausgaben absichtlich message(action=send) vorauszusetzen. Kanal-Zulassungslisten und die Erwähnungsbeschränkung bestimmen weiterhin, ob ein Ereignis verarbeitet wird.
Verlaufslimits für Direktnachrichten
channels.<provider>.dmHistoryLimit und channels.<provider>.dms.<id>.historyLimit für jeden Kanal, dessen Sitzungsschlüssel der standardmäßigen Form provider:direct:<id> (oder der veralteten Form provider:dm:<id>) entspricht. Daher funktioniert er gleichermaßen für gebündelte und Plugin-Kanäle und nicht nur für eine feste Liste.
Selbstchatmodus
Nehmen Sie Ihre eigene Nummer inallowFrom auf, um den Selbstchatmodus zu aktivieren (native @Erwähnungen werden ignoriert, es wird nur auf Textmuster geantwortet):
Befehle (Verarbeitung von Chatbefehlen)
Befehlsdetails
Befehlsdetails
- Dieser Block konfiguriert Befehlsoberflächen. Den aktuellen integrierten und gebündelten Befehlskatalog finden Sie unter Slash-Befehle.
- Diese Seite ist eine Referenz der Konfigurationsschlüssel, nicht der vollständige Befehlskatalog. Kanal-/Plugin-eigene Befehle wie QQ Bot
/bot-ping/bot-help/bot-logs, LINE/card, Gerätekopplung/pair, Speicher/dreaming, Telefonsteuerung/phoneund Talk/voicesind auf den jeweiligen Kanal-/Plugin-Seiten sowie unter Slash-Befehle dokumentiert. - Textbefehle müssen eigenständige Nachrichten mit vorangestelltem
/sein. native: "auto"aktiviert native Befehle für Discord/Telegram und lässt sie für Slack deaktiviert.nativeSkills: "auto"aktiviert native Skill-Befehle für Discord/Telegram und lässt sie für Slack deaktiviert.- Überschreibung pro Kanal:
channels.discord.commands.native(boolescher Wert oder"auto"). Bei Discord überspringtfalsebeim Start die Registrierung und Bereinigung nativer Befehle. - Überschreiben Sie die Registrierung nativer Skills pro Kanal mit
channels.<provider>.commands.nativeSkills. channels.telegram.customCommandsfügt zusätzliche Einträge zum Bot-Menü von Telegram hinzu.bash: trueaktiviert! <cmd>für die Host-Shell. Erforderttools.elevated.enabledund einen Absender intools.elevated.allowFrom.<channel>.config: trueaktiviert/config(liest/schreibtopenclaw.json). Für Gateway-chat.send-Clients erfordern persistente/config set|unset-Schreibvorgänge zusätzlichoperator.admin; schreibgeschützte/config show-Vorgänge bleiben für normale Operator-Clients mit Schreibberechtigung verfügbar.mcp: trueaktiviert/mcpfür die von OpenClaw verwaltete MCP-Serverkonfiguration untermcp.servers.plugins: trueaktiviert/pluginsfür die Erkennung, Installation sowie Aktivierungs-/Deaktivierungssteuerung von Plugins.channels.<provider>.configWritesbeschränkt Konfigurationsänderungen pro Kanal (Standardwert: true).- Bei Kanälen mit mehreren Konten beschränkt
channels.<provider>.accounts.<id>.configWritesaußerdem Schreibvorgänge, die auf dieses Konto abzielen (beispielsweise/allowlist --config --account <id>oder/config set channels.<provider>.accounts.<id>...). restart: falsedeaktiviert/restartund externeSIGUSR1-Neustartanforderungen. Standardwert:true.ownerAllowFromist die explizite Eigentümer-Zulassungsliste für ausschließlich Eigentümern vorbehaltene Befehle und eigentümerbeschränkte Kanalaktionen. Sie ist vonallowFromgetrennt.ownerDisplay: "hash"hasht Eigentümer-IDs im System-Prompt. Setzen SieownerDisplaySecret, um das Hashing zu steuern.allowFromgilt pro Provider. Wenn es gesetzt ist, bildet es die einzige Autorisierungsquelle (Kanal-Zulassungslisten/Kopplung unduseAccessGroupswerden ignoriert).useAccessGroups: falseerlaubt Befehlen, Richtlinien für Zugriffsgruppen zu umgehen, wennallowFromnicht gesetzt ist.- Übersicht der Befehlsdokumentation:
Verwandte Themen
- Konfigurationsreferenz — Schlüssel der obersten Ebene
- Konfiguration — Agenten
- Kanalübersicht