惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
腾讯CDC
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
The Hacker News
The Hacker News
T
The Exploit Database - CXSecurity.com
B
Blog
S
SegmentFault 最新的问题
P
Privacy & Cybersecurity Law Blog
T
Threatpost
博客园 - 聂微东
T
Tailwind CSS Blog
The Last Watchdog
The Last Watchdog
C
Check Point Blog
N
Netflix TechBlog - Medium
D
DataBreaches.Net
爱范儿
爱范儿
IT之家
IT之家
S
Secure Thoughts
M
MIT News - Artificial intelligence
NISL@THU
NISL@THU
C
Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
有赞技术团队
有赞技术团队
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
Schneier on Security
Schneier on Security
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
雷峰网
雷峰网
Project Zero
Project Zero
博客园 - Franky
H
Heimdal Security Blog
A
About on SuperTechFans
Security Latest
Security Latest
Webroot Blog
Webroot Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Claude пишет — бот работает: полный цикл создания Telegram-бота
Andrey_Popov · 2026-05-01 · via Все публикации подряд на Хабре

Привет, Хабр!

В последние годы разработка ускорилась так, что старые подходы уже не успевают за новыми реалиями. Но дело не в новых языках или фреймворках. Появился другой рабочий сценарий — когда разработчик перекладывает часть рутины на нейросеть и ведёт её через обычный диалог. Это и называют вайбкодингом.

Звучит как модный термин, но по факту всё просто: вы меньше печатаете, больше управляете. Ставите задачу, задаёте границы, проверяете результат. И да, промптинг здесь — не магия, а обычная инструкция для модели.

Сегодня на практике посмотрим, как это работает. Создадим Telegram-бота-ассистента через вайбкодинг с Claude. Бот будет отвечать на вопросы, переформулировать текст и делать краткие саммари. А потом задеплоим его на сервер.

Шаг 1. Создаём бота через BotFather

Первым делом заходим в Telegram. В строке поиска вводим @BotFather — это официальный бот от самой Telegram, который выдает токены для новых ботов. Выглядит он как синяя галочка и ник, заканчивающийся на bot.

Нажимаем /start или просто отправляем команду /newbot. BotFather спросит: "Alright, a new bot. How are we going to call it? Please choose a name for your bot."

Имя — это то, как бот будет отображаться в вашем списке контактов и диалогах. Оно может быть любым, на русском или английском, с пробелами и эмодзи. Например: Личный ассистент или Student Helper Bot.

Отправили имя. Дальше BotFather попросит username — уникальный короткий адрес, по которому бота можно будет найти. Тут строгие правила:

  • Только латиница и цифры (без пробелов и спецсимволов)

  • Обязательно заканчивается на bot

  • Длина — минимум 5 символов

  • Например: your_awesome_assistant_bot или study_helper_bot

Если username уже занят, BotFather выдаст ошибку — придётся придумать другой, чуть длиннее или с цифрами.

бывает

бывает

Когда username успешно принят, BotFather поздравляет и показывает токен. Это длинная строка вида:

7234567890:AAFjdhfghjkldfghjkl_edQhiuFjks

Токен — это ключ, через который ваш код будет управлять ботом. Его нельзя показывать никому, загружать на GitHub или вставлять в публичные чаты. Если токен утек, любой человек сможет управлять вашим ботом — писать от его имени, читать сообщения пользователей.

Сохраните токен в надёжное место. Лучше всего — в отдельный файл .env, который Git будет игнорировать (через .gitignore). Пример содержимого .env:

BOT_TOKEN=7234567890:AAFjdhfghjkldfghjkl_edQhiuFjks

Помимо токена, BotFather предлагает ещё несколько настроек:

  • /setdescription — краткое описание бота (показывается в профиле)

  • /setuserpic — аватарка бота

  • /setcommands — список команд с подсказками, которые будут выпадать при вводе / в чате с ботом (очень удобно для пользователей)

Теперь у нас есть токен, username. Переходим к следующему шагу — вайбкодим логику через Claude.

Откуда брать идеи для промптов

