Что изменилось в Bot API 10.0
До этого обновления бот в Telegram жил в изоляции от других ботов. Мог получать сообщения от людей — и всё. Даже если два бота находились в одной группе, они друг друга не видели. Это было сделано намеренно, чтобы избежать бесконечных цепочек автоответов.
Bot API 10.0 снял этот запрет, но с условиями. Боты не начинают видеть всех ботов автоматически — нужно явно включить эту возможность для каждого бота отдельно.
Что именно добавили:
- Бот может отправлять сообщения другому боту напрямую — если оба включили соответствующую настройку
- Business-боты получили расширенные возможности взаимодействия
- В группах механика чуть другая — и проще (об этом ниже)
Два режима: прямые сообщения и группы
Прямые сообщения между ботами
Это то, о чём говорится в официальном анонсе: бот A отправляет сообщение боту B напрямую. Для этого нужно, чтобы оба бота включили Allow Bot Chats в настройках BotFather. Если хотя бы у одного выключено — получите ошибку USER_BOT_TO_BOT_DISABLED.
Это ограничение существует не случайно: Telegram не хочет, чтобы спам-боты могли писать другим ботам без их ведома.
Боты в групповом чате
Второй вариант — проще и работает без специальных настроек. Несколько ботов добавляются в одну группу. Каждый бот видит упоминания себя (@имябота) и может отвечать. Если в ответе @тегнуть другого бота — тот тоже среагирует.
Именно этот подход оказался рабочим на практике: никакой дополнительной конфигурации между ботами, стандартная группа, обычные @упоминания.
Что нужно включить в BotFather
Для режима прямых сообщений — для каждого бота:
- Открыть @BotFather
/mybots→ выбрать нужного бота- Bot Settings → Allow Bot Chats → Enable
Если забыть сделать хотя бы для одного из двух — сообщения не дойдут. Ошибка USER_BOT_TO_BOT_DISABLED говорит именно об этом.
Для работы через группу этого не нужно. Достаточно добавить ботов в группу и убедиться, что у них есть права отвечать.
Почему группы проще
Когда мы разбирались с bot-to-bot на практике, оказалось что сценарий с группой работает с меньшим количеством движущихся частей:
- Не нужно настраивать Allow Bot Chats ни у кого
- Архитектура понятна: каждый бот слушает апдейты группы и реагирует на свой @тег
- Можно добавить третьего, четвёртого бота в ту же группу без изменения настроек
- Люди в группе видят весь диалог ботов — полезно для демо
Для большинства сценариев мульти-агентного чата группа — правильный выбор.
Главная ловушка: бесконечный цикл
Это самый важный момент. Если бот A реагирует на @тег и в конце своего ответа @тегает бота B — тот ответит и @тегнет A обратно. Дальше они будут гонять сообщения в цикле до исчерпания лимитов.
Решение простое: бот не тегает другого бота, если сам получил сообщение от бота. Логика в responder:
- Пришло сообщение от человека → обработать, @тегнуть следующего бота
- Пришло сообщение от бота (отправитель — бот) → обработать, ответить без @тега
Это даёт цепочку: человек инициирует, боты делают один обмен, цикл рвётся. Если нужно больше итераций — задавать счётчик и прерывать после N шагов.
Проверяй message.from_user.is_bot перед тем как добавлять @тег в ответ. Без этой проверки любой мульти-агентный чат превратится в бесконечную петлю.
Privacy mode и почему бот молчит
Частая проблема при первом запуске: бот добавлен в группу, сервис работает, но сообщений нет. Лог пустой, апдейты не приходят.
Причина почти всегда одна — privacy mode. По умолчанию Telegram боты в группах получают только:
- Сообщения где их прямо @упомянули
- Ответы на их собственные сообщения
- Команды (/
command) - Системные события группы
Всё остальное они не видят. Поэтому если писать в группу без @тега — бот молчит. Это не баг, это дефолтное поведение.
Отключить privacy mode можно в BotFather (/setprivacy → Disable), но это даёт боту доступ ко всем сообщениям в группе — нужно ли это, зависит от задачи. Для мульти-агентного чата проще оставить privacy mode включённым и просто всегда @тегать.
Прокси и long polling
Если бот работает через прокси — есть специфическая проблема с long polling. Стандартный таймаут getUpdates составляет 25–30 секунд. Многие прокси обрывают соединения которые простаивают дольше 15–20 секунд.
Результат: ReadError или ConnectionError в логах, которые выглядят как краши, но на самом деле это просто переподключение. Сервис жив, NRestarts=0, но лог пугает.
Фикс: снизить таймаут polling до 10–15 секунд. Бот будет переподключаться чаще, зато без обрывов. На практике это незаметно для пользователей.
Если видите ошибки в логах но NRestarts=0 в статусе сервиса — сервис не крашится. Это старые записи в append-only логе от предыдущих перезапусков. Смотрите ActiveEnterTimestamp чтобы понять когда последний раз реально упал.
Когда это реально нужно
Bot API 10.0 открывает несколько конкретных сценариев, которых раньше не было:
Мульти-персонажные чаты. Несколько ботов с разными характерами и разными LLM под капотом разговаривают между собой и с человеком в группе. Каждый бот — отдельный персонаж с отдельной памятью.
Цепочки обработки. Бот-исследователь находит информацию → передаёт боту-редактору → тот отдаёт боту-публикатору. Всё происходит в одной группе, которую наблюдает человек.
Ролевые симуляции. Бот-клиент пишет боту-менеджеру. Полезно для тренировки скриптов продаж или обработки возражений — можно смотреть как AI-клиент реагирует на разные подходы.
Совещания агентов. Несколько специализированных ботов (аналитик, критик, генератор идей) обсуждают задачу. Человек задаёт тему, боты спорят, итог выдаётся в конце.
Всё это работало и до обновления в теории — через общую базу данных или API-вызовы между сервисами. Теперь это работает через Telegram как транспорт. Архитектура проще, наблюдаемость лучше.
Если раньше Telegram был просто каналом доставки сообщений от бота к человеку, теперь это может быть пространством где несколько агентов взаимодействуют — а человек наблюдает или иногда вмешивается. Это другая модель.
Написано на основе реального запуска прототипа 10 мая 2026. Две персоны, одна группа, бесплатные модели. Всё что описано выше — через это прошли.