OpenClaw + Matrix 私有化部署与避坑指南

在AI个人助理领域,OpenClaw(曾用clawdbot、moltbot)凭借其强大的功能、社区支持及高度可扩展的插件架构,成为了许多用户的首选。然而,消息通道的选择往往令人头疼,目前支持飞书,不支持直接微信、企业微信、钉钉等,主力使用的不支持,只好另辟蹊径。

自建平台首先看到nextcloud talk,一番尝试后,主动放弃。随后发现Matrix,眼前一亮,作为一种开源、去中心化的通信标准,完美解决了这一痛点。本文将带你从零开始安装 OpenClaw,部署 Matrix (Synapse) 服务端,并深度集成 Matrix 插件。

OpenClaw 环境安装

首先,在服务器上执行以下一键安装脚本。该命令会自动配置 OpenClaw 的运行环境:

curl -fsSL https://get.openclaw.io | sh

Matrix 服务端与反向代理

使用Docker方式部署,可将 Synapse (Matrix 服务端) 与 Caddy (反向代理) 整合在一个 docker-compose 文件中,实现一键拉起。

  1. 创建目录 ~/matrix 并编写 docker-compose.yml
version: '3.3'
services:
  synapse:
    image: matrixdotorg/synapse:latest
    container_name: synapse
    restart: always
    volumes:
      - ./data:/data
    environment:
      - SYNAPSE_SERVER_NAME=matrix.yourdomain.com
      - SYNAPSE_REPORT_STATS=no
    ports:
      - "8008:8008"

  caddy:
    image: caddy:latest
    container_name: caddy-proxy
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
  1. Caddyfile 与初始化

在同级目录创建 Caddyfile 并填入域名,随后启动:

matrix.yourdomain.com {
    reverse_proxy synapse:8008
}
  1. 启动
docker-compose run --rm synapse generate
docker-compose up -d
  1. 创建管理员
docker exec -it synapse register_new_matrix_user -u admin -p your_password --admin -c /data/homeserver.yaml

Matrix 插件集成与故障排除

在安装 @openclaw/matrix 插件时,由于其依赖高性能的加密库,极易出现安装失败。

安装插件

openclaw plugins install @openclaw/matrix

故障排查

安装 @matrix-org/matrix-sdk-crypto-nodejs 报错这是最常见的痛点。该插件依赖 Rust 编写的原生模块,如果系统缺少构建环境,安装会卡住或报错。

  1. 安装构建工具链** 在执行插件安装前,请确保服务器已安装 Rust 和基础编译环境:
# 以 Ubuntu/Debian 为例
sudo apt update && sudo apt install -y build-essential python3
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
  1. 解决“重复插件”或“安装残留”

如果提示 duplicate plugin 或安装进度异常,需要彻底清理全局节点模块中的残留文件。 请务必使用以下准确路径:

# 彻底删除冲突的插件目录
rm -rf ~/.npm-global/lib/node_modules/openclaw/extensions/matrix

# 进入目录重新手动补全依赖
cd ~/.npm-global/lib/node_modules/openclaw/extensions/matrix
npm install
  1. 不支持 Workspace 协议

部分开发者版本使用了 workspace:* 这种 Monorepo 语法,标准 NPM 环境可能解析失败。修改 package.json,将依赖锁定为稳定版本。

"devDependencies": {
  "openclaw": "^2026.2.9"
}

修改后重新执行 npm i,

启用matrix插件

openclaw plugins enable matrix
openclaw plugins list

机器人配置与授权

获取 Bot Access Token

通过 API 为机器人生成一个永久令牌:

curl --request POST \
  --url https://matrix.yourdomain.com/_matrix/client/v3/login \
  --header 'Content-Type: application/json' \
  --data '{
    "type": "m.login.password",
    "identifier": { "type": "m.id.user", "user": "bot" },
    "password": "your_bot_password"
  }'

OpenClaw连接Matrix

编辑 ~/.openclaw/config.json,确保插件已启用并填入 Token:

配置项 说明
homeserver 你的域名,如 https://matrix.yourdomain.com
userId 完整的机器人 ID,如 @bot:matrix.yourdomain.com
accessToken 上一步 API 返回的长字符串

对接与测试

最后,完成机器人与房间的配对:

  1. 配对审批
openclaw pairing list matrix
openclaw pairing approve matrix <ID>

在 Matrix 客户端(如 Element)中邀请 Bot 加入房间,然后发送一条 @Bot 的消息。如果它回复了,恭喜,已搭建完成!

  1. 功能验证: 在 Matrix 房间中 @机器人 发送一条指令。如果机器人能正常回复,说明整套 Synapse + OpenClaw 体系已完美打通。

小结

  • 安装报错:多半是因为缺少 Rust 环境导致原生加密库编译失败。
  • 路径清理:当插件状态异常时,手动清理 ~/.npm-global/lib/node_modules/openclaw/extensions/matrix 是最有效的“重置”手段。
  • 性能建议:自建 Matrix 比较吃内存,建议为 Synapse 容器配置 mem_limit,限制 Docker 容器的内存使用。

注: 如果服务器在国内,请确保域名已备案,否则可能无法直接访问。


最后修改于 2026-02-10