Всем привет!

Не знаю, как вы, а я всегда жду новых обновлений Bot API от Telegram. Мне любопытно, что же такого нестандартного нам подкинут в этот раз. Иногда они радуют, как в случае с недавним добавлением цветных кнопок, а иногда откровенно расстраивают, когда весь апдейт сосредоточен на мишуре вроде подарков. Однако обновление, которое выкатили разработчики на этот раз, оказалось поистине неожиданным.

Вчера был представлен релиз Bot API 10.0, который вносит, я бы сказал, серьёзнейшие изменения в саму механику работы ботов и их взаимодействие между собой. Давайте разберём это обновление подробнее.

Если вам интересны подобные материалы и разработка в целом, подписывайтесь на Telegram-канал «Код на салфетке».


Главное: Бизнес-боты уходят в массы и учатся общаться

Боты для бизнес-аккаунтов больше не требуют Premium-подписки.

Изначально, когда только появилась возможность автоматизировать личные переписки с помощью бота, для этого требовался Telegram Premium. Многие полагали, что после обкатки эти «бизнес-фишки» выделят в отдельный платный тариф для компаний. Однако руководство Telegram всё переиграло: теперь абсолютно каждый пользователь может подключить бота к своей учётной записи совершенно бесплатно.

Но раньше у этой функции было одно серьёзное архитектурное ограничение (помимо платного доступа): бот мог реагировать на входящие сообщения и писать от вашего имени только живым пользователям. Бизнес-боты программно не видели сообщений от других ботов и не могли им отвечать. Если нужно было автоматизировать взаимодействие с чужим сервисом, приходилось поднимать полноценного юзербота на базе MTProto (например, через Pyrogram или Telethon), что всегда несло за собой риски блокировки аккаунта.

Теперь бизнес-боты могут официально взаимодействовать с другими ботами от вашего имени!

Для нас с вами это открывает колоссальные возможности. По сути, это идеальная инфраструктурная база для создания полноценных AI-агентов. Можно проектировать сложные системы, где несколько узконаправленных ботов выстраиваются в единый пайплайн, передают друг другу контекст и по цепочке делегируют задачи, автоматизируя рутину.

Важное примечание: Чтобы эта магия заработала, оба бота должны явно разрешить общение друг с другом (опция bot-to-bot communication) в своих настройках.


Гостевой режим: боты «по вызову»

Раньше, чтобы обратиться к боту в групповом чате, его обязательно нужно было туда добавить. Это не всегда удобно: кто-то переживает за приватность, кому-то не хочется давать лишние права, да и список участников засоряется. Теперь Telegram вводит «Гостевой режим». Вы можете просто обратиться к боту по его юзернейму в любом чате и получить ответ, даже если бота там нет. За один раз (в одном сообщении) можно «позвать» до трёх таких гостей.

Это невероятно крутая фича для утилитарных инструментов и AI-агентов. Представьте: вы обсуждаете с коллегами архитектуру проекта, и прямо в чате тегаете бота-ассистента с подключенной LLM, чтобы он на лету набросал SQL-запрос, перевел кусок текста или просто выдал независимое стороннее мнение. Боту при этом не нужно постоянно "слушать" весь ваш чат.

Что под капотом (разбираем чейнджлог):

Для реализации этой механики API серьезно расширили:

  • В объект User добавили поле supports_guest_queries — так мы можем проверять, поддерживает ли вообще пользователь/клиент гостевые запросы.

  • Появился совершенно новый тип апдейта — guest_message в классе Update.

  • Чтобы бот понимал контекст вызова, в Message завезли поля guest_bot_caller_user (кто именно вызвал) и guest_bot_caller_chat (из какого чата прилетел запрос).

  • Сам вызов идентифицируется через guest_query_id (также в Message).

  • Отвечать гостям нужно специальным методом answerGuestQuery (он возвращает новый объект SentGuestMessage).

Кстати, в свежем релизе aiogram 3.28.0 всё это уже реализовано. Ловить гостевые запросы можно через отдельный обзервер Router.guest_message, а для ответа добавили удобный шорткат message.answer_guest_query().


Улучшения опросов: медиа повсюду и гео-фильтры

