Canal Matrix do OpenClaw
Conecte o OpenClaw ao Matrix — um protocolo de comunicação aberto e federado. Esta integração permite que seu assistente de IA participe de salas Matrix e mensagens diretas através de qualquer servidor doméstico (matrix.org, Element ou auto-hospedado). O OpenClaw se conecta através da API Matrix Client-Server com suporte opcional de criptografia de ponta a ponta (E2EE) através do SDK de criptografia Rust. O canal Matrix é fornecido como plugin e suporta federação, threads, reações e mídia rica.
Matrix Recursos suportados
Mensagens de texto
Suportado
Mídia e arquivos
Suportado
Reações
Suportado
Threads
Suportado
Mensagens de voz
Não suportado
Chat em grupo
Suportado
Matrix Pré-requisitos
- Uma conta Matrix ativa em qualquer servidor doméstico (matrix.org, Element ou auto-hospedado)
- O plugin Matrix instalado: openclaw plugins install @openclaw/matrix
- OpenClaw Gateway em execução e configurado
- Node.js 18+ instalado no seu servidor
Matrix Configuração rápida
Instalar o plugin Matrix
O canal Matrix é fornecido como plugin separado. Instale-o através de 'openclaw plugins install @openclaw/matrix'. O plugin será baixado do registro npm e habilitado automaticamente.
Obter credenciais do Matrix
Você precisa de um token de acesso ou usuário/senha. Para tokens de acesso: use curl para chamar o endpoint de login do seu servidor doméstico e copie o token. Para usuário/senha: o Gateway fará login automaticamente e armazenará o token em ~/.openclaw/credentials/matrix/credentials.json.
Adicionar configuração do canal Matrix
Adicione a configuração do canal Matrix em ~/.openclaw/openclaw.json com a URL do seu servidor doméstico e credenciais. Você também pode usar variáveis de ambiente MATRIX_HOMESERVER, MATRIX_ACCESS_TOKEN, MATRIX_USER_ID e MATRIX_PASSWORD.
Iniciar Gateway e testar
Execute 'openclaw gateway' para iniciar o serviço. Envie uma mensagem direta para seu usuário bot Matrix de outra conta. Se estiver usando a política de emparelhamento padrão, aprove o remetente através de 'openclaw pairing approve matrix <code>' no seu terminal.
Matrix Exemplo de configuração
{
"channels": {
"matrix": {
"enabled": true,
"homeserver": "https://matrix.org",
"accessToken": "your_access_token_here",
"dmPolicy": "pairing"
}
}
}Matrix Documentação Detalhada
Visão geral da arquitetura
Métodos de autenticação
# Método com token de acesso
{
"channels": {
"matrix": {
"homeserver": "https://matrix.example.org",
"accessToken": "syt_xxx..."
}
}
}
# Método com usuário/senha
{
"channels": {
"matrix": {
"homeserver": "https://matrix.example.org",
"userId": "@bot:example.org",
"password": "your_password"
}
}
}Políticas de mensagens diretas
{
"channels": {
"matrix": {
"dmPolicy": "allowlist",
"dm": {
"allowFrom": ["@alice:matrix.org", "@bob:example.org"]
}
}
}
}Suporte para chat em grupo (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"
}
}
}Criptografia de ponta a ponta (E2EE)
{
"channels": {
"matrix": {
"encryption": true
}
}
}Federação e seleção de servidor doméstico
Threads e modos de resposta
{
"channels": {
"matrix": {
"threadReplies": "always",
"replyToMode": "reference"
}
}
}Manipulação de mídia e upload de arquivos
{
"channels": {
"matrix": {
"mediaMaxMb": 50
}
}
}Reações e recursos ricos
{
"channels": {
"matrix": {
"actions": {
"reactions": true,
"messages": true,
"pins": false
}
}
}
}Por que Matrix para IA auto-hospedada?
Matrix Referência de Configuração
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Habilitar ou desabilitar o canal Matrix |
| homeserver | string | "https://matrix.org" | URL do servidor doméstico Matrix (por exemplo, https://matrix.org, https://element.io) |
| accessToken | string | "" | Token de acesso Matrix para autenticação (método recomendado) |
| userId | string | "" | ID de usuário Matrix (por exemplo, @bot:matrix.org) — usado com autenticação por senha |
| password | string | "" | Senha da conta Matrix — usado com userId para login |
| encryption | boolean | false | Habilitar criptografia de ponta a ponta através do SDK de criptografia Rust |
| dmPolicy | string | "pairing" | Política de acesso a mensagens diretas: pairing, allowlist, open ou disabled |
| dm.allowFrom | array | [] | IDs de usuário Matrix permitidos para mensagens diretas (por exemplo, [@alice:matrix.org]) |
| groupPolicy | string | "allowlist" | Política de salas: allowlist ou disabled |
| groups | object | {} | Configuração específica por sala (ID ou apelido de sala como chave) |
| groups.<roomId>.allow | boolean | false | Permitir ao bot participar desta sala |
| groups.<roomId>.requireMention | boolean | true | Exigir menção ao bot para acionar respostas nesta sala |
| groups.<roomId>.users | array | [] | Allowlist de usuários específica por sala (IDs de usuário Matrix) |
| autoJoin | string | "allowlist" | Entrar automaticamente em convites de sala: always, allowlist ou off |
| textChunkLimit | number | 4096 | Máximo de caracteres por mensagem de saída |
| chunkMode | string | "length" | Como dividir respostas longas: length (limite rígido) ou newline (limites de parágrafo) |
| threadReplies | string | "inbound" | Comportamento de threads: off, inbound (apenas leitura) ou always (ler + criar) |
| replyToMode | string | "reference" | Modo de anexação de metadados de resposta |
| mediaMaxMb | number | 50 | Tamanho máximo de arquivo de mídia em megabytes |
| actions.reactions | boolean | true | Permitir ao agente enviar/ler reações |
| actions.messages | boolean | true | Permitir ao agente ler/enviar/editar/excluir mensagens |
| actions.pins | boolean | true | Permitir ao agente fixar/desafixar mensagens |
| actions.memberInfo | boolean | true | Permitir ao agente consultar informações de membros da sala |
| actions.channelInfo | boolean | true | Permitir ao agente obter informações de sala/canal |
Habilitar ou desabilitar o canal Matrix
URL do servidor doméstico Matrix (por exemplo, https://matrix.org, https://element.io)
Token de acesso Matrix para autenticação (método recomendado)
ID de usuário Matrix (por exemplo, @bot:matrix.org) — usado com autenticação por senha
Senha da conta Matrix — usado com userId para login
Habilitar criptografia de ponta a ponta através do SDK de criptografia Rust
Política de acesso a mensagens diretas: pairing, allowlist, open ou disabled
IDs de usuário Matrix permitidos para mensagens diretas (por exemplo, [@alice:matrix.org])
Política de salas: allowlist ou disabled
Configuração específica por sala (ID ou apelido de sala como chave)
Permitir ao bot participar desta sala
Exigir menção ao bot para acionar respostas nesta sala
Allowlist de usuários específica por sala (IDs de usuário Matrix)
Entrar automaticamente em convites de sala: always, allowlist ou off
Máximo de caracteres por mensagem de saída
Como dividir respostas longas: length (limite rígido) ou newline (limites de parágrafo)
Comportamento de threads: off, inbound (apenas leitura) ou always (ler + criar)
Modo de anexação de metadados de resposta
Tamanho máximo de arquivo de mídia em megabytes
Permitir ao agente enviar/ler reações
Permitir ao agente ler/enviar/editar/excluir mensagens
Permitir ao agente fixar/desafixar mensagens
Permitir ao agente consultar informações de membros da sala
Permitir ao agente obter informações de sala/canal
Matrix Perguntas Frequentes
Matrix Solução de Problemas
Política de mensagens diretas bloqueando mensagens, ou bot não está na sala
Dispositivo não verificado ou módulos de criptografia falharam ao carregar
Token foi revogado ou invalidado no servidor doméstico
Sala não está na allowlist ou requireMention está habilitado
Problemas de conectividade ou federação do servidor doméstico
Acesso ao registro npm ou incompatibilidade de versão do Node.js