Matrix (plugin)
Matrix är ett öppet, decentraliserat meddelandeprotokoll. OpenClaw ansluter som en matris användare på alla homeserver, så du behöver ett Matrix-konto för boten. När den är inloggad kan du DM boten direkt eller bjuda in den till rum (matris “grupper”). Beeper är ett giltigt klientalternativ också, men det kräver att E2EE aktiveras. Status: stöds via plugin (@vector-im/matrix-bot-sdk). Direktmeddelanden, rum, trådar, media, reaktioner, opinionsundersökningar (skicka + poll-start som text), plats och E2EE (med crypto support).Plugin krävs
Matrix levereras som ett plugin och ingår inte i kärninstallationen. Installera via CLI (npm-registret):Konfigurering
-
Installera Matrix-pluginet:
- Från npm:
openclaw plugins install @openclaw/matrix - Från en lokal checkout:
openclaw plugins install ./extensions/matrix
- Från npm:
-
Skapa ett Matrix-konto på en homeserver:
- Utforska värdalternativ på https://matrix.org/ecosystem/hosting/
- Eller hosta själv.
-
Skaffa en åtkomsttoken för botkontot:
- Använd Matrix inloggnings-API med
curlpå din homeserver:
- Ersätt
matrix.example.orgmed din homeserver-URL. - Eller sätt
channels.matrix.userId+channels.matrix.password: OpenClaw anropar samma inloggningsendpoint, lagrar åtkomsttoken i~/.openclaw/credentials/matrix/credentials.json, och återanvänder den vid nästa start.
- Använd Matrix inloggnings-API med
-
Konfigurera autentiseringsuppgifter:
- Miljö:
MATRIX_HOMESERVER,MATRIX_ACCESS_TOKEN(ellerMATRIX_USER_ID+MATRIX_PASSWORD) - Eller konfig:
channels.matrix.* - Om båda är satta har konfig företräde.
- Med åtkomsttoken: användar-ID hämtas automatiskt via
/whoami. - När den är satt ska
channels.matrix.userIdvara hela Matrix-ID:t (exempel:@bot:example.org).
- Miljö:
- Starta om gatewayen (eller slutför introduktionen).
-
Starta en DM med botten eller bjud in den till ett rum från någon Matrix klient
(Element, Beeper, etc.; se https://matrix.org/ecosystem/clients/). Beeper kräver E2EE,
så sätt
channels.matrix.encryption: trueoch verifiera enheten.
Kryptering (E2EE)
End-to-end-kryptering stöds via Rust crypto SDK. Aktivera medchannels.matrix.encryption: true:
- Om kryptomodulen laddas dekrypteras krypterade rum automatiskt.
- Utgående media krypteras när den skickas till krypterade rum.
- Vid första anslutningen begär OpenClaw enhetsverifiering från dina andra sessioner.
- Verifiera enheten i en annan matrisklient (Element, etc.) för att aktivera nyckeldelning.
- Om kryptomodulen inte kan laddas inaktiveras E2EE och krypterade rum dekrypteras inte; OpenClaw loggar en varning.
- Om du ser fel om saknad kryptomodul (till exempel
@matrix-org/matrix-sdk-crypto-nodejs-*), tillåt byggskript för@matrix-org/matrix-sdk-crypto-nodejsoch körpnpm rebuild @matrix-org/matrix-sdk-crypto-nodejseller hämta binären mednode node_modules/@matrix-org/matrix-sdk-crypto-nodejs/download-lib.js.
~/.openclaw/matrix/accounts/<account>/<homeserver>__<user>/<token-hash>/crypto/
(SQLite-databas). Synkronisera tillståndet lever tillsammans med det i bot-storage.json.
If the access token (device) changes, a new store is created and the bot must be
re-verified for encrypted rooms.
Enhetsverifiering:
När E2EE är aktiverat kommer boten att begära verifiering från dina andra sessioner vid start.
Öppna Element (eller en annan klient) och godkänn verifieringsbegäran för att skapa förtroende.
När boten har verifierats kan den dekryptera meddelanden i krypterade rum.
Routingmodell
Stöd för flera konton: användchannels.matrix.accounts med inloggningsuppgifter per konto och valfritt name. Se gateway/configuration för det gemensamma mönstret.
Varje konto körs som en separat Matrix-användare på valfri homeserver. Konfiguration per konto
ärver från de överordnade inställningarna i channels.matrix och kan åsidosätta valfritt alternativ
(DM-policy, grupper, kryptering osv.).
- Kontouppstart sker sekventiellt för att undvika race conditions vid samtidiga modulimporter.
- Miljövariabler (
MATRIX_HOMESERVER,MATRIX_ACCESS_TOKEN, etc.) gäller endast för standardkontot. - Grundinställningar för kanalen (DM-policy, gruppolicy, mention-gating osv.) gäller för alla konton om de inte åsidosätts per konto.
- Använd
bindings[].match.accountIdför att dirigera varje konto till en annan agent. - Crypto-tillstånd lagras per konto + access token (separata nyckellager per konto).
Routingmodell
requireMention: falseaktiverar autosvar i det rummet.groups."*"kan sätta standardvärden för omnämnandespärr över rum.
Trådar
- Standard:
channels.matrix.dm.policy = "pairing". Okända avsändare får en parningskod. channels.matrix.threadRepliesstyr om svar stannar i trådar:openclaw pairing list matrixopenclaw pairing approve matrix <CODE>
channels.matrix.replyToModestyr reply-to-metadata när man inte svarar i en tråd:channels.matrix.dm.allowFromaccepterar fullständiga Matrix användar-ID (exempel:@user:server). Guiden löser visningsnamn till användar-ID när katalogsökningen hittar en enda exakt match.- Använd inte visningsnamn eller enbart localparts (exempel:
"Alice"eller"alice"). De är tvetydiga och ignoreras vid allowlist-matchning. Använd fullständiga@user:server-ID:n.
Funktioner
- Standard:
channels.matrix.groupPolicy = "allowlist"(omnämnandespärr). Användchannels.defaults.groupPolicyför att åsidosätta standard när du inaktiverar. - Tillåtelselista för rum med
channels.matrix.groups(rum-ID:n eller alias; namn löses till ID:n när katalogsökningen hittar en enda exakt matchning):
requireMention: falseaktiverar autosvar i det rummet.groups."*"kan sätta standardvärden för omnämnandespärr över rum.groupAllowFrombegränsar vilka avsändare som kan trigga boten i rum (fullständiga Matrix-användar-ID:n).- Per-rum
users-tillåtelselistor kan ytterligare begränsa avsändare i ett specifikt rum (använd fullständiga Matrix-användar-ID:n). - Konfigurationsguiden frågar efter tillåtelselistor för rum (rum-ID:n, alias eller namn) och löser namn endast vid en exakt, unik matchning.
- Vid uppstart löser OpenClaw rums-/användarnamn i tillåtelselistor till ID:n och loggar mappningen; olösta poster ignoreras vid matchning.
- Inbjudningar accepteras automatiskt som standard; styr med
channels.matrix.autoJoinochchannels.matrix.autoJoinAllowlist. - För att tillåta inga rum, sätt
channels.matrix.groupPolicy: "disabled"(eller behåll en tom tillåtelselista). - Äldre nyckel:
channels.matrix.rooms(samma form somgroups).
Trådar
- Svarstrådning stöds.
channels.matrix.threadRepliesstyr om svar stannar i trådar:off,inbound(standard),always
channels.matrix.replyToModestyr reply-to-metadata när man inte svarar i en tråd:off(standard),first,all
Funktioner
| Funktion | Status |
|---|---|
| Direktmeddelanden | ✅ Stöds |
| Rum | ✅ Stöds |
| Trådar | ✅ Stöds |
| Media | ✅ Stöds |
| E2EE | ✅ Stöds (kryptomodul krävs) |
| Reaktioner | ✅ Stöds (skicka/läsa via verktyg) |
| Omröstningar | ✅ Skick stöds; inkommande poll-start konverteras till text (svar/slut ignoreras) |
| Plats | ✅ Stöds (geo-URI; höjd ignoreras) |
| Inbyggda kommandon | ✅ Stöds |
Felsökning
För triage-flöde: /channels/troubleshooting.- Inloggad men rumsmeddelanden ignoreras: rummet blockeras av
groupPolicyeller rumstillåtelselistan. - DM ignoreras: avsändaren väntar på godkännande när
channels.matrix.dm.policy="pairing". - Krypterade rum misslyckas: kryptostöd eller inställningar för kryptering matchar inte.
Konfigurationsreferens (Matrix)
Fullständig konfiguration: Konfiguration Leverantörsalternativ:channels.matrix.enabled: aktivera/inaktivera kanalstart.channels.matrix.homeserver: homeserver-URL.channels.matrix.userId: Matrix-användar-ID (valfritt med åtkomsttoken).channels.matrix.accessToken: åtkomsttoken.channels.matrix.password: lösenord för inloggning (token lagras).channels.matrix.deviceName: visningsnamn för enheten.channels.matrix.encryption: aktivera E2EE (standard: false).channels.matrix.initialSyncLimit: initial synkgräns.channels.matrix.threadReplies:off | inbound | always(standard: inkommande).channels.matrix.textChunkLimit: textstyckningsstorlek för utgående text (tecken).channels.matrix.chunkMode:length(standard) ellernewlineför att dela vid tomma rader (styckegränser) före längdstyckning.channels.matrix.dm.policy:pairing | allowlist | open | disabled(standard: parning).channels.matrix.dm.allowFrom: DM allowlist (full Matrix användar-ID).openkräver"*". Guiden löser namn på ID när det är möjligt.channels.matrix.groupPolicy:allowlist | open | disabled(standard: tillåtelselista).channels.matrix.groupAllowFrom: tillåtna avsändare för gruppmeddelanden (fullständiga Matrix-användar-ID:n).channels.matrix.allowlistOnly: tvinga tillåtelselisteregler för DM + rum.channels.matrix.groups: grupp-tillåtelselista + per-rum-inställningskarta.channels.matrix.rooms: äldre grupp-tillåtelselista/konfig.channels.matrix.replyToMode: reply-to-läge för trådar/taggar.channels.matrix.mediaMaxMb: gräns för inkommande/utgående media (MB).channels.matrix.autoJoin: hantering av inbjudningar (always | allowlist | off, standard: alltid).channels.matrix.autoJoinAllowlist: tillåtna rum-ID:n/alias för auto-anslutning.channels.matrix.accounts: fler-konto-konfiguration nycklad per konto-ID (varje konto ärver överordnade inställningar).channels.matrix.actions: per-åtgärd-verktygsspärr (reaktioner/meddelanden/pins/memberInfo/channelInfo).