Как мы делали конструктор Telegram-ботов с AI: хотел «быстрый инструмент для гипотез», а получился целый продукт
История о том, как утилита «на вечер» для проверки идей с телеграм-ботами превратилась в полноценный визуальный конструктор ChatBoss — с AI-блоками, изоляцией каждого бота в своём Docker-контейнере и фичей, где ИИ собирает бота за вас по небольшой анкете. И почему всё это теперь можно взять бесплатно.
С чего всё началось: мне просто надоело переписывать одно и то же
У меня регулярно появлялись идеи, которые хотелось проверить именно в Telegram: воронка для записи на услуги, бот-консультант на GPT, приём заказов, квиз. Проблема в том, что каждая такая «проверка теории» начиналась одинаково: новый проект на Telegraf, копипаста обвязки из прошлого бота, хардкод сценария, деплой руками. На проверку одной гипотезы уходило несколько вечеров — и большая часть времени тратилась не на саму идею, а на инфраструктуру вокруг неё.Готовые конструкторы я, конечно, смотрел. Но везде упирался в одно и то же: либо AI прикручен «сбоку» и умеет только отвечать текстом, либо нужный сценарий не собирается без костылей, либо ценник такой, что дешевле написать самому.Поэтому план был скромный: сделать себе быстрый внутренний инструмент. Панелька, где можно накидать сценарий бота из готовых кусков, нажать кнопку — и бот живой. Никакого продукта, никаких пользователей. Только я и мои гипотезы.Спойлер: всё зашло слишком далеко.
Первая версия была честной времянкой: админка на React, бэкенд на Express, сценарии в JSON руками. Но как только сценариев стало больше трёх, руки сами потянулись рисовать их, а не писать.Так появился визуальный редактор на канвасе (под капотом — AntV X6, графовый движок): блоки, стрелки, ветвления. И вместе с ним — главное архитектурное решение проекта, о котором я ни разу не пожалел. Система разделена на две независимые половины:-**Редактор** — то, где пользователь рисует граф сценария. Граф прогоняется через парсер, превращается в нормализованную конфигурацию блоков и сохраняется в MySQL.-**Рантайм** — отдельное приложение на TypeScript + Telegraf, которое читает эти блоки из базы и исполняет их через собственный flow engine: движок идёт по графу, вызывает обработчик нужного блока, передаёт данные дальше.Между половинами — только контракт данных. Редактор ничего не знает про Telegram API, рантайм ничего не знает про канвас. Это позволило развивать их параллельно и не превращать проект в клубок.Вторая ключевая штука — **каждый бот живёт в своём Docker-контейнере**. Не «все боты в одном процессе с неймспейсами», а физически отдельный контейнер на бота. Дороже по ресурсам? Да. Зато упавший или зациклившийся бот одного пользователя никак не задевает остальных, а данные ботов изолированы вплоть до отдельных баз. Для платформы, где чужой сценарий — это по сути чужой недоверенный код, спокойный сон того стоит.Сценарий собирается из блоков: вывод текста, ожидание ввода, кнопочные меню, HTTP-запросы во внешние API и AI-блоки. Данные текут между блоками через переменные вида `{{previous.text}}` или `{{vars.имя}}` — тот минимум шаблонизации, после которого конструктор перестаёт быть «набором открыток» и становится языком.AI-блок при этом не просто «спроси GPT и покажи ответ». У него несколько режимов: обычный диалог, ветвление (модель сама решает, по какой ветке сценария пойти дальше), извлечение данных из переписки в таблицы и запись клиентов на услуги — ассистент сам смотрит занятые слоты и бронирует время. Именно на этих режимах держатся самые популярные сценарии: салоны, клиники, барбершопы, доставка.
Интересные события по дороге (они же грабли)
**История про блокировки.** В какой-то момент у части российских пользователей сайт начал «моргать»: DPI-оборудование операторов резало соединения до зарубежного сервера. Решение получилось двухэтажным: отдельный прокси-сервер в РФ плюс агрессивный прогрев кеша — фронтенд при загрузке скачивает сразу все свои чанки в Service Worker, чтобы дальше работать даже при нестабильном канале.А потом эта же оптимизация красиво выстрелила нам в ногу. Для SEO мы пре-рендерим страницы через Puppeteer, и классический приём «жди, пока сеть затихнет» (networkidle) перестал работать: сеть не затихала никогда — приложение же специально качает все чанки. Пре-рендер молча падал по таймауту. Диагноз заняла куда больше времени, чем фикс: ждать надо не тишины в сети, а конкретных признаков готовности страницы. Отдельным бонусом выяснилось, что Chrome троттлит таймеры в фоновых вкладках, поэтому рендерить страницы параллельно в нескольких вкладках нельзя — meta-теги просто не успевают обновиться. Рендерим строго по одной.**История про то, кто на самом деле пишет код.** Самая мета-часть проекта: конструктор ботов с AI во многом строится… AI. Рабочий процесс устроен так: задачи из трекера раздаются нескольким AI-агентам (Claude Code), каждый работает в изолированном git worktree со своей веткой, задачи сгруппированы в «волны» — сначала волна с фундаментом, потом параллельные волны поверх него, между волнами обязательный гейт с ревью (тоже автоматизированным) и мержем. По сути это маленький конвейер разработки, где я выступаю тимлидом для команды агентов. Не буду рассказывать, что всё идеально — агенты умеют забыть закоммитить «фундамент» и уронить целую волну — но скорость проверки продуктовых гипотез выросла в разы. Забавно закольцевалось: инструмент для быстрой проверки гипотез теперь сам развивается как поток быстрых гипотез.
Что получилось в итоге
Сегодня ChatBoss — это полноценный визуальный конструктор Telegram-ботов:- канвас с блоками и ветвлениями, где сценарий любой сложности собирается мышкой;- AI-ассистенты с режимами диалога, ветвления, сбора данных и записи на услуги;- приём оплат, рассылки, таблицы данных, аналитика по каждому боту;- больше двадцати готовых шаблонов под конкретные ниши: салон красоты, клиника, стоматология, ресторан, фитнес-клуб, автосервис, доставка еды, онлайн-школа, поддержка клиентов и другие — берёшь шаблон, меняешь тексты, запускаешь;- каждый бот — в изолированном контейнере со своими данными.Свою исходную задачу проект выполнил полностью: я сам проверяю на нём собственные идеи, и то, что раньше занимало вечера, теперь занимает минуты. Но останавливаться на «инструменте для себя» было уже странно.Поэтому — да, **ChatBoss бесплатный**. Зарегистрироваться и собрать работающего бота может любой желающий, без карты и триальных таймеров. Платить нужно только за то, что реально стоит денег — расход AI-токенов, и то по-честному, по факту использования. Мне важно, чтобы порог входа в «проверить идею с телеграм-ботом» был нулевым — ровно та боль, с которой всё началось.
Что дальше: ИИ собирает бота за вас
Фича, которая вот-вот выйдет и которой я горжусь больше всего: **AI сам собирает бота по небольшой анкете**.Работает так: вы отвечаете на несколько вопросов о своём бизнесе — чем занимаетесь, какие услуги, как зовут, какой тон общения. Дальше модель получает «скелет» подходящего шаблона и генерирует план правок: какие тексты заменить, как переименовать кнопки, чем наполнить промпт ассистента. Технически интересный момент — мы принципиально не даём модели свободно редактировать конфигурацию бота: её ответ проходит через строгий валидатор с allow-list полей, и применяется только то, что прошло проверку. Никаких «ИИ что-то нагенерил, и бот сломался»: структура сценария остаётся выверенной шаблонной, ИИ отвечает только за наполнение. Черновик генерируется бесплатно — платите (токенами) только если результат понравился и вы его применяете.По сути это следующий виток той же исходной идеи: сначала я сокращал путь от «идеи бота» до «работающего бота» для себя, теперь — для человека, который вообще не хочет разбираться в блоках и стрелках. Анкета на две минуты — и у тебя не пустой канвас, а почти готовый бот под твой бизнес.
Если хотите потрогать руками — жто бесплатно, а мне будет полезен любой фидбек: проект вырос из личной боли, и лучший способ его развивать — чужие боли, о которых я ещё не знаю.