awesome-everything EN
↑ Обратно к восхождению

AI / LLM

Бюджеты на LLM: асимметрия токенов, роутинг и kill switch

Суть Output-токены стоят ~5x от input, а system prompt + история + RAG-контекст пересылаются каждый ход — поэтому зацикленный агент сжигает тысячи за ночь. Роутинг, кэширование и жёсткие лимиты бюджета на запрос держат трату в рамках.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на junior-высоте — поверхность
◷ 17 min

Вечер пятницы, агент выкатывается за фича-флагом. У него есть tool-loop — observe, think, act, repeat — и нет лимита на итерации. Документ, который он подтягивает, ссылается на другой, тот — на третий. Агент дописывает каждый в контекст и пересылает весь растущий транскрипт модели каждый ход. К понедельнику счёт показывает $4 300 за одну «задачу», которая так и не завершилась. Месячный алерт на $1 000 сработал — в 2 ночи, в Slack-канал, который по выходным никто не читает.

Output-токены — дорогая половина

Первое, что удивляет инженеров в их первом счёте: input и output стоят не одинаково. У всех текущих фронтир-моделей output идёт примерно в 5x от input. На май 2026 Anthropic указывает Haiku 4.5 за $1/M input и $5/M output, Sonnet 4.6 за $3/$15, Opus 4.7 за $5/$25. GPT-4o у OpenAI — $2.50/$10, та же 4x-асимметрия.

Рычаг, который это даёт, конкретен: многословный ответ стоит куда дороже многословного вопроса. Ограничение max_tokens, просьба о кратком или структурированном выводе и запрет модели «рассуждать вслух» в финальном ответе — всё это бьёт по дорогой стороне баланса. Сеньор, разбирающий скачок стоимости, сначала проверяет объём output, а не input.

Модель (май 2026)Input /MOutput /MOutput : input
Claude Haiku 4.5$1.00$5.005x
Claude Sonnet 4.6$3.00$15.005x
Claude Opus 4.7$5.00$25.005x
OpenAI GPT-4o$2.50$10.004x
GPT-4o mini$0.15$0.604x

Где деньги на самом деле накапливаются

Таблица цен — ловушка, если на ней остановиться, потому что она оценивает один вызов. Счёт же строится на том, что LLM stateless: каждый ход пересылает весь контекст целиком. Три вещи тихо раздувают этот пересылаемый payload.

System prompt отправляется на каждом ходу. System prompt в 4 000 токенов в разговоре из 50 ходов — это не 4 000 токенов, а 200 000 input-токенов, оплаченных 50 раз. История разговора растёт линейно: ход 20 тащит с собой ходы 1–19, поэтому цена за ход растёт по ходу чата, а длинная сессия квадратична по сумме. RAG-контекст — самая тяжёлая разовая добавка: запихивать 30 извлечённых чанков (скажем, 15 000 токенов) в каждый запрос, когда хватило бы 3, — это 5x-множитель input-стоимости, которого никто не видит до счёта.

Вот почему postmortem про runaway-loop — каноничный AI-инцидент по стоимости. Агент, который дописывает результат tool в контекст на каждой итерации без лимита, не просто делает больше вызовов — каждый вызов больше предыдущего. Стоимость растёт суперлинейно. Среди реальных случаев — агент, сделавший 14 000 избыточных tool-вызовов, и разработчики, наблюдавшие, как $15 испаряются меньше чем за 10 минут. Урон нанесён до того, как человек вообще посмотрит.

Почему это работает

Почему месячный лимит не спас пятничного агента? Лимиты трат у провайдера работают на уровне биллингового цикла — это бэкстоп, измеряемый в днях, а не в секундах. Лимит $1,000/month не может остановить цикл, сжигающий $6 за 30 секунд; к тому моменту, как сумма цикла пересечёт черту, тысячи уже потрачены. Тормоз должен жить in-process, на скорости трат на запрос и на сессию, а не в биллинговом дашборде.

Роутинг: не плати по тарифу Opus за работу для Haiku

Большинство запросов в реальном продукте несложные. Классификация, извлечение, короткие переписывания, решения о маршрутизации — маленькая дешёвая модель справляется с ними за долю стоимости. Паттерн сеньора — каскад: отправить запрос сначала в дешёвую модель и эскалировать на дорогую только когда проверка качества провалилась или задача распознана как сложная заранее. Перенаправление лёгких 80% на Haiku ($1/$5) вместо Opus ($5/$25) — это 5x-срез на этой доле без видимой пользователю потери.

