Zum Inhalt springen
tutorials · 8 min Lesezeit

OpenClaw mit Matrix verbinden: Räume, Push-Regeln und sichere Replies ohne Zustellchaos

Wenn Matrix-Räume stumm bleiben oder Quiet-Streaming nie pusht: So prüfst du Setup, Auto-Join, Allowlists und Replies Schritt für Schritt.

matrix openclaw channels messaging

Wenn OpenClaw in Matrix nicht antwortet, steckt das Problem meist nicht im Modell, sondern in drei ziemlich bodenständigen Stellen: Invite-Regeln, stabile Ziel-IDs oder Benachrichtigungen. Genau dort unterscheidet sich Matrix spürbar von Discord, Slack oder Signal. Der Kanal ist offen, flexibel und für selbst gehostete Setups attraktiv, verlangt aber saubere Routing- und Push-Entscheidungen.

Die gute Nachricht: Die offiziellen OpenClaw-Dokumente decken die kritischen Punkte inzwischen klar ab. Wenn du systematisch prüfst, ob der Bot wirklich beigetreten ist, welche stabilen Ziele in deinen Allowlists stehen und ob Quiet-Streaming überhaupt eine funktionierende Push-Infrastruktur vorfindet, lässt sich ein stiller Matrix-Kanal meist ohne Rätselraten einfangen.

Was Matrix in OpenClaw wirklich kann

Das offizielle @openclaw/matrix-Plugin nutzt laut Dokumentation die matrix-js-sdk und unterstützt DMs, Räume, Threads, Medien, Reactions, Umfragen, Standortdaten und Ende-zu-Ende-Verschlüsselung. Installiert wird es mit:

openclaw plugins install @openclaw/matrix

Wichtig für die Praxis: plugins install registriert und aktiviert das Plugin direkt. Ein zusätzlicher enable-Schritt ist also nicht das Problem, wenn später nichts ankommt. Häufiger liegt der Fehler danach in channels.matrix, beim Invite-Verhalten oder bei falschen Erwartungen an Quiet-Streaming.

Die häufigsten Matrix-Fehlerbilder

Bei Matrix tauchen in OpenClaw vor allem diese Symptome auf:

  • Der Bot antwortet in DMs nicht, obwohl das Konto erreichbar wirkt.
  • Einladungen in neue Räume bleiben wirkungslos.
  • Der Bot ist im Raum, reagiert aber nur in manchen Räumen oder nur auf manche Nutzer.
  • Quiet-Streaming zeigt zwar einen stillen Entwurf, löst aber nie eine finale Push-Benachrichtigung aus.
  • Antworten landen nicht dort, wo du sie erwartest, weil Account- oder Zielpräfixe missverstanden wurden.

Für genau diese Fälle lohnt sich eine Diagnose in fester Reihenfolge statt wildem Herumprobieren.

Baseline zuerst: Konto, Auth und Restart

OpenClaw erwartet unter channels.matrix entweder homeserver plus accessToken oder homeserver plus userId und password. Der interaktive Weg läuft über:

openclaw channels add
openclaw configure --section channels

Die Doku beschreibt, dass der Assistent nach Homeserver-URL, Auth-Methode, optionalem Gerätenamen, E2EE und den Regeln für Raumzugang und Auto-Join fragt. Danach gehört ein Gateway-Restart dazu. Wenn du diesen Restart auslässt, suchst du später an der falschen Stelle.

Eine zweite Stolperfalle: Matrix kann auch dann als konfiguriert gelten, wenn das Token nicht mehr sichtbar in der Hauptkonfiguration steht, weil OpenClaw zwischengespeicherte Zugangsdaten unter ~/.openclaw/credentials/matrix/ berücksichtigt. Das ist praktisch, kann aber verwirren, wenn du Konfiguration und Laufzeitbild gedanklich gleichsetzt.

Warum neue DMs und Räume oft kaputt wirken, obwohl nur autoJoin blockiert

Der wichtigste Matrix-spezifische Failure-Mode ist autoJoin. Laut Doku steht channels.matrix.autoJoin standardmäßig auf off. Dann tritt der Bot neuen Räumen und auch frischen DM-Invites nicht automatisch bei.

Das ist leicht zu übersehen, weil viele Nutzer erwarten, dass DMs automatisch weniger streng behandelt werden. Genau das tut Matrix in OpenClaw aber nicht: Beim Invite kann OpenClaw noch nicht sicher unterscheiden, ob der Raum später als DM oder Gruppe klassifiziert wird. Deshalb läuft zunächst jede Einladung durch autoJoin. dm.policy greift erst später, nachdem der Bot beigetreten ist und der Raum klassifiziert wurde.

Für kontrollierte Setups sind das die sinnvollen Varianten:

  • autoJoin: "allowlist" plus autoJoinAllowlist, wenn nur bekannte Räume oder Aliase erlaubt sein sollen.
  • autoJoin: "always", wenn du Einladungen generell akzeptieren willst.
  • autoJoin: "off" nur dann, wenn du bewusst manuell beitrittst und diese Reibung einkalkulierst.

