Как создать Telegram-бота с помощью AI-агента
Собрать телеграм-бота, который отвечает языковой моделью в заданном вами стиле, сегодня можно за вечер и без единой строчки кода, написанной руками. Код пишет AI-агент в редакторе, вы описываете поведение словами. Ниже вся цепочка целиком: среда с агентом, токен у BotFather, ключ модели, хранение секретов, репозиторий на GitHub и деплой на сервер, после которого бот работает круглосуточно и без вашего компьютера.
Что получится в итоге
Самый простой рабочий сетап выглядит так. Человек пишет боту в Telegram, сервер принимает сообщение, отправляет его в языковую модель вместе с вашей инструкцией и возвращает ответ обратно в чат. Бот держит характер, отвечает в вашем стиле и доступен всем, кому вы дали его адрес.
На этом каркасе делаются очень разные вещи. Бот-писатель, который переписывает черновики в вашей манере. Помощник, который отвечает на вопросы по вашим материалам. Собеседник с характером для канала или сообщества. Механика одна, отличается только инструкция внутри.
Все части, кроме первой, вы собираете сами. Telegram отдает готовый интерфейс с уведомлениями, историей и клиентами под все устройства.
Что понадобится
| Часть | Чем закрываем | Сколько стоит |
|---|---|---|
| Руки, которые пишут код | AI-агент в редакторе | От нуля до подписки, которая у вас уже есть |
| Сам бот в Telegram | Токен у BotFather | Бесплатно |
| Мозги | API-ключ модели напрямую или через агрегатор | От нуля на бесплатных моделях |
| Дом для кода | Репозиторий на GitHub | Бесплатно |
| Розетка, из которой бот работает всегда | Railway или свой VPS | Около 5 долларов в месяц |
Времени на первый заход уходит около трех-четырех часов, из них половина на аккаунты и оплату. Второй бот собирается за полчаса, потому что вся обвязка уже настроена.
Шаг 1. Среда с агентом в редакторе
Работа начинается с места, где появится код. Вам нужен редактор с AI-агентом внутри, который умеет создавать файлы, запускать команды и исправлять свои ошибки по тексту сообщения об ошибке.
Подходит любой инструмент этого класса. Claude Code в терминале, Cursor и Antigravity как отдельные редакторы, OpenCode и другие консольные агенты. Разница для нашей задачи почти нулевая, берите то, на что уже есть подписка. Подробный разбор одного из вариантов лежит в гайде Claude Code: как пользоваться, а сравнение сотни с лишним сервисов в каталоге для вайбкодинга. Если платной подписки нет вообще, рабочие бесплатные варианты собраны в гайде как работать с AI-агентами бесплатно.
Дальше создаете пустую папку под проект и открываете ее в редакторе. Все, что происходит потом, вы делаете разговором с агентом.
Заведите папку с понятным именем вроде telegram-bot в домашней директории. Агенты сбиваются, когда проект лежит в загрузках вперемешку с сотней файлов, и начинают предлагать переименования вместо работы.
Шаг 2. Токен бота у BotFather
Telegram выдает ботов через служебного бота BotFather. Находите его поиском по адресу @BotFather, проверяя галочку верификации, и запускаете диалог.
- Команда
/newbotначинает создание. - Первым спрашивается имя. Это то, что видно в шапке чата, тут можно писать по-русски и менять потом.
- Вторым спрашивается адрес. Он обязан заканчиваться на bot, быть уникальным на весь Telegram и меняется потом только через удаление бота.
- В ответ приходит токен, длинная строка из цифр и букв через двоеточие. Это пароль от вашего бота, любой человек с этой строкой получает полный доступ к нему.
Пока вы в диалоге с BotFather, стоит сразу задать описание через /setdescription, короткий текст о боте через /setabouttext и аватарку через /setuserpic. Список команд для меню задается через /setcommands.
Токен сразу копируется в надежное место. В переписку, в заметки на общем компьютере и в код он не попадает никогда.
Шаг 3. Мозги. Ключ языковой модели
Бот сам по себе умеет только принимать и отправлять сообщения. Думает за него модель, к которой код обращается по API, и для этого нужен ключ.
Дорог два. Первый, взять ключ напрямую у провайдера модели в его панели разработчика. Второй, пойти через агрегатор вроде OpenRouter, где один ключ открывает доступ к моделям почти всех провайдеров сразу. Для первого бота второй путь удобнее по трем причинам. Модель меняется одной строкой в настройках, оплата идет в одном месте, и там есть бесплатные модели.
Бесплатные модели у OpenRouter помечены суффиксом :free в названии и работают при нулевом балансе. Ограничения на сентябрь 2026 такие. Около 20 запросов в минуту и порядка 50 запросов в сутки, пока вы ни разу не пополняли счет. После разового пополнения на 10 долларов суточный потолок поднимается примерно до тысячи запросов. Для личного бота и для проверки идеи этого хватает с большим запасом. Список бесплатных моделей регулярно меняется, поэтому смотреть его надо прямо в каталоге сервиса перед стартом.
Начинайте с дешевой модели среднего класса и меняйте на флагманскую только тогда, когда упретесь в качество ответов. Разница в цене между классами доходит до двадцати раз, а на задачах вроде поболтать и переписать абзац она почти незаметна. Названия моделей обновляются каждые несколько месяцев, поэтому связку стоит перепроверять на своих задачах, свежие находки мы разбираем в канале Точки над ИИ.
Оплата зарубежных сервисов из России отдельная история. Способы, которые работают сейчас, собраны в гайде как оплатить ChatGPT и Claude из России, они же подходят для пополнения агрегатора и хостинга.
Шаг 4. Техзадание агенту вместо написания кода
Дальше начинается та часть, ради которой все затевалось. Вы описываете бота словами, агент пишет код. Качество результата зависит от того, насколько подробно описано поведение, поэтому первое сообщение стоит собрать целиком.
Последняя строка экономит больше всего времени. План файлов на десять строк читается за минуту, готовый проект на триста строк уже нет.
Дальше агент создает файлы, ставит зависимости и предлагает запустить бота локально. На этом этапе бот уже отвечает в Telegram, пока запущен ваш компьютер. Все правки поведения делаются одной фразой вроде добавь команду /reset, которая очищает историю разговора.
Память разговора
По умолчанию такой бот отвечает на каждое сообщение с чистого листа и не помнит, о чем шла речь минуту назад. Лечится одной строкой в задании. Попросите агента хранить последние 10-20 сообщений диалога по каждому пользователю и отправлять их в модель вместе с новым вопросом. Хранение в памяти процесса подходит для старта, при перезапуске бота история обнулится. Когда бот дорастет до постоянных пользователей, туда добавляется база данных, и это тоже задача на один запрос агенту.
Чем длиннее история, тем дороже каждый следующий ответ. В модель уходит весь накопленный диалог, и счет считается по всей переписке. Двадцать сообщений это разумный потолок для болтающего бота.
Шаг 5. Секреты и минимальная безопасность
Два ключа, токен бота и ключ модели, это деньги и доступ. Правила обращения с ними простые и нарушаются примерно всеми, кто делает первого бота.
- В коде ключей нет никогда. Они лежат в файле
.envрядом с проектом и читаются оттуда при старте. - Файл .env попадает в .gitignore до первого коммита. Ключ, однажды уехавший в репозиторий, остается в истории даже после удаления из файла.
- На сервере ключи задаются переменными окружения в панели проекта, файл туда не загружается.
- В общий чат и в переписку с поддержкой ключи не отправляются. Скриншот терминала с видимым токеном это то же самое.
- Утечка лечится отзывом. Токен бота перевыпускается у BotFather командой
/revoke, ключ модели удаляется в панели провайдера, оба заменяются на новые за минуту.
Рядом кладется .env.example с теми же именами и пустыми значениями. Он уезжает в репозиторий и служит подсказкой, что именно надо заполнить.
Второй слой безопасности касается денег. Публичный бот с ключом внутри означает, что за каждое сообщение любого человека платите вы. Пока бот личный, ограничьте доступ списком разрешенных Telegram ID и попросите агента добавить счетчик сообщений на пользователя в сутки. Обе защиты пишутся за пять минут и снимаются, когда вы решите открыть бота публично. Тема доступов шире одного бота, свой подход к границам между чтением, записью и необратимыми действиями я разбираю в гайде про своего ассистента на сервере.
Шаг 6. GitHub как мостик между кодом и сервером
GitHub тут решает две задачи сразу. Он хранит историю изменений, поэтому сломанную правку можно откатить одной командой. И он служит мостом до сервера. Хостинг забирает код прямо из репозитория, а каждый следующий пуш автоматически обновляет бота в бою.
Руками ничего делать не нужно, все делается тем же разговором. Заводите аккаунт на GitHub, создаете пустой приватный репозиторий и просите агента отправить туда проект.
Вторая просьба превращает агента в человека, который ведет историю проекта за вас. Дальше остается только смотреть на список коммитов.
Приватный репозиторий выбирается по умолчанию. Открытым код бота делают осознанно и после проверки, что в истории коммитов нет ни одного ключа.
Шаг 7. Сервер, на котором бот живет круглосуточно
Пока бот запущен на вашем компьютере, он работает ровно до закрытия крышки ноутбука. Чтобы отвечать всегда, коду нужен сервер.
Для первого бота проще всего Railway. Это хостинг, который берет репозиторий с GitHub, сам определяет язык проекта, ставит зависимости и запускает процесс. Настроек минимум, инфраструктурой заниматься не приходится.
- Регистрируетесь через GitHub, чтобы репозитории подтянулись сразу.
- Создаете новый проект и выбираете деплой из репозитория с ботом.
- В разделе переменных задаете
BOT_TOKEN,OPENROUTER_API_KEYиMODELтеми же значениями, что лежат в вашем локальном .env. - Дожидаетесь сборки и открываете логи. Строка о том, что бот запущен, означает готовность.
- Пишете боту в Telegram и проверяете ответ.
Дальше сервис живет сам. Каждый пуш в основную ветку репозитория пересобирает проект и перезапускает бота, отдельного действия для обновления не требуется.
Сколько это стоит
Новый аккаунт получает разовый пробный кредит в 5 долларов со сроком 30 дней, этого достаточно, чтобы проверить всю связку. Дальше тариф Hobby стоит 5 долларов в месяц, и в него уже включены 5 долларов ресурсов. Простой текстовый бот потребляет заметно меньше, поэтому месячный счет остается в этих пяти долларах даже с парой ботов.
После деплоя выключите бота на своем компьютере. Telegram отдает сообщения только одному соединению, и два одновременно запущенных экземпляра начинают перехватывать обновления друг у друга. Симптом узнаваемый. Ответы приходят через раз, а в логах висит ошибка про конфликт.
Railway удобен, пока проект один. Когда рядом появляются другие сервисы, базы и вторая пачка ботов, дешевле выходит обычный VPS за те же деньги, где вы управляете всем сами. Полный разбор этого пути с установкой ассистента на сервер, обновлениями и безопасностью лежит в гайде OpenClaw 2 и свой AI-ассистент 24/7. Российские облака вроде Timeweb Cloud и Amvera подходят тоже, у них проще оплата и есть готовые шаблоны под ботов.
Шаг 8. Характер бота. Файл с инструкцией
Технически бот готов. Осталось то, ради чего его вообще делали, потому что модель по умолчанию отвечает как справочник. Все поведение задается системной инструкцией, которую мы вынесли в отдельный файл prompt.md на четвертом шаге. Это единственное место, где живет характер, и правится оно без единой строчки кода.
Три блока закрывают почти любой сценарий. Роль отвечает за то, что бот делает, стиль за то, как звучит, границы за то, чего он не делает никогда.
Дальше инструкция дорабатывается по живым ответам. Хороший цикл выглядит так. Пишете боту десяток типичных сообщений, находите места, где ответ вас не устраивает, и добавляете правило именно про этот случай. Через две-три итерации бот начинает попадать в тон.
Отдельная задача, научить бота писать именно вашим голосом. Она решается примерами. В инструкцию добавляются два-три ваших настоящих текста с пометкой, что так выглядит нужный результат. Подробно этот прием с разбором своих текстов на правила описан в гайде как научить агента писать вашим голосом, оттуда готовый файл переносится в бота почти без изменений. Тот же принцип лежит в основе скиллов для агентов, где инструкция под задачу живет отдельным файлом и переиспользуется.
Что навешивается на этот каркас дальше
Первый бот обычно живет неделю в текстовом виде, после чего хочется большего. Все следующее добавляется тем же способом, одной просьбой к агенту.
- Кнопки и команды. Меню режимов вроде переписать, сократить, перевести вместо угадывания намерения по тексту.
- Голосовые сообщения. Бот принимает голос, расшифровывает его и работает с текстом. Удобнее всего для заметок на ходу.
- Файлы и картинки. Прием документа с разбором содержимого, если модель это умеет.
- Работа по вашим материалам. Бот отвечает по вашей базе знаний. Как собирается такая база, разобрано в гайде про второй мозг с AI.
- Подключение сервисов. Календарь, таблицы, почта через протокол MCP, о котором есть отдельный гайд.
- Задачи по расписанию. Утренний дайджест или напоминание, которое бот присылает сам. Пример такой связки со скиллами и автозапуском лежит в гайде про сборку дайджестов.
Грабли, на которые наступают все
| Симптом | Причина | Что делать |
|---|---|---|
| Бот молчит после деплоя | На сервере не заданы переменные окружения | Проверить раздел переменных и перезапустить |
| Ответы приходят через раз | Бот запущен и локально, и на сервере | Остановить локальный процесс |
| Ошибка про лимит от провайдера | Уперлись в суточный лимит бесплатной модели | Подождать сутки, пополнить счет или сменить модель |
| Длинный ответ обрывается | Telegram не принимает сообщения длиннее 4096 символов | Резать ответ на части, это правило было в техзадании |
| Счет за модель растет быстрее ожиданий | В модель уходит вся история диалога | Ограничить историю и включить лимит на пользователя |
| Агент чинит одну ошибку и ломает другое | Правки идут поверх непроверенного кода | Коммитить каждое рабочее состояние и откатываться к нему |
Отдельно про диагностику. Почти любая проблема видна в логах хостинга, и разбираться в них самому не нужно. Копируете текст ошибки, отдаете агенту и просите починить. Это тот же цикл, в котором писался код.
Частые вопросы
- Нужно ли уметь программировать, чтобы сделать телеграм-бота?
- Код пишет агент в редакторе, от вас требуется описать поведение бота словами и уметь скопировать ключ в нужное поле. Понимать, что происходит, все же придется: где лежат ключи, что такое переменная окружения, зачем репозиторий и почему бот перестал отвечать. Это уровень уверенного пользователя компьютера.
- Сколько стоит держать такого бота в месяц?
- Сервер на Railway обойдется в 5 долларов в месяц по тарифу Hobby, куда уже включены 5 долларов ресурсов, и простому боту этого хватает с запасом. Оплата модели зависит от провайдера и количества сообщений. На бесплатных моделях агрегатора выходит ноль, на дешевой модели среднего класса личный бот с парой сотен сообщений в день укладывается в доллар-два. Токен Telegram бесплатный всегда.
- Можно ли сделать телеграм-бота с нейросетью бесплатно?
- Можно на время знакомства. У OpenRouter есть модели с суффиксом :free, они работают с нулевым балансом при ограничении около 20 запросов в минуту и 50 запросов в сутки, а после разового пополнения на 10 долларов суточный лимит поднимается до тысячи. Новый аккаунт Railway получает 5 долларов пробного кредита на 30 дней. Бесплатной остается и связка, где бот запускается на вашем компьютере, но тогда он работает, только пока компьютер включен.
- Где хранить токен бота и ключ модели?
- На своем компьютере в файле .env рядом с кодом, обязательно добавив его в .gitignore. На сервере в разделе переменных окружения проекта. В код ключи не вписываются никогда, потому что репозиторий однажды станет публичным или к нему появится доступ у другого человека, и ключ уйдет вместе с историей коммитов. Утекший токен бота отзывается у BotFather командой /revoke, ключ модели удаляется в панели провайдера.
- Почему бот не отвечает после деплоя?
- Четыре причины закрывают почти все случаи. Не заданы переменные окружения на сервере, поэтому процесс падает на старте. Бот параллельно запущен на компьютере и на сервере, Telegram отдает обновления только одному соединению. Закончились кредиты у провайдера модели или уперлись в суточный лимит бесплатной модели. Ответ модели длиннее 4096 символов, столько Telegram в одном сообщении не принимает. Причина видна в логах сервиса, и агенту достаточно показать текст ошибки.
- Чем такой бот отличается от обычного чата с нейросетью?
- Он живет там, где вы и так переписываетесь, работает по вашей инструкции без напоминаний и открыт тем людям, которым вы дали адрес. Это дает три сценария: личный помощник под руками в телефоне, бот с характером для канала или сообщества, рабочий инструмент для команды с вашими правилами и материалами внутри. Модель внутри та же самая.
- Нужен ли отдельный сервер или хватит своего компьютера?
- На компьютере удобно проверять бота во время сборки. Круглосуточная работа требует сервера, потому что бот отвечает только пока запущен процесс. Railway подходит для первого бота, деплой идет прямо из репозитория и настройки сводятся к переменным окружения. Когда ботов становится несколько или к ним добавляются другие сервисы, дешевле выходит обычный VPS.
Что запомнить
- Связка простого бота состоит из пяти частей: агент в редакторе, токен у BotFather, ключ модели, репозиторий на GitHub, сервер.
- Код пишет агент по вашему техзаданию. Полезнее всего в задании просьба сначала показать план файлов и дождаться подтверждения.
- Ключ модели удобно брать через агрегатор вроде OpenRouter. Один ключ открывает все модели, среди них есть бесплатные с лимитом около 50 запросов в сутки.
- Секреты живут в .env на компьютере и в переменных окружения на сервере. Файл .env попадает в .gitignore до первого коммита.
- GitHub служит мостом до сервера. Каждый пуш пересобирает бота в бою, откат сломанной правки делается одной командой.
- Railway поднимает бота из репозитория за несколько минут и стоит около 5 долларов в месяц. Для нескольких проектов дешевле обычный VPS.
- Характер бота лежит в отдельном файле с инструкцией. Роль, стиль и границы правятся без единой строчки кода.
- После деплоя локальный бот выключается, иначе два экземпляра начинают перехватывать сообщения друг у друга.
- История диалога тратит деньги на каждом ответе, поэтому у нее должен быть потолок и лимит сообщений на пользователя.
Бот это первый проект, на котором собирается общий навык. Описать задачу словами, отдать ее агенту, положить код в репозиторий и поднять на сервере. Дальше по этой же схеме делаются рабочие инструменты под ваши процессы. На программе Личная эффективность с AI мы проходим весь путь на практике, от первого запуска агента до своих скиллов и автозапуска. Остальные программы кэмпа собраны на странице программ.
Сервисы и модели тут меняются каждые несколько месяцев, поэтому рабочие связки и находки мы выкладываем в канале Точки над ИИ, а те, кто держит своих ботов и агентов в рабочем состоянии постоянно, собираются в клубе.