Telegram
Статус: готов к использованию в продакшене для личных сообщений бота и групп через grammY. Long polling — режим по умолчанию; режим webhook опционален.
Связывание
Политика личных сообщений по умолчанию для Telegram — это связывание.
Устранение неполадок каналов
Диагностика и инструкции по исправлению для всех каналов.
Конфигурация шлюза
Полные шаблоны и примеры конфигурации каналов.
Быстрая настройка
Шаг 1: Создание токена бота в BotFather
Откройте Telegram и напишите @BotFather (убедитесь, что это именно @BotFather). Выполните /newbot, следуйте подсказкам и сохраните токен.
Шаг 2: Настройка токена и политики личных сообщений
{
channels: {
telegram: {
enabled: true,
botToken: "123:abc",
dmPolicy: "pairing",
groups: { "*": { requireMention: true } },
},
},
}
Резервный вариант через переменные окружения: TELEGRAM_BOT_TOKEN=... (только для аккаунта по умолчанию). Telegram не использует openclaw channels login telegram; настройте токен в конфиге/env, затем запустите шлюз.
Шаг 3: Запуск шлюза и подтверждение первого личного сообщения
openclaw gateway
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
Коды связывания истекают через 1 час.
Шаг 4: Добавление бота в группу
Добавьте бота в свою группу, затем настройте channels.telegram.groups и groupPolicy в соответствии с вашей моделью доступа.
ℹ️ Порядок разрешения токена учитывает аккаунт. На практике значения из конфига имеют приоритет над резервным вариантом из переменных окружения, а
TELEGRAM_BOT_TOKENприменяется только к аккаунту по умолчанию.
Настройки на стороне Telegram
Контроль доступа и активация
curl "https://api.telegram.org/bot<bot_token>/getUpdates"Поведение в runtime
- Telegram управляется процессом шлюза.
- Маршрутизация детерминирована: входящие сообщения из Telegram возвращаются в Telegram (модель не выбирает каналы).
- Входящие сообщения нормализуются в общий конверт канала с метаданными ответа и заполнителями медиа.
- Групповые сессии изолированы по ID группы. Темы форума добавляют
:topic:<threadId>для изоляции топиков. - Личные сообщения могут содержать
message_thread_id; OpenClaw маршрутизирует их с использованием ключей сессии, учитывающих тред, и сохраняет ID треда для ответов. - Long polling использует grammY runner с последовательной обработкой для каждого чата/треда. Общая конкурентность sink runner использует
agents.defaults.maxConcurrent. - Telegram Bot API не поддерживает квитанции о прочтении (
sendReadReceiptsне применяется).
Справочник по функциям
Устранение неполадок
Дополнительная помощь: Устранение неполадок каналов.
Указатели на справочник конфигурации Telegram
Основной справочник:
channels.telegram.enabled: включить/отключить запуск канала.channels.telegram.botToken: токен бота (BotFather).channels.telegram.tokenFile: читать токен из пути к файлу.channels.telegram.dmPolicy:pairing | allowlist | open | disabled(по умолчанию: pairing).channels.telegram.allowFrom: белый список личных сообщений (числовые ID пользователей Telegram).allowlistтребует хотя бы одного ID отправителя.openтребует"*".openclaw doctor --fixможет разрешить устаревшие записи@usernameв ID и может восстановить записи белого списка из файлов хранилища связывания при миграции на белый список.channels.telegram.actions.poll: включить или отключить создание опросов Telegram (по умолчанию: включено; все еще требуетsendMessage).channels.telegram.defaultTo: цель Telegram по умолчанию, используемая CLI--deliver, когда явный--reply-toне предоставлен.channels.telegram.groupPolicy:open | allowlist | disabled(по умолчанию: allowlist).channels.telegram.groupAllowFrom: белый список отправителей группы (числовые ID пользователей Telegram).openclaw doctor --fixможет разрешить устаревшие записи@usernameв ID. Нечисловые записи игнорируются во время авторизации. Авторизация группы не использует резервный вариант хранилища связывания личных сообщений (2026.2.25+).- Приоритет нескольких аккаунтов:
- Когда настроены два или более ID аккаунта, установите
channels.telegram.defaultAccount(или включитеchannels.telegram.accounts.default), чтобы сделать маршрутизацию по умолчанию явной. - Если ни то, ни другое не установлено, OpenClaw возвращается к первому нормализованному ID аккаунта, и
openclaw doctorпредупреждает. channels.telegram.accounts.default.allowFromиchannels.telegram.accounts.default.groupAllowFromприменяются только к аккаунтуdefault.- Именованные аккаунты наследуют
channels.telegram.allowFromиchannels.telegram.groupAllowFrom, когда значения на уровне аккаунта не установлены. - Именованные аккаунты не наследуют
channels.telegram.accounts.default.allowFrom/groupAllowFrom.
- Когда настроены два или более ID аккаунта, установите
channels.telegram.groups: настройки по умолчанию для каждой группы + белый список (используйте"*"для глобальных настроек по умолчанию).channels.telegram.groups.<id>.groupPolicy: переопределение groupPolicy для каждой группы (open | allowlist | disabled).channels.telegram.groups.<id>.requireMention: управление упоминаниями по умолчанию.channels.telegram.groups.<id>.skills: фильтр навыков (опустить = все навыки, пусто = ни одного).