OpenClaw Matrix 渠道
将 OpenClaw 连接到 Matrix——一个开放的联邦通信协议。此集成让您的 AI 助手可以参与任何 Homeserver(matrix.org、Element 或自托管)上的 Matrix 房间和私聊。OpenClaw 通过 Matrix Client-Server API 连接,并通过 Rust crypto SDK 提供可选的端到端加密(E2EE)支持。Matrix 渠道作为插件发布,支持联邦、线程、表情回应和富媒体。
Matrix 支持的功能
文本消息
支持
媒体与文件
支持
消息反应
支持
消息线程
支持
语音消息
不支持
群聊
支持
Matrix 前置条件
- 在任何 Homeserver(matrix.org、Element 或自托管)上拥有活跃的 Matrix 账户
- 已安装 Matrix 插件:openclaw plugins install @openclaw/matrix
- OpenClaw Gateway 正在运行并已配置
- 服务器上已安装 Node.js 18+
Matrix 快速设置
安装 Matrix 插件
Matrix 渠道作为独立插件发布。通过 'openclaw plugins install @openclaw/matrix' 安装。插件将从 npm 仓库下载并自动启用。
获取 Matrix 凭证
您需要访问令牌或用户名/密码。对于访问令牌:使用 curl 调用 Homeserver 的登录端点并复制令牌。对于用户名/密码:Gateway 将自动登录并将令牌存储在 ~/.openclaw/credentials/matrix/credentials.json 中。
添加 Matrix 渠道配置
将 Matrix 渠道配置添加到 ~/.openclaw/openclaw.json,包含您的 Homeserver URL 和凭证。您也可以使用环境变量 MATRIX_HOMESERVER、MATRIX_ACCESS_TOKEN、MATRIX_USER_ID 和 MATRIX_PASSWORD。
启动 Gateway 并测试
运行 'openclaw gateway' 启动服务。从另一个账户向您的 Matrix 机器人用户发送私聊消息。如果使用默认的配对策略,通过终端中的 'openclaw pairing approve matrix <code>' 批准发送者。
Matrix 配置示例
{
"channels": {
"matrix": {
"enabled": true,
"homeserver": "https://matrix.org",
"accessToken": "your_access_token_here",
"dmPolicy": "pairing"
}
}
}Matrix 深入了解
架构概览
认证方法
# 访问令牌方法
{
"channels": {
"matrix": {
"homeserver": "https://matrix.example.org",
"accessToken": "syt_xxx..."
}
}
}
# 用户名/密码方法
{
"channels": {
"matrix": {
"homeserver": "https://matrix.example.org",
"userId": "@bot:example.org",
"password": "your_password"
}
}
}私聊策略
{
"channels": {
"matrix": {
"dmPolicy": "allowlist",
"dm": {
"allowFrom": ["@alice:matrix.org", "@bob:example.org"]
}
}
}
}群聊(房间)支持
{
"channels": {
"matrix": {
"groupPolicy": "allowlist",
"groups": {
"!abc123:matrix.org": {
"allow": true,
"requireMention": false,
"users": ["@alice:matrix.org"]
},
"#team-chat:example.org": {
"allow": true
}
},
"autoJoin": "allowlist"
}
}
}端到端加密(E2EE)
{
"channels": {
"matrix": {
"encryption": true
}
}
}联邦与 Homeserver 选择
线程与回复模式
{
"channels": {
"matrix": {
"threadReplies": "always",
"replyToMode": "reference"
}
}
}媒体处理与文件上传
{
"channels": {
"matrix": {
"mediaMaxMb": 50
}
}
}表情回应与丰富功能
{
"channels": {
"matrix": {
"actions": {
"reactions": true,
"messages": true,
"pins": false
}
}
}
}为什么选择 Matrix 作为自托管 AI?
Matrix 配置参考
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | 启用或禁用 Matrix 渠道 |
| homeserver | string | "https://matrix.org" | Matrix Homeserver URL(如 https://matrix.org、https://element.io) |
| accessToken | string | "" | 用于认证的 Matrix 访问令牌(推荐方法) |
| userId | string | "" | Matrix 用户 ID(如 @bot:matrix.org)—— 与密码认证一起使用 |
| password | string | "" | Matrix 账户密码——与 userId 一起用于登录 |
| encryption | boolean | false | 通过 Rust crypto SDK 启用端到端加密 |
| dmPolicy | string | "pairing" | 私聊访问策略:pairing、allowlist、open 或 disabled |
| dm.allowFrom | array | [] | 允许私聊的 Matrix 用户 ID(如 [@alice:matrix.org]) |
| groupPolicy | string | "allowlist" | 房间策略:allowlist 或 disabled |
| groups | object | {} | 特定房间配置(房间 ID 或别名作为键) |
| groups.<roomId>.allow | boolean | false | 允许机器人参与此房间 |
| groups.<roomId>.requireMention | boolean | true | 在此房间中需要提及机器人才能触发响应 |
| groups.<roomId>.users | array | [] | 每个房间的用户白名单(Matrix 用户 ID) |
| autoJoin | string | "allowlist" | 自动加入房间邀请:always、allowlist 或 off |
| textChunkLimit | number | 4096 | 每条出站消息的最大字符数 |
| chunkMode | string | "length" | 如何分割长响应:length(硬限制)或 newline(段落边界) |
| threadReplies | string | "inbound" | 线程行为:off、inbound(只读)或 always(读取+创建) |
| replyToMode | string | "reference" | 回复元数据附加模式 |
| mediaMaxMb | number | 50 | 最大媒体文件大小(兆字节) |
| actions.reactions | boolean | true | 允许代理发送/读取表情回应 |
| actions.messages | boolean | true | 允许代理读取/发送/编辑/删除消息 |
| actions.pins | boolean | true | 允许代理置顶/取消置顶消息 |
| actions.memberInfo | boolean | true | 允许代理查找房间成员信息 |
| actions.channelInfo | boolean | true | 允许代理检索房间/频道信息 |
启用或禁用 Matrix 渠道
Matrix Homeserver URL(如 https://matrix.org、https://element.io)
用于认证的 Matrix 访问令牌(推荐方法)
Matrix 用户 ID(如 @bot:matrix.org)—— 与密码认证一起使用
Matrix 账户密码——与 userId 一起用于登录
通过 Rust crypto SDK 启用端到端加密
私聊访问策略:pairing、allowlist、open 或 disabled
允许私聊的 Matrix 用户 ID(如 [@alice:matrix.org])
房间策略:allowlist 或 disabled
特定房间配置(房间 ID 或别名作为键)
允许机器人参与此房间
在此房间中需要提及机器人才能触发响应
每个房间的用户白名单(Matrix 用户 ID)
自动加入房间邀请:always、allowlist 或 off
每条出站消息的最大字符数
如何分割长响应:length(硬限制)或 newline(段落边界)
线程行为:off、inbound(只读)或 always(读取+创建)
回复元数据附加模式
最大媒体文件大小(兆字节)
允许代理发送/读取表情回应
允许代理读取/发送/编辑/删除消息
允许代理置顶/取消置顶消息
允许代理查找房间成员信息
允许代理检索房间/频道信息
Matrix 常见问题
Matrix 故障排查
私聊策略阻止消息,或机器人不在房间中
设备未验证或加密模块加载失败
令牌在 Homeserver 上被撤销或失效
房间不在白名单中或 requireMention 已启用
Homeserver 连接或联邦问题
npm 仓库访问或 Node.js 版本不兼容