И тут многие спотыкаются. Токен есть, желание есть, а с чего начать — непонятно. Как объяснить Claude, что именно писать? Какие команды сделать? Какую логику закладывать?

Можно полчаса сидеть, формулировать, переписывать, снова стирать. А можно поступить проще.

Я создал бесплатного Telegram‑бота, который объединяет сразу несколько моделей — ChatGPT, Gemini, Grok и DeepSeek. И я, когда пишу промпты для Claude, часто сначала прогоняю идею через этот бот. Просто описываю, чего хочу добиться, а он помогает структурировать задачу, подсказывает архитектуру, набрасывает черновик промпта.

Сам бот: https://t.me/ChatGPTAIAssistantBot

А теперь — к делу. Промпт готов, идём в Claude.

Шаг 2. Вайбкодим бота через Claude

Теперь самое интересное. Идём в Claude или любого другого ИИ-ассистента, который умеет писать код — подойдёт также ChatGPT, DeepSeek или GitHub Copilot. Но для примера возьмём Claude.

Первый промпт. Не пытаемся сделать идеально с первого раза. Просто даём понятное описание того, что хотим получить:

Напиши мне телеграм-бота на Python с библиотекой aiogram, html теги, бд sqlite, logging всех сообщений. Бот должен работать как ИИ-ассистент через OpenRouter API key.

Что нужно:

  1. Бот получает API-ключ OpenRouter из переменной окружения OPENROUTER_API_KEY.

  2. На любое текстовое сообщение от пользователя бот отправляет запрос к OpenRouter API и возвращает ответ от ИИ-модели.

  3. Используй топ-5 бесплатных моделей OpenRouter в качестве fallback. Если одна модель недоступна или выдаёт ошибку — автоматически переключайся на следующую по списку. Список моделей:

    • google/gemini-2.0-flash-exp:free

    • anthropic/claude-3.5-haiku-20241022:free

    • mistralai/mistral-7b-instruct:free

    • meta-llama/llama-3.2-3b-instruct:free

    • qwen/qwen-2.5-7b-instruct:free

  4. Если все модели недоступны — бот отвечает: "Все модели временно недоступны, попробуйте позже".

  5. Добавь обработку ошибок, таймауты (30 секунд), логирование в консоль.

  6. Сделай базовую структуру: main.py с хендлерами команд (/start, /help) и обработчиком текстовых сообщений. Добавь requirements.txt. Код прокомментируй на русском.

диалог с клауди

диалог с клауди

Claude сгенерирует код с логикой работы через OpenRouter, циклическим перебором моделей и обработкой ошибок.

Смотрим код. Проверяем, что всё правильно: есть команда /start, есть /help, есть асинхронная функция для запросов к OpenRouter, которая перебирает модели по очереди.

Вот тут и начинается вайбкодинг. Смотрим, что можно улучшить (пример, сами вы можете написать другие улучшения):

Хорошо, код рабочий. Но добавь ещё пару моментов. Во-первых, сделай так, чтобы в каждом запросе к OpenRouter передавался параметр "temperature": 0.7 для более креативных ответов. Во-вторых, добавь ограничение на длину истории диалога — храни последние 5 сообщений, чтобы не перегружать контекст. В-третьих, сделай команду /models — чтобы бот показывал, какие модели доступны в его ротации.

Claude поправит код. Теперь бот помнит контекст диалога, умеет показывать список моделей и отвечает чуточку интереснее за счёт температуры.

Тестируем локально. Сохраняем файлы в папку проекта. Назовём её, например, tg_assistant_bot. Главный файл — main.py. Рядом создаём .env с токеном Telegram и API-ключом OpenRouter:

BOT_TOKEN=7234567890:AAFjdhfghjkldfghjkl_edQhiuFjks
OPENROUTER_API_KEY=sk-or-v1-...

Как получить ключ OpenRouter? Идёте на openrouter.ai, регистрируетесь, заходите в раздел Keys, создаёте новый ключ — он бесплатный для работы с бесплатными моделями.

И requirements.txt:

aiogram>=3.0.0
python-dotenv>=1.0.0
httpx>=0.24.0