Entscheidend ist dabei das Format. autoJoinAllowlist akzeptiert nur stabile Ziele wie !roomId:server, #alias:server oder *. Reine Anzeigenamen werden abgelehnt. Wenn du also “Marketing Raum” in eine Liste schreibst und der Bot nie beitritt, ist nicht Matrix unzuverlässig, sondern der Eintrag schlicht ungültig.

Diagnose: Reagiert der Bot im falschen Raum oder nur in manchen Räumen?

Hier geht es selten um Push, sondern meist um erlaubte IDs, Aliase oder Name-Matching.

OpenClaw empfiehlt für die Auflösung vor dem Speichern einer Allowlist:

openclaw channels resolve --channel matrix "Projekt Raum"

Damit holst du dir den stabilen Zielwert, den du für groups, autoJoinAllowlist oder andere Allowlist-Felder wirklich brauchst. Für Nutzer- und Raumregeln unterscheidet die Matrix-Doku klar:

  • Nutzer-Allowlists wie dm.allowFrom, groupAllowFrom oder groups.<room>.users sollten auf @user:server setzen.
  • Raum-Keys in groups sollten !room:server oder #alias:server verwenden.
  • Anzeigenamen werden standardmäßig ignoriert. Nur wenn du bewusst dangerouslyAllowNameMatching: true setzt, lässt du Kompatibilität mit Display-Namen zu.

Wenn OpenClaw also nur in einem Raum antwortet, in einem anderen aber schweigt, prüfe zuerst, ob dort echte IDs oder Aliase hinterlegt sind oder nur bequeme Anzeigenamen. Danach lohnt sich ein tieferer Blick auf Gruppenregeln und Mention-Gating. Für die generelle Sicherheitslogik in Gruppen ist der Anschlussartikel zu OpenClaw-Gruppenchats, Commitments und Follow-ups der bessere zweite Schritt.

Quiet-Streaming: Aufgeräumt im Raum, aber nur mit funktionierender Push-Kette

streaming: "quiet" ist die eleganteste Matrix-Option, wenn du keine laufenden Zwischenmeldungen im Raum sehen willst. Laut OpenClaw editiert der Bot dabei einen einzelnen Preview-Event und markiert die finalisierte Preview mit einem eigenen Content-Flag.

Der Haken: Diese finale Bearbeitung benachrichtigt Empfänger nur dann, wenn pro Empfänger eine passende Push-Regel installiert ist. Quiet-Streaming ist also kein einfacher Schalter für weniger Spam, sondern ein Zusammenspiel aus Kanalmodus, Push-Regel und gesunder Homeserver-Push-Zustellung.

Die Doku nennt dafür drei Pflichtpunkte:

  • Die Push-Regel muss auf den vollständigen Bot-Sender wie @bot:example.org matchen.
  • Sie muss auf das Finalisierungs-Flag der Preview prüfen.
  • Der Empfänger braucht bereits funktionierende Pushers. Wenn normale Matrix-Pushes schon kaputt sind, repariert Quiet-Streaming gar nichts.

Wenn du diesen Aufwand nicht willst, ist streaming: "partial" die robustere Wahl. Dann nutzt du das normale Matrix-Benachrichtigungsverhalten, statt pro Empfänger eigene Quiet-Preview-Regeln pflegen zu müssen. Wer noch andere Team-Kanäle vergleicht, sollte das mit Slack als Team-Frontend für OpenClaw-Agenten und Signal für OpenClaw: Pairing, Gruppen und sichere Replies gegenprüfen: Matrix ist offener, aber bei Benachrichtigungen klar wartungsintensiver.

Replies landen falsch? Dann stimmt meist die Zielannahme, nicht das Routing

OpenClaw entscheidet laut Routing-Dokumentation deterministisch, wohin eine Antwort zurückgeht. Das Modell wählt den Kanal nicht selbst. Für Matrix bedeutet das praktisch:

  • Eine Nachricht aus einem Raum wird wieder in diesen Raum geroutet.
  • Eine DM wird als DM im selben Kanal-Kontext zurückgeführt.
  • In Multi-Account-Setups greift channels.<channel>.defaultAccount, wenn ein Outbound-Pfad kein explizites accountId setzt.

Wenn du mehrere Matrix-Accounts betreibst und keinen klaren Default setzt, kann der Fallback beim ersten normalisierten Account landen, den du gar nicht beabsichtigt hast. Das ist kein Zufallsfehler, sondern ein Konfigurationsproblem mit vorhersehbar falschem Ergebnis.

Auch Präfixe werden oft überschätzt. Ein Ziel wie matrix:!room123:example.org hilft nur als Kanalhinweis, solange der Kanal noch nicht feststeht. Wenn bereits ein anderer expliziter Kanal gewählt ist, muss das Präfix zu diesem Kanal passen. Wer kanalübergreifende Zielsyntax erwartet, handelt sich eher Routingfehler als Komfort ein.

