OpenClaw

OpenClaw Mattermost 頻道

企業
中等

將 OpenClaw 連接至 Mattermost——開源企業通訊平台,讓您的 AI 助手能夠參與私訊、群組頻道和團隊對話。整合使用 Bot Token 驗證與 WebSocket 事件實現即時雙向通訊,並提供彈性的聊天模式與精細的存取控制策略。

快速資訊
難度中等
分類企業
支援功能數5 / 6

Mattermost 支援功能

文字訊息

支援

媒體與檔案

支援

表情回應

支援

討論串

支援

語音訊息

不支援

群組聊天

支援

Mattermost 前置條件

  • 一個 Mattermost 伺服器(自行架設或雲端版),擁有管理員權限以建立 Bot 帳號
  • 在 Mattermost System Console 中建立的 Bot Account 及其 Bot Token
  • Mattermost 伺服器的 Base URL 可從 OpenClaw Gateway 存取
  • OpenClaw Gateway 已安裝並執行中
  • 已透過 'openclaw plugins install @openclaw/mattermost' 安裝 Mattermost 外掛

Mattermost 快速設定

1

安裝 Mattermost 外掛

執行 'openclaw plugins install @openclaw/mattermost' 為您的 Gateway 新增 Mattermost 支援。

2

在 Mattermost 中建立 Bot Account

前往 Mattermost System Console > Integrations > Bot Accounts。點選「Add Bot Account」,設定顯示名稱與描述,然後複製產生的 Bot Token。請確認 System Console > Integrations > Integration Management 中的「Enable Bot Account Creation」已設為 true。

3

設定並啟動

在 ~/.openclaw/openclaw.json 中新增 Mattermost 頻道設定,填入您的 botToken、baseUrl 及所需策略。使用 'openclaw start' 啟動 Gateway。向機器人傳送私訊或在頻道中 @提及它以驗證連線是否正常。

Mattermost 設定範例

config.json
{
  "channels": {
    "mattermost": {
      "enabled": true,
      "botToken": "your-bot-token",
      "baseUrl": "https://mattermost.example.com",
      "dmPolicy": "pairing",
      "chatmode": "oncall"
    }
  }
}

Mattermost 深入了解

架構概述

OpenClaw 透過 Mattermost 的 REST API 和 WebSocket 事件串流進行連接。啟動時,Gateway 使用您的 Bot Token 進行驗證,建立持久的 WebSocket 連線,並開始監聽訊息事件。 當訊息符合當前聊天模式的觸發條件(提及、前綴字元或所有訊息)時,Gateway 會將其轉發至您的 AI 代理。代理的回覆會透過 Mattermost REST API 發送回相同的頻道或 DM 對話串。 此整合支援豐富功能,包括多媒體附件、訊息表情回應、對話串回覆和群組頻道管理——使其成為功能最完備的企業級頻道整合之一。
WebSocket 連線會在斷線時自動重新連接。
每個帳號會產生獨立的工作階段金鑰(agent:<agentId>:mattermost:<accountName>)用於獨立的對話追蹤。

建立 Bot Account

Mattermost Bot Account 是專用的服務帳號,不會佔用使用者授權數。 1. 前往 System Console > Integrations > Bot Accounts。 2. 確認 Integration Management 中的「Enable Bot Account Creation」已啟用。 3. 點選「Add Bot Account」,填寫顯示名稱、描述和圖示。 4. 選擇適當的角色(不建議使用 System Admin——請使用預設的 Member 角色)。 5. 立即複製產生的 Bot Token——該 token 不會再次顯示。 Bot 必須被加入到需要運作的頻道中。團隊管理員或系統管理員可以手動將 Bot 加入頻道,使用者也可以透過 @提及來邀請它。
openclaw.json
{
  "channels": {
    "mattermost": {
      "botToken": "your-bot-token",
      "baseUrl": "https://mattermost.example.com"
    }
  }
}
請妥善保管 Bot Token。如果遺失,您必須在 System Console 中重新產生。
Bot Account 不會計入您的 Mattermost 授權數量上限。

聊天模式

OpenClaw 支援三種聊天模式,用於控制機器人何時回覆頻道中的訊息: **oncall(預設)** — 機器人僅在被 @提及時回覆。這是繁忙頻道中最安全的模式,機器人除非被明確呼叫,否則保持靜默。 **onmessage** — 機器人回覆所有來自允許使用者的訊息。最適合專用機器人頻道或低流量環境,讓每條訊息都能得到回覆。 **onchar** — 機器人在訊息以特定前綴字元開頭時回覆(例如「!」或「/」)。使用 oncharPrefixes 設定觸發前綴。此模式適合希望明確但簡潔地觸發機器人,而無需輸入完整機器人名稱的場景。
openclaw.json
{
  "channels": {
    "mattermost": {
      "chatmode": "onchar",
      "oncharPrefixes": ["!", "/ai"]
    }
  }
}
在 DM 中,無論聊天模式為何,機器人都會回覆所有訊息。
建議在團隊頻道中使用 oncall 模式以避免干擾。

