Тот самый момент, когда ты думаешь «ну ещё один вызов к API» — и получаешь счёт на $500
В начале 2026 года мы собрали команду. Амбициозную. Зелёную. С верой в то, что прикрутить Claude к Telegram-боту — это дело пары спринтов. Спустя три месяца мы поняли: мы не строим помощника, мы строим финансовую чёрную дыру. И это не метафора. Это история про то, как архитектура, которую ты выбираешь на старте, может превратить стартап в зомби — цифровые зомби, которые не знают, что уже мертвы.
Предупреждение: если вы планируете запустить AI-бота на Telegram и считаете, что главная проблема — написать промпт, эта статья для вас. И для вашего кошелька.
Первый кирпич: Sidekiq в роли дирижёра оркестра, где каждый музыкант — LLM
Мы выбрали Rails + Sidekiq как backbone. Звучит логично: фоновая обработка запросов, очереди, ретраи. Но когда каждый job в Sidekiq — это вызов к Claude с генерацией ответа длиной в 2000 токенов, а параллельно Flux рисует обложку по описанию, очередь превращается в перегруженный мост. Нагрузка на ИИ-агентов растёт нелинейно: один пользователь отправляет 10 сообщений за минуту — и Sidekiq начинает копить джобы, как белка орехи. Результат: время ответа — 45 секунд, пользователь уходит.
Мы пытались ставить приоритеты: срочные вызовы — в очередь с высоким приоритетом, генерация изображений — в низкую. Но API Claude и Flux не знают про наши очереди. Они просто отдают ответ с одинаковой задержкой. Хуже того: таймауты. Когда job ждёт ответа больше 30 секунд, Sidekiq его убивает. Но API уже насчитал токены. Ты платишь за мёртвый запрос. И так — сотни раз в день.
Зависимость от API — это флирт, который заканчивается разводом
Второй грабли — зависимость от API. Мы использовали Claude (версия 4.5 на тот момент) для текста и Flux Pro 1.1 для изображений. Всё работало ровно до того дня, когда Anthropic обновил модель и мы получили ответы на 40% короче без предупреждения. Ты не контролируешь модель — её контролирует кто-то другой. Бомба замедленного действия в том, что провайдер может в любой момент сменить поведение, и твой «умный» бот станет тупить.
Ещё веселее: капризные лимиты rate limit у Flux. Чтобы сгенерировать 100 изображений в час, нужно отправлять запросы пачкой по 5, но с паузами. Мы писали свой ретрай-механизм на Ruby, который в итоге стал больше, чем бизнес-логика. Modelence и будущее «виб-кодинга» — вот как раз про то, что инфраструктура для AI-приложений превращается в отдельный продукт.
Claude + переобучение: история о том, как мы научили бота материться
Мы хотели, чтобы помощник лучше понимал контекст диалогов. Решили дообучить Claude под нашу задачу. Взяли 5000 диалогов из поддержки, размеченных командой. Запустили fine-tuning на Anthropic API. Через два дня получили модель, которая идеально отвечала на вопросы про расписание, но в 30% случаев вставляла саркастичные фразы из датасета. Потому что в логах поддержки были шутки операторов. Переобучение модели — это обоюдоострый меч.
Пришлось переразмечать датасет, чистить аномалии и считать стоимость генерации заново. К слову, fine-tuning на 5000 примерах обошёлся нам в $7 000. И это только обучение. Каждый инференс стал дороже на 15%. В итоге мы отказались от этой идеи и вернулись к промпт-инжинирингу. Почему AI-агенты не смогли собрать продакшен-SaaS — читайте, там много общего.
Космическая стоимость генерации: как мы продали почку, не успев запуститься
Давайте цифры. Claude 4.5 — $15 за миллион входных токенов, $75 за миллион выходных. Средний диалог: 200 токенов ввода, 800 токенов вывода. Одно сообщение — около $0.066. Flux Pro: $0.05 за изображение. Если бот обрабатывает 1000 диалогов в день (энормальная база для стартапа без маркетинга), это $66 в день только на Claude. Плюс Flux. Плюс ретраи, плюс перегенерации, когда ответ не понравился. Итог: $3000–$4000 в месяц на модели. Для MVP с 200 активными пользователями.
Мы не учли, что каждый раз, когда пользователь нажимает «Повторить генерацию», мы платим заново. И такие нажатия — 20% всех запросов.
Решение, к которому мы пришли: внедрить кэширование частых запросов, ограничить количество регенераций на пользователя и перейти на смешанную модель — дешёвый LLM для простых ответов (например, Llama 3.3 через Groq) и Claude только для сложных. Фреймворк выживания для CDAO в 2026 описывает похожую стратегию: не класть все яйца в одну корзину с дорогими моделями.
Синдром «а давайте ещё одну фичу»: как инфраструктура стартапа трещит по швам
После того как мы кое-как устаканили базовую генерацию, команда захотела добавить «проактивные уведомления»: AI-агент сам предлагает помощь, если видит, что пользователь долго печатает. Для этого нужно было анализировать состояние печати в Telegram (есть такая фича в API), строить локальный таймлайн диалога и отправлять запрос в Sidekiq с низким приоритетом. Звучит круто. Но каждый такой «проактивный» вызов — это дополнительный запрос к Claude. И наши тесты показали: 40% пользователей просто игнорируют уведомления. А мы платим.
Инфраструктура стартапа — это не только серверы и очереди. Это ещё и финансовые лимиты, завязанные на каждую генерацию. Мы ввели жёсткое правило: каждая новая функция должна проходить аудит стоимости. Иначе стартап умирает не от отсутствия пользователей, а от счетов за API. IrisGo: проактивный AI-агент от экс-инженера Apple — интересно, как они решают эту проблему, но без раскрытия внутренностей неясно.
Что мы вынесли (кроме пустого кошелька)
Я не буду говорить «надо было сначала написать бизнес-план». Мы действовали как типичный стартап 2026: быстро, на адреналине, с мантрой «сначала релиз, потом рефакторинг». Но вот три вещи, которые мы бы сделали иначе:
- Разделить Sidekiq на два пула: один — для быстрых операций (сохранение в БД, отправка уведомлений), второй — для LLM с лимитом параллельных воркеров, равным лимитам API. И никаких ретраев, если джоб упал — пишем в лог и забываем. Дешевле потерять одно сообщение, чем насоздавать долгов.
- Сделать абстрактный слой для AI-моделей: чтобы переключение с Claude на Llama или Gemini было заменой одной строки в конфиге. Провайдеры блокируют — вы переключаетесь. Ручка для A/B тестирования цены и качества обязательна.
- Трекать стоимость каждого юзера: у нас были метрики DAU, но не было метрики «сколько потратил на этого пользователя». Внедрили после факапа. Оказалось, 5% пользователей генерируют 40% расходов. Пришлось для них ограничить количество вызовов. Да, недемократично, но иначе разорение.
В итоге наш telegram-бот жив, но переведён на режим «премиум-подписки» для тяжёлых запросов. Бесплатно — только дешёвая модель. И я смотрю на опыт EdTech с AI и думаю: может, встроить человеческую модерацию для дорогих генераций? Сэкономит деньги и улучшит качество. Но это уже другая история.
Если вы сейчас пишете своего AI-помощника, не забудьте проверить, что у вас есть кнопка «стоп-кран». Потому что когда Sidekiq начнёт штамповать джобы, а Claude — тратить ваши деньги, единственный способ не обанкротиться — вырубить рубильник. И молиться, чтобы инвесторы не увидели логов.