OpenClaw

OpenClaw Mattermost チャンネル

エンタープライズ
普通

オープンソースのエンタープライズメッセージングプラットフォームである Mattermost に OpenClaw を接続します。AI アシスタントがダイレクトメッセージ、グループチャンネル、チームの会話に参加できるようになります。Bot Token 認証と WebSocket イベントによるリアルタイム双方向通信を使用し、柔軟なチャットモードときめ細かなアクセス制御ポリシーを提供します。

基本情報
難易度普通
カテゴリエンタープライズ
対応機能数5 / 6

Mattermost 対応機能

テキストメッセージ

対応

メディア・ファイル

対応

リアクション

対応

スレッド

対応

音声メッセージ

非対応

グループチャット

対応

Mattermost 前提条件

  • Bot アカウントを作成するための管理者アクセス権を持つ Mattermost サーバー(セルフホストまたはクラウド)
  • Mattermost System Console で作成した Bot Token を持つ Bot アカウント
  • OpenClaw Gateway からアクセス可能な Mattermost サーバーのベース URL
  • OpenClaw Gateway がインストールされ稼働中であること
  • 'openclaw plugins install @openclaw/mattermost' で Mattermost プラグインがインストール済みであること

Mattermost クイックセットアップ

1

Mattermost プラグインをインストール

'openclaw plugins install @openclaw/mattermost' を実行して、Gateway に Mattermost サポートを追加します。

2

Mattermost で Bot アカウントを作成

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 に botToken、baseUrl、および必要なポリシーを含む Mattermost チャンネル設定を追加します。'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 アカウントの作成

Mattermost の Bot アカウントは、ユーザーライセンスを消費しない専用のサービスアカウントです。 1. System Console > Integrations > Bot Accounts に移動します。 2. Integration Management で 'Enable Bot Account Creation' が有効になっていることを確認します。 3. 'Add Bot Account' をクリックし、表示名、説明、アイコンを入力します。 4. 適切なロールを選択します(System Admin は推奨されません — デフォルトの Member ロールを使用してください)。 5. 生成された Bot Token をすぐにコピーしてください — 再表示されません。 ボットは操作が必要なチャンネルに追加する必要があります。チームの管理者やシステム管理者が手動でボットをチャンネルに追加するか、ユーザーが @メンションで招待できます。
openclaw.json
{
  "channels": {
    "mattermost": {
      "botToken": "your-bot-token",
      "baseUrl": "https://mattermost.example.com"
    }
  }
}
Bot Token は安全に保管してください。紛失した場合は System Console から再生成する必要があります。
Bot アカウントは Mattermost のライセンスシート数にカウントされません。

チャットモード

OpenClaw はチャンネルでボットがメッセージに応答するタイミングを制御する3つのチャットモードをサポートしています: **oncall(デフォルト)** — ボットは名前で @メンションされた場合のみ応答します。明示的に呼び出されない限りボットは沈黙するため、トラフィックの多いチャンネルで最も安全なモードです。 **onmessage** — ボットは許可されたユーザーからのすべてのメッセージに応答します。専用のボットチャンネルや、すべてのメッセージに応答が必要なトラフィックの少ない環境に最適です。 **onchar** — メッセージが特定のプレフィックス文字(例:'!' や '/')で始まる場合にボットが応答します。oncharPrefixes でトリガーのプレフィックスを設定します。ボット名を完全に入力せずに、明示的かつ簡潔にアクティベーションしたい場合に便利です。
openclaw.json
{
  "channels": {
    "mattermost": {
      "chatmode": "onchar",
      "oncharPrefixes": ["!", "/ai"]
    }
  }
}
DM では、チャットモードに関係なくボットはすべてのメッセージに応答します。
チームチャンネルではノイズを避けるために oncall モードを推奨します。

DM ポリシー

DM(ダイレクトメッセージ)ポリシーは、プライベートメッセージを通じてボットとやり取りできるユーザーを制御します。 **pairing(デフォルト)** — allowFrom 配列に明示的にリストされたユーザーのみがボットに DM を送信できます。アクセスできるユーザーを正確に制御するのに最適な、最も制限的なモードです。 **open** — ボットに DM を送信した Mattermost ユーザー全員が応答を受け取ります。組織全体でボットを広くアクセス可能にしたい場合に使用します。 allowFrom フィールドには Mattermost のユーザー ID を指定します。ユーザー ID は System Console > Users、または 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 を指定します。チャンネル ID はチャンネルの URL または Mattermost API から確認できます。
openclaw.json
{
  "channels": {
    "mattermost": {
      "groupPolicy": "allowlist",
      "groupAllowFrom": ["channel-id-1", "channel-id-2"]
    }
  }
}
本番環境では、意図しないチャンネルでボットが応答するのを防ぐために allowlist モードを使用してください。
グループポリシーに関係なく、ボットがメッセージを受信するにはチャンネルのメンバーである必要があります。

マルチアカウント設定

OpenClaw は複数の Mattermost Bot アカウントを同時に実行することをサポートしており、それぞれ異なる Mattermost サーバーをターゲットにしたり、異なる設定で動作させることができます。 accounts.<name> パターンを使用して複数のアカウントを設定します。各アカウントには独自の Bot Token、ベース 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 エージェントに転送されます。 **リアクション** — ボットはメッセージに絵文字リアクションを追加できます。確認応答やステータスインジケーターとして便利です。 **スレッド返信** — ボットは 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 はプレフィックスが必要)。DM の場合は dmPolicy と allowFrom にユーザー ID が含まれているか、グループメッセージの場合は 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 でサーバー側のレート制限を確認または調整してください。