Matrix
Matrix ist das gebündelte Matrix-Channel-Plugin für OpenClaw. Es verwendet das offiziellematrix-js-sdk und unterstützt DMs, Räume, Threads, Medien, Reaktionen, Umfragen, Standort und E2EE.
Gebündeltes Plugin
Matrix wird in aktuellen OpenClaw-Releases als gebündeltes Plugin ausgeliefert, daher benötigen normale paketierte Builds keine separate Installation. Wenn Sie einen älteren Build oder eine benutzerdefinierte Installation verwenden, die Matrix ausschließt, installieren Sie es manuell: Von npm installieren:Einrichtung
- Stellen Sie sicher, dass das Matrix-Plugin verfügbar ist.
- Aktuelle paketierte OpenClaw-Releases enthalten es bereits.
- Ältere/benutzerdefinierte Installationen können es manuell mit den obigen Befehlen hinzufügen.
- Erstellen Sie ein Matrix-Konto auf Ihrem Homeserver.
- Konfigurieren Sie
channels.matrixmit entweder:homeserver+accessToken, oderhomeserver+userId+password.
- Starten Sie das Gateway neu.
- Starten Sie eine DM mit dem Bot oder laden Sie ihn in einen Raum ein.
- Homeserver-URL
- Authentifizierungsmethode: Access Token oder Passwort
- Benutzer-ID nur, wenn Sie Passwortauthentifizierung wählen
- optionaler Gerätename
- ob E2EE aktiviert werden soll
- ob der Matrix-Raumzugriff jetzt konfiguriert werden soll
- Wenn Matrix-Auth-Umgebungsvariablen für das ausgewählte Konto bereits existieren und für dieses Konto noch keine Authentifizierung in der Konfiguration gespeichert ist, bietet der Assistent eine Umgebungsvariablen-Abkürzung an und schreibt für dieses Konto nur
enabled: true. - Wenn Sie interaktiv ein weiteres Matrix-Konto hinzufügen, wird der eingegebene Kontoname in die Konto-ID normalisiert, die in Konfiguration und Umgebungsvariablen verwendet wird. Zum Beispiel wird
Ops Botzuops-bot. - DM-Allowlist-Eingabeaufforderungen akzeptieren sofort vollständige
@user:server-Werte. Anzeigenamen funktionieren nur, wenn die Live-Verzeichnissuche genau einen Treffer findet; andernfalls fordert der Assistent Sie auf, es mit einer vollständigen Matrix-ID erneut zu versuchen. - Raum-Allowlist-Eingabeaufforderungen akzeptieren Raum-IDs und Aliasse direkt. Sie können auch Namen beigetretener Räume live auflösen, aber nicht aufgelöste Namen werden bei der Einrichtung nur so gespeichert, wie sie eingegeben wurden, und später bei der Laufzeit-Allowlist-Auflösung ignoriert. Bevorzugen Sie
!room:serveroder#alias:server. - Die Laufzeit-Raum-/Sitzungsidentität verwendet die stabile Matrix-Raum-ID. In Räumen deklarierte Aliasse werden nur als Lookup-Eingaben verwendet, nicht als langfristiger Sitzungsschlüssel oder stabile Gruppenidentität.
- Um Raumnamen vor dem Speichern aufzulösen, verwenden Sie
openclaw channels resolve --channel matrix "Project Room".
~/.openclaw/credentials/matrix/.
Das Standardkonto verwendet credentials.json; benannte Konten verwenden credentials-<account>.json.
Entsprechende Umgebungsvariablen (werden verwendet, wenn der Konfigurationsschlüssel nicht gesetzt ist):
MATRIX_HOMESERVERMATRIX_ACCESS_TOKENMATRIX_USER_IDMATRIX_PASSWORDMATRIX_DEVICE_IDMATRIX_DEVICE_NAME
MATRIX_<ACCOUNT_ID>_HOMESERVERMATRIX_<ACCOUNT_ID>_ACCESS_TOKENMATRIX_<ACCOUNT_ID>_USER_IDMATRIX_<ACCOUNT_ID>_PASSWORDMATRIX_<ACCOUNT_ID>_DEVICE_IDMATRIX_<ACCOUNT_ID>_DEVICE_NAME
ops:
MATRIX_OPS_HOMESERVERMATRIX_OPS_ACCESS_TOKEN
ops-bot verwenden Sie:
MATRIX_OPS_X2D_BOT_HOMESERVERMATRIX_OPS_X2D_BOT_ACCESS_TOKEN
- zu _X2D_, sodass ops-prod zu MATRIX_OPS_X2D_PROD_* wird.
Der interaktive Assistent bietet die Umgebungsvariablen-Abkürzung nur an, wenn diese Auth-Umgebungsvariablen bereits vorhanden sind und das ausgewählte Konto nicht bereits Matrix-Authentifizierung in der Konfiguration gespeichert hat.
Konfigurationsbeispiel
Dies ist eine praktische Basiskonfiguration mit DM-Pairing, Raum-Allowlist und aktivierter E2EE:Streaming-Vorschauen
Matrix-Antwort-Streaming ist Opt-in. Setzen Siechannels.matrix.streaming auf "partial", wenn Sie möchten, dass OpenClaw eine einzelne Entwurfsantwort sendet,
diesen Entwurf während der Textgenerierung des Modells direkt bearbeitet und ihn dann finalisiert, wenn die Antwort
fertig ist:
streaming: "off"ist der Standard. OpenClaw wartet auf die endgültige Antwort und sendet sie einmal.streaming: "partial"erstellt eine bearbeitbare Vorschau-Nachricht für den aktuellen Assistant-Block, anstatt mehrere partielle Nachrichten zu senden.blockStreaming: trueaktiviert separate Matrix-Fortschrittsnachrichten. Mitstreaming: "partial"behält Matrix den Live-Entwurf für den aktuellen Block bei und bewahrt abgeschlossene Blöcke als separate Nachrichten.- Wenn
streaming: "partial"gesetzt undblockStreamingdeaktiviert ist, bearbeitet Matrix nur den Live-Entwurf und sendet die abgeschlossene Antwort, sobald dieser Block oder Turn beendet ist. - Wenn die Vorschau nicht mehr in ein einzelnes Matrix-Ereignis passt, stoppt OpenClaw das Vorschau-Streaming und greift auf die normale endgültige Zustellung zurück.
- Medienantworten senden Anhänge weiterhin normal. Wenn eine veraltete Vorschau nicht mehr sicher wiederverwendet werden kann, redigiert OpenClaw sie vor dem Senden der endgültigen Medienantwort.
- Vorschau-Bearbeitungen verursachen zusätzliche Matrix-API-Aufrufe. Lassen Sie Streaming deaktiviert, wenn Sie das konservativste Rate-Limit-Verhalten wünschen.
blockStreaming aktiviert Entwurfsvorschauen nicht von selbst.
Verwenden Sie streaming: "partial" für Vorschau-Bearbeitungen; fügen Sie dann blockStreaming: true nur hinzu, wenn Sie auch möchten, dass abgeschlossene Assistant-Blöcke als separate Fortschrittsnachrichten sichtbar bleiben.
Verschlüsselung und Verifizierung
In verschlüsselten (E2EE) Räumen verwenden ausgehende Bildereignissethumbnail_file, sodass Bildvorschauen zusammen mit dem vollständigen Anhang verschlüsselt werden. Unverschlüsselte Räume verwenden weiterhin einfaches thumbnail_url. Keine Konfiguration erforderlich — das Plugin erkennt den E2EE-Status automatisch.
Bot-zu-Bot-Räume
Standardmäßig werden Matrix-Nachrichten von anderen konfigurierten OpenClaw-Matrix-Konten ignoriert. Verwenden SieallowBots, wenn Sie bewusst Matrix-Datenverkehr zwischen Agents möchten:
allowBots: trueakzeptiert Nachrichten von anderen konfigurierten Matrix-Bot-Konten in erlaubten Räumen und DMs.allowBots: "mentions"akzeptiert diese Nachrichten in Räumen nur, wenn sie diesen Bot sichtbar erwähnen. DMs bleiben weiterhin erlaubt.groups.<room>.allowBotsüberschreibt die Einstellung auf Kontoebene für einen Raum.- OpenClaw ignoriert weiterhin Nachrichten von derselben Matrix-Benutzer-ID, um Selbstantwort-Schleifen zu vermeiden.
- Matrix stellt hier kein natives Bot-Flag bereit; OpenClaw behandelt „von einem Bot verfasst“ als „von einem anderen konfigurierten Matrix-Konto auf diesem OpenClaw-Gateway gesendet“.
channels.matrix.accounts mit kontospezifischen Anmeldedaten und optionalem name. Siehe Konfigurationsreferenz für das gemeinsame Muster.
Ausführliche Bootstrap-Diagnose:
verify-Befehle sind standardmäßig kompakt (einschließlich stiller interner SDK-Protokollierung) und zeigen detaillierte Diagnosen nur mit --verbose.
Verwenden Sie --json für vollständige maschinenlesbare Ausgabe beim Skripten.
In Mehrkonten-Setups verwenden Matrix-CLI-Befehle das implizite Matrix-Standardkonto, sofern Sie nicht --account <id> übergeben.
Wenn Sie mehrere benannte Konten konfigurieren, setzen Sie zuerst channels.matrix.defaultAccount, sonst stoppen diese impliziten CLI-Operationen und fordern Sie auf, explizit ein Konto auszuwählen.
Verwenden Sie --account, wann immer Verifizierungs- oder Geräteoperationen explizit auf ein benanntes Konto zielen sollen:
channels.matrix.accounts.assistant.encryption.
Was „verifiziert“ bedeutet
OpenClaw behandelt dieses Matrix-Gerät nur dann als verifiziert, wenn es durch Ihre eigene Cross-Signing-Identität verifiziert ist. In der Praxis zeigtopenclaw matrix verify status --verbose drei Vertrauenssignale:
Locally trusted: Dieses Gerät wird nur vom aktuellen Client vertrautCross-signing verified: Das SDK meldet das Gerät als über Cross-Signing verifiziertSigned by owner: Das Gerät ist mit Ihrem eigenen Self-Signing-Schlüssel signiert
Verified by owner wird nur dann zu yes, wenn Cross-Signing-Verifizierung oder Owner-Signing vorhanden ist.
Lokales Vertrauen allein reicht nicht aus, damit OpenClaw das Gerät als vollständig verifiziert behandelt.
Was Bootstrap tut
openclaw matrix verify bootstrap ist der Reparatur- und Einrichtungsbefehl für verschlüsselte Matrix-Konten.
Er macht der Reihe nach Folgendes:
- bootstrappt Secret Storage und verwendet nach Möglichkeit einen vorhandenen Wiederherstellungsschlüssel erneut
- bootstrappt Cross-Signing und lädt fehlende öffentliche Cross-Signing-Schlüssel hoch
- versucht, das aktuelle Gerät zu markieren und per Cross-Signing zu signieren
- erstellt ein neues serverseitiges Raumschlüssel-Backup, falls noch keines existiert
m.login.dummy und dann mit m.login.password, wenn channels.matrix.password konfiguriert ist.
Verwenden Sie --force-reset-cross-signing nur, wenn Sie bewusst die aktuelle Cross-Signing-Identität verwerfen und eine neue erstellen möchten.
Wenn Sie bewusst das aktuelle Raumschlüssel-Backup verwerfen und eine neue
Backup-Basis für zukünftige Nachrichten starten möchten, verwenden Sie openclaw matrix verify backup reset --yes.
Tun Sie dies nur, wenn Sie akzeptieren, dass nicht wiederherstellbarer alter verschlüsselter Verlauf
nicht verfügbar bleibt und OpenClaw Secret Storage möglicherweise neu erstellt, wenn das aktuelle Backup-
Geheimnis nicht sicher geladen werden kann.
Frische Backup-Basis
Wenn Sie möchten, dass zukünftige verschlüsselte Nachrichten weiterhin funktionieren, und akzeptieren, dass nicht wiederherstellbarer alter Verlauf verloren geht, führen Sie diese Befehle in dieser Reihenfolge aus:--account <id> hinzu, wenn Sie explizit ein benanntes Matrix-Konto ansprechen möchten.
Startverhalten
Wennencryption: true gesetzt ist, verwendet Matrix standardmäßig startupVerification mit dem Wert "if-unverified".
Beim Start fordert Matrix, wenn dieses Gerät noch nicht verifiziert ist, die Selbstverifizierung in einem anderen Matrix-Client an,
überspringt doppelte Anfragen, solange bereits eine aussteht, und wendet vor einem erneuten Versuch nach Neustarts eine lokale Cooldown-Zeit an.
Fehlgeschlagene Anforderungsversuche werden standardmäßig schneller wiederholt als eine erfolgreiche Anforderungserstellung.
Setzen Sie startupVerification: "off", um automatische Startanfragen zu deaktivieren, oder passen Sie startupVerificationCooldownHours
an, wenn Sie ein kürzeres oder längeres Wiederholungsfenster möchten.
Beim Start wird außerdem automatisch ein konservativer Crypto-Bootstrap-Durchlauf ausgeführt.
Dieser Durchlauf versucht zuerst, den aktuellen Secret Storage und die aktuelle Cross-Signing-Identität wiederzuverwenden, und vermeidet das Zurücksetzen von Cross-Signing, sofern Sie nicht explizit einen Bootstrap-Reparaturablauf starten.
Wenn beim Start ein fehlerhafter Bootstrap-Status gefunden wird und channels.matrix.password konfiguriert ist, kann OpenClaw einen strengeren Reparaturpfad versuchen.
Wenn das aktuelle Gerät bereits vom Eigentümer signiert ist, bewahrt OpenClaw diese Identität, anstatt sie automatisch zurückzusetzen.
Upgrade vom vorherigen öffentlichen Matrix-Plugin:
- OpenClaw verwendet nach Möglichkeit automatisch dasselbe Matrix-Konto, denselben Access Token und dieselbe Geräteidentität weiter.
- Bevor ausführbare Matrix-Migrationsänderungen laufen, erstellt oder verwendet OpenClaw einen Wiederherstellungs-Snapshot unter
~/Backups/openclaw-migrations/. - Wenn Sie mehrere Matrix-Konten verwenden, setzen Sie
channels.matrix.defaultAccountvor dem Upgrade vom alten Flat-Store-Layout, damit OpenClaw weiß, welches Konto diesen gemeinsam genutzten Legacy-Status erhalten soll. - Wenn das vorherige Plugin lokal einen Entschlüsselungsschlüssel für Matrix-Raumschlüssel-Backups gespeichert hatte, importiert der Start oder
openclaw doctor --fixihn automatisch in den neuen Wiederherstellungsschlüssel-Ablauf. - Wenn sich der Matrix-Access-Token nach Vorbereitung der Migration geändert hat, durchsucht der Start jetzt benachbarte Token-Hash-Speicherwurzeln nach ausstehendem Legacy-Wiederherstellungsstatus, bevor die automatische Backup-Wiederherstellung aufgegeben wird.
- Wenn sich der Matrix-Access-Token später für dasselbe Konto, denselben Homeserver und denselben Benutzer ändert, verwendet OpenClaw jetzt bevorzugt die vollständigste vorhandene Token-Hash-Speicherwurzel weiter, anstatt mit einem leeren Matrix-Statusverzeichnis zu beginnen.
- Beim nächsten Gateway-Start werden gesicherte Raumschlüssel automatisch in den neuen Krypto-Store wiederhergestellt.
- Wenn das alte Plugin lokale Raumschlüssel hatte, die nie gesichert wurden, warnt OpenClaw dies klar. Diese Schlüssel können nicht automatisch aus dem vorherigen Rust-Krypto-Store exportiert werden, daher kann ein Teil des alten verschlüsselten Verlaufs nicht verfügbar bleiben, bis er manuell wiederhergestellt wird.
- Siehe Matrix-Migration für den vollständigen Upgrade-Ablauf, Einschränkungen, Wiederherstellungsbefehle und häufige Migrationsmeldungen.
~/.openclaw/matrix/accounts/<account>/<homeserver>__<user>/<token-hash>/ organisiert.
Dieses Verzeichnis enthält den Sync-Store (bot-storage.json), den Krypto-Store (crypto/),
die Wiederherstellungsschlüsseldatei (recovery-key.json), den IndexedDB-Snapshot (crypto-idb-snapshot.json),
Thread-Bindings (thread-bindings.json) und den Startverifizierungsstatus (startup-verification.json),
wenn diese Funktionen verwendet werden.
Wenn sich der Token ändert, die Kontoidentität aber gleich bleibt, verwendet OpenClaw die beste vorhandene
Wurzel für dieses Konto-/Homeserver-/Benutzer-Tupel weiter, sodass vorheriger Sync-Status, Krypto-Status, Thread-Bindings
und Startverifizierungsstatus weiterhin sichtbar bleiben.
Node-Krypto-Store-Modell
Matrix-E2EE in diesem Plugin verwendet den offiziellenmatrix-js-sdk-Rust-Kryptopfad in Node.
Dieser Pfad erwartet IndexedDB-basierte Persistenz, wenn der Krypto-Status Neustarts überstehen soll.
OpenClaw stellt dies in Node derzeit bereit, indem es:
fake-indexeddbals vom SDK erwarteten IndexedDB-API-Shim verwendet- die Rust-Krypto-IndexedDB-Inhalte vor
initRustCryptoauscrypto-idb-snapshot.jsonwiederherstellt - die aktualisierten IndexedDB-Inhalte nach der Initialisierung und während der Laufzeit zurück in
crypto-idb-snapshot.jsonpersistiert - Snapshot-Wiederherstellung und -Persistierung gegenüber
crypto-idb-snapshot.jsonmit einer Advisory-Dateisperre serialisiert, damit Gateway-Laufzeitpersistenz und CLI-Wartung nicht gleichzeitig auf dieselbe Snapshot-Datei zugreifen
- SecretRef-Unterstützung für persistentes Matrix-Schlüsselmaterial hinzufügen, damit Wiederherstellungsschlüssel und zugehörige Store-Verschlüsselungsgeheimnisse aus OpenClaw-Secrets-Providern statt nur aus lokalen Dateien bezogen werden können
Profilverwaltung
Aktualisieren Sie das Matrix-Selbstprofil für das ausgewählte Konto mit:--account <id> hinzu, wenn Sie explizit ein benanntes Matrix-Konto ansprechen möchten.
Matrix akzeptiert mxc://-Avatar-URLs direkt. Wenn Sie eine http://- oder https://-Avatar-URL übergeben, lädt OpenClaw sie zuerst zu Matrix hoch und speichert die aufgelöste mxc://-URL zurück in channels.matrix.avatarUrl (oder in die ausgewählte Kontoüberschreibung).
Automatische Verifizierungshinweise
Matrix veröffentlicht jetzt Hinweise zum Verifizierungslebenszyklus direkt im strikten DM-Verifizierungsraum alsm.notice-Nachrichten.
Dazu gehören:
- Hinweise zu Verifizierungsanfragen
- Hinweise, dass die Verifizierung bereit ist (mit expliziter Anleitung „Per Emoji verifizieren“)
- Hinweise zu Verifizierungsstart und -abschluss
- SAS-Details (Emoji und Dezimal), wenn verfügbar
NO_REPLY erzeugen.
Gerätehygiene
Alte von OpenClaw verwaltete Matrix-Geräte können sich auf dem Konto ansammeln und das Vertrauen in verschlüsselten Räumen schwerer nachvollziehbar machen. Listen Sie sie auf mit:Reparatur direkter Räume
Wenn der Direktnachrichtenstatus nicht mehr synchron ist, kann OpenClaw am Ende veraltetem.direct-Zuordnungen haben, die auf alte Einzelräume statt auf die aktive DM verweisen. Prüfen Sie die aktuelle Zuordnung für einen Peer mit:
- er bevorzugt eine strikte 1:1-DM, die bereits in
m.directzugeordnet ist - andernfalls greift er auf eine aktuell beigetretene strikte 1:1-DM mit diesem Benutzer zurück
- wenn keine funktionierende DM existiert, erstellt er einen neuen direkten Raum und schreibt
m.directso um, dass darauf verwiesen wird
Threads
Matrix unterstützt native Matrix-Threads sowohl für automatische Antworten als auch für Message-Tool-Sendungen.threadReplies: "off"hält Antworten auf oberster Ebene und hält eingehende Thread-Nachrichten in der übergeordneten Sitzung.threadReplies: "inbound"antwortet innerhalb eines Threads nur dann, wenn sich die eingehende Nachricht bereits in diesem Thread befand.threadReplies: "always"hält Raumantworten in einem Thread, der an der auslösenden Nachricht verankert ist, und leitet diese Unterhaltung über die passende threadbezogene Sitzung ab der ersten auslösenden Nachricht weiter.dm.threadRepliesüberschreibt die oberste Einstellung nur für DMs. So können Sie beispielsweise Raum-Threads isoliert halten und DMs dennoch flach halten.- Eingehende Thread-Nachrichten enthalten die Thread-Root-Nachricht als zusätzlichen Agent-Kontext.
- Message-Tool-Sendungen übernehmen jetzt automatisch den aktuellen Matrix-Thread, wenn das Ziel derselbe Raum oder dasselbe DM-Benutzerziel ist, sofern kein explizites
threadIdangegeben wurde. - Laufzeit-Thread-Bindings werden für Matrix unterstützt.
/focus,/unfocus,/agents,/session idle,/session max-ageund threadgebundene/acp spawnfunktionieren jetzt in Matrix-Räumen und DMs. - Das Matrix-Raum-/DM-
/focusauf oberster Ebene erstellt einen neuen Matrix-Thread und bindet ihn an die Zielsitzung, wennthreadBindings.spawnSubagentSessions=true. - Wenn
/focusoder/acp spawn --thread hereinnerhalb eines bestehenden Matrix-Threads ausgeführt wird, wird stattdessen dieser aktuelle Thread gebunden.
ACP-Konversationsbindungen
Matrix-Räume, DMs und bestehende Matrix-Threads können in dauerhafte ACP-Workspaces umgewandelt werden, ohne die Chat-Oberfläche zu ändern. Schneller Operator-Ablauf:- Führen Sie
/acp spawn codex --bind hereinnerhalb der Matrix-DM, des Raums oder des bestehenden Threads aus, den Sie weiterverwenden möchten. - In einer Matrix-DM oder einem Raum auf oberster Ebene bleibt die aktuelle DM bzw. der aktuelle Raum die Chat-Oberfläche, und zukünftige Nachrichten werden an die erzeugte ACP-Sitzung geroutet.
- Innerhalb eines bestehenden Matrix-Threads bindet
--bind herediesen aktuellen Thread direkt. /newund/resetsetzen dieselbe gebundene ACP-Sitzung direkt zurück./acp closeschließt die ACP-Sitzung und entfernt die Bindung.
--bind hereerstellt keinen untergeordneten Matrix-Thread.threadBindings.spawnAcpSessionsist nur für/acp spawn --thread auto|hereerforderlich, wenn OpenClaw einen untergeordneten Matrix-Thread erstellen oder binden muss.
Thread-Binding-Konfiguration
Matrix übernimmt globale Standardwerte aussession.threadBindings und unterstützt außerdem kanalbezogene Überschreibungen:
threadBindings.enabledthreadBindings.idleHoursthreadBindings.maxAgeHoursthreadBindings.spawnSubagentSessionsthreadBindings.spawnAcpSessions
- Setzen Sie
threadBindings.spawnSubagentSessions: true, damit/focusauf oberster Ebene neue Matrix-Threads erstellen und binden darf. - Setzen Sie
threadBindings.spawnAcpSessions: true, damit/acp spawn --thread auto|hereACP-Sitzungen an Matrix-Threads binden darf.
Reaktionen
Matrix unterstützt ausgehende Reaktionsaktionen, eingehende Reaktionsbenachrichtigungen und eingehende Ack-Reaktionen.- Ausgehende Reaktions-Tooling wird durch
channels["matrix"].actions.reactionsgesteuert. reactfügt einem bestimmten Matrix-Ereignis eine Reaktion hinzu.reactionslistet die aktuelle Reaktionszusammenfassung für ein bestimmtes Matrix-Ereignis auf.emoji=""entfernt die eigenen Reaktionen des Bot-Kontos auf dieses Ereignis.remove: trueentfernt nur die angegebene Emoji-Reaktion vom Bot-Konto.
channels["matrix"].accounts.<accountId>.ackReactionchannels["matrix"].ackReactionmessages.ackReaction- Emoji-Fallback aus der Agent-Identität
channels["matrix"].accounts.<accountId>.ackReactionScopechannels["matrix"].ackReactionScopemessages.ackReactionScope
channels["matrix"].accounts.<accountId>.reactionNotificationschannels["matrix"].reactionNotifications- Standard:
own
reactionNotifications: "own"leitet hinzugefügtem.reaction-Ereignisse weiter, wenn sie auf vom Bot verfasste Matrix-Nachrichten zielen.reactionNotifications: "off"deaktiviert Reaktionssystemereignisse.- Das Entfernen von Reaktionen wird weiterhin nicht in Systemereignisse synthetisiert, da Matrix diese als Redactions und nicht als eigenständige
m.reaction-Entfernungen darstellt.
Verlaufskontext
channels.matrix.historyLimitsteuert, wie viele aktuelle Raumnachrichten alsInboundHistoryeinbezogen werden, wenn eine Matrix-Raumnachricht den Agent auslöst.- Es greift auf
messages.groupChat.historyLimitzurück. Setzen Sie0, um es zu deaktivieren. - Matrix-Raumverlauf ist nur raumbezogen. DMs verwenden weiterhin den normalen Sitzungsverlauf.
- Matrix-Raumverlauf ist nur ausstehend: OpenClaw puffert Raumnachrichten, die noch keine Antwort ausgelöst haben, und erstellt dann einen Snapshot dieses Fensters, wenn eine Erwähnung oder ein anderer Trigger eintrifft.
- Die aktuelle Trigger-Nachricht ist nicht in
InboundHistoryenthalten; sie bleibt für diesen Turn im Haupttext des Eingangs. - Wiederholungen desselben Matrix-Ereignisses verwenden den ursprünglichen Verlaufs-Snapshot wieder, anstatt zu neueren Raumnachrichten weiterzudriften.
Kontextsichtigkeit
Matrix unterstützt die gemeinsame SteuerungcontextVisibility für ergänzenden Raumkontext wie abgerufenen Antworttext, Thread-Wurzeln und ausstehenden Verlauf.
contextVisibility: "all"ist der Standard. Ergänzender Kontext wird wie empfangen beibehalten.contextVisibility: "allowlist"filtert ergänzenden Kontext auf Absender, die durch die aktiven Raum-/Benutzer-Allowlist-Prüfungen erlaubt sind.contextVisibility: "allowlist_quote"verhält sich wieallowlist, behält aber weiterhin eine explizit zitierte Antwort.
groupPolicy, groups, groupAllowFrom und den DM-Richtlinieneinstellungen.
Beispiel für DM- und Raumrichtlinien
Exec-Genehmigungen
Matrix kann als Exec-Genehmigungsclient für ein Matrix-Konto fungieren.channels.matrix.execApprovals.enabledchannels.matrix.execApprovals.approvers(optional; greift aufchannels.matrix.dm.allowFromzurück)channels.matrix.execApprovals.target(dm|channel|both, Standard:dm)channels.matrix.execApprovals.agentFilterchannels.matrix.execApprovals.sessionFilter
@owner:example.org sein. Matrix aktiviert native Exec-Genehmigungen automatisch, wenn enabled nicht gesetzt oder "auto" ist und mindestens ein Genehmigender aufgelöst werden kann, entweder aus execApprovals.approvers oder aus channels.matrix.dm.allowFrom. Setzen Sie enabled: false, um Matrix explizit als nativen Genehmigungsclient zu deaktivieren. Genehmigungsanfragen greifen andernfalls auf andere konfigurierte Genehmigungsrouten oder die Exec-Genehmigungs-Fallback-Richtlinie zurück.
Natives Matrix-Routing ist heute nur für Exec vorgesehen:
channels.matrix.execApprovals.*steuert natives DM-/Kanal-Routing nur für Exec-Genehmigungen.- Plugin-Genehmigungen verwenden weiterhin das gemeinsame
/approveim selben Chat plus jede konfigurierte Weiterleitung überapprovals.plugin. - Matrix kann weiterhin
channels.matrix.dm.allowFromfür die Autorisierung von Plugin-Genehmigungen wiederverwenden, wenn Genehmigende sicher abgeleitet werden können, stellt aber keinen separaten nativen DM-/Kanal-Fanout-Pfad für Plugin-Genehmigungen bereit.
target: "dm"sendet Genehmigungsaufforderungen an DMs der Genehmigendentarget: "channel"sendet die Aufforderung zurück an den ursprünglichen Matrix-Raum oder die ursprüngliche DMtarget: "both"sendet an DMs der Genehmigenden und an den ursprünglichen Matrix-Raum oder die ursprüngliche DM
/approve <id> allow-once, /approve <id> allow-always oder /approve <id> deny auf.
Nur aufgelöste Genehmigende können genehmigen oder ablehnen. Die Kanalzustellung enthält den Befehlstext, daher sollten Sie channel oder both nur in vertrauenswürdigen Räumen aktivieren.
Matrix-Genehmigungsaufforderungen verwenden erneut den gemeinsamen Core-Genehmigungsplaner. Die Matrix-spezifische native Oberfläche ist nur der Transport für Exec-Genehmigungen: Raum-/DM-Routing sowie Verhalten beim Senden/Aktualisieren/Löschen von Nachrichten.
Kontoübergreifende Überschreibung:
channels.matrix.accounts.<account>.execApprovals
Mehrkontenbeispiel
channels.matrix fungieren als Standardwerte für benannte Konten, sofern ein Konto sie nicht überschreibt.
Sie können geerbte Raumeinträge mit groups.<room>.account (oder dem Legacy-rooms.<room>.account) auf ein Matrix-Konto beschränken.
Einträge ohne account bleiben über alle Matrix-Konten hinweg gemeinsam, und Einträge mit account: "default" funktionieren weiterhin, wenn das Standardkonto direkt auf oberster Ebene unter channels.matrix.* konfiguriert ist.
Partielle gemeinsam genutzte Auth-Standardwerte erstellen nicht von selbst ein separates implizites Standardkonto. OpenClaw synthetisiert das oberste default-Konto nur dann, wenn dieses Standardkonto frische Authentifizierung hat (homeserver plus accessToken oder homeserver plus userId und password); benannte Konten können weiterhin über homeserver plus userId erkennbar bleiben, wenn zwischengespeicherte Anmeldedaten die Authentifizierung später erfüllen.
Wenn Matrix bereits genau ein benanntes Konto hat oder defaultAccount auf einen vorhandenen benannten Kontoschlüssel zeigt, bewahrt die Reparatur-/Einrichtungs-Promotion von Einzelkonto zu Mehrkonto dieses Konto, anstatt einen frischen accounts.default-Eintrag zu erstellen. Nur Matrix-Auth-/Bootstrap-Schlüssel werden in dieses hochgestufte Konto verschoben; gemeinsam genutzte Zustellungsrichtlinien-Schlüssel bleiben auf oberster Ebene.
Setzen Sie defaultAccount, wenn OpenClaw ein benanntes Matrix-Konto für implizites Routing, Probing und CLI-Operationen bevorzugen soll.
Wenn Sie mehrere benannte Konten konfigurieren, setzen Sie defaultAccount oder übergeben Sie --account <id> für CLI-Befehle, die auf impliziter Kontoauswahl beruhen.
Übergeben Sie --account <id> an openclaw matrix verify ... und openclaw matrix devices ..., wenn Sie diese implizite Auswahl für einen Befehl überschreiben möchten.
Private/LAN-Homeserver
Standardmäßig blockiert OpenClaw private/interne Matrix-Homeserver zum SSRF-Schutz, sofern Sie nicht explizit pro Konto opt-in setzen. Wenn Ihr Homeserver auf localhost, einer LAN-/Tailscale-IP oder einem internen Hostnamen läuft, aktivieren SieallowPrivateNetwork für dieses Matrix-Konto:
http://matrix.example.org:8008 bleiben blockiert. Bevorzugen Sie nach Möglichkeit https://.
Matrix-Datenverkehr über Proxy leiten
Wenn Ihre Matrix-Bereitstellung einen expliziten ausgehenden HTTP(S)-Proxy benötigt, setzen Siechannels.matrix.proxy:
channels.matrix.accounts.<id>.proxy überschreiben.
OpenClaw verwendet dieselbe Proxy-Einstellung für Matrix-Laufzeitdatenverkehr und Kontostatus-Probes.
Zielauflösung
Matrix akzeptiert diese Zielformen überall dort, wo OpenClaw Sie nach einem Raum- oder Benutzerziel fragt:- Benutzer:
@user:server,user:@user:serverodermatrix:user:@user:server - Räume:
!room:server,room:!room:serverodermatrix:room:!room:server - Aliasse:
#alias:server,channel:#alias:serverodermatrix:channel:#alias:server
- Benutzer-Lookups fragen das Matrix-Benutzerverzeichnis auf diesem Homeserver ab.
- Raum-Lookups akzeptieren explizite Raum-IDs und Aliasse direkt und greifen dann auf die Suche nach Namen beigetretener Räume für dieses Konto zurück.
- Die Namenssuche in beigetretenen Räumen ist Best Effort. Wenn ein Raumname nicht zu einer ID oder einem Alias aufgelöst werden kann, wird er von der Laufzeit-Allowlist-Auflösung ignoriert.
Konfigurationsreferenz
enabled: den Kanal aktivieren oder deaktivieren.name: optionales Label für das Konto.defaultAccount: bevorzugte Konto-ID, wenn mehrere Matrix-Konten konfiguriert sind.homeserver: Homeserver-URL, zum Beispielhttps://matrix.example.org.allowPrivateNetwork: diesem Matrix-Konto erlauben, sich mit privaten/internen Homeservern zu verbinden. Aktivieren Sie dies, wenn der Homeserver zulocalhost, einer LAN-/Tailscale-IP oder einem internen Host wiematrix-synapseaufgelöst wird.proxy: optionale HTTP(S)-Proxy-URL für Matrix-Datenverkehr. Benannte Konten können den Standardwert der obersten Ebene mit ihrem eigenenproxyüberschreiben.userId: vollständige Matrix-Benutzer-ID, zum Beispiel@bot:example.org.accessToken: Access Token für tokenbasierte Authentifizierung. Klartextwerte und SecretRef-Werte werden fürchannels.matrix.accessTokenundchannels.matrix.accounts.<id>.accessTokenüber env-/file-/exec-Provider unterstützt. Siehe Secrets Management.password: Passwort für passwortbasierten Login. Klartextwerte und SecretRef-Werte werden unterstützt.deviceId: explizite Matrix-Geräte-ID.deviceName: Anzeigename des Geräts für Passwort-Login.avatarUrl: gespeicherte Selbst-Avatar-URL für Profilsynchronisierung undset-profile-Aktualisierungen.initialSyncLimit: Ereignislimit für die Startsynchronisierung.encryption: E2EE aktivieren.allowlistOnly: Verhalten nur mit Allowlist für DMs und Räume erzwingen.allowBots: Nachrichten von anderen konfigurierten OpenClaw-Matrix-Konten zulassen (trueoder"mentions").groupPolicy:open,allowlistoderdisabled.contextVisibility: Sichtbarkeitsmodus für ergänzenden Raumkontext (all,allowlist,allowlist_quote).groupAllowFrom: Allowlist von Benutzer-IDs für Raumdatenverkehr.groupAllowFrom-Einträge sollten vollständige Matrix-Benutzer-IDs sein. Nicht aufgelöste Namen werden zur Laufzeit ignoriert.historyLimit: maximale Anzahl von Raumnachrichten, die als Gruppenverlaufs-Kontext einbezogen werden. Greift aufmessages.groupChat.historyLimitzurück. Setzen Sie0, um es zu deaktivieren.replyToMode:off,firstoderall.markdown: optionale Markdown-Rendering-Konfiguration für ausgehenden Matrix-Text.streaming:off(Standard),partial,trueoderfalse.partialundtrueaktivieren Einzelnachrichten-Entwurfsvorschauen mit Bearbeitung direkt an Ort und Stelle.blockStreaming:trueaktiviert separate Fortschrittsnachrichten für abgeschlossene Assistant-Blöcke, während Entwurfsvorschau-Streaming aktiv ist.threadReplies:off,inboundoderalways.threadBindings: kanalbezogene Überschreibungen für threadgebundenes Sitzungsrouting und Lifecycle.startupVerification: Modus für automatische Selbstverifizierungsanfragen beim Start (if-unverified,off).startupVerificationCooldownHours: Cooldown vor erneuten automatischen Startverifizierungsanfragen.textChunkLimit: Chunk-Größe für ausgehende Nachrichten.chunkMode:lengthodernewline.responsePrefix: optionales Nachrichtenpräfix für ausgehende Antworten.ackReaction: optionale Ack-Reaktionsüberschreibung für diesen Kanal/dieses Konto.ackReactionScope: optionale Bereichsüberschreibung für Ack-Reaktionen (group-mentions,group-all,direct,all,none,off).reactionNotifications: Modus für eingehende Reaktionsbenachrichtigungen (own,off).mediaMaxMb: Größenlimit für Medien in MB bei Matrix-Medienverarbeitung. Es gilt für ausgehende Sendungen und eingehende Medienverarbeitung.autoJoin: Richtlinie für automatisches Beitreten bei Einladungen (always,allowlist,off). Standard:off.autoJoinAllowlist: Räume/Aliasse, die erlaubt sind, wennautoJoinaufallowliststeht. Alias-Einträge werden während der Einladungsverarbeitung in Raum-IDs aufgelöst; OpenClaw vertraut keinem vom eingeladenen Raum behaupteten Alias-Status.dm: DM-Richtlinienblock (enabled,policy,allowFrom,threadReplies).dm.allowFrom-Einträge sollten vollständige Matrix-Benutzer-IDs sein, sofern Sie sie nicht bereits über Live-Verzeichnissuche aufgelöst haben.dm.threadReplies: nur für DMs geltende Thread-Richtlinienüberschreibung (off,inbound,always). Sie überschreibt die oberstethreadReplies-Einstellung sowohl für Antwortplatzierung als auch für Sitzungsisolierung in DMs.execApprovals: Matrix-native Zustellung von Exec-Genehmigungen (enabled,approvers,target,agentFilter,sessionFilter).execApprovals.approvers: Matrix-Benutzer-IDs, die Exec-Anfragen genehmigen dürfen. Optional, wenndm.allowFromdie Genehmigenden bereits identifiziert.execApprovals.target:dm | channel | both(Standard:dm).accounts: benannte kontoindividuelle Überschreibungen. Werte inchannels.matrixauf oberster Ebene fungieren als Standardwerte für diese Einträge.groups: raumbezogene Richtlinienzuordnung. Bevorzugen Sie Raum-IDs oder Aliasse; nicht aufgelöste Raumnamen werden zur Laufzeit ignoriert. Sitzungs-/Gruppenidentität verwendet nach der Auflösung die stabile Raum-ID, während menschenlesbare Labels weiterhin von Raumnamen kommen.groups.<room>.account: beschränkt einen geerbten Raumeintrag in Mehrkonten-Setups auf ein bestimmtes Matrix-Konto.groups.<room>.allowBots: raumbezogene Überschreibung für Sender aus konfigurierten Bots (trueoder"mentions").groups.<room>.users: senderbezogene Allowlist pro Raum.groups.<room>.tools: toolbezogene Allow-/Deny-Überschreibungen pro Raum.groups.<room>.autoReply: raumbezogene Überschreibung für Erwähnungs-Gating.truedeaktiviert Erwähnungsanforderungen für diesen Raum;falseaktiviert sie dort wieder.groups.<room>.skills: optionaler Skill-Filter pro Raum.groups.<room>.systemPrompt: optionales System-Prompt-Snippet pro Raum.rooms: Legacy-Alias fürgroups.actions: toolbezogenes Gating pro Aktion (messages,reactions,pins,profile,memberInfo,channelInfo,verification).
Verwandt
- Channels Overview — alle unterstützten Kanäle
- Pairing — DM-Authentifizierung und Pairing-Ablauf
- Groups — Gruppenchat-Verhalten und Erwähnungs-Gating
- Channel Routing — Sitzungsrouting für Nachrichten
- Security — Zugriffsmodell und Härtung