Matrix
Matrix es el plugin de canal Matrix incluido para OpenClaw. Usa elmatrix-js-sdk oficial y admite mensajes directos, salas, hilos, multimedia, reacciones, encuestas, ubicación y E2EE.
Plugin incluido
Matrix se entrega como plugin incluido en las versiones actuales de OpenClaw, por lo que las compilaciones empaquetadas normales no necesitan una instalación aparte. Si usas una compilación más antigua o una instalación personalizada que excluye Matrix, instálalo manualmente: Instalar desde npm:Configuración
- Asegúrate de que el plugin Matrix esté disponible.
- Las versiones empaquetadas actuales de OpenClaw ya lo incluyen.
- Las instalaciones antiguas/personalizadas pueden añadirlo manualmente con los comandos anteriores.
- Crea una cuenta de Matrix en tu homeserver.
- Configura
channels.matrixcon una de estas opciones:homeserver+accessToken, ohomeserver+userId+password.
- Reinicia el gateway.
- Inicia un mensaje directo con el bot o invítalo a una sala.
- URL del homeserver
- método de autenticación: token de acceso o contraseña
- ID de usuario solo cuando eliges autenticación con contraseña
- nombre del dispositivo opcional
- si quieres habilitar E2EE
- si quieres configurar ahora el acceso a salas de Matrix
- Si las variables de entorno de autenticación de Matrix ya existen para la cuenta seleccionada y esa cuenta todavía no tiene la autenticación guardada en la configuración, el asistente ofrece un atajo mediante variables de entorno y solo escribe
enabled: truepara esa cuenta. - Cuando añades otra cuenta de Matrix de forma interactiva, el nombre de cuenta introducido se normaliza al ID de cuenta usado en la configuración y en las variables de entorno. Por ejemplo,
Ops Botse convierte enops-bot. - Los prompts de lista de permitidos de mensajes directos aceptan de inmediato valores completos
@user:server. Los nombres para mostrar solo funcionan cuando la búsqueda en vivo del directorio encuentra una coincidencia exacta; en caso contrario, el asistente te pide reintentar con un ID completo de Matrix. - Los prompts de lista de permitidos de salas aceptan directamente IDs y alias de sala. También pueden resolver en vivo nombres de salas unidas, pero los nombres no resueltos solo se conservan tal como se escribieron durante la configuración y luego se ignoran en la resolución de la lista de permitidos en tiempo de ejecución. Prefiere
!room:servero#alias:server. - La identidad de sala/sesión en tiempo de ejecución usa el ID estable de la sala de Matrix. Los alias declarados por la sala solo se usan como entradas de búsqueda, no como clave de sesión a largo plazo ni como identidad estable de grupo.
- Para resolver nombres de sala antes de guardarlos, usa
openclaw channels resolve --channel matrix "Project Room".
~/.openclaw/credentials/matrix/.
La cuenta predeterminada usa credentials.json; las cuentas con nombre usan credentials-<account>.json.
Equivalentes en variables de entorno (se usan cuando la clave de configuración no está definida):
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, usa:
MATRIX_OPS_X2D_BOT_HOMESERVERMATRIX_OPS_X2D_BOT_ACCESS_TOKEN
- se convierte en _X2D_, por lo que ops-prod se asigna a MATRIX_OPS_X2D_PROD_*.
El asistente interactivo solo ofrece el atajo de variables de entorno cuando esas variables de autenticación ya están presentes y la cuenta seleccionada todavía no tiene la autenticación de Matrix guardada en la configuración.
Ejemplo de configuración
Esta es una configuración base práctica con emparejamiento de mensajes directos, lista de permitidos de salas y E2EE habilitado:Vistas previas de streaming
El streaming de respuestas de Matrix es opcional. Establecechannels.matrix.streaming en "partial" cuando quieras que OpenClaw envíe una sola respuesta en borrador,
edite ese borrador en el mismo lugar mientras el modelo genera texto y luego la finalice cuando la respuesta
termine:
streaming: "off"es el valor predeterminado. OpenClaw espera a la respuesta final y la envía una sola vez.streaming: "partial"crea un único mensaje de vista previa editable para el bloque actual del asistente en lugar de enviar varios mensajes parciales.blockStreaming: truehabilita mensajes de progreso de Matrix por separado. Constreaming: "partial", Matrix mantiene el borrador activo del bloque actual y conserva los bloques completados como mensajes separados.- Cuando
streaming: "partial"yblockStreamingestá desactivado, Matrix solo edita el borrador activo y envía la respuesta completada una vez que ese bloque o turno termina. - Si la vista previa ya no cabe en un único evento de Matrix, OpenClaw detiene el streaming de vista previa y vuelve a la entrega final normal.
- Las respuestas con multimedia siguen enviando archivos adjuntos normalmente. Si una vista previa obsoleta ya no puede reutilizarse de forma segura, OpenClaw la redacta antes de enviar la respuesta multimedia final.
- Las ediciones de vista previa generan llamadas adicionales a la API de Matrix. Deja el streaming desactivado si quieres el comportamiento más conservador respecto a límites de tasa.
blockStreaming no habilita por sí solo las vistas previas de borrador.
Usa streaming: "partial" para las ediciones de vista previa; luego añade blockStreaming: true solo si también quieres que los bloques completados del asistente permanezcan visibles como mensajes de progreso separados.
Cifrado y verificación
En salas cifradas (E2EE), los eventos salientes de imagen usanthumbnail_file para que las vistas previas de imagen queden cifradas junto con el archivo adjunto completo. Las salas sin cifrar siguen usando thumbnail_url sin cifrar. No hace falta configuración: el plugin detecta automáticamente el estado de E2EE.
Salas bot a bot
De forma predeterminada, se ignoran los mensajes de otras cuentas de Matrix de OpenClaw configuradas. UsaallowBots cuando quieras permitir intencionalmente tráfico de Matrix entre agentes:
allowBots: trueacepta mensajes de otras cuentas bot de Matrix configuradas en salas permitidas y mensajes directos.allowBots: "mentions"acepta esos mensajes solo cuando mencionan visiblemente a este bot en las salas. Los mensajes directos siguen permitidos.groups.<room>.allowBotsanula la configuración a nivel de cuenta para una sala.- OpenClaw sigue ignorando mensajes del mismo ID de usuario de Matrix para evitar bucles de autorrespuesta.
- Matrix no expone aquí un indicador nativo de bot; OpenClaw trata “creado por bot” como “enviado por otra cuenta de Matrix configurada en este gateway de OpenClaw”.
channels.matrix.accounts con credenciales por cuenta y name opcional. Consulta Referencia de configuración para ver el patrón compartido.
Diagnóstico detallado de bootstrap:
verify son concisos de forma predeterminada (incluido el registro interno silencioso del SDK) y solo muestran diagnósticos detallados con --verbose.
Usa --json para una salida completa legible por máquinas al automatizar.
En configuraciones con varias cuentas, los comandos de CLI de Matrix usan la cuenta predeterminada implícita de Matrix a menos que pases --account <id>.
Si configuras varias cuentas con nombre, primero establece channels.matrix.defaultAccount o esas operaciones implícitas de CLI se detendrán y te pedirán que elijas una cuenta explícitamente.
Usa --account siempre que quieras que las operaciones de verificación o dispositivo apunten explícitamente a una cuenta con nombre:
channels.matrix.accounts.assistant.encryption.
Qué significa “verified”
OpenClaw trata este dispositivo de Matrix como verificado solo cuando está verificado por tu propia identidad de cross-signing. En la práctica,openclaw matrix verify status --verbose expone tres señales de confianza:
Locally trusted: este dispositivo solo es de confianza para el cliente actualCross-signing verified: el SDK informa que el dispositivo está verificado mediante cross-signingSigned by owner: el dispositivo está firmado por tu propia clave de autofirma
Verified by owner pasa a ser yes solo cuando existe verificación por cross-signing o firma del propietario.
La confianza local por sí sola no es suficiente para que OpenClaw trate el dispositivo como totalmente verificado.
Qué hace bootstrap
openclaw matrix verify bootstrap es el comando de reparación y configuración para cuentas de Matrix cifradas.
Hace todo lo siguiente en orden:
- inicializa el almacenamiento secreto, reutilizando una clave de recuperación existente cuando es posible
- inicializa el cross-signing y sube las claves públicas de cross-signing que falten
- intenta marcar y firmar mediante cross-signing el dispositivo actual
- crea una nueva copia de seguridad del lado del servidor para claves de sala si todavía no existe
m.login.dummy y después con m.login.password cuando channels.matrix.password está configurado.
Usa --force-reset-cross-signing solo cuando quieras descartar intencionalmente la identidad actual de cross-signing y crear una nueva.
Si intencionalmente quieres descartar la copia de seguridad actual de claves de sala y comenzar una nueva
base de referencia para futuros mensajes, usa openclaw matrix verify backup reset --yes.
Hazlo solo si aceptas que el historial cifrado antiguo irrecuperable seguirá
sin estar disponible y que OpenClaw puede recrear el almacenamiento secreto si el secreto
actual de la copia de seguridad no puede cargarse de forma segura.
Nueva base de referencia de copia de seguridad
Si quieres mantener funcionando los futuros mensajes cifrados y aceptas perder el historial antiguo irrecuperable, ejecuta estos comandos en orden:--account <id> a cada comando cuando quieras apuntar explícitamente a una cuenta de Matrix con nombre.
Comportamiento al iniciar
Cuandoencryption: true, Matrix establece startupVerification en "if-unverified" de forma predeterminada.
Al iniciar, si este dispositivo sigue sin verificarse, Matrix solicitará la autoverificación en otro cliente de Matrix,
omitirá solicitudes duplicadas mientras una ya esté pendiente y aplicará un tiempo de espera local antes de reintentar tras reinicios.
Los intentos fallidos de solicitud se reintentan antes que la creación exitosa de solicitudes de forma predeterminada.
Establece startupVerification: "off" para desactivar las solicitudes automáticas al iniciar, o ajusta startupVerificationCooldownHours
si quieres una ventana de reintento más corta o más larga.
El inicio también realiza automáticamente una pasada conservadora de bootstrap criptográfico.
Esa pasada primero intenta reutilizar el almacenamiento secreto y la identidad actual de cross-signing, y evita restablecer el cross-signing a menos que ejecutes un flujo explícito de reparación bootstrap.
Si al iniciar se detecta un estado de bootstrap roto y channels.matrix.password está configurado, OpenClaw puede intentar una ruta de reparación más estricta.
Si el dispositivo actual ya está firmado por el propietario, OpenClaw conserva esa identidad en lugar de restablecerla automáticamente.
Actualización desde el plugin público anterior de Matrix:
- OpenClaw reutiliza automáticamente la misma cuenta de Matrix, token de acceso e identidad de dispositivo cuando es posible.
- Antes de ejecutar cualquier cambio de migración de Matrix que requiera acción, OpenClaw crea o reutiliza una instantánea de recuperación en
~/Backups/openclaw-migrations/. - Si usas varias cuentas de Matrix, establece
channels.matrix.defaultAccountantes de actualizar desde el diseño anterior de almacenamiento plano para que OpenClaw sepa qué cuenta debe recibir ese estado heredado compartido. - Si el plugin anterior almacenó localmente una clave de descifrado de copia de seguridad de claves de sala de Matrix, al iniciar o con
openclaw doctor --fixse importará automáticamente al nuevo flujo de clave de recuperación. - Si el token de acceso de Matrix cambió después de preparar la migración, el inicio ahora escanea raíces de almacenamiento hermanas con hash de token en busca de estado heredado pendiente de restauración antes de abandonar la restauración automática de la copia de seguridad.
- Si más tarde cambia el token de acceso de Matrix para la misma cuenta, homeserver y usuario, OpenClaw ahora prefiere reutilizar la raíz de almacenamiento existente más completa con hash de token en lugar de empezar desde un directorio de estado Matrix vacío.
- En el siguiente inicio del gateway, las claves de sala respaldadas se restauran automáticamente en el nuevo almacén criptográfico.
- Si el plugin anterior tenía claves de sala solo locales que nunca se respaldaron, OpenClaw mostrará una advertencia clara. Esas claves no pueden exportarse automáticamente desde el almacén criptográfico Rust anterior, por lo que parte del historial cifrado antiguo puede seguir sin estar disponible hasta recuperarse manualmente.
- Consulta Migración de Matrix para ver el flujo completo de actualización, límites, comandos de recuperación y mensajes comunes de migración.
~/.openclaw/matrix/accounts/<account>/<homeserver>__<user>/<token-hash>/.
Ese directorio contiene el almacén de sincronización (bot-storage.json), el almacén criptográfico (crypto/),
el archivo de clave de recuperación (recovery-key.json), la instantánea de IndexedDB (crypto-idb-snapshot.json),
las asociaciones de hilos (thread-bindings.json) y el estado de verificación al iniciar (startup-verification.json)
cuando esas funciones están en uso.
Cuando el token cambia pero la identidad de la cuenta sigue siendo la misma, OpenClaw reutiliza la mejor
raíz existente para esa tupla cuenta/homeserver/usuario, de modo que el estado previo de sincronización, criptografía, asociaciones de hilos
y verificación al iniciar siga siendo visible.
Modelo de almacén criptográfico de Node
Matrix E2EE en este plugin usa la ruta oficial de criptografía Rust dematrix-js-sdk en Node.
Esa ruta espera persistencia con respaldo de IndexedDB cuando quieres que el estado criptográfico sobreviva a los reinicios.
Actualmente OpenClaw lo proporciona en Node mediante:
- uso de
fake-indexeddbcomo el shim de API de IndexedDB que espera el SDK - restauración del contenido de IndexedDB de la criptografía Rust desde
crypto-idb-snapshot.jsonantes deinitRustCrypto - persistencia del contenido actualizado de IndexedDB de vuelta en
crypto-idb-snapshot.jsontras la inicialización y durante el tiempo de ejecución - serialización de la restauración y persistencia de instantáneas frente a
crypto-idb-snapshot.jsoncon un bloqueo de archivo consultivo para que la persistencia en tiempo de ejecución del gateway y el mantenimiento por CLI no compitan sobre el mismo archivo de instantánea
- añadir compatibilidad con SecretRef para material de claves persistentes de Matrix, de modo que las claves de recuperación y secretos relacionados de cifrado del almacén puedan obtenerse desde proveedores de secretos de OpenClaw en lugar de solo desde archivos locales
Administración de perfil
Actualiza el perfil propio de Matrix para la cuenta seleccionada con:--account <id> cuando quieras apuntar explícitamente a una cuenta con nombre.
Matrix acepta directamente URL de avatar mxc://. Cuando pasas una URL de avatar http:// o https://, OpenClaw primero la sube a Matrix y luego almacena la URL mxc:// resuelta en channels.matrix.avatarUrl (o en la anulación de la cuenta seleccionada).
Avisos automáticos de verificación
Matrix ahora publica avisos del ciclo de vida de verificación directamente en la sala estricta de verificación de mensajes directos como mensajesm.notice.
Eso incluye:
- avisos de solicitud de verificación
- avisos de verificación lista (con guía explícita “Verify by emoji”)
- avisos de inicio y finalización de verificación
- detalles SAS (emoji y decimal) cuando están disponibles
NO_REPLY.
Higiene de dispositivos
Los dispositivos antiguos de Matrix administrados por OpenClaw pueden acumularse en la cuenta y hacer que sea más difícil razonar sobre la confianza en salas cifradas. Enuméralos con:Reparación de sala directa
Si el estado de mensajes directos se desincroniza, OpenClaw puede terminar con asignacionesm.direct obsoletas que apuntan a salas individuales antiguas en lugar del mensaje directo activo. Inspecciona la asignación actual para un par con:
- prefiere un mensaje directo estricto 1:1 que ya esté asignado en
m.direct - en caso contrario, recurre a cualquier mensaje directo estricto 1:1 actualmente unido con ese usuario
- si no existe un mensaje directo sano, crea una nueva sala directa y reescribe
m.directpara que apunte a ella
Hilos
Matrix admite hilos nativos de Matrix tanto para respuestas automáticas como para envíos con la herramienta de mensajes.threadReplies: "off"mantiene las respuestas al nivel superior y mantiene los mensajes entrantes con hilo en la sesión padre.threadReplies: "inbound"responde dentro de un hilo solo cuando el mensaje entrante ya estaba en ese hilo.threadReplies: "always"mantiene las respuestas de la sala en un hilo con raíz en el mensaje activador y dirige esa conversación a través de la sesión correspondiente con ámbito de hilo desde el primer mensaje activador.dm.threadRepliesanula la configuración de nivel superior solo para mensajes directos. Por ejemplo, puedes mantener aislados los hilos de sala y mantener planos los mensajes directos.- Los mensajes entrantes con hilo incluyen el mensaje raíz del hilo como contexto adicional para el agente.
- Los envíos con la herramienta de mensajes ahora heredan automáticamente el hilo actual de Matrix cuando el destino es la misma sala, o el mismo usuario de mensaje directo, salvo que se proporcione un
threadIdexplícito. - Las asociaciones de hilos en tiempo de ejecución son compatibles con Matrix.
/focus,/unfocus,/agents,/session idle,/session max-agey/acp spawnvinculado a hilos ahora funcionan en salas y mensajes directos de Matrix. /focusen una sala o mensaje directo de Matrix de nivel superior crea un nuevo hilo de Matrix y lo vincula a la sesión de destino cuandothreadBindings.spawnSubagentSessions=true.- Ejecutar
/focuso/acp spawn --thread heredentro de un hilo existente de Matrix vincula ese hilo actual en su lugar.
Asociaciones de conversación ACP
Las salas, los mensajes directos y los hilos existentes de Matrix pueden convertirse en espacios de trabajo ACP duraderos sin cambiar la superficie del chat. Flujo rápido para operadores:- Ejecuta
/acp spawn codex --bind heredentro del mensaje directo, sala o hilo existente de Matrix que quieras seguir usando. - En un mensaje directo o sala de Matrix de nivel superior, el mensaje directo/sala actual sigue siendo la superficie de chat y los mensajes futuros se enrutan a la sesión ACP generada.
- Dentro de un hilo existente de Matrix,
--bind herevincula ese hilo actual en su lugar. /newy/resetrestablecen la misma sesión ACP vinculada en su lugar./acp closecierra la sesión ACP y elimina la asociación.
--bind hereno crea un hilo hijo de Matrix.threadBindings.spawnAcpSessionssolo se requiere para/acp spawn --thread auto|here, donde OpenClaw necesita crear o vincular un hilo hijo de Matrix.
Configuración de asociación de hilos
Matrix hereda los valores predeterminados globales desession.threadBindings y también admite anulaciones por canal:
threadBindings.enabledthreadBindings.idleHoursthreadBindings.maxAgeHoursthreadBindings.spawnSubagentSessionsthreadBindings.spawnAcpSessions
- Establece
threadBindings.spawnSubagentSessions: truepara permitir que/focusde nivel superior cree y vincule nuevos hilos de Matrix. - Establece
threadBindings.spawnAcpSessions: truepara permitir que/acp spawn --thread auto|herevincule sesiones ACP a hilos de Matrix.
Reacciones
Matrix admite acciones de reacción salientes, notificaciones de reacción entrantes y reacciones entrantes de confirmación.- La herramienta de reacción saliente está controlada por
channels["matrix"].actions.reactions. reactañade una reacción a un evento específico de Matrix.reactionsenumera el resumen actual de reacciones para un evento específico de Matrix.emoji=""elimina las reacciones propias de la cuenta bot en ese evento.remove: trueelimina solo la reacción del emoji especificado de la cuenta bot.
channels["matrix"].accounts.<accountId>.ackReactionchannels["matrix"].ackReactionmessages.ackReaction- respaldo al emoji de identidad del agente
ackReaction se resuelve en este orden:
channels["matrix"].accounts.<accountId>.ackReactionScopechannels["matrix"].ackReactionScopemessages.ackReactionScope
channels["matrix"].accounts.<accountId>.reactionNotificationschannels["matrix"].reactionNotifications- predeterminado:
own
reactionNotifications: "own"reenvía eventosm.reactionañadidos cuando apuntan a mensajes de Matrix creados por el bot.reactionNotifications: "off"desactiva los eventos del sistema de reacciones.- Las eliminaciones de reacciones todavía no se sintetizan en eventos del sistema porque Matrix las muestra como redacciones, no como eliminaciones independientes de
m.reaction.
Contexto del historial
channels.matrix.historyLimitcontrola cuántos mensajes recientes de la sala se incluyen comoInboundHistorycuando un mensaje de sala de Matrix activa al agente.- Recurre a
messages.groupChat.historyLimit. Establece0para desactivarlo. - El historial de salas de Matrix es solo de la sala. Los mensajes directos siguen usando el historial normal de la sesión.
- El historial de salas de Matrix es solo pendiente: OpenClaw almacena en búfer los mensajes de sala que todavía no activaron una respuesta y luego toma una instantánea de esa ventana cuando llega una mención u otro activador.
- El mensaje activador actual no se incluye en
InboundHistory; permanece en el cuerpo principal entrante de ese turno. - Los reintentos del mismo evento de Matrix reutilizan la instantánea original del historial en lugar de desplazarse hacia mensajes más recientes de la sala.
Visibilidad del contexto
Matrix admite el control compartidocontextVisibility para contexto suplementario de sala, como texto de respuesta obtenido, raíces de hilos e historial pendiente.
contextVisibility: "all"es el valor predeterminado. El contexto suplementario se conserva tal como se recibió.contextVisibility: "allowlist"filtra el contexto suplementario a remitentes permitidos por las comprobaciones activas de listas de permitidos de sala/usuario.contextVisibility: "allowlist_quote"se comporta comoallowlist, pero aun así conserva una respuesta citada explícita.
groupPolicy, groups, groupAllowFrom y la configuración de política de mensajes directos.
Ejemplo de política de mensajes directos y salas
Aprobaciones de exec
Matrix puede actuar como cliente de aprobación de exec para una cuenta de Matrix.channels.matrix.execApprovals.enabledchannels.matrix.execApprovals.approvers(opcional; recurre achannels.matrix.dm.allowFrom)channels.matrix.execApprovals.target(dm|channel|both, predeterminado:dm)channels.matrix.execApprovals.agentFilterchannels.matrix.execApprovals.sessionFilter
@owner:example.org. Matrix habilita automáticamente las aprobaciones nativas de exec cuando enabled no está definido o es "auto" y puede resolverse al menos una persona aprobadora, ya sea desde execApprovals.approvers o desde channels.matrix.dm.allowFrom. Establece enabled: false para desactivar explícitamente Matrix como cliente nativo de aprobación. En caso contrario, las solicitudes de aprobación recurren a otras rutas de aprobación configuradas o a la política de respaldo de aprobación de exec.
El enrutamiento nativo de Matrix hoy es solo para exec:
channels.matrix.execApprovals.*controla el enrutamiento nativo de mensajes directos/canales solo para aprobaciones de exec.- Las aprobaciones de plugins siguen usando
/approveen el mismo chat compartido más cualquier reenvío configurado enapprovals.plugin. - Matrix aún puede reutilizar
channels.matrix.dm.allowFrompara la autorización de aprobaciones de plugins cuando puede inferir con seguridad quién aprueba, pero no expone una ruta nativa separada de distribución por mensajes directos/canales para aprobaciones de plugins.
target: "dm"envía los prompts de aprobación a los mensajes directos de quienes apruebantarget: "channel"devuelve el prompt a la sala o mensaje directo de Matrix de origentarget: "both"envía a los mensajes directos de quienes aprueban y a la sala o mensaje directo de Matrix de origen
/approve <id> allow-once, /approve <id> allow-always o /approve <id> deny.
Solo las personas aprobadoras resueltas pueden aprobar o denegar. La entrega al canal incluye el texto del comando, por lo que solo debes habilitar channel o both en salas de confianza.
Los prompts de aprobación de Matrix reutilizan el planificador de aprobaciones compartido del núcleo. La superficie nativa específica de Matrix es solo transporte para aprobaciones de exec: enrutamiento de sala/mensaje directo y comportamiento de envío/actualización/eliminación de mensajes.
Anulación por cuenta:
channels.matrix.accounts.<account>.execApprovals
Ejemplo de varias cuentas
channels.matrix actúan como predeterminados para las cuentas con nombre, a menos que una cuenta los anule.
Puedes limitar una entrada de sala heredada a una cuenta concreta de Matrix con groups.<room>.account (o el legado rooms.<room>.account).
Las entradas sin account permanecen compartidas entre todas las cuentas de Matrix, y las entradas con account: "default" siguen funcionando cuando la cuenta predeterminada se configura directamente en channels.matrix.* de nivel superior.
Los valores predeterminados parciales compartidos de autenticación no crean por sí solos una cuenta predeterminada implícita separada. OpenClaw solo sintetiza la cuenta default de nivel superior cuando esa cuenta predeterminada tiene autenticación nueva (homeserver más accessToken, o homeserver más userId y password); las cuentas con nombre pueden seguir siendo detectables desde homeserver más userId cuando las credenciales almacenadas en caché satisfacen la autenticación más adelante.
Si Matrix ya tiene exactamente una cuenta con nombre, o defaultAccount apunta a una clave existente de cuenta con nombre, la promoción de reparación/configuración de una sola cuenta a varias cuentas conserva esa cuenta en lugar de crear una nueva entrada accounts.default. Solo las claves de autenticación/bootstrap de Matrix se mueven a esa cuenta promovida; las claves compartidas de política de entrega permanecen en el nivel superior.
Establece defaultAccount cuando quieras que OpenClaw prefiera una cuenta de Matrix con nombre para enrutamiento implícito, sondeos y operaciones de CLI.
Si configuras varias cuentas con nombre, establece defaultAccount o pasa --account <id> para los comandos de CLI que dependen de la selección implícita de cuenta.
Pasa --account <id> a openclaw matrix verify ... y openclaw matrix devices ... cuando quieras anular esa selección implícita para un comando.
Homeservers privados/LAN
De forma predeterminada, OpenClaw bloquea los homeservers de Matrix privados/internos como protección SSRF, a menos que optes explícitamente por permitirlos por cuenta. Si tu homeserver se ejecuta en localhost, una IP de LAN/Tailscale o un nombre de host interno, habilitaallowPrivateNetwork para esa cuenta de Matrix:
http://matrix.example.org:8008 siguen bloqueados. Prefiere https:// siempre que sea posible.
Uso de proxy para el tráfico de Matrix
Si tu implementación de Matrix necesita un proxy HTTP(S) saliente explícito, establecechannels.matrix.proxy:
channels.matrix.accounts.<id>.proxy.
OpenClaw usa la misma configuración de proxy para el tráfico de Matrix en tiempo de ejecución y para los sondeos de estado de la cuenta.
Resolución de destino
Matrix acepta estos formatos de destino en cualquier lugar donde OpenClaw te pida un objetivo de sala o usuario:- Usuarios:
@user:server,user:@user:serveromatrix:user:@user:server - Salas:
!room:server,room:!room:serveromatrix:room:!room:server - Alias:
#alias:server,channel:#alias:serveromatrix:channel:#alias:server
- Las búsquedas de usuario consultan el directorio de usuarios de Matrix en ese homeserver.
- Las búsquedas de sala aceptan directamente IDs y alias explícitos de sala, y luego recurren a buscar nombres de salas unidas para esa cuenta.
- La búsqueda por nombre de sala unida es de mejor esfuerzo. Si un nombre de sala no puede resolverse a un ID o alias, se ignora en la resolución de listas de permitidos en tiempo de ejecución.
Referencia de configuración
enabled: habilitar o deshabilitar el canal.name: etiqueta opcional para la cuenta.defaultAccount: ID de cuenta preferido cuando hay varias cuentas de Matrix configuradas.homeserver: URL del homeserver, por ejemplohttps://matrix.example.org.allowPrivateNetwork: permite que esta cuenta de Matrix se conecte a homeservers privados/internos. Habilítalo cuando el homeserver resuelva alocalhost, una IP de LAN/Tailscale o un host interno comomatrix-synapse.proxy: URL opcional de proxy HTTP(S) para el tráfico de Matrix. Las cuentas con nombre pueden anular el valor predeterminado de nivel superior con su propioproxy.userId: ID completo de usuario de Matrix, por ejemplo@bot:example.org.accessToken: token de acceso para autenticación basada en token. Se admiten valores en texto plano y valores SecretRef parachannels.matrix.accessTokenychannels.matrix.accounts.<id>.accessTokenen proveedores env/file/exec. Consulta Administración de secretos.password: contraseña para inicio de sesión basado en contraseña. Se admiten valores en texto plano y valores SecretRef.deviceId: ID explícito del dispositivo de Matrix.deviceName: nombre para mostrar del dispositivo para inicio de sesión con contraseña.avatarUrl: URL de avatar propio almacenada para sincronización de perfil y actualizacionesset-profile.initialSyncLimit: límite de eventos de sincronización al iniciar.encryption: habilitar E2EE.allowlistOnly: forzar comportamiento solo de lista de permitidos para mensajes directos y salas.allowBots: permitir mensajes de otras cuentas de Matrix de OpenClaw configuradas (trueo"mentions").groupPolicy:open,allowlistodisabled.contextVisibility: modo de visibilidad del contexto suplementario de sala (all,allowlist,allowlist_quote).groupAllowFrom: lista de permitidos de ID de usuario para tráfico de sala.- Las entradas de
groupAllowFromdeben ser IDs completos de usuario de Matrix. Los nombres no resueltos se ignoran en tiempo de ejecución. historyLimit: máximo de mensajes de sala que se incluirán como contexto de historial de grupo. Recurre amessages.groupChat.historyLimit. Establece0para desactivarlo.replyToMode:off,firstoall.markdown: configuración opcional de renderizado Markdown para texto saliente de Matrix.streaming:off(predeterminado),partial,trueofalse.partialytruehabilitan vistas previas de borrador de un solo mensaje con actualizaciones de edición en el mismo lugar.blockStreaming:truehabilita mensajes de progreso separados para bloques completados del asistente mientras el streaming de vista previa de borrador está activo.threadReplies:off,inboundoalways.threadBindings: anulaciones por canal para enrutamiento y ciclo de vida de sesiones vinculadas a hilos.startupVerification: modo automático de solicitud de autoverificación al iniciar (if-unverified,off).startupVerificationCooldownHours: tiempo de espera antes de reintentar solicitudes automáticas de verificación al iniciar.textChunkLimit: tamaño de fragmento de mensajes salientes.chunkMode:lengthonewline.responsePrefix: prefijo opcional de mensaje para respuestas salientes.ackReaction: anulación opcional de reacción de confirmación para este canal/cuenta.ackReactionScope: anulación opcional del ámbito de reacción de confirmación (group-mentions,group-all,direct,all,none,off).reactionNotifications: modo de notificación de reacciones entrantes (own,off).mediaMaxMb: límite de tamaño multimedia en MB para el manejo de multimedia de Matrix. Se aplica a envíos salientes y al procesamiento de multimedia entrante.autoJoin: política de unión automática a invitaciones (always,allowlist,off). Predeterminado:off.autoJoinAllowlist: salas/alias permitidos cuandoautoJoinesallowlist. Las entradas de alias se resuelven a IDs de sala durante el manejo de invitaciones; OpenClaw no confía en el estado de alias declarado por la sala invitada.dm: bloque de política de mensajes directos (enabled,policy,allowFrom,threadReplies).- Las entradas de
dm.allowFromdeben ser IDs completos de usuario de Matrix, a menos que ya las hayas resuelto mediante una búsqueda en vivo del directorio. dm.threadReplies: anulación de política de hilos solo para mensajes directos (off,inbound,always). Anula la configuración de nivel superiorthreadRepliestanto para la ubicación de respuestas como para el aislamiento de sesiones en mensajes directos.execApprovals: entrega nativa de aprobaciones de exec de Matrix (enabled,approvers,target,agentFilter,sessionFilter).execApprovals.approvers: ID de usuario de Matrix con permiso para aprobar solicitudes de exec. Es opcional cuandodm.allowFromya identifica quién aprueba.execApprovals.target:dm | channel | both(predeterminado:dm).accounts: anulaciones con nombre por cuenta. Los valores de nivel superior dechannels.matrixactúan como predeterminados para estas entradas.groups: mapa de políticas por sala. Prefiere IDs o alias de sala; los nombres de sala no resueltos se ignoran en tiempo de ejecución. La identidad de sesión/grupo usa el ID estable de la sala tras la resolución, mientras que las etiquetas legibles para humanos siguen viniendo de los nombres de sala.groups.<room>.account: restringe una entrada de sala heredada a una cuenta específica de Matrix en configuraciones con varias cuentas.groups.<room>.allowBots: anulación a nivel de sala para remitentes bot configurados (trueo"mentions").groups.<room>.users: lista de permitidos de remitentes por sala.groups.<room>.tools: anulaciones de permiso/denegación de herramientas por sala.groups.<room>.autoReply: anulación a nivel de sala para restricción por mención.truedesactiva los requisitos de mención para esa sala;falselos vuelve a forzar.groups.<room>.skills: filtro opcional de Skills a nivel de sala.groups.<room>.systemPrompt: fragmento opcional de prompt del sistema a nivel de sala.rooms: alias heredado degroups.actions: control por acción para herramientas (messages,reactions,pins,profile,memberInfo,channelInfo,verification).
Relacionado
- Resumen de canales — todos los canales compatibles
- Pairing — autenticación de mensajes directos y flujo de emparejamiento
- Groups — comportamiento del chat de grupo y restricción por menciones
- Enrutamiento de canales — enrutamiento de sesiones para mensajes
- Seguridad — modelo de acceso y endurecimiento