Универсальный Bloom: Evaluate ⏱ 9 мин экономия

Не зови шефа жарить тост: cost/latency-оптимизация

🧊 Won't Have 💧 Could Have ☀️ Should Have 🔥 Must Have
☀️ Should Have
Без этого агент будет работать — но счёт в конце месяца может тебя огорошить. Стоит знать всем, кто платит за результат, а не только запускает.

🤔 Зачем это читать

Бот работает. Гости довольны, ответы складные, на демо все хлопали. А потом приходит счёт за месяц — и ты залипаешь в цифру. Она в разы больше, чем кто-либо называл на старте. Ты идёшь к команде, и тебе говорят что-то про «токены» и «вызовы модели». Понятнее не становится, а деньги уже улетели.

Знакомо? Или другой вариант, не про деньги, а про время: тот же бот отвечает на простейший вопрос «у вас открыто в воскресенье?» — и думает над ним секунд десять, будто решает теорему. Гость в зале уже устал ждать и закрыл окно. Ты теряешь не рубли, а клиента.

В обоих случаях диагноз чаще всего один: ты гоняешь дорогую, мощную модель на каждую ерунду. Это как если бы в ресторане шеф-повар лично бросал всё и шёл жарить тост каждому, кто его попросил. Тост-то получится отличный. Но шеф стоит дорого, делает медленно, и пока он возится с тостом — VIP-стол ждёт горячее. Так нельзя вести кухню. И так нельзя вести AI-продукт.

После этой темы ты сможешь посмотреть на любой AI-продукт и оценить, не переплачивает ли он: правильно ли распределяет задачи по «мощности», где можно сэкономить без потери качества, а где экономия выйдет боком. Это переход от «бот работает, и слава богу» к «бот работает, и я знаю, во что мне обходится каждый его ответ — и могу это настроить».

Задержись на 10 секунд. Вспомни последний раз, когда тебя удивил счёт — за такси, за роуминг, за подписку, которой не пользовался. Откуда взялась лишняя сумма? Почти всегда — из мелочи, которая повторялась много раз и которую никто не считал поштучно. С AI-ботом ровно так же: один ответ стоит копейки, но их тысячи в день. Подержи эту картинку — к концу страницы ты будешь видеть, откуда в счёте берётся лишнее.

🍳 У каждого блюда есть себестоимость и время отдачи

Начнём с простого факта, который меняет всё. Когда твой бот отвечает гостю, это не бесплатно и не мгновенно. У каждого ответа есть себестоимость (сколько он стоит тебе в деньгах) и время отдачи — по-умному задержка (latency), то есть сколько секунд гость ждёт ответа. Ровно как у блюда на кухне: есть цена продуктов и есть время от заказа до подачи.

Откуда берётся себестоимость? Из двух вещей. Первая — какого повара ты позвал. Дорогая, мощная модель (та, что умеет долго рассуждать, — мы разбирали таких в теме 2.6 про reasoning-модели) — это шеф: берёт за работу много, делает дольше, но вытягивает сложное. Дешёвая быстрая модель — младший повар: берёт копейки, отдаёт за секунду, но на сложном спотыкается. Вторая — сколько продуктов ты выложил повару на стол. Чем больше текста ты скармливаешь модели за раз (вся история переписки, кипа документов, длиннющая инструкция), тем дороже выходит каждый ответ. Это те самые «токены» — кусочки текста, которыми оперирует модель; больше текста — больше токенов — больше денег.

И вот первый вывод владельца: цена и скорость — это не свойство «бота вообще», это результат твоих решений. Кого позвал готовить и сколько вывалил на стол — то и платишь. Значит, этим можно управлять. Не «бот дорогой, ничего не поделаешь», а «я выбрал гонять шефа на тосты — могу выбрать иначе».

🧑‍🍳 Шеф-экспедитор: правильный повар под правильную задачу

Главный рычаг экономии — самый простой по идее. Не звать шефа туда, где справится младший повар. На нормальной кухне этим занимается шеф-экспедитор: он смотрит на каждый заказ и кидает его на нужную станцию. Тост — младшему. Сложное авторское блюдо — шефу. Спорный случай (гость с десятью аллергиями) — вообще выносит к владельцу. Этим распределением мы уже занимались вплотную в теме 8.3 про маршрутизацию (routing) — здесь смотрим на него именно глазами денег и времени.

