Чт. Июн 11th, 2026

Настройка связки OpenClaw и Element: от базовой интеграции до решения проблем

Введение

OpenClaw — гибкий AI-агент, который может работать с различными каналами коммуникации, в том числе с Matrix — децентрализованным протоколом обмена сообщениями. В этой статье разберём полный цикл подключения: от установки и базовой настройки до решения конкретных проблем, с которыми мы столкнулись при интеграции с Matrix-клиентом Element.


1. Базовая установка и подключение Matrix-плагина

Предполагается, что OpenClaw у вас уже установлен и работает. Для подключения канала Matrix потребуется:

Установите плагин канала Matrix:

openclaw plugins install matrix

Настройте конфигурацию в файле openclaw.json. Базовый блок канала выглядит примерно так:

"channels": {
  "matrix": {
    "userId": "@your-bot:your-server.com",
    "homeserver": "https://your-server.com",
    "accessToken": "YOUR_ACCESS_TOKEN",
    "encryption": false
  }
}

Перезапустите шлюз:

openclaw gateway restart

⚠️ Если вы редактируете openclaw.json вручную, обязательно выполняйте валидацию перед перезапуском (см. раздел 6). Это убережёт от неприятных сюрпризов.


2. Проблема маршрутизации входящих сообщений (Bug #60442)

Симптомы

После первичной установки всё выглядело работающим: бот подключался к серверу Matrix, отвечал на запросы, но входящие сообщения из Matrix не обрабатывались. В логах агента появлялась ошибка:

TypeError: Cannot read properties of undefined (reading ‘run’)

Сообщения из Matrix поступали в систему, но агент не мог их обработать — маршрутизация «провисала» на уровне плагина канала.

Причина

Нестабильное состояние плагина Matrix после обновления или некорректная переустановка приводили к тому, что внутренние компоненты плагина не инициализировались правильно. Канал получал сообщения, но обработчик событий оставался в неопределённом состоянии.

Решение

Полная деинсталляция и переустановка плагина вместе с очисткой его кэша:

# Удаление плагина
openclaw plugins remove matrix

# Очистка кэша плагина
rm -rf ~/.openclaw/matrix/

# Повторная установка
openclaw plugins install matrix

# Перезапуск шлюза
openclaw gateway restart

После выполнения всех шагов бот корректно начал обрабатывать входящие сообщения из Matrix. Если после переустановки проблема сохраняется — убедитесь, что accessToken в конфиге актуален и бот действительно авторизован на вашем homeserver.


3. Личный чат — подтверждение работоспособности

После устранения описанной выше проблемы личный чат (1:1) между пользователем и ботом работает корректно. Бот отвечает на прямые сообщения, сохраняет контекст в рамках сессии и следует всем настройкам агента.

Это важно подтвердить, поскольку личный чат — основной сценарий использования для персонального AI-ассистента.


4. Проблемы с групповым чатом и шифрованием

Симптомы

Бот исправно работал в личных сообщениях, но полностью игнорировал сообщения в групповых чатах (rooms). Никаких ответов, никакой реакции.

Диагностика

При детальном изучении логов обнаружилась следующая ошибка:

encrypted event received without encryption enabled; set channels.matrix.encryption=true and verify the device to decrypt

Причина

Matrix-сервера, настроенные с шифрованием по умолчанию (E2EE), передают события в групповых чатах в зашифрованном виде. Если в конфигурации encryption выставлен в false, бот просто не может прочитать содержимое сообщения и, соответственно, ответить на него.

Решение

  1. Включите шифрование в openclaw.json:
"channels": {
  "matrix": {
    "userId": "@your-bot:your-server.com",
    "homeserver": "https://your-server.com",
    "accessToken": "YOUR_ACCESS_TOKEN",
    "encryption": true
  }
}
  1. Валидируйте конфигурацию:
openclaw config validate
  1. Перезапустите шлюз:
openclaw gateway restart
  1. Ручная верификация устройства бота. Это критический шаг, без которого шифрование не будет работать:

— Откройте Element (или любой другой Matrix-клиент) под аккаунтом бота. — Перейдите в Settings → Security. — Найдите устройство бота в списке и подтвердите его верификацию. — Если бот добавлен в группу — убедитесь, что он имеет доступ к истории сообщений (в зашифрованных чатах отсутствие верификации блокирует дешифрацию).

⚠️ Без верификации устройства бот не сможет расшифровывать сообщения, даже если encryption=true в конфиге.


5. Ограничение команды /new в Matrix

Команда /new в OpenClaw предназначена для создания новой сессии или потока — по сути, сброса контекста и начала диалога с чистого листа.

Почему команда не работает в Matrix

Команда /new — это слэш-команда, которая интерпретируется на уровне агента, а не на уровне канала. В Matrix (и в некоторых других каналах) слэш-команды используются самим протоколом для управления чатом (например, /invite, /kick), и бот может не получить «сырое» сообщение с командой до того, как оно будет обработано или отклонено клиентом.

Кроме того, в зашифрованных групповых чатах текстовые команды могут маскироваться или не доходить до обработчика вовсе.

Что делать

  • Используйте /new в личных чатах, где маршрутизация работает стабильно.
  • В групповых чатах для сброса контекста можно обратиться к администратору бота или использовать механизм таймаутов сессии, если он настроен.
  • Если /new критически важна — рассмотрите использование web-интерфейса OpenClaw вместо Matrix.

6. Дополнительная проблема: slash-команды не работают в Element

Команды /new, /model и другие slash-команды могут не работать в клиенте Element — бот просто игнорирует их.

Симптомы

Вы отправляете @бот /new или просто /new в чат, но бот не реагирует. Команда словно «проглатывается».

Причина

  1. requireMention: true (дефолт для групп) → бот реагирует только на сообщения с @бот
  2. Slash-команды отправляются БЕЗ @бот-упоминания
  3. Имеющийся баг Matrix-плагина: параметр allowFrom читается только из секции dm.allowFrom

Решение

Добавьте в openclaw.json:

"channels": {
  "matrix": {
    "requireMention": false,
    "groupAllowFrom": ["@ваш-user-id:ваш-сервер.com"]
  }
}

И в секцию agents.defaults:

"commands": {
  "allowFrom": ["matrix", "telegram", "webchat"],
  "directives": {
    "allowFrom": ["matrix"]
  }
}

После изменения:

openclaw config validate
openclaw gateway restart

⚠️ requireMention: false означает, что бот будет отвечать на ВСЕ сообщения в группе. Это нормально для персонального бота, но если в группе есть другие пользователи — ограничьте через groupAllowFrom.


7. Валидация конфигурации

При любом изменении openclaw.json рекомендуем придерживаться следующего порядка:

backup → edit → validate → apply

Конкретно:

# 1. Создайте резервную копию текущего конфига
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.backup

# 2. Внесите изменения через edit (или вручную)
openclaw config edit

# 3. Провалидируйте конфигурацию
openclaw config validate

# 4. Если валидация прошла успешно — перезапустите шлюз
openclaw gateway restart

Никогда не редактируйте openclaw.json напрямую через sed, echo >> или подобные методы — это увеличивает риск синтаксических ошибок. Всегда используйте встроенные механизмы валидации.


Заключение

Интеграция OpenClaw с Matrix и Element — мощный способ получить AI-ассистента в децентрализованной экосистеме. Основные выводы из нашего опыта:

  • Личный чат работает стабильно после базовой настройки и устранения багов плагина.
  • Групповые чаты требуют включения шифрования и ручной верификации устройства бота.
  • Команда /new ограничена в Matrix; используйте её в личных чатах или альтернативных интерфейсах.
  • Всегда валидируйте конфигурацию перед перезапуском шлюза.

Если вы столкнулись с проблемой, не описанной в статье — изучите логи через openclaw logs или обратитесь к документации OpenClaw. Большинство проблем решается переустановкой плагина или изменением одного параметра в конфиге.

*Удачной настройки!*