Настройка связки 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, бот просто не может прочитать содержимое сообщения и, соответственно, ответить на него.
Решение
- Включите шифрование в
openclaw.json:
"channels": {
"matrix": {
"userId": "@your-bot:your-server.com",
"homeserver": "https://your-server.com",
"accessToken": "YOUR_ACCESS_TOKEN",
"encryption": true
}
}
- Валидируйте конфигурацию:
openclaw config validate
- Перезапустите шлюз:
openclaw gateway restart
- Ручная верификация устройства бота. Это критический шаг, без которого шифрование не будет работать:
— Откройте 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 в чат, но бот не реагирует. Команда словно «проглатывается».
Причина
requireMention: true(дефолт для групп) → бот реагирует только на сообщения с@бот- Slash-команды отправляются БЕЗ
@бот-упоминания - Имеющийся баг 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. Большинство проблем решается переустановкой плагина или изменением одного параметра в конфиге.
*Удачной настройки!*