DM 策略

DM(私訊)策略控制誰可以透過私訊與機器人互動。 **pairing(預設)** — 僅在 allowFrom 清單中明確列出的使用者可以向機器人傳送私訊。這是最嚴格的模式,適合精確控制哪些使用者有存取權限。 **open** — 任何向機器人傳送私訊的 Mattermost 使用者都會收到回覆。當您希望機器人在整個組織中廣泛可用時,請使用此模式。 allowFrom 欄位接受 Mattermost 使用者 ID。您可以在 System Console > Users 中查找使用者 ID,或透過 Mattermost API 取得。
openclaw.json
{
  "channels": {
    "mattermost": {
      "dmPolicy": "pairing",
      "allowFrom": ["user-id-1", "user-id-2"]
    }
  }
}
將 dmPolicy 設為 'open' 會允許 Mattermost 伺服器上的任何使用者透過 DM 消耗 AI 配額。在大型伺服器上請謹慎使用。

群組與頻道策略

群組策略控制機器人在接收群組訊息時參與哪些頻道。 **allowlist(預設)** — 機器人僅在 groupAllowFrom 中明確列出的頻道中回覆。其他頻道的訊息會被靜默忽略。 **open** — 機器人在任何已加入的頻道中回覆。這很方便,但如果機器人被加入過多頻道,可能導致非預期的互動。 groupAllowFrom 欄位接受 Mattermost 頻道 ID。您可以從頻道 URL 中取得頻道 ID,或透過 Mattermost API 查詢。
openclaw.json
{
  "channels": {
    "mattermost": {
      "groupPolicy": "allowlist",
      "groupAllowFrom": ["channel-id-1", "channel-id-2"]
    }
  }
}
在正式環境中使用 allowlist 模式,以防止機器人在非預期的頻道中回覆。
無論群組策略如何設定,機器人都必須是頻道成員才能接收訊息。

多帳號設定

OpenClaw 支援同時執行多個 Mattermost Bot 帳號,每個帳號可對應不同的 Mattermost 伺服器或使用不同的設定。 使用 accounts.<name> 模式設定多個帳號。每個帳號擁有獨立的 Bot Token、Base URL、聊天模式和存取策略。 這對於運行多個 Mattermost 實例的組織(例如正式環境與測試環境)或不同團隊需要不同行為的機器人時非常實用。
openclaw.json
{
  "channels": {
    "mattermost": {
      "accounts": {
        "production": {
          "botToken": "prod-bot-token",
          "baseUrl": "https://mattermost.company.com",
          "chatmode": "oncall",
          "dmPolicy": "pairing",
          "allowFrom": ["user-1", "user-2"]
        },
        "dev-team": {
          "botToken": "dev-bot-token",
          "baseUrl": "https://mm-dev.company.com",
          "chatmode": "onmessage",
          "dmPolicy": "open"
        }
      }
    }
  }
}

主動發送訊息

AI 代理可以使用 mattermost 工具動作主動向 Mattermost 頻道和使用者發送訊息。這可實現定時通知、警報和自動更新,無需使用者觸發。 支援的目標格式: • channel:<channel-id> — 透過 ID 向特定頻道發送訊息 • user:<user-id> — 透過 ID 向特定使用者發送私訊 • @username — 透過使用者名稱向使用者發送私訊 機器人必須擁有在目標頻道發佈訊息或向目標使用者發起 DM 的權限。
agent-action.json
{
  "action": "mattermost",
  "params": {
    "message": "Daily standup reminder: please post your updates!",
    "to": "channel:abc123def456"
  }
}
請使用頻道 ID(而非名稱)以確保可靠送達。頻道名稱可能會被更改。
機器人必須是目標頻道的成員才能發佈訊息。

豐富訊息功能

Mattermost 支援多種訊息功能,OpenClaw 完整利用了這些功能: **多媒體附件** — 機器人可以發送和接收圖片、檔案及其他附件。使用者分享的多媒體內容會轉發至 AI 代理進行處理。 **表情回應** — 機器人可以對訊息新增 Emoji 回應。這對於確認收到或狀態指示非常實用。 **對話串回覆** — 機器人支援 Mattermost 的對話串模式。當使用者在對話串中回覆時,機器人會在該對話串中維持上下文。 **Markdown** — Mattermost 原生支援 Markdown 渲染,因此機器人的回覆可以包含格式化文字、程式碼區塊、表格和連結。
對話串回覆有助於保持對話有條理,特別是在繁忙的頻道中。
檔案附件受限於您 Mattermost 伺服器的上傳大小限制。