Посмотри, как раскладываются задачи по «мощности»:

Шеф-экспедитор раздаёт заказы по мощности
🍞
Младший повар
Дешёвая быстрая модель. Простое: понять, чего хочет гость, вытащить пару цифр, короткий типовой ответ. Копейки, доли секунды.
👨‍🍳
Шеф
Дорогая мощная модель. Сложное рассуждение: разобрать запутанную жалобу, собрать нестандартное предложение. Дороже и дольше — но тянет.
🛎️
Решает экспедитор, а не «всегда шеф»
Сначала глянуть на заказ, потом отправить на нужную станцию. Тост шефу — деньги и время на ветер. Авторское блюдо младшему — испорчено.

В деньгах разница огромна. Дешёвая модель против мощной может отличаться по цене не на проценты, а в десятки раз за один и тот же объём текста — точные цифры зависят от моделей и меняются чуть ли не ежемесячно (об этом ниже), но порядок именно такой. Представь: половина запросов к боту — это «когда работаете?» и «где вы находитесь?». Если каждый такой тост печёт шеф, ты переплачиваешь не чуть-чуть. Ты переплачиваешь в разы — каждый день, тысячи раз.

Главная мысль всей темы: «самую мощную модель на всё» — это не осторожность, а дыра в бюджете. Качество и стоимость — это не «или-или», это настраиваемый рычаг. Ты не обязан выбирать между «дёшево и плохо» и «дорого и хорошо» для всего разом. Ты раскладываешь поток: простое — дешёвой модели, сложное — дорогой. Каждой задаче — свою мощность.

🥫 Ещё три приёма: заготовки, лёгкий стол и подменный повар

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

Заготовки заранее — это кэширование (запоминание частых ответов). На кухне базовый соус варят утром большой кастрюлей, а не с нуля под каждый заказ. В AI то же: если сто человек в день спрашивают «какой у вас график?», незачем сто раз гонять модель за одним и тем же ответом — посчитали один раз, сохранили, дальше отдаём готовое мгновенно и бесплатно. Но есть ловушка, и она важная: заготовка протухает. Поменялся график работы — а бот всё отдаёт вчерашний сохранённый ответ. Поэтому кэш нужно вовремя сбрасывать (инвалидировать) — выбрасывать протухшую заготовку, как испорченный соус из холодильника. Кэш без присмотра врёт с уверенным лицом.

Лёгкий стол — это сжатие контекста. Помнишь, чем больше текста на столе, тем дороже? Значит, не вываливай повару всё подряд. Не вся история переписки, а её короткая выжимка. Не двадцать документов, а три нужных абзаца. Меньше токенов — меньше денег и быстрее ответ, без потери сути. (Это прямое продолжение разговора про то, что лишнее на столе мешает не меньше нехватки, — мы разбирали это в теме 3.7 про то, когда контекст вредит.)

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

🧾 Как это выглядит изнутри (на пальцах)

Разложим логику шефа-экспедитора на псевдокоде — это просто логика на человеческом языке, не настоящий код. Сцена: на бот сыплются запросы, и для каждого надо решить, кого звать и как сэкономить.

Псевдокод (на пальцах) · экспедитор раздаёт запрос по мощности # это НЕ настоящий код, а логика на человеческом языке
пришёл запрос от гостя

# --- сначала загляну в заготовки (кэш) ---
ЕСЛИ такой вопрос уже спрашивали и ответ свежий:
   отдать готовый ответ из кэша # мгновенно и бесплатно

# --- иначе решаю, какой повар нужен ---
ИНАЧЕ ЕСЛИ запрос простой (узнать график, статус заказа, короткий ответ):
   позвать дешёвую быструю модель # младший повар жарит тост
ИНАЧЕ (запрос сложный, нужно рассуждать):
   сначала сжать контекст до сути # лёгкий стол = дешевле
   позвать дорогую мощную модель # шеф готовит авторское

# --- если выбранный повар перегружен ---
ЕСЛИ модель не отвечает или перегружена:
   уйти на запасной путь (fallback) # подменный повар, лишь бы не простой

свежий ответ положить в заготовки на будущее (кэш)