Опросы в Telegram долгое время оставались довольно аскетичными текстовыми блоками, но теперь их прокачали по полной. Главная фишка — отныне можно прикреплять медиафайлы (включая стикеры, локации и заведения) не только к самому опросу или объяснению правильного ответа в викторинах, но и к каждому отдельному варианту ответа.

Кроме того, появились мощные настройки таргетинга и приватности:

  • Голосования теперь можно ограничить только для фактических участников чата (поле members_only).

  • Появилась фильтрация голосующих по странам (поле country_codes).

  • Минимальное количество вариантов ответа уменьшили с двух до одного — отличный хак для создания стилизованных кнопок подтверждения или согласия с правилами.

В aiogram всё это богатство уже упаковано в новые Pydantic-модели (вроде InputPollOptionMedia, InputMediaLocation) и доступно через параметры в методе send_poll.


Живые фотографии (Live Photos)

Telegram продолжает внедрять визуальные фишки и добавляет поддержку «живых фотографий» — изображений с короткой встроенной анимацией и звуком. И самое приятное, что ботов не оставили в стороне: они получили к этому формату полноценный API-доступ.

Теперь боты умеют распознавать такие фото во входящих сообщениях (в объекте Message появилось поле live_photo), загружать их, а также отправлять пользователям с помощью нового метода sendLivePhoto (в том числе в составе медиагрупп).

Но что куда интереснее для коммерческой разработки: живые фото интегрировали в систему монетизации. Их можно отправлять как платный контент (класс PaidMediaLivePhoto), что даёт авторам каналов и сервисов новые форматы для продажи эксклюзивного визуала.


Управление чатом и точечная борьба с реакциями

Это довольно утилитарный, но крайне долгожданный блок для создателей админ-ботов. Разработчики Telegram наконец-то дали ботам гранулярный контроль над реакциями.

Если раньше с нежелательными реакциями (привет ботам "с низкой социальной ответственностью", массово ставящим "клоунов" на посты) приходилось мириться или отключать их на весь чат глобально, то теперь админ-боты могут:

  1. Точечно удалять конкретную реакцию пользователя под сообщением (deleteMessageReaction).

  2. Полностью сносить все реакции под конкретным постом одним махом (deleteAllMessageReactions).

  3. Запрещать конкретному проблемному пользователю ставить реакции вообще (новое поле can_react_to_messages в правах доступа).

Вдобавок к этому, метод получения списка администраторов (getChatAdministrators) получил параметр return_bots. Теперь вы можете одной командой узнать, какие ещё боты наделены админскими правами в чате, что полезно для аудита безопасности и настройки тех самых «агентских потоков», о которых мы говорили выше.


Что ещё прилетело «под капотом»?

Помимо крупных фич, в Bot API 10.0 скрыто несколько важных «микро-улучшений», которые сильно упрощают жизнь при разработке сложных систем:

  • Белые списки доступа: Теперь через @BotFather можно настроить гранулярный белый список для своего бота. Для тех, кто пишет менеджер-ботов, добавили методы getManagedBotAccessSettings и setManagedBotAccessSettings, позволяя управлять доступом программно. Это маст-хэв для корпоративных инструментов.

  • Чтение сообщений из канала в профиле: Боты теперь могут достучаться до последних сообщений из канала, закрепленного в профиле пользователя (getUserPersonalChatMessages). Это открывает интересные кейсы для более глубокой интеграции ботов с личностью пользователя.

  • Пустые черновики: Теперь метод sendMessageDraft официально разрешает передавать пустой текст. Мелочь, а приятно — меньше костылей при обработке состояний.


Заключение

Это не просто очередной апдейт с «косметикой». Это фундаментальный сдвиг в сторону автономности ботов.

Telegram планомерно превращает платформу в среду для работы полноценных AI-агентов. Гостевой режим и официальное общение ботов между собой («bot-to-bot») — это те кирпичики, которых не хватало для создания по-настоящему сложных, распределенных систем, где каждый бот выполняет свою узкую задачу в рамках большого бизнес-пайплайна.

Лично я немного в смешанных чувствах. С одной стороны, обновление классное и поле для фантазий просто невероятное, с другой же, Telegram будто бы перестаёт быть мессенджером для людей. Всё больше завязано на ботах, а теперь и их взаимодействии, и зачем тогда там теперь люди?

Что думаете на этот счёт вы?

И не забывайте заглядывать в мой канал «Код на салфетке».

Комментарии (0)