Mattermost是一款开源的团队协作平台,常被用作Slack的自托管替代方案。它支持私有化部署,非常适合对数据安全有严格要求的企业和组织。OpenClaw通过插件系统提供Mattermost频道支持,让你可以在Mattermost中直接与AI代理交互。
前置准备
开始配置前,请确认以下条件已满足:
- OpenClaw实例已部署并正常运行
- 一个可访问的Mattermost服务器(自托管或云托管均可)
- Mattermost系统管理员权限(用于创建Bot账户)
- Mattermost服务器版本建议5.0以上
创建Mattermost Bot账户
登录Mattermost管理后台,进入「集成」>「Bot账户」页面。点击「创建Bot账户」,填写用户名、显示名称和描述。创建后系统会生成一个Access Token,请妥善保存这个令牌,它只会显示一次。
如果你的Mattermost实例没有启用Bot账户功能,需要先在系统控制台的「集成」>「Bot账户」中将「启用Bot账户创建」设为true。
另外,确保在「集成」>「集成管理」中,「启用传入Webhooks」和「启用传出Webhooks」都已开启。
安装Mattermost插件
通过OpenClaw插件系统安装Mattermost支持:
openclaw plugin install mattermost
然后使用交互式登录命令进行配置:
openclaw channels login mattermost
系统会提示你输入Mattermost服务器地址、Bot的Access Token等信息。
配置openclaw.json
你也可以直接在 openclaw.json 中手动配置:
{
"channels": {
"mattermost": {
"enabled": true,
"serverUrl": "https://mattermost.your-company.com",
"token": "your-bot-access-token",
"teamName": "your-team-name"
}
}
}
serverUrl 是你的Mattermost服务器完整地址,token 是创建Bot时获取的Access Token,teamName 是Bot所在团队的名称。
WebSocket连接模式
Mattermost插件默认使用WebSocket连接来实时接收消息。这意味着OpenClaw会主动连接到Mattermost服务器,不需要配置额外的webhook回调地址。这种模式对于防火墙后的自托管环境非常友好,因为只需要出站连接。
连接建立后,OpenClaw会自动监听Bot被提及或收到私信的事件,并将消息转发给AI模型处理。
频道与私聊行为
在Mattermost中,Bot可以同时处理私聊消息和频道中的@提及消息。默认行为如下:
- 私聊(Direct Message):Bot会响应所有收到的消息
- 公开/私有频道:Bot只响应@提及的消息
你可以在配置中自定义这些行为:
{
"channels": {
"mattermost": {
"respondToDirectMessages": true,
"respondToMentions": true,
"respondToAll": false
}
}
}
将 respondToAll 设为true会让Bot响应所在频道中的所有消息,但这在活跃的频道中可能产生大量API调用,请谨慎使用。
斜杠命令集成
Mattermost支持自定义斜杠命令,你可以创建一个指向OpenClaw的斜杠命令,让用户通过 /ask 这样的方式调用AI。在Mattermost管理后台的「集成」>「斜杠命令」中创建新命令,将请求URL指向OpenClaw的Mattermost webhook端点即可。
安全与权限控制
利用OpenClaw的allowlist功能,可以精确控制哪些Mattermost用户可以与AI交互:
{
"channels": {
"mattermost": {
"allowlist": ["username1", "username2"],
"allowedChannels": ["channel-id-1", "channel-id-2"]
}
}
}
allowlist 限制可交互的用户,allowedChannels 限制Bot只在指定频道中响应。这对于控制AI使用成本和范围非常有用。
你还可以结合OpenClaw的私信配对功能,要求用户先在私聊中完成身份验证。
多频道共存
Mattermost频道可以和OpenClaw的其他频道同时运行。配置文件中可以同时启用多个频道,它们共享同一个AI后端。例如,你可以同时运行Mattermost用于内部团队沟通,Telegram用于外部社区支持。所有频道的消息会被独立处理,互不影响。
故障排查
如果Bot无法连接到Mattermost服务器,首先检查服务器地址是否正确、Token是否有效。可以用以下命令测试连通性:
curl -H "Authorization: Bearer your-token" https://mattermost.your-company.com/api/v4/users/me
如果返回了Bot的用户信息,说明认证没问题。如果WebSocket频繁断连,检查网络环境中是否有代理或防火墙干扰长连接,必要时配置WebSocket的ping间隔参数。