Skip to content
广告 · 本站推荐广告

Mattermost - 开源企业通讯接入

Mattermost 是一个开源的企业级即时通讯平台,常被视为 Slack 的自托管替代方案(Self-hosted Slack Alternative)。通过创建 Bot Account(机器人账号),可以将 OpenClaw 接入 Mattermost 实现自动化交互。

前置要求

  • 一个 Mattermost 实例(Self-hosted 或 Cloud)
  • 拥有 System Admin(系统管理员)或可创建 Bot 的权限
  • OpenClaw Gateway(网关)已安装并运行

接入步骤

第一步:创建 Bot Account

  1. 登录 Mattermost,进入 System Console > Integrations > Bot Accounts
  2. 确认 Enable Bot Account Creation 已开启
  3. 进入 Integrations > Bot Accounts > Add Bot Account
  4. 填写 Bot 用户名、显示名称和描述
  5. 选择角色(建议 Member,按需授权)
  6. 创建后记录 Bot Access Token

安全提示

Bot Access Token 拥有完整 API 访问权限,请妥善保管。如果 Token 泄露,立即在 System Console 中 Revoke(撤销)并重新生成。

第二步:生成 Personal Access Token(备选方案)

如果无法创建 Bot Account,也可使用 Personal Access Token(个人访问令牌):

  1. 进入 Profile > Security > Personal Access Tokens
  2. 点击 Create Token,填写描述
  3. 记录生成的 Token

第三步:配置 OpenClaw

json5
{
  channels: {
    mattermost: {
      enabled: true,
      url: "https://your-mattermost.com",     // Mattermost 实例地址
      token: "YOUR_BOT_ACCESS_TOKEN",          // Bot 或 Personal Access Token
      dmPolicy: "pairing"                      // DM Policy(私信策略)
    }
  }
}

也可以通过 Environment Variable(环境变量)设置:

bash
export MATTERMOST_URL="https://your-mattermost.com"
export MATTERMOST_TOKEN="your-bot-token"

第四步:重启 Gateway 并配对

bash
openclaw gateway restart

在 Mattermost 中向 Bot 发送私聊消息,获取 Pairing Code(配对码)后批准:

bash
openclaw pairing approve mattermost <pairing-code>

WebSocket 连接

OpenClaw 通过 WebSocket(长连接)接收 Mattermost 的实时事件。连接建立后,Bot 可以即时响应消息。

json5
{
  channels: {
    mattermost: {
      websocket: {
        reconnectInterval: 5000,    // 断线重连间隔(毫秒)
        maxRetries: 10,             // 最大重试次数
        pingInterval: 30000         // 心跳间隔(毫秒)
      }
    }
  }
}

WebSocket vs Webhook

Mattermost 支持 Webhook 模式,但 OpenClaw 默认使用 WebSocket 以获得更低延迟和更稳定的连接。WebSocket 无需公网 IP。

Channel 权限

json5
{
  channels: {
    mattermost: {
      allowChannels: ["town-square", "off-topic"],   // Channel 白名单(slug 名称)
      allowTeams: ["my-team"],                        // Team(团队)白名单
      requireMention: true                             // 需要 @机器人 才响应
    }
  }
}

留空或省略 allowChannels 则允许所有已加入的 Channel。

Thread(帖子)支持

json5
{
  channels: {
    mattermost: {
      useThreads: true,                // 在 Thread 中回复
      threadFollowUp: true             // 自动跟进同一 Thread
    }
  }
}

启用后,Bot 的回复将以 Thread Reply(帖子回复)形式出现,保持 Channel 整洁。

DM Policy(私信策略)

策略说明
pairing用户需先获取 Pairing Code(配对码)验证
allowlist仅允许指定用户私聊
open所有人均可私聊(谨慎使用)

常见问题

WebSocket 频繁断线

  1. 检查 Mattermost 服务器版本(建议 7.0+)
  2. 确认网络防火墙未阻断 WebSocket 连接
  3. 适当增大 reconnectIntervalpingInterval

Bot 无法加入 Channel

  1. 确认 Bot 已被邀请到目标 Channel
  2. 确认 Channel 权限允许 Bot 发送消息
  3. Private Channel(私有频道)需要手动邀请

Token 认证失败

  1. 确认 Token 未过期或被 Revoke
  2. 确认 Mattermost System Console 已启用 Bot Account 或 Personal Access Token

🇨🇳 中国用户须知

Mattermost 可私有部署,适合有自主可控需求的中国企业。

信创合规:Mattermost 开源版(Team Edition)可部署在国内服务器上,数据完全自控,满足等保和信创要求。

部署建议:使用 Docker 或 Kubernetes 部署在内网环境中,配合 OpenClaw 实现内部智能客服和自动化流程。

替代选择:如果团队已使用企业微信或飞书,建议优先使用原生渠道,减少系统复杂度。

社区版限制:Mattermost Team Edition 免费开源,Enterprise Edition(企业版)部分高级功能需付费。

基于MIT协议开源 | 内容翻译自 官方文档,同步更新