Заметь главное: «позвать модель» — это не первое и не единственное действие. Сначала экспедитор смотрит в заготовки, потом прикидывает мощность, попутно облегчает стол, а на случай завала держит подмену. И тонкий момент: реши экспедитор по-глупому — например, «длинный запрос = сложный, короткий = простой» — и он промахнётся. Короткое «отмени мой заказ и верни деньги по статье такой-то» бывает куда сложнее длинного пересказа отзыва. Маршрутизировать по длине текста — плохой экспедитор. Об этом — в самом тренажёре и в AI-чутье ниже.

Прежде чем идти в тренажёр, прикинь гипотезу. Возьми любой знакомый AI-бот (поддержка банка, ассистент в приложении) и спроси себя: если бы половину его запросов составляли простейшие «где, когда, сколько», а другую половину — реально сложные разборы, на чём бы он терял деньги впустую? Держи свой ответ в голове. Сейчас проверишь его на наборе запросов.

🎮 Ты — шеф-экспедитор: раздай поток по мощности

Перед тобой четыре запроса, которые приходят твоему боту. Для каждого прими два решения: (1) какой повар нужен — дешёвая быстрая модель или дорогая мощная; (2) какой приём экономии тут уместнее всего — кэш (заготовка), сжатие контекста (лёгкий стол) или продуманная маршрутизация (разглядеть, что задача не та, какой кажется). Жми кнопки — разбор появится сразу. Это не экзамен, а тренировка взгляда владельца. Итог увидишь, когда примешь все решения.

📖 Ключевые понятия

Себестоимость и задержка (latency)
Два «ценника» каждого ответа бота: сколько он стоит тебе в деньгах и сколько секунд гость его ждёт. Оба зависят от твоих решений — какую модель позвал и сколько текста выложил ей на стол. Значит, обоими можно управлять.
Маршрутизация по мощности (routing)
Главный рычаг экономии: направлять задачу на правильную «мощность». Простое (понять намерение, вытащить пару цифр, короткий ответ) — дешёвой быстрой модели; сложное рассуждение — дорогой. Разбирали вплотную в теме 8.3. Не «самую мощную на всё», а каждой задаче — свою.
Кэширование (запоминание частых ответов)
Заготовка-соус, сваренная заранее: частый одинаковый ответ считают один раз и сохраняют, дальше отдают мгновенно и бесплатно. Ловушка — заготовка протухает: данные поменялись, а кэш отдаёт старое. Поэтому кэш надо вовремя сбрасывать (инвалидировать).
Сжатие контекста
Лёгкий стол: дать модели короткую выжимку вместо всей переписки и кипы документов. Меньше токенов (кусочков текста) — дешевле и быстрее ответ, при сохранённой сути.
Запасной путь (fallback)
Подменный повар на случай завала: если основная модель перегружена или недоступна, бот уходит на запасной вариант — модель попроще или заготовленный ответ, — лишь бы не оставить гостя без ответа.

🛡️ Частые заблуждения

«Ставим самую мощную модель на всё — так надёжнее, точно не ошибёмся»

Это не надёжность, а раздутый счёт. На простых типовых запросах (а их обычно большинство) мощная модель даёт ровно тот же ответ, что и дешёвая, — только в десятки раз дороже и медленнее. «На всякий случай дорого» оплачивается каждый день тысячами лишних рублей. Надёжность — это правильный повар под задачу, а не самый дорогой на любую ерунду.

«Экономия на модели всегда хороша — берём подешевле и не паримся»

Тоже крайность, и опасная. Как поймать этот перекос у себя? Симптом простой: жалобы стали приходить не на скорость и не на счёт, а на смысл ответов — «бот уверенно сказал не то». Если экономия уронила качество там, где цена ошибки высока (деньги, права, обязательства клиента), дешёвая модель «сэкономит» ровно до первого дорогого промаха — а разбирать его выйдет дороже всей экономии за месяц.

«Раздать задачи по мощности просто: длинный запрос — сложный, короткий — простой»

Это путь плохого экспедитора. А по какому симптому в счёте видно, что роутер судит по длине? Перекос в обе стороны разом: счёт дороже, чем ждёшь (длинную болтовню зря гоняют к шефу), и при этом жалобы на неверные ответы по коротким, но каверзным запросам (их роняют на младшего). Дорого и плохо одновременно — почти верный признак, что задачи делят по размеру текста, а не по сути.

«Настроили кэш-заготовки один раз — и забыли, дальше сами работают»

