Canal Matrix de OpenClaw
Conecta OpenClaw a Matrix — un protocolo de comunicación abierto y federado. Esta integración permite que tu asistente de IA participe en salas Matrix y mensajes directos a través de cualquier servidor doméstico (matrix.org, Element o auto-alojado). OpenClaw se conecta mediante la API Matrix Client-Server con soporte opcional de cifrado de extremo a extremo (E2EE) a través del SDK de criptografía Rust. El canal Matrix se distribuye como plugin y soporta federación, hilos, reacciones y medios enriquecidos.
Matrix Funciones compatibles
Mensajes de texto
Compatible
Medios y archivos
Compatible
Reacciones
Compatible
Hilos
Compatible
Mensajes de voz
No compatible
Chat grupal
Compatible
Matrix Requisitos previos
- Una cuenta Matrix activa en cualquier servidor doméstico (matrix.org, Element o auto-alojado)
- El plugin Matrix instalado: openclaw plugins install @openclaw/matrix
- OpenClaw Gateway en ejecución y configurado
- Node.js 18+ instalado en tu servidor
Matrix Configuración rápida
Instalar el plugin Matrix
El canal Matrix se distribuye como plugin separado. Instálalo mediante 'openclaw plugins install @openclaw/matrix'. El plugin se descargará del registro npm y se habilitará automáticamente.
Obtener credenciales de Matrix
Necesitas un token de acceso o usuario/contraseña. Para tokens de acceso: usa curl para llamar al endpoint de login de tu servidor doméstico y copia el token. Para usuario/contraseña: el Gateway iniciará sesión automáticamente y almacenará el token en ~/.openclaw/credentials/matrix/credentials.json.
Agregar configuración del canal Matrix
Agrega la configuración del canal Matrix a ~/.openclaw/openclaw.json con la URL de tu servidor doméstico y credenciales. También puedes usar variables de entorno MATRIX_HOMESERVER, MATRIX_ACCESS_TOKEN, MATRIX_USER_ID y MATRIX_PASSWORD.
Iniciar Gateway y probar
Ejecuta 'openclaw gateway' para iniciar el servicio. Envía un mensaje directo al usuario bot Matrix desde otra cuenta. Si usas la política de emparejamiento predeterminada, aprueba al remitente mediante 'openclaw pairing approve matrix <code>' en tu terminal.
Matrix Ejemplo de configuración
{
"channels": {
"matrix": {
"enabled": true,
"homeserver": "https://matrix.org",
"accessToken": "your_access_token_here",
"dmPolicy": "pairing"
}
}
}Matrix Documentación Detallada
Descripción general de la arquitectura
Métodos de autenticación
# Método con token de acceso
{
"channels": {
"matrix": {
"homeserver": "https://matrix.example.org",
"accessToken": "syt_xxx..."
}
}
}
# Método con usuario/contraseña
{
"channels": {
"matrix": {
"homeserver": "https://matrix.example.org",
"userId": "@bot:example.org",
"password": "your_password"
}
}
}Políticas de mensajes directos
{
"channels": {
"matrix": {
"dmPolicy": "allowlist",
"dm": {
"allowFrom": ["@alice:matrix.org", "@bob:example.org"]
}
}
}
}Soporte para chat grupal (salas)
{
"channels": {
"matrix": {
"groupPolicy": "allowlist",
"groups": {
"!abc123:matrix.org": {
"allow": true,
"requireMention": false,
"users": ["@alice:matrix.org"]
},
"#team-chat:example.org": {
"allow": true
}
},
"autoJoin": "allowlist"
}
}
}Cifrado de extremo a extremo (E2EE)
{
"channels": {
"matrix": {
"encryption": true
}
}
}Federación y selección de servidor doméstico
Hilos y modos de respuesta
{
"channels": {
"matrix": {
"threadReplies": "always",
"replyToMode": "reference"
}
}
}Manejo de medios y carga de archivos
{
"channels": {
"matrix": {
"mediaMaxMb": 50
}
}
}Reacciones y características enriquecidas
{
"channels": {
"matrix": {
"actions": {
"reactions": true,
"messages": true,
"pins": false
}
}
}
}¿Por qué Matrix para IA auto-alojada?
Matrix Referencia de Configuración
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Habilitar o deshabilitar el canal Matrix |
| homeserver | string | "https://matrix.org" | URL del servidor doméstico Matrix (por ejemplo, https://matrix.org, https://element.io) |
| accessToken | string | "" | Token de acceso Matrix para autenticación (método recomendado) |
| userId | string | "" | ID de usuario Matrix (por ejemplo, @bot:matrix.org) — usado con autenticación por contraseña |
| password | string | "" | Contraseña de cuenta Matrix — usado con userId para login |
| encryption | boolean | false | Habilitar cifrado de extremo a extremo mediante SDK de criptografía Rust |
| dmPolicy | string | "pairing" | Política de acceso a mensajes directos: pairing, allowlist, open o disabled |
| dm.allowFrom | array | [] | IDs de usuario Matrix permitidos para mensajes directos (por ejemplo, [@alice:matrix.org]) |
| groupPolicy | string | "allowlist" | Política de salas: allowlist o disabled |
| groups | object | {} | Configuración específica por sala (ID o alias de sala como clave) |
| groups.<roomId>.allow | boolean | false | Permitir al bot participar en esta sala |
| groups.<roomId>.requireMention | boolean | true | Requerir mención del bot para activar respuestas en esta sala |
| groups.<roomId>.users | array | [] | Allowlist de usuarios específica por sala (IDs de usuario Matrix) |
| autoJoin | string | "allowlist" | Unirse automáticamente a invitaciones de sala: always, allowlist u off |
| textChunkLimit | number | 4096 | Máximo de caracteres por mensaje saliente |
| chunkMode | string | "length" | Cómo dividir respuestas largas: length (límite duro) o newline (límites de párrafo) |
| threadReplies | string | "inbound" | Comportamiento de hilos: off, inbound (solo lectura) o always (leer + crear) |
| replyToMode | string | "reference" | Modo de adjunto de metadatos de respuesta |
| mediaMaxMb | number | 50 | Tamaño máximo de archivo de medios en megabytes |
| actions.reactions | boolean | true | Permitir al agente enviar/leer reacciones |
| actions.messages | boolean | true | Permitir al agente leer/enviar/editar/eliminar mensajes |
| actions.pins | boolean | true | Permitir al agente fijar/desfijar mensajes |
| actions.memberInfo | boolean | true | Permitir al agente consultar información de miembros de sala |
| actions.channelInfo | boolean | true | Permitir al agente obtener información de sala/canal |
Habilitar o deshabilitar el canal Matrix
URL del servidor doméstico Matrix (por ejemplo, https://matrix.org, https://element.io)
Token de acceso Matrix para autenticación (método recomendado)
ID de usuario Matrix (por ejemplo, @bot:matrix.org) — usado con autenticación por contraseña
Contraseña de cuenta Matrix — usado con userId para login
Habilitar cifrado de extremo a extremo mediante SDK de criptografía Rust
Política de acceso a mensajes directos: pairing, allowlist, open o disabled
IDs de usuario Matrix permitidos para mensajes directos (por ejemplo, [@alice:matrix.org])
Política de salas: allowlist o disabled
Configuración específica por sala (ID o alias de sala como clave)
Permitir al bot participar en esta sala
Requerir mención del bot para activar respuestas en esta sala
Allowlist de usuarios específica por sala (IDs de usuario Matrix)
Unirse automáticamente a invitaciones de sala: always, allowlist u off
Máximo de caracteres por mensaje saliente
Cómo dividir respuestas largas: length (límite duro) o newline (límites de párrafo)
Comportamiento de hilos: off, inbound (solo lectura) o always (leer + crear)
Modo de adjunto de metadatos de respuesta
Tamaño máximo de archivo de medios en megabytes
Permitir al agente enviar/leer reacciones
Permitir al agente leer/enviar/editar/eliminar mensajes
Permitir al agente fijar/desfijar mensajes
Permitir al agente consultar información de miembros de sala
Permitir al agente obtener información de sala/canal
Matrix Preguntas Frecuentes
Matrix Solución de Problemas
Política de mensajes directos bloqueando mensajes, o bot no está en la sala
Dispositivo no verificado o módulos criptográficos no se cargaron
El token fue revocado o invalidado en el servidor doméstico
Sala no está en allowlist o requireMention está habilitado
Problemas de conectividad o federación del servidor doméstico
Acceso al registro npm o incompatibilidad de versión de Node.js