速率限制與最佳實踐

Mattermost 會對其 REST API 施加速率限制以保護伺服器效能。預設限制為: • 每位使用者每秒 10 個請求(持續性) • 100 個請求的突發容量 這些限制適用於 Bot 帳號的 API 呼叫,包括發佈訊息、新增表情回應和上傳檔案。 正式環境部署的最佳實踐: 1. 在繁忙頻道中使用 oncall 或 onchar 聊天模式以減少不必要的 API 呼叫。 2. 將 groupPolicy 保持為 allowlist,以防止機器人在每個頻道中回覆。 3. 在 Mattermost System Console > Environment > Rate Limiting 中監控機器人的 API 使用量。 4. 對於高流量部署,考慮為不同團隊執行獨立的帳號。
如果機器人超過速率限制,Mattermost 會回傳 HTTP 429 錯誤。Gateway 會以退避策略重試,但持續超載可能需要調整設定。

Mattermost 設定參考

enabled
Type: booleanDefault: true

啟用或停用 Mattermost 頻道

botToken
Type: stringDefault: ""

來自 Mattermost System Console > Bot Accounts 的 Bot Token

baseUrl
Type: stringDefault: ""

您的 Mattermost 伺服器完整 URL(例如 https://mattermost.example.com)

chatmode
Type: stringDefault: "oncall"

聊天觸發模式:'oncall'(提及)、'onmessage'(全部)或 'onchar'(前綴字元)

oncharPrefixes
Type: string[]Default: []

當 chatmode 為 'onchar' 時觸發機器人的前綴字元

dmPolicy
Type: stringDefault: "pairing"

DM 存取策略:'pairing'(僅允許清單)或 'open'(任何使用者)

allowFrom
Type: string[]Default: []

允許向機器人發送 DM 的 Mattermost 使用者 ID(搭配 dmPolicy: pairing 使用)

groupPolicy
Type: stringDefault: "allowlist"

群組頻道策略:'allowlist'(僅指定頻道)或 'open'(任何頻道)

groupAllowFrom
Type: string[]Default: []

允許機器人回覆的 Mattermost 頻道 ID(搭配 groupPolicy: allowlist 使用)

requireMention
Type: booleanDefault: true

舊版設定——建議改用 chatmode: 'oncall'

accounts.<id>.botToken
Type: stringDefault: ""

多帳號模式下特定帳號的 Bot Token

accounts.<id>.baseUrl
Type: stringDefault: ""

特定帳號的 Mattermost 伺服器 URL

accounts.<id>.chatmode
Type: stringDefault: "oncall"

特定帳號的聊天觸發模式

accounts.<id>.dmPolicy
Type: stringDefault: "pairing"

特定帳號的 DM 存取策略

Mattermost 常見問題

Mattermost 故障排除

機器人不回覆訊息

聊天模式或存取策略可能過濾掉了訊息。

檢查 chatmode 是否符合您預期的觸發方式(oncall 需要 @提及,onchar 需要前綴字元)。確認 dmPolicy 和 allowFrom 包含該使用者的 ID(針對 DM),或 groupPolicy 和 groupAllowFrom 包含該頻道 ID(針對群組訊息)。
啟動時 WebSocket 連線失敗

baseUrl 不正確、Bot Token 無效,或伺服器無法存取。

確認 baseUrl 指向正確的 Mattermost 伺服器(需包含協定,例如 https://)。確保 Bot Token 有效且未被撤銷。檢查 Gateway 與 Mattermost 伺服器之間的網路連線和防火牆規則。
機器人無法在頻道中發佈訊息

機器人不是目標頻道的成員。

透過 Mattermost 手動將機器人加入頻道(在頻道中點選「Add Members」),或透過 @提及其使用者名稱來邀請它。機器人必須是頻道成員才能發佈訊息。
多媒體附件未被處理

Mattermost 伺服器的檔案上傳設定可能限制了檔案類型或大小。

檢查 System Console > Environment > File Storage 中的上傳限制。確保 Bot 帳號有權存取檔案附件。確認 Gateway 可以存取 Mattermost 檔案 API 端點。
日誌中出現速率限制錯誤(HTTP 429)

機器人在短時間內發出了過多的 API 請求。

將聊天模式從 onmessage 切換為 oncall 或 onchar 以減少 API 呼叫。限制機器人活躍的頻道數量。檢查 System Console > Environment > Rate Limiting 以查看或調整伺服器端的速率限制。