OpenClaw (Claw bot / Moltbot) можно использовать как Telegram-бота: пользователи пишут ему в личку или в группу, агент отвечает, выполняет скиллы (поиск, файлы, задачи и т.д.). Подключение занимает несколько минут: создать бота в BotFather, прописать токен в конфиг и запустить gateway. В этом мануале — пошаговая настройка подключения OpenClaw к Telegram-боту: от токена до личных чатов и групп.


Что понадобится

  • Установленный OpenClaw (через npm install -g openclaw или официальный установщик).
  • Аккаунт в Telegram и возможность писать @BotFather.
  • Файл конфигурации: ~/.openclaw/openclaw.json (или config.json5 — в зависимости от версии).
Важно: Telegram в OpenClaw — это встроенный канал (channel), а не плагин. Его настраивают в секции channels.telegram, а не в plugins.entries. Иначе возможна ошибка вида «plugin not found: telegram».

Шаг 1. Создание бота в BotFather

  • Откройте Telegram и найдите @BotFather (проверьте, что это именно официальный бот).
  • Отправьте команду /newbot.
  • Введите имя бота (например, «Мой OpenClaw») и username (должен заканчиваться на bot, например my_openclaw_bot).
  • BotFather пришлёт токен в формате 123456789:ABCdefGHIjklMNOpqrSTUvwxYZ. Сохраните его — он понадобится для конфига.
Токен не передавайте третьим лицам и не публикуйте в открытом доступе. При утечке создайте нового бота через /newbot и замените токен в конфиге.

Шаг 2. Узнать свой Telegram User ID (для личных сообщений)

Чтобы бот понимал, кому разрешать личные сообщения, нужен ваш числовой ID в Telegram. Способ 1 — через логи OpenClaw (без сторонних ботов):
  • Пропишите токен в конфиг и запустите gateway (см. ниже).
  • В другом терминале: openclaw logs --follow.
  • Напишите боту в личку любое сообщение.
  • В логах появится поле from.id — это ваш user ID (число, например 8734062810).
Способ 2 — через Bot API: После того как вы хотя бы раз написали боту:
curl "https://api.telegram.org/bot<ВАШ_ТОКЕН>/getUpdates"
В ответе в message.from.id будет ваш ID. Способ 3 — сторонний бот: написать @userinfobot или @getidsbot — они пришлют ваш ID (учтите, что это передаёт ID третьему сервису).

Шаг 3. Настройка конфигурации OpenClaw

Откройте файл конфигурации:
  • Linux/macOS: ~/.openclaw/openclaw.json или ~/.openclaw/config.json5
  • Windows: %USERPROFILE%\.openclaw\openclaw.json
Добавьте (или дополните) секцию channels.telegram:
{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "123456789:ABCdefGHIjklMNOpqrSTUvwxYZ",
      "dmPolicy": "pairing",
      "groups": {
        "*": { "requireMention": true }
      }
    }
  }
}
Что здесь важно:
  • enabled: true — канал Telegram включён.
  • botToken — токен от BotFather. Можно вынести в переменную окружения TELEGRAM_BOT_TOKEN и не хранить в файле.
  • dmPolicy — кто может писать боту в личку:
- pairing (рекомендуется) — новые пользователи получают одноразовый код; вы одобряете их вручную через openclaw pairing approve. Коды действуют около часа. - allowlist — только пользователи из списка allowFrom (нужно указать их Telegram ID). - open — все могут писать в личку; требуется явно задать allowFrom: ["*"]. - disabled — личные сообщения отключены.
  • groups["*"].requireMention: true — в группах бот реагирует только когда его упоминают (@username_бота). Так бот не будет отвечать на каждое сообщение в чате.
Пример с allowlist (только вы в личке): Если не хотите использовать pairing, а нужен только свой доступ:
{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "ВАШ_ТОКЕН",
      "dmPolicy": "allowlist",
      "allowFrom": ["8734062810"]
    }
  }
}
Вместо 8734062810 подставьте свой user ID. Несколько пользователей: ["id1", "id2"].

