前言
Mattermost 是一款流行的开源自托管团队聊天平台,常被注重数据安全和自主可控的企业采用。OpenClaw 通过 @openclaw/mattermost 插件实现了与 Mattermost 的深度集成。
前置要求
- 已安装并运行 OpenClaw
- 一个 Mattermost 服务器(自建或托管版)
- Mattermost 管理员权限(用于创建 Bot 账号)
安装 Mattermost 插件
openclaw plugins install @openclaw/mattermost
验证安装:
openclaw plugins list
# 确认 @openclaw/mattermost 已安装
创建 Mattermost Bot 账号
通过系统控制台创建
- 以管理员身份登录 Mattermost
- 进入 系统控制台 → 集成 → Bot 账号
- 确保 启用 Bot 账号创建 选项已开启
- 进入 集成 → Bot 账号 → 添加 Bot 账号
填写 Bot 信息:
- 用户名:
openclaw-bot - 显示名称:OpenClaw 助手
- 描述:AI 智能助手
- 角色:选择 System Admin(如需管理功能)或 Member
生成 Access Token
创建 Bot 后,生成 Personal Access Token:
- 进入 Bot 账号的设置页面
- 点击 创建 Access Token
- 输入描述并生成
- 立即复制 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 中进行测试:
- 在允许的频道中 @ 机器人发送消息
- 或者直接给机器人发私聊消息
- 确认 AI 能正常回复
常见问题
Bot 无法连接服务器
- 确认
baseUrl地址正确且可访问 - 检查 Bot Token 是否有效
- 确认 Mattermost 服务器允许 Bot 账号登录
# 测试 API 连通性
curl -H "Authorization: Bearer 你的Token" \
https://mattermost.your-company.com/api/v4/users/me
频道中不响应消息
- 确认 Bot 已被邀请到目标频道(使用
/invite @openclaw-bot) - 检查
allowedChannels是否包含当前频道 - 确认
chatMode设置正确
Token 过期或失效
Mattermost 的 Personal Access Token 默认不过期,但管理员可以吊销。如果遇到认证错误,请重新生成 Token 并更新配置。
消息格式异常
Mattermost 使用 Markdown 格式,OpenClaw 的回复会自动转换为 Mattermost 兼容的 Markdown。如果出现格式问题,检查是否有特殊字符干扰。
总结
Mattermost 作为自托管方案,数据完全掌握在自己手中,配合 OpenClaw 可以打造完全私有化的 AI 助手服务。多种聊天模式和频道白名单提供了灵活的控制能力,适合对数据安全有高要求的企业团队。