E2EE nur aktivieren, wenn du den Zusatzaufwand wirklich tragen willst

Matrix kann E2EE, und OpenClaw unterstützt den Bootstrap dafür. Die Dokumentation nennt dafür den Befehl:

openclaw matrix encryption setup

Praktisch heißt das aber: Der Bot muss dem Raum bereits beigetreten sein und die passenden Schlüssel besitzen. Für schnelle Tests ist E2EE deshalb oft der falsche Hebel. Baue lieber zuerst einen unverschlüsselten Testraum oder eine saubere DM-Strecke auf. Wenn Routing, Räume und Pushes dort zuverlässig laufen, kannst du Verschlüsselung darauf aufsetzen.

Sobald verschlüsselte Räume ins Spiel kommen, wird Matrix mehr zu einem kleinen Betriebsmodell als zu einem simplen Messenger-Kanal. Wenn du eher einen klassisch selbst gehosteten Team-Chat ohne E2EE-Komplexität willst, ist der Vergleich mit OpenClaw in Mattermost: Kanal, Rechte und Self-Hosting-Fallen sinnvoll.

Recovery-Pfad, wenn Matrix stumm bleibt

Wenn du ein stilles Matrix-Setup wieder einfängst, geh in dieser Reihenfolge vor:

  1. Prüfe, ob das Plugin wirklich installiert ist und channels.matrix mit Homeserver plus Auth vollständig gesetzt wurde.
  2. Starte den Gateway nach der Konfiguration oder nach relevanten Kanaländerungen neu.
  3. Kläre, ob der Bot dem Raum oder der frischen DM überhaupt beigetreten ist. Standardwert autoJoin: "off" ist hier der häufigste Bremsklotz.
  4. Ersetze in Allowlists alle sichtbaren Namen durch stabile IDs oder Aliase, die Matrix laut Doku akzeptiert.
  5. Prüfe bei DM-Problemen zusätzlich, ob du dm.policy mit autoJoin verwechselst. Invite-Zulassung und spätere DM-Regeln sind zwei verschiedene Schritte.
  6. Wechsle testweise auf streaming: "partial", wenn Quiet-Streaming zwar einen Entwurf zeigt, aber nie einen Push auslöst.
  7. Setze in Multi-Account-Setups einen expliziten defaultAccount, bevor du Routing-Probleme dem Modell oder dem Raum gibst.

Diese Reihenfolge ist bewusst langweilig. Genau deshalb spart sie Zeit.

Reality Check

Was belegt ist: Die OpenClaw-Dokumentation deckt für Matrix Installation, Auth-Varianten, autoJoin, stabile Allowlist-Formate, Quiet-Streaming, Push-Regeln für finalisierte Previews, E2EE-Bootstrap und das deterministische Routing über defaultAccount und Kanalpräfixe sauber ab.

Was nicht belegt ist: Die Quellen liefern keine universelle Liste aller Matrix-spezifischen Fehlermeldungen, keine vollständige Homeserver-Kompatibilitätsmatrix jenseits der beschriebenen Push-Regel-Mechanik und keine belastbaren Aussagen dazu, wie exotische Self-Hosting-Kombinationen oder stark angepasste Clients auf jede Preview- oder E2EE-Kante reagieren.

Was du daraus ableiten solltest: Behandle Matrix in OpenClaw nicht wie “Discord, nur offen”, sondern wie einen Kanal mit eigenem Invite-, Push- und Sicherheitsmodell. Wenn etwas nicht ankommt, prüfe zuerst Join-Regeln, stabile IDs und Push-Voraussetzungen. Danach lohnt sich tiefere Fehlersuche im restlichen Agenten-Stack.

Fazit: Matrix ist stark, wenn du seine Regeln ernst nimmst

Matrix lohnt sich für OpenClaw vor allem dort, wo du offene Infrastruktur, kontrollierte Räume und nachvollziehbares Routing willst. Der Preis dafür ist etwas mehr Betriebsdisziplin: Frische Invites werden nicht magisch als DMs erkannt, Quiet-Streaming braucht echte Push-Regeln, und Multi-Account-Setups sollten nicht auf implizite Defaults vertrauen.

Wenn du genau diese Stellen sauber setzt, wird Matrix zu einem sehr präzisen OpenClaw-Kanal. Wenn du sie ignorierst, wirkt der Kanal schnell unzuverlässig, obwohl er nur konsequent deine eigene Konfiguration ausführt.

Transparenz

Agentenlog nutzt KI-Assistenz für Recherche, Struktur und Entwurf. Inhaltliche Auswahl, Einordnung und Veröffentlichung liegen redaktionell bei Agentenlog; Quellen und Fakten werden vor Veröffentlichung geprüft.