Шаг 4. Запуск gateway и одобрение доступа (при dmPolicy: pairing)

  • Запустите шлюз OpenClaw:
openclaw gateway
Или с портом:
openclaw gateway --port 18789
Оставьте процесс запущенным. Для работы в фоне можно использовать демон: openclaw onboard --install-daemon, затем openclaw gateway status и при необходимости openclaw gateway restart.
  • Когда новый пользователь впервые напишет боту в личку, он получит код подтверждения (pairing code). Вы должны одобрить его вручную.
Посмотреть ожидающие запросы:
openclaw pairing list telegram
Одобрить по коду (подставьте код из вывода):
openclaw pairing approve telegram ABCD1234
Коды действуют около 1 часа. После одобрения пользователь сможет общаться с ботом в личке.
  • Напишите боту в Telegram — он должен ответить (если модель и скиллы настроены).

Шаг 5. Бот в группах

Добавление бота в группу

  • Создайте группу или откройте существующую.
  • Добавьте бота в участники (через «Добавить участника» → поиск по username бота).
  • Если бот не видит сообщения в группе — включите режим конфиденциальности в BotFather:
- Напишите BotFather команду /setprivacy. - Выберите вашего бота. - Выберите Disable — тогда бот будет получать все сообщения в группе. Либо сделайте бота администратором группы — тогда он тоже получит все сообщения. После смены режима конфиденциальности бота лучше удалить из группы и добавить снова, чтобы Telegram применил настройки.

Реакция только на упоминание

В конфиге уже задано groups["*"].requireMention: true — бот в группах отвечает только когда его упоминают (@имя_бота). Так чат не засоряется ответами на все сообщения.

Разрешить одну конкретную группу

Чтобы бот работал только в определённой группе, укажите её ID (отрицательное число, например -1001234567890). ID группы можно увидеть в логах после добавления бота в группу и любого сообщения:
{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "ВАШ_ТОКЕН",
      "dmPolicy": "pairing",
      "groups": {
        "-1001234567890": {
          "requireMention": true
        }
      }
    }
  }
}

Типичные проблемы

| Проблема | Что проверить | |----------|----------------| | HTTP 401 / Unauthorized | Токен скопирован с лишним пробелом, истёк или перевыпущен в BotFather — создайте новый токен и обновите конфиг. | | Бот не отвечает в личке | При dmPolicy: "pairing" — одобрили ли вы код через openclaw pairing approve telegram ? Проверьте openclaw pairing list telegram. | | Бот не видит сообщения в группе | Включите бота в группе как админа или отключите Privacy Mode через /setprivacy в BotFather, затем заново добавьте бота в группу. | | «plugin not found: telegram» | Telegram должен быть в channels.telegram, а не в plugins.entries. Проверьте структуру конфига. | | Код pairing истёк | Коды действуют около часа. Пусть пользователь снова напишет боту и одобрите новый код. | После любых изменений в openclaw.json перезапустите gateway: остановите процесс (Ctrl+C) и снова выполните openclaw gateway или openclaw gateway restart при работе через демон.

Краткий чек-лист

  • Создать бота в @BotFather, сохранить токен.
  • Узнать свой Telegram user ID (логи, getUpdates или @userinfobot).
  • В ~/.openclaw/openclaw.json добавить channels.telegram с enabled: true, botToken, dmPolicy (pairing или allowlist с allowFrom).
  • Запустить openclaw gateway.
  • При использовании pairing — выполнить openclaw pairing list telegram и openclaw pairing approve telegram для новых пользователей.
  • Для групп: при необходимости отключить Privacy Mode у бота (/setprivacy в BotFather) и при необходимости настроить groups в конфиге.
После этого OpenClaw будет работать как Telegram-бот: в личке и (при нужных настройках) в группах, с доступом ко всем установленным скиллам. Документация по каналу Telegram: docs.molt.bot/telegram, docs.openclaw.ai/channels/telegram. Если вы хотите размещать не только OpenClaw, но и своих кастомных ботов (Telegram, Discord, VK) на отдельном хостинге — Bothost позволяет разворачивать и масштабировать ботов с простым управлением.

162 просмотров
0 лайков
0 комментариев