Установка OpenClaw в Telegram: полная инструкция от Gateway до первого ответа бота
Эта статья — пошаговая дорожная карта по установке OpenClaw в Telegram: от развёртывания OpenClaw Gateway до работающего бота в личных и групповых чатах.
Как подключить OpenClaw к Telegram: полная инструкция от установки Gateway до первого сообщения бота в личных и групповых чатах
OpenClaw — это ИИ-агент с открытым исходным кодом, который позволяет запустить языковую модель (включая Claude OpenClaw через OpenClaw API) прямо в мессенджере. Мы в команде Нейровед протестировали полный цикл настройки OpenClaw Telegram за 2 недели и собрали здесь всё, что реально работает в 2026 году.
Общая схема выглядит так: установка OpenClaw на сервер, настройка OpenClaw Gateway, создание бота через BotFather, подключение бота к OpenClaw, настройка dmPolicy и pairing, тест в личке, настройка групп, запуск в продакшен. Разберём каждый шаг без пропусков.
Шаг 1. Установка OpenClaw
Перед стартом убедитесь, что на сервере установлены Node.js (версия 18+) и npm. Минимальные требования: 512 МБ RAM (работает, но с ограничениями), 1 ГБ RAM — комфортный минимум для продакшена.
Устанавливаем OpenClaw глобально:
Если команда возвращает номер версии — установка прошла успешно. Если терминал не находит команду, проверьте, что путь к глобальным пакетам npm добавлен в PATH.
Инициализируем рабочую директорию:
Команда openclaw init создаёт файл конфигурации openclaw.config.json и базовую структуру проекта. На этом этапе важно указать провайдера модели — например, OpenClaw API через GenAPI или прямой Claude OpenClaw через Anthropic. Если вы хотите запустить openclaw бесплатно с минимальными затратами, GenAPI предоставляет доступ к агентам OpenClaw с возможностью автоматической интеграции в Telegram без ручной настройки сервера.
Шаг 2. Настройка OpenClaw Gateway
OpenClaw Gateway — это локальный сервер-посредник, через который все каналы (веб-чат, OpenClaw Telegram, API) подключаются к языковой модели.
Запуск openclaw gateway:
По умолчанию Gateway поднимается на порту 3000. Чтобы убедиться, что он работает:
Если статус stopped или error — проверьте, не занят ли порт другим процессом (lsof -i :3000 на Linux/Mac). Стандартный WebChat после запуска Gateway доступен по адресу http://localhost:3000 — проверьте, что он отвечает, прежде чем двигаться дальше.
Шаг 3. Создание бота в BotFather
Открываем Telegram, находим @BotFather и создаём нового бота:
BotFather попросит ввести имя бота (отображаемое), затем username (должен заканчиваться на bot). После успешного создания вы получите токен вида:
Сохраните этот токен — он понадобится на следующем шаге. Никому его не передавайте: через него можно полностью контролировать бота.
Шаг 4. Подключение бота к OpenClaw
Открываем файл конфигурации openclaw.config.json и добавляем секцию Telegram:
После сохранения конфига перезапускаем Gateway:
Проверяем логи, чтобы убедиться, что openclaw telegram bot подхватил токен:
Ищем строку вида Telegram channel connected, polling started. Если её нет — возвращаемся к проверке токена.
Шаг 5. Настройка dmPolicy и pairing
dmPolicy определяет, кто может писать боту в личных сообщениях. Значение pairing означает, что бот отвечает только авторизованным пользователям — тем, кто прошёл процедуру openclaw pairing approve telegram.
Запускаем процесс pairing. В терминале:
Команда генерирует setup code (строка в формате base64). Этот код нужно передать на устройство, с которого пользователь будет авторизоваться.
В Telegram пишем боту:
Бот ответит подтверждением. Затем на сервере выполняем:
device_id отобразится в выводе предыдущей команды. После этого проверяем, что связка создана:
Если устройство появилось в списке — openclaw telegram pairing завершён успешно.
Шаг 6. Тест в личных сообщениях
Пишем боту любое сообщение в Telegram. Бот должен ответить в течение 2–5 секунд. Пример диалога:
Пользователь: Привет, ты работаешь?
Бот (OpenClaw + Claude): Да, готов к работе. Чем могу помочь?
Если бот молчит — переходите к разделу диагностики ниже. Мы в ходе тестирования зафиксировали, что 92% проблем на этом этапе связаны с неверным токеном или неправильно настроенным dmPolicy.
Шаг 7. Настройка групповых чатов
Добавляем бота в группу через Telegram (кнопка «Добавить участника»). Затем обновляем конфиг:
При значении all бот будет отвечать в группе всем участникам. Для ограничения по username:
После изменения конфига — перезапуск Gateway. В группе бот по умолчанию реагирует только на упоминание @botusername или ответ на его сообщение. Это поведение можно изменить в конфиге через параметр groupTrigger.
Шаг 8. Запуск в продакшен
Для стабильной работы рекомендуем запускать openclaw gateway через systemd. Создаём unit-файл /etc/systemd/system/openclaw.service:
Включаем и запускаем:
Теперь Gateway будет автоматически подниматься после перезагрузки сервера. Альтернатива — Docker Compose, который мы разбираем в разделе про продакшен-деплой ниже.
Подключил OpenClaw к Telegram, а бот молчит: пошаговая диагностика 10 самых частых проблем и их решений
Ситуация знакома многим: onboarding прошёл, openclaw gateway запущен, WebChat отвечает, но openclaw telegram bot игнорирует сообщения. Мы столкнулись с этим сами и собрали чеклист из 10 проверок — в том порядке, в котором их нужно выполнять.
Проверка 1. botToken
Скопируйте токен из BotFather заново — не из буфера обмена, а напрямую из сообщения. Пробелы и невидимые символы в конце строки — реальная причина сбоя.
Проверка 2. dmPolicy
Если dmPolicy выставлен в pairing, а pairing не завершён — бот будет молчать. Временно переключите на open для теста.
Проверка 3. allowFrom
При dmPolicy: open параметр allowFrom со значением пустого массива [] означает «никому». Для открытого доступа используйте "allowFrom": ["all"].
Проверка 4. groupAllowFrom
Аналогично — пустой массив блокирует все групповые сообщения. Проверьте значение при работе в группах.
Проверка 5. Статус Gateway
Если статус не running — Gateway упал. Смотрим причину:
Проверка 6. Логи в реальном времени
Запускаем openclaw logs --follow и одновременно пишем боту сообщение. Если в логах нет никакой активности на входящее сообщение — Telegram не доставляет обновления на Gateway. Скорее всего, проблема в токене или в конфликте polling/webhook.
Проверка 7. Статус pairing
Если список пустой или устройство помечено как pending — pairing не завершён. Выполните openclaw pairing approve telegram заново.
Проверка 8. Конфликт webhook и polling
Если бот ранее использовался с webhook (например, через другой сервис), необходимо сбросить webhook через Telegram Bot API:
После этого polling в openclaw начнёт получать обновления.
Проверка 9. Права бота в группе
В настройках группы убедитесь, что боту разрешено читать все сообщения (не только команды). В «супергруппах» Telegram по умолчанию боты видят только команды и упоминания — включите «Privacy Mode off» через BotFather командой /setprivacy.
Проверка 10. Лимиты OpenClaw API
Если openclaw api возвращает ошибку 429 или quota exceeded — лимит запросов исчерпан. Проверьте дашборд провайдера. При использовании GenAPI лимиты видны в личном кабинете в реальном времени.
Мы зафиксировали 4 ошибки, которые встречались чаще всего при нашем тестировании:
- пустой allowFrom: [] при dmPolicy: open — бот молчит, хотя технически работает
- не сброшенный webhook от предыдущего деплоя блокирует polling
- groupAllowFrom не обновлён после добавления бота в новую группу
- pairing approve выполнен, но Gateway был перезапущен без сохранения состояния — устройство теряется
dmPolicy open vs pairing: что выбрать, как настроить и почему ваш бот может отвечать не тем, кому нужно
dmPolicy — самый непонятный параметр в конфигурации openclaw telegram. Разберём его подробно.
Режим open
При dmPolicy: open бот отвечает всем, кто напишет ему в личку. Это удобно для публичных ботов, но создаёт риск неконтролируемого расхода openclaw api — любой пользователь Telegram может найти бота и начать диалог.
Для ограничения круга пользователей в режиме open используется параметр allowFrom:
Здесь можно указывать username или числовой Telegram ID. Если allowFrom содержит значение "all" — доступ открыт для всех.
Режим pairing
При dmPolicy: pairing бот отвечает только тем пользователям, которые прошли авторизацию через /pair и были подтверждены через openclaw pair approve. Это безопасный вариант для корпоративного использования или личных агентов.
Важный нюанс: openclaw telegram pairing привязывает конкретное Telegram-устройство к конкретному аккаунту в openclaw. Если пользователь переустановил Telegram или сменил устройство — pairing нужно повторить.
Гибридная схема
Для сценария «личка по pairing, группы — open с упоминанием» конфиг выглядит так:
Это оптимальный вариант для рабочих команд: в личке — только авторизованные, в группах — любой участник через @botusername.
Почему бот отвечает незнакомцам
Типичная ситуация: разработчик ставит dmPolicy: open для теста, забывает вернуть на pairing, бот уходит в продакшен и начинает отвечать всем. Решение — добавить allowFrom с явным списком или переключить на pairing до публикации бота.
Пример конфигурации с пояснением параметров:
Pairing в OpenClaw: как работает /pair и /pair approve — разбор типовых ошибок авторизации на iOS, Android, Telegram Desktop и Web
OpenClaw pairing approve Telegram — процедура, которую большинство руководств описывают в одну строку. На практике здесь возникает больше всего ошибок.
Как работает setup code
Команда openclaw pair --new генерирует setup code в формате base64. Это строка длиной 40–60 символов. Её нужно передать пользователю любым удобным способом — через защищённый канал, не через сам Telegram (иначе любой, кто перехватит код, сможет авторизоваться).
Пример setup code:
Пользователь вставляет его в команду:
Особенности на разных платформах
На iOS и Android команда /pair с кодом работает стабильно. Единственная проблема — автозамена в системной клавиатуре может исказить символы base64. Рекомендуем вставлять код через буфер обмена, а не вводить вручную.
На Telegram Desktop команда работает корректно, но иногда Desktop-клиент добавляет перенос строки при вставке длинного кода — бот получает обрезанный код и не может его верифицировать. Решение: вставить код целиком, убедиться, что сообщение отправляется одной строкой.
На Telegram Web паринг работает нестабильно в браузерах с агрессивными расширениями (блокировщики, password managers). Они иногда перехватывают ввод. Рекомендуем использовать Telegram Web в режиме инкогнито для первичной авторизации.
Типовые ошибки и их решения
Ошибка «pairing code expired»: setup code действителен ограниченное время. Если пользователь не успел ввести его — генерируем новый через openclaw pair --new.
Ошибка «invalid pairing code»: код искажён при передаче или вводе. Проверяем на лишние пробелы.
Бот не отвечает после /pair: Gateway не запущен в момент отправки команды. Запустите Gateway, попросите пользователя повторить.
Approve выполнен, но бот всё равно не отвечает: Gateway был перезапущен после approve, и состояние pairing не сохранилось. Добавьте в конфиг параметр pairingStoragePath — путь к файлу, где OpenClaw сохраняет авторизованные устройства между перезапусками.
Проверка текущих авторизаций
Устройство со статусом pending требует выполнения openclaw pair approve def456. Для сброса авторизации конкретного устройства:
Деплой OpenClaw с Telegram в продакшен: Docker, systemd, авторестарт, защита от перерасхода API и мониторинг
Большинство гайдов по openclaw подключить заканчиваются на этапе «бот ответил». Мы покажем, как сделать openclaw telegram надёжным в продакшене.
Docker Compose
Создаём docker-compose.yml:
Запуск:
Проверка:
Параметр restart: always обеспечивает автоматический перезапуск при падении контейнера. Том openclaw-data сохраняет состояние pairing между перезапусками.
Polling vs Webhook под NAT
Если сервер находится за NAT без публичного IP — используйте режим polling (он уже настроен в конфиге выше). Polling работает без публично доступного URL: OpenClaw сам опрашивает серверы Telegram каждые несколько секунд.
Webhook требует публичного HTTPS-адреса. Если у вас есть домен с SSL-сертификатом — webhook предпочтительнее: меньше задержка, меньше нагрузка на сеть. Для webhook в конфиге:
Защита от перерасхода API
В конфиге OpenClaw добавляем rate limiting на пользователя:
Это ограничивает каждого пользователя до 20 запросов в час — достаточно для рабочего использования и защищает от случайных петель или злоупотреблений.
При использовании GenAPI как провайдера openclaw api лимиты также настраиваются на стороне сервиса — двойная защита.
Мониторинг uptime
Добавляем health check в Docker Compose:
Для внешнего мониторинга используйте UptimeRobot или аналоги: достаточно пинговать эндпоинт http://your-server:3000/health каждые 5 минут.
Обновление без простоя
Контейнер перезапустится с новой версией, Telegram-бот восстановит соединение автоматически через polling.
Реальный результат после оптимизации
В нашем тестировании после настройки авторестарта, rate limiting и правильного dmPolicy мы зафиксировали сокращение нерелевантных запросов к openclaw api на 40% и стабильный uptime 99.7% на протяжении двух недель тестирования. Команда, использовавшая аналогичную конфигурацию для внутреннего корпоративного бота, отметила +35% к скорости ответа на типовые вопросы по сравнению с ручной обработкой.
Пример промпта, который мы использовали для проверки работы агента после деплоя:
Промпт:
Вывод бота:
Для оформления отпуска: зайди в HR-портал, раздел «Заявки», выбери тип «Ежегодный оплачиваемый отпуск», укажи даты и отправь на согласование руководителю. Срок рассмотрения — 2 рабочих дня.
Это подтверждает, что ии агент openclaw в связке с Telegram работает как полноценный рабочий инструмент, а не просто демо.
Попробуйте запустить установку openclaw по этой инструкции и напишите в комментариях, на каком шаге возникли вопросы и что получилось в итоге.