首页 资讯 下载 教程 Skills 社群

OpenClaw 对接 Mattermost 自托管聊天教程

前言

Mattermost 是一款流行的开源自托管团队聊天平台,常被注重数据安全和自主可控的企业采用。OpenClaw 通过 @openclaw/mattermost 插件实现了与 Mattermost 的深度集成。

前置要求

  • 已安装并运行 OpenClaw
  • 一个 Mattermost 服务器(自建或托管版)
  • Mattermost 管理员权限(用于创建 Bot 账号)

安装 Mattermost 插件

openclaw plugins install @openclaw/mattermost

验证安装:

openclaw plugins list
# 确认 @openclaw/mattermost 已安装

创建 Mattermost Bot 账号

通过系统控制台创建

  1. 以管理员身份登录 Mattermost
  2. 进入 系统控制台集成Bot 账号
  3. 确保 启用 Bot 账号创建 选项已开启
  4. 进入 集成Bot 账号添加 Bot 账号

填写 Bot 信息:

  • 用户名:openclaw-bot
  • 显示名称:OpenClaw 助手
  • 描述:AI 智能助手
  • 角色:选择 System Admin(如需管理功能)或 Member

生成 Access Token

创建 Bot 后,生成 Personal Access Token:

  1. 进入 Bot 账号的设置页面
  2. 点击 创建 Access Token
  3. 输入描述并生成
  4. 立即复制 Token(仅显示一次)
# Bot Token 示例
Token: xxxxxxxxxxxxxxxxxxxxxxxxxxx

获取 Mattermost 基础 URL

基础 URL 是你的 Mattermost 服务器地址:

# 示例
https://mattermost.your-company.com
# 或自建的地址
https://chat.example.com

OpenClaw 频道配置

channels:
  - type: mattermost
    baseUrl: "https://mattermost.your-company.com"
    botToken: "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
    dmPolicy: "paired"
    chatMode: "onmention"
    allowedChannels:
      - "town-square"
      - "ai-assistant"

聊天模式详解

Mattermost 插件支持多种聊天触发模式:

oncall 模式

机器人在被 @ 提及或私聊时才会响应:

chatMode: "oncall"

这是最保守的模式,不会干扰正常的团队沟通。

onmessage 模式

机器人响应允许频道中的所有消息:

chatMode: "onmessage"

适合专门用于 AI 对话的频道。

onchar 模式(带前缀)

用户消息以特定前缀开头时才会触发 AI 回复:

chatMode: "onchar"
chatPrefix: "!"    # 以 ! 开头的消息触发 AI

示例:

!帮我写一段 Python 代码  → AI 会回复
今天天气不错              → AI 不会回复

这种模式非常灵活,适合在活跃频道中使用而不影响正常对话。

DM 配对策略

dmPolicy: "open"     # 接受所有私聊
dmPolicy: "paired"   # 需要审批配对
dmPolicy: "off"      # 关闭私聊

使用 paired 模式时的配对流程:

# 查看配对请求
openclaw channels pairs list mattermost
# 审批
openclaw channels pairs approve mattermost <用户ID>
# 拒绝
openclaw channels pairs reject mattermost <用户ID>

频道白名单

通过 allowedChannels 限制机器人只在指定频道中工作,避免在不相关的频道中被触发:

allowedChannels:
  - "ai-assistant"      # AI 专用频道
  - "dev-help"          # 开发求助频道
  - "general-support"   # 通用支持频道

如果不设置白名单,机器人会在所有被邀请的频道中响应(根据 chatMode 规则)。

多实例部署

OpenClaw 支持同时连接多个 Mattermost 实例,适合管理多个团队或项目的场景:

channels:
  - type: mattermost
    name: "研发团队"
    baseUrl: "https://dev-chat.example.com"
    botToken: "token1_xxxxxxxxx"
    chatMode: "onmention"
    allowedChannels: ["dev-general", "code-review"]

  - type: mattermost
    name: "运维团队"
    baseUrl: "https://ops-chat.example.com"
    botToken: "token2_xxxxxxxxx"
    chatMode: "oncall"
    allowedChannels: ["alerts", "incidents"]

每个实例独立配置,互不干扰。

部署验证

# 启动 OpenClaw
openclaw start

# 检查频道连接状态
openclaw channels status

在 Mattermost 中进行测试:

  1. 在允许的频道中 @ 机器人发送消息
  2. 或者直接给机器人发私聊消息
  3. 确认 AI 能正常回复

常见问题

Bot 无法连接服务器

  1. 确认 baseUrl 地址正确且可访问
  2. 检查 Bot Token 是否有效
  3. 确认 Mattermost 服务器允许 Bot 账号登录
# 测试 API 连通性
curl -H "Authorization: Bearer 你的Token" \
  https://mattermost.your-company.com/api/v4/users/me

频道中不响应消息

  1. 确认 Bot 已被邀请到目标频道(使用 /invite @openclaw-bot
  2. 检查 allowedChannels 是否包含当前频道
  3. 确认 chatMode 设置正确

Token 过期或失效

Mattermost 的 Personal Access Token 默认不过期,但管理员可以吊销。如果遇到认证错误,请重新生成 Token 并更新配置。

消息格式异常

Mattermost 使用 Markdown 格式,OpenClaw 的回复会自动转换为 Mattermost 兼容的 Markdown。如果出现格式问题,检查是否有特殊字符干扰。

总结

Mattermost 作为自托管方案,数据完全掌握在自己手中,配合 OpenClaw 可以打造完全私有化的 AI 助手服务。多种聊天模式和频道白名单提供了灵活的控制能力,适合对数据安全有高要求的企业团队。