Mattermost 机器人
Mattermost 机器人
Mattermost 机器人用于把艾维斯能力接入自托管 Mattermost 协作环境。上线前应把它当作受控消息入口来配置:只接收已批准团队、频道或命令触发的请求,只返回当前用户或频道允许访问的知识和工具结果,并保留可审计的请求记录。
适用场景
接入方式选择
通常建议先使用 Custom Slash Command 做最小闭环:触发范围清晰、用户意图明确,也更适合私有频道和 Direct Message。只有需要监听公开频道自然语言消息时,再使用 Outgoing Webhook。
管理边界
配置前检查
- 已确认 Mattermost Server 版本和部署方式,且当前账号有权限进入 Product menu > Integrations 或系统管理员可代为配置。
- 已确认服务器已启用所需集成能力:Outgoing Webhooks、Custom Slash Commands、Personal Access Tokens 或 Bot Accounts。
- 已准备可供 Mattermost 访问的艾维斯 HTTPS 回调 URL。
- 已明确机器人允许服务的团队、频道、用户范围、默认 Agent、知识范围和工具范围。
- 已决定使用 Outgoing Webhook、Custom Slash Command,还是额外使用 Bot Account / Personal Access Token。
- 所有 token 只保存到受保护配置中,不写入公开文档、Agent 指令、工单、截图或聊天记录。
配置数据获取入口
配置 Outgoing Webhook
如果希望机器人监听公开频道中的触发词,可在 Mattermost 创建 Outgoing Webhook:
- 打开 Product menu > Integrations > Outgoing Webhooks。
- 点击 Add Outgoing Webhook,填写名称和描述。
- 选择请求内容类型。建议使用
application/json,便于艾维斯按结构化请求解析。 - 选择一个明确的公开频道,或设置一个清晰的触发词,例如
aivis。 - 在 Callback URLs 中填写艾维斯提供的回调 URL 并保存。
- 复制 Mattermost 生成的 Token,回到艾维斯机器人配置页填写。
Outgoing Webhook 的频道或触发词不要留得过宽。官方文档说明,如果频道为空,触发词会在团队的全部公开频道生效;如果触发词为空,则会响应所选公开频道的全部消息。
配置 Slash Command
如果希望用户明确通过 /aivis 调用机器人,或需要支持私有频道和私聊,建议创建自定义 Slash Command:
- 打开 Product menu > Integrations > Slash Commands。
- 点击 Add Slash Command。
- 设置命令标题、描述和唯一触发词,例如
aivis。触发词不要包含/或空格。 - 将 Request URL 设置为艾维斯回调 URL。
- 将请求方法设置为
POST。 - 按需开启 autocomplete,并填写参数提示,例如
[问题]。 - 保存后复制生成的 token,回到艾维斯机器人配置页填写。
配置 Bot Account
只有在艾维斯需要主动调用 Mattermost REST API 发帖、回帖、发私信或查询频道信息时,才需要 Bot Account 或 Personal Access Token。
- 在系统控制台确认已启用 Bot Accounts 和必要的 Personal Access Tokens。
- 创建专用 Bot Account,例如
aivis-bot,不要授予 System Admin,除非经过单独安全评审。 - 把 bot 加入允许服务的 team 和 channel。
- 复制生成的 bot access token,并填入艾维斯受保护凭据。
- 在测试频道发送一条由 bot 发出的最小回复,确认身份、频道和权限符合预期。
在艾维斯中配置
在艾维斯管理后台打开 Mattermost 机器人配置页,按所选接入方式填写:
保存后,确认机器人开关为已启用,并记录回调 URL、Mattermost 集成名称、token owner 和负责人。
验证
- 在测试频道或私聊中发送一条普通问题,确认机器人能回复。
- 如果使用 Outgoing Webhook,测试触发词和非触发词,确认只有预期消息会触发。
- 如果使用 Slash Command,测试
/aivis 问题、空参数和异常参数。 - 使用未授权频道、未授权用户或未绑定 Agent 的问题测试拒绝路径。
- 在艾维斯追踪中确认 Mattermost 来源、team、channel、user、触发方式、响应结果和错误信息可审计。
- 轮换 webhook token、command token 或 bot token 后,重新保存艾维斯配置并重复测试。
常见问题排查
安全与维护建议
- 为生产、测试和演示环境使用不同 Mattermost 集成和 token。
- 不使用 System Admin 个人 token 作为机器人凭据。
- Outgoing Webhook、Slash Command 和 Bot Account token 都应定期轮换,并记录 token owner。
- 关闭长期不用的 webhook、command 或 bot account 后,再停用艾维斯侧机器人。
- 频道、团队、owner 或访问范围变更后,重新验证拒绝路径和追踪记录。
官方参考
- Mattermost Developers:Bot accounts
- Mattermost Developers:Personal access tokens
- Mattermost Developers:Outgoing webhooks
- Mattermost Developers:Slash commands
- Mattermost Developers:Custom slash commands
- Mattermost 管理文档:Integrations configuration settings