Запускаем локально: python3 main.py. Открываем Telegram, пишем боту "Привет, как дела?". Бот отправляет запрос к первой модели из списка (Gemini) и возвращает ответ. Если Gemini недоступен — переключается на Claude, потом на Mistral, и так по списку.

Проверяем команду /models — бот показывает пять моделей в порядке приоритета.

Всё работает. Бот использует бесплатные модели OpenRouter, ротация даёт отказоустойчивость — даже если одна модель временно недоступна, остальные подхватят.

Код готов, бот работает. Теперь его нужно положить на сервер, чтобы он отвечал 24/7, даже когда компьютер выключен.

Не всегда хочется сидеть в диалоге с моделью по 10 итераций. Иногда нужен просто рабочий проект сразу.

Поэтому я сделал бесплатного телеграм‑бота, который генерирует ботов под ключ. Одна идея — один запрос — готовый код. Без лишних разговоров.

Сам бот: https://t.me/GenerateYourAIBot

а теперь к деплою

Шаг 3. Деплой проекта в продакшен

Деплоить мы будем через сервис Timeweb Cloud. Вкратце — это российская облачная платформа для бизнеса, стартапов и разработчиков. Она предоставляет комплекс инструментов для создания и масштабирования IT-инфраструктуры: от тестовых сред до высоконагруженных проектов. 

Пошаговая инструкция по созданию сервера:

1. Во-первых вам нужно пройти регистрацию на сервисе Timeweb.

2. Далее заходите во вкладку "облачные серверы". Здесь у нас есть большой спектр различные ОС. Мы выбираем Ubuntu 24.04.

3. Далее выбираем любой зарубежный регион, либо же российские сервер.

Зачем нам нужен зарубежный регион? Могут задаться вопросом некоторые читатели. Если ваш бот использует внешние API, например Groq, ChatGPT, которые заблокирован в России, то всегда выбирайте сервер за пределами России. Если ваш бот не использует API никаких ИИ и работает по скрипту, берите российский регион.

Все возможные сервера в Timeweb

Все возможные сервера в Timeweb

4. Далее у нас идёт конфигурация. Это очень важный, но простой раздел. Поскольку у вас пока только один бот, смело выбирайте минимальную конфигурацию — ваш бот не потребляет много трафика и будет использовать примерно ~6–10% ресурсов процессора. Это удобно и экономно, особенно на старте.

Сервер у меня на Нидерландах

Сервер у меня на Нидерландах

5.  Далее у нас идет сеть здесь мы все сохраняем и переходим к следующему пункту:

6. Далее у нас идёт блок про бекапы.

Бекапы — это резервные копии вашего проекта. Они нужны для того, чтобы не потерять данные и код, если что-то пойдёт не так:

  • сервер сломался или завис

  • база данных SQLite испортилась

  • случайно удалили файлы или внесли ошибку в код

📌 С бекапами вы всегда можете восстановить рабочую версию и продолжить работу без потерь.

Проще говоря: бекапы — это страховка вашего проекта, которая спасает время и нервы. Здесь выбирайте нас свое усмотрение (советую выбрать).

Наши любые бэкапы

Наши любимые бэкапы

7. Потом мы всё оставляем и переходим к оплате. Не советую вам сразу оплачивать на месяц, возьмите сначала на сутки, потом у вас все равно будет возможность продлить.

После оплаты у нас должен загрузиться наш сервис примерно (30–60 секунд). 

Инструкция по хостингу самого бота

1. Подключение к серверу

Заходите на ваш сервис, копируйте ваш пароль (он будет справа) и заходите в консоль вашего сервера:

  1. Enter

  2. Вводите логин root

  3. Через Ctrl + Shift + V вставляйте ваш root-пароль

  4. Далее вы увидите приветственное сообщение

2. Установка зависимостей

Теперь нам требуется установить системные зависимости и рантаймы:

sudo apt update 
sudo apt upgrade
sudo apt install python3 python3-pip -y
sudo apt install nodejs npm -y
npm install pm2 -g   

📌 Важно:

  • если появляется (Y/N) → всегда нажимайте Y

  • если консоль зависла → введите clear