Трейдофф реален и стоит назвать: роутинг добавляет шаг классификации (latency, иногда собственный вызов модели), а неверный маршрут тихо ухудшает качество. Ты платишь за путь эскалации — дешёвый вызов плюс дорогой ретрай стоят дороже, чем сразу пойти в дорогую модель, когда дешёвая провалилась. Роутинг выигрывает, только если дешёвая модель преуспевает достаточно часто, чтобы среднее село заметно ниже плоского дорогого тарифа. Меряй частоту эскалаций; если она выше ~30%, твой роутер или твоя дешёвая модель неверны.

Prompt caching: перестань платить за неизменный префикс

Самый крупный рычаг против пересылаемого контекста — prompt caching. Ты помечаешь стабильный префикс — system prompt, определения tool, фиксированный RAG-корпус — и провайдер его кэширует. У Anthropic чтение из кэша стоит 0.1x от базового input-тарифа (скидка 90%), а запись для заполнения кэша — 1.25x (TTL 5 минут) или 2x (TTL 1 час) от базового. Арифметика: 5-минутный кэш окупается после первого попадания; часовой — после второго.

Это превращает катастрофу «system prompt в 4 000 токенов, отправленный 50 раз» в одну полноценную запись плюс 49 чтений по десятой цены. Кэширование не помогает частям, которые меняются каждый ход (последнее сообщение пользователя, свежее извлечение), поэтому инженерный ход — упорядочить промпт под кэш: стабильное содержимое первым, изменчивое последним, чтобы кэшируемый префикс был как можно длиннее.

Выбери лучший вариант

Чат-продукт пересылает system prompt в 4 000 токенов каждый ход в сессиях по 50 ходов, и input-счёт доминирует в тратах. Выбери фикс с наибольшим рычагом.

Викторина

У текущих фронтир-моделей как цены на output-токены соотносятся с input?

Викторина

Автономный агентский цикл без бюджета на запрос работает ночью и выставляет счёт $4 300. Почему месячный лимит трат на $1 000 его не остановил?

Расставь шаги по порядку

Расставь контроли стоимости от самого дешёвого/первой линии до kill switch последней инстанции:

  1. 1 Перенаправь лёгкое большинство на маленькую дешёвую модель; эскалируй только на провале
  2. 2 Prompt-кэшируй стабильный префикс, чтобы пересылаемый контекст упал до 0.1x
  3. 3 Ограничь max_tokens и обрежь историю/RAG до того, что нужно задаче
  4. 4 Применяй бюджет на запрос и на пользователя in-process, перед каждым вызовом
  5. 5 Жёсткий kill switch: размыкай circuit breaker по скорости трат или счётчику итераций
Вспомните перед уходом
  1. 01
    Разбери по шагам, почему длинный агентский цикл стоит суперлинейно, а не просто линейно относительно числа итераций.
  2. 02
    Твой input-счёт доминирует над output, и трейсинг показывает один и тот же system prompt в 4 000 токенов, отправляемый каждый ход. Какие конкретные шаги это срежут и каков порядок рычага?
Итог

Трату на LLM определяет не столько заголовочный тариф за токен, сколько то, что пересылается каждый ход, и сколько output ты генерируешь. Output стоит примерно 5x от input у текущих моделей (Haiku 4.5 $1/$5, Sonnet 4.6 $3/$15, Opus 4.7 $5/$25, GPT-4o $2.50/$10), поэтому сначала ограничивай output и проси краткие ответы. Реальный накопитель — контекст: stateless-модель пересылает system prompt, всю растущую историю и все RAG-чанки на каждом вызове, поэтому длинный агентский цикл стоит суперлинейно, а runaway-loop может сжечь тысячи за ночь. Перенаправляй лёгкое большинство на дешёвую модель и эскалируй только на провале; prompt-кэшируй стабильный префикс, чтобы уронить пересылаемый контекст до 0.1x; обрезай историю и ужимай извлечение. И главное — применяй бюджеты на запрос и на пользователя in-process с жёстким kill switch по скорости трат: месячные лимиты провайдера — это бэкстоп, измеряемый в днях, слишком медленный, чтобы остановить цикл, тратящий доллары в секунду.

Продолжить восхождение ↑LLM cost budgets: тест с множественным выбором
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources4
expand
  1. 01
  2. 02
  3. 03
  4. 04

Trademarks belong to their respective owners. Editorial reference only.