Telegram готовит бота @agent, к которому подключается свой ключ API от ИИ-сервиса: Claude, ChatGPT, Gemini, Grok или OpenRouter. Экран подключения появился в бета-сборках Telegram для macOS 13.1.0 утром 23 октября и без изменений дошёл до сборки 283392 от 27 октября. Ключ, судя по схеме API в бете, остаётся на серверах Telegram: клиенту сервер возвращает только последние четыре знака ключа и дату подключения. Касается это тех, кто уже платит за подписку у одного из провайдеров. На основном сервере список ботов-агентов пуст: ключ agent_bot_ids к 21:21 UTC 22 октября появился только в конфигурации тестового сервера Telegram, на основном сервере его на 26 октября нет. Видео в обсуждениях показывает работающий диалог с @agent на тестовом сервере.
Что лежит в сборке
Бета macOS раздаётся через фид обновлений mac-updates.telegram.org, каждая сборка в нём — zip с приложением. В 13.1.0.283359 от 21 октября строк агента нет. Они появились в 13.1.0.283362, вышедшей утром 23 октября, и в том же виде есть в 13.1.0.283391 от 26 октября и 13.1.0.283392 от 27 октября.
Тексты нового экрана:
- «Use the API key from an AI service you have already purchased to set up your own AI chatbot» — ключ от уже оплаченного ИИ-сервиса превращается в собственный чат-бот.
- «Select the AI provider you have an account with» — выбирается провайдер, у которого у вас есть аккаунт.
- «Add Your AI API Key», «Enter your API key» и подсказка «Get your API key or API token in your AI provider's settings»: ключ берётся в настройках самого провайдера.
- «This chatbot works only if you have an active subscription for an AI service» — без действующей подписки у провайдера бот не работает.
- «Add Another Provider» и «Right-click a provider to delete it» — провайдеров можно подключить несколько и удалять по одному.
- «You can reconnect this provider with an API key later» — отключённого провайдера можно вернуть новым ключом.
- «Could not connect. Try again.» и «The provider is unavailable. Try again.» — сообщения о неудачном подключении.
- «You can now use @agent» — финальное сообщение после подключения.
Провайдеров в коде пять: AgentProviderClaude, AgentProviderChatGPT, AgentProviderGemini, AgentProviderGrok и AgentProviderOpenRouter. У одного из них подпись «Hundreds of models». OpenRouter — агрегатор, который по одному ключу даёт доступ к моделям разных компаний, и подпись, по всей видимости, его.
Что хранит сервер
В схеме MTProto, вшитой в сборку, появились четыре типа и одно обновление. Поля у них такие:
| Тип | Поля | Что это значит |
|---|---|---|
agentProvider | vendor, keyUrl, iconEmojiId, modelsSearchable | описание провайдера: кто он, ссылка на страницу ключей, значок, можно ли искать по его моделям |
providerKey | provider, keyLast4, dateConnected | подключённый ключ: к какому провайдеру, последние четыре знака, дата подключения |
settings | activeProvider | какой из подключённых провайдеров сейчас отвечает за @agent |
providers / providersNotModified | — | список провайдеров с сервера |
updateAgentSettings | — | судя по имени, обновление, которое сервер присылает при смене настроек |
Пара «список и NotModified» в API Telegram означает список, который клиент запрашивает с сервера и кеширует по хешу, как темы (account.themes/account.themesNotModified) или обои. Поэтому перечень провайдеров вместе со значками и ссылками на страницы ключей приходит с сервера и может пополняться без новой сборки. Адресов страниц с ключами в приложении нет; есть обрывок строки «Get your API key in [», в который, судя по полю keyUrl, подставляется ссылка от сервера.
Ключ целиком в описании подключения не хранится — только keyLast4. Ошибки записаны в формате, в котором сервер Telegram отвечает на запросы: AGENT_KEY_INVALID, AGENT_KEY_MISSING, AGENT_NOT_AVAILABLE, AGENT_PROVIDER_UNAVAILABLE. Судя по схеме, ключ проверяет сервер Telegram, и у него же ключ, по всей видимости, остаётся после подключения. Идут ли через тот же сервер сами запросы к модели, по схеме не видно. Адресов API Claude, OpenAI, Google, xAI или OpenRouter в сборке нет, так что напрямую к провайдеру приложение, по всей видимости, не обращается. Обновление updateAgentSettings, если судить по имени, нужно, чтобы смена активного провайдера на одном устройстве доходила до остальных.
Где экран живёт в клиенте
Строка подключения называется AgentConnectRowItem и лежит в модуле PeerInfoUI, который рисует страницы профилей пользователей, ботов и каналов. Рядом — AgentProfileRow, AgentConnections и сервис TelegramAgentService. В описании профиля появился признак isAgent, а у кнопки в профиле рядом с флагом launchApp, которым помечен запуск мини-приложения, — флаг agentSetup. Похоже, настройка открывается со страницы самого бота-агента кнопкой, а не из общих настроек приложения, но это прочтение по именам.
Как с @agent разговаривают после подключения, в сборке не видно. В обсуждениях показывают видео, где модель отвечает в отдельном диалоге с @agent на тестовом сервере.
Что на тестовом сервере
К 21:21 UTC 22 октября в ответе help.getAppConfig тестового сервера появился ключ agent_bot_ids с двумя значениями: 5000448925 и 2202931014; в предыдущем снимке файла, от 20 октября 19:09 UTC, его не было. До 26 октября он не менялся. В конфигурации основного сервера такого ключа на 26 октября нет. Тестовый сервер Telegram — отдельная среда со своими аккаунтами, поэтому по этим идентификаторам не узнать, что это за боты в обычном Telegram.
В том же конфиге и на основном сервере с 20 октября лежит bot_allowed_suffixes — окончания agent, ai, app, game и gay, с которыми боту можно взять второй юзернейм. Боты вида «…agent» и @agent — разные вещи: суффикс доступен любому владельцу бота с Premium, а @agent — один конкретный аккаунт.
Юзернейм @agent занят: его продали на аукционе Fragment 27 ноября 2022 года за 70 000 TON, страница t.me/agent на 27 октября пустая. Связано ли упоминание @agent в бете с этим аккаунтом, из открытых данных не видно.
Где функции пока нет
На 27 октября агента нет ни в публичной схеме API — ни в api.tl Telegram Desktop (слой 232), ни в td_api.tl TDLib, — ни в открытом коде клиентов. В Info.plist открытого 23 октября репозитория telegram-macos — сборка 283357, на пять номеров раньше той, где появился агент; файлов агента в репозитории нет. Общий с iOS код в Telegram-iOS его тоже не содержит, хотя в бете macOS ошибки AGENT_* лежат именно в общей части, TelegramCore.
В тех же бетах macOS идёт работа над виджетами в сообщениях, которые пишут боту; их, как и агента, пока нет ни в публичной схеме, ни в Bot API.
Чем это отличается от ИИ в Telegram сейчас
У Telegram уже есть свои ИИ-функции для текста: в конфигурации основного сервера лежат параметры aicompose_tone_* — число примеров тона, длина его названия и промпта, лимит сохранённых тонов.