3. Перенос проекта на сервер

Далее нам нужно перенести нашу папку с файлами на сервак. Есть два варианта, как можно сделать: через GitHub либо же через FileZilla, сделаем мы это через второй вариант.

Установить FileZilla можно по ссылке: https://filezilla-project.org/

4. Подключение

После того как мы установили и зашли, нам нужно внести наши данные:

  1. хост (IPv4)

  2. имя пользователя – root

  3. пароль – root-пароль

  4. порт – 22

Пароль и хост можно взять в дашборде на Timeweb.

5. Перенос файлов

После того как мы внесли наши данные, перенесите папку с проектом в FileZill'y. 

Здесь generator – мой проект.

6. Переход в папку проекта

Далее переходим в консоль Timeweb и переходим в нашу папку, выполняя команду:

cd /root/название_папки 

Чтобы проверить, какие файлы у нас есть в папке, введите команду:

ls 

7. Виртуальное окружение

Далее устанавливаем виртуальное окружение командами:

apt install python3-venv -y
cd ~/название_папки
python3 -m venv venv
source venv/bin/activate 

Скачивайте строго по одному.

8. Установка зависимостей

И под конец устанавливаем зависимости, ваши зависимости записаны в requirements:

pip install aiogram python-dotenv httpx

Возможные другие зависимости. НО в большинстве случаев они такие.

9. Запуск бота

Запускаем файл:

pm2 start main.py 

Дополнительные полезные команды:

1. Чтобы посмотреть версию python, выполните команду:

python --version 

2. Чтобы посмотреть логи вашего проекта, введите команду:

pm2 logs

3. Чтобы перезапустить проект, выполните команду:

pm2 restart main.py                  Объяснить с

 Где, main.py – ваш главный файл для запуска.

Что делать, если мне нужно поменять механику в моем файле?

Иногда вам нужно изменить логику бота: добавить функцию, исправить баг, выпустить апргейд или улучшить поведение.

Разберём, как это сделать правильно.

Инструкция 

1. Подключение к серверу

Переходим в FileZilla и подключаемся к нашему серверу, как мы это делали в пункте 4 (Подключение). Теперь нам уже не нужно переносить файлы, они уже там. 

2. Открытие файла

Как только вошли, нажимаем дважды на нашу папку и потом правой кнопкой мыши на сам файл, который мы хотим подредактировать. У вас должно получится вот так:

3. Редактирование

Нажимаем на «Просмотр/Правка» и далее выбираем наш IDE.

4. Сохранение изменений

После того как что-то поправили, мы сохраняем изменения Ctrl + S и переходим в FileZilla, нам высветится сообщение об изменении → Нажимаем «Да».

5. Перезапуск бота

Переходим в консоль Timeweb и перезапускаем бота командой:

pm2 restart main.py  

Готово! 

Чек-лист

  1. Внёс изменения

  2. Сохранил файл

  3. Перезапустил бота

  4. Проверил результат

Если вы не перезапустили бота, ничего не сохранится! 

Итог

Мы прошли полный цикл. Создали бота через BotFather, навайбкодили его логику через Claude с подключением к OpenRouter, задеплоили на сервер в Timeweb Cloud.

Что важно вынести из этого всего.

Вайбкодинг — не магия. Это просто другой способ работать. Вы не пишете код руками строка за строкой, а управляете моделью через диалог: ставите задачу, уточняете, правите. Главное — понимать, что вы хотите получить, и уметь проверять результат. Если этого нет, никакой ИИ не спасёт.

Итерации важнее идеального промпта с первого раза. Спросили, посмотрели, уточнили, поправили. Диалог, а не монолог.

Бот, которого мы собрали — база. Дальше его можно развивать: добавить кнопки, сохранение истории диалогов в базу данных, поддержку голосовых сообщений, картинок, генерацию через другие модели. Всё это делается через те же итерации с моделью.

Если на каком-то этапе было непонятно или что-то пошло не так — перечитывайте логи, уточняйте промпты, пробуйте снова

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

100%Да1

0%Нет0

Проголосовал 1 пользователь. Воздержавшихся нет.