Mattermost (плагин)

Статус: поддерживается через плагин (токен бота + события WebSocket). Каналы, группы и личные сообщения поддерживаются. Mattermost — это самостоятельно размещаемая платформа командных сообщений; см. официальный сайт на mattermost.com для получения информации о продукте и загрузках.

Требуется плагин

Mattermost поставляется как плагин и не входит в основную установку.

Установка через CLI (реестр npm):

openclaw plugins install @openclaw/mattermost

Локальная версия (при запуске из git-репозитория):

openclaw plugins install ./extensions/mattermost

Если вы выбираете Mattermost во время настройки/онбординга и обнаружен git-репозиторий, OpenClaw автоматически предложит локальный путь установки.

Подробности: Плагины

Быстрая настройка

  1. Установите плагин Mattermost.
  2. Создайте учетную запись бота Mattermost и скопируйте токен бота.
  3. Скопируйте базовый URL Mattermost (например, https://chat.example.com).
  4. Настройте OpenClaw и запустите шлюз.

Минимальная конфигурация:

{
  channels: {
    mattermost: {
      enabled: true,
      botToken: "mm-token",
      baseUrl: "https://chat.example.com",
      dmPolicy: "pairing"
    }
  }
}

Переменные окружения (учетная запись по умолчанию)

Установите их на хосте шлюза, если предпочитаете переменные окружения:

  • MATTERMOST_BOT_TOKEN=...
  • MATTERMOST_URL=https://chat.example.com

Переменные окружения применяются только к учетной записи по умолчанию (default). Другие учетные записи должны использовать значения конфигурации.

Режимы чата

Mattermost автоматически отвечает на личные сообщения. Поведение канала контролируется chatmode:

  • oncall (по умолчанию): отвечать только когда @упомянут в каналах.
  • onmessage: отвечать на каждое сообщение канала.
  • onchar: отвечать, когда сообщение начинается с префикса триггера.

Пример конфигурации:

{
  channels: {
    mattermost: {
      chatmode: "onchar",
      oncharPrefixes: [">", "!"]
    }
  }
}

Примечания:

  • onchar все еще отвечает на явные @упоминания.
  • channels.mattermost.requireMention учитывается для устаревших конфигураций, но предпочтительнее chatmode.

Контроль доступа (личные сообщения)

  • По умолчанию: channels.mattermost.dmPolicy = "pairing" (неизвестные отправители получают код сопряжения).
  • Утверждение через:
    • openclaw pairing list mattermost
    • openclaw pairing approve mattermost <CODE>
  • Публичные личные сообщения: channels.mattermost.dmPolicy="open" плюс channels.mattermost.allowFrom=["*"].

Каналы (группы)

  • По умолчанию: channels.mattermost.groupPolicy = "allowlist" (с упоминанием).
  • Список разрешенных отправителей с channels.mattermost.groupAllowFrom (ID пользователей или @username).
  • Открытые каналы: channels.mattermost.groupPolicy="open" (с упоминанием).

Цели для исходящей доставки

Используйте эти форматы целей с openclaw message send или cron/webhooks:

  • channel:<id> для канала
  • user:<id> для личного сообщения
  • @username для личного сообщения (разрешается через Mattermost API)

Голые ID обрабатываются как каналы.

Несколько учетных записей

Mattermost поддерживает несколько учетных записей под channels.mattermost.accounts:

{
  channels: {
    mattermost: {
      accounts: {
        default: { name: "Primary", botToken: "mm-token", baseUrl: "https://chat.example.com" },
        alerts: { name: "Alerts", botToken: "mm-token-2", baseUrl: "https://alerts.example.com" }
      }
    }
  }
}

Устранение неполадок

  • Нет ответов в каналах: убедитесь, что бот находится в канале и упомяните его (oncall), используйте префикс триггера (onchar) или установите chatmode: "onmessage".
  • Ошибки аутентификации: проверьте токен бота, базовый URL и включена ли учетная запись.
  • Проблемы с несколькими учетными записями: переменные окружения применяются только к учетной записи default.