Самая тихая из ловушек. Заготовка протухает: поменял график, цены или условия — а бот всё уверенно отдаёт вчерашний сохранённый ответ, и никто не замечает, пока не придёт жалоба. Кэш — это не «настроил и забыл», а «настроил и приглядывай»: у каждой заготовки должен быть момент, когда её сбрасывают (инвалидируют). Симптом проблемы — бот отвечает складно, но фактом из прошлого месяца.

🧠 AI-чутьё (AI Judgment)

Качество vs стоимость — настраиваемый рычаг, а не «дороже = лучше»

Главная рамка темы: «самую мощную модель на всё» — это не осторожность, а самый частый способ незаметно раздуть счёт. Дорогая модель «на всякий случай» означает, что ты платишь премиум-цену за тосты, которые любой младший повар испёк бы за копейки. И это не мелочь на полях, а одна из причин, по которой AI-проекты буксуют: по прогнозу Gartner, более 40% проектов автономных AI-агентов будут закрыты к концу 2027 года — среди причин прямо названы растущие расходы, неясная отдача от вложенного и недостаточный контроль рисков (Gartner, июнь 2025; прогноз, перепроверять — на момент весны 2026). Деньги, которые утекают на «дорого на всё», — это часть той самой неясной отдачи, из-за которой проекты сворачивают.

Но у экономии есть и обратная крайность, и её тоже надо держать в голове: экономия на модели бьёт по качеству. Если из жадности посадить дешёвую модель на сложное рассуждение — про условия возврата, про деньги клиента, про юридический нюанс, — она ответит складно и уверенно, но неверно. А неверный ответ про деньги клиента стоит дороже любой экономии на модели. Поэтому правильная цель — не «всё дёшево» и не «всё дорого», а осознанный баланс: дёшево там, где задача типовая и цена ошибки низкая, дорого там, где нужно настоящее рассуждение и промах дорого обходится.

И третье, тонкое. Сама по себе идея «раздавать по мощности» правильная, но примитивный распределитель хуже, чем его отсутствие. Роутер, который судит «по длине текста» или другому грубому признаку, будет регулярно отправлять простое к дорогому шефу (переплата), а сложное — к дешёвому младшему (брак). Практический вывод владельца: оценивая AI-продукт, не довольствуйся ответом «да, у нас есть маршрутизация». Спроси, по какому признаку она решает и как проверяют, что решает верно. Хороший экспедитор смотрит на суть заказа — и за ним кто-то приглядывает, не путает ли он станции.

🎯 Практика

Одно задание на десять минут — оно превращает книжную «оптимизацию» в конкретный разговор, который ты сможешь вести с командой.

  1. Возьми любой знакомый AI-бот или агент — свой рабочий, или тот, с которым общаешься как клиент (поддержка банка, маркетплейса, оператора связи). Выпиши 5 - 7 типичных запросов, которые ему приходят.
  2. Напротив каждого пометь мощность: это «тост» (простое, типовое — дешёвая модель) или «авторское блюдо» (нужно настоящее рассуждение — дорогая)? Осторожно с ловушкой: суди по сути, а не по длине текста.
  3. Теперь подбери приём экономии к каждому: что повторяется одинаково и часто — кандидат на кэш; где много лишнего текста — на сжатие; что притворяется простым, а на деле сложное (или наоборот) — повод для умной маршрутизации.
  4. Прикинь грубо: какая доля запросов — «тосты»? Если большинство, а бот гоняет на них мощную модель — ты нашёл, откуда в счёте лишнее. Теперь сформулируй сам один вопрос к команде, который вытекает из твоего расклада. Если доля «тостов» большая — про что именно ты спросишь в первую очередь? А если основная боль в перегрузе или в протухших ответах — вопрос будет другой.

Помнишь тот шокирующий счёт за месяц из начала страницы? Теперь у тебя есть язык, чтобы его разобрать: не «бот дорогой», а «вот эти запросы зря гоняют шефа, вот эти можно держать в заготовках, а вот тут стол перегружен лишним текстом». Это и есть разница между «плачу и удивляюсь» и «настраиваю рычаг».

🔗 Что дальше

Ты дошёл до одного из последних кусочков паззла — как сделать так, чтобы готовый AI-продукт не разорял хозяина. Дальше курс собирает всё в единую картину.

Связанные темы (уже можно открыть):

Дальше в модуле и курсе: