Canal Matrix OpenClaw
Connectez OpenClaw à Matrix — un protocole de communication fédéré et ouvert. Cette intégration permet à votre assistant IA de participer aux salons Matrix et aux messages directs sur n'importe quel serveur domestique (matrix.org, Element ou auto-hébergé). OpenClaw se connecte via l'API Client-Serveur Matrix avec prise en charge optionnelle du chiffrement de bout en bout (E2EE) via le SDK crypto Rust. Le canal Matrix est fourni en tant que plugin et prend en charge la fédération, les fils de discussion, les réactions et les médias riches.
Matrix Fonctionnalités prises en charge
Messages texte
Pris en charge
Médias et fichiers
Pris en charge
Réactions
Pris en charge
Fils de discussion
Pris en charge
Messages vocaux
Non pris en charge
Discussion de groupe
Pris en charge
Matrix Prérequis
- Un compte Matrix actif sur n'importe quel serveur domestique (matrix.org, Element ou auto-hébergé)
- Le plugin Matrix installé : openclaw plugins install @openclaw/matrix
- OpenClaw Gateway en cours d'exécution et configuré
- Node.js 18+ installé sur votre serveur
Matrix Configuration rapide
Installer le plugin Matrix
Le canal Matrix est fourni en tant que plugin séparé. Installez-le via 'openclaw plugins install @openclaw/matrix'. Le plugin sera téléchargé depuis le registre npm et activé automatiquement.
Obtenir les identifiants Matrix
Vous avez besoin soit d'un jeton d'accès, soit d'un nom d'utilisateur/mot de passe. Pour les jetons d'accès : utilisez curl pour appeler le point de terminaison de connexion de votre serveur domestique et copiez le jeton. Pour nom d'utilisateur/mot de passe : la passerelle se connectera automatiquement et stockera le jeton dans ~/.openclaw/credentials/matrix/credentials.json.
Ajouter la configuration du canal Matrix
Ajoutez la configuration du canal Matrix à ~/.openclaw/openclaw.json avec l'URL de votre serveur domestique et vos identifiants. Vous pouvez également utiliser les variables d'environnement MATRIX_HOMESERVER, MATRIX_ACCESS_TOKEN, MATRIX_USER_ID et MATRIX_PASSWORD.
Démarrer la passerelle et tester
Exécutez 'openclaw gateway' pour démarrer le service. Envoyez un message direct à votre utilisateur bot Matrix depuis un autre compte. Si vous utilisez la politique d'appairage par défaut, approuvez l'expéditeur via 'openclaw pairing approve matrix <code>' dans votre terminal.
Matrix Exemple de configuration
{
"channels": {
"matrix": {
"enabled": true,
"homeserver": "https://matrix.org",
"accessToken": "your_access_token_here",
"dmPolicy": "pairing"
}
}
}Matrix Documentation Détaillée
Aperçu de l'architecture
Méthodes d'authentification
# Méthode par jeton d'accès
{
"channels": {
"matrix": {
"homeserver": "https://matrix.example.org",
"accessToken": "syt_xxx..."
}
}
}
# Méthode par nom d'utilisateur/mot de passe
{
"channels": {
"matrix": {
"homeserver": "https://matrix.example.org",
"userId": "@bot:example.org",
"password": "your_password"
}
}
}Politiques DM
{
"channels": {
"matrix": {
"dmPolicy": "allowlist",
"dm": {
"allowFrom": ["@alice:matrix.org", "@bob:example.org"]
}
}
}
}Support des discussions de groupe (Salons)
{
"channels": {
"matrix": {
"groupPolicy": "allowlist",
"groups": {
"!abc123:matrix.org": {
"allow": true,
"requireMention": false,
"users": ["@alice:matrix.org"]
},
"#team-chat:example.org": {
"allow": true
}
},
"autoJoin": "allowlist"
}
}
}Chiffrement de bout en bout (E2EE)
{
"channels": {
"matrix": {
"encryption": true
}
}
}Fédération et sélection du serveur domestique
Fils de discussion et modes de réponse
{
"channels": {
"matrix": {
"threadReplies": "always",
"replyToMode": "reference"
}
}
}Gestion des médias et téléchargement de fichiers
{
"channels": {
"matrix": {
"mediaMaxMb": 50
}
}
}Réactions et fonctionnalités riches
{
"channels": {
"matrix": {
"actions": {
"reactions": true,
"messages": true,
"pins": false
}
}
}
}Pourquoi Matrix pour l'IA auto-hébergée ?
Matrix Référence de Configuration
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Activer ou désactiver le canal Matrix |
| homeserver | string | "https://matrix.org" | URL du serveur domestique Matrix (par ex. https://matrix.org, https://element.io) |
| accessToken | string | "" | Jeton d'accès Matrix pour l'authentification (méthode recommandée) |
| userId | string | "" | ID utilisateur Matrix (par ex. @bot:matrix.org) — utilisé avec l'authentification par mot de passe |
| password | string | "" | Mot de passe du compte Matrix — utilisé avec userId pour la connexion |
| encryption | boolean | false | Activer le chiffrement de bout en bout via le SDK crypto Rust |
| dmPolicy | string | "pairing" | Politique d'accès DM : pairing, allowlist, open ou disabled |
| dm.allowFrom | array | [] | ID utilisateur Matrix autorisés pour les DM (par ex. [@alice:matrix.org]) |
| groupPolicy | string | "allowlist" | Politique de salon : allowlist ou disabled |
| groups | object | {} | Configuration spécifique au salon (ID ou alias de salon comme clé) |
| groups.<roomId>.allow | boolean | false | Permettre au bot de participer à ce salon |
| groups.<roomId>.requireMention | boolean | true | Exiger la mention du bot pour déclencher des réponses dans ce salon |
| groups.<roomId>.users | array | [] | Liste d'autorisation d'utilisateurs par salon (ID utilisateur Matrix) |
| autoJoin | string | "allowlist" | Adhésion automatique aux invitations de salon : always, allowlist ou off |
| textChunkLimit | number | 4096 | Nombre maximum de caractères par message sortant |
| chunkMode | string | "length" | Comment diviser les longues réponses : length (limite stricte) ou newline (limites de paragraphe) |
| threadReplies | string | "inbound" | Comportement des fils : off, inbound (lecture seule) ou always (lecture + création) |
| replyToMode | string | "reference" | Mode d'attachement de métadonnées de réponse |
| mediaMaxMb | number | 50 | Taille maximale du fichier média en mégaoctets |
| actions.reactions | boolean | true | Permettre à l'agent d'envoyer/lire des réactions |
| actions.messages | boolean | true | Permettre à l'agent de lire/envoyer/modifier/supprimer des messages |
| actions.pins | boolean | true | Permettre à l'agent d'épingler/désépingler des messages |
| actions.memberInfo | boolean | true | Permettre à l'agent de rechercher les informations des membres du salon |
| actions.channelInfo | boolean | true | Permettre à l'agent de récupérer les informations du salon/canal |
Activer ou désactiver le canal Matrix
URL du serveur domestique Matrix (par ex. https://matrix.org, https://element.io)
Jeton d'accès Matrix pour l'authentification (méthode recommandée)
ID utilisateur Matrix (par ex. @bot:matrix.org) — utilisé avec l'authentification par mot de passe
Mot de passe du compte Matrix — utilisé avec userId pour la connexion
Activer le chiffrement de bout en bout via le SDK crypto Rust
Politique d'accès DM : pairing, allowlist, open ou disabled
ID utilisateur Matrix autorisés pour les DM (par ex. [@alice:matrix.org])
Politique de salon : allowlist ou disabled
Configuration spécifique au salon (ID ou alias de salon comme clé)
Permettre au bot de participer à ce salon
Exiger la mention du bot pour déclencher des réponses dans ce salon
Liste d'autorisation d'utilisateurs par salon (ID utilisateur Matrix)
Adhésion automatique aux invitations de salon : always, allowlist ou off
Nombre maximum de caractères par message sortant
Comment diviser les longues réponses : length (limite stricte) ou newline (limites de paragraphe)
Comportement des fils : off, inbound (lecture seule) ou always (lecture + création)
Mode d'attachement de métadonnées de réponse
Taille maximale du fichier média en mégaoctets
Permettre à l'agent d'envoyer/lire des réactions
Permettre à l'agent de lire/envoyer/modifier/supprimer des messages
Permettre à l'agent d'épingler/désépingler des messages
Permettre à l'agent de rechercher les informations des membres du salon
Permettre à l'agent de récupérer les informations du salon/canal
Matrix Questions Fréquentes
Matrix Dépannage
La politique DM bloque les messages, ou le bot n'est pas dans le salon
Appareil non vérifié ou échec du chargement des modules crypto
Le jeton a été révoqué ou invalidé sur le serveur domestique
Le salon n'est pas dans la liste d'autorisation ou requireMention est activé
Problèmes de connectivité du serveur domestique ou de fédération
Accès au registre npm ou incompatibilité de version Node.js