Оптимизация расходовРазбор
Как рассчитать расходы AI-агента
Почему в счёте агента почти всё — входные токены, формула для расчёта до запуска, разобранный пример на 30 шагов и семь способов сократить расходы.

Содержание
AI-агент делает не один запрос, а десятки, и на каждом шаге заново отправляет растущий диалог. Поэтому в счёте агента почти всё — входные токены, а привычная по чатам интуиция «цена за ответ» здесь не работает. Разберём, как оценить стоимость до запуска агента и куда на самом деле уходят деньги.
Формула#
Стоимость одного запроса — это входные токены, умноженные на цену входа, плюс выходные токены, умноженные на цену выхода. Цены указываются за миллион токенов:
request_cost = input_tokens / 1,000,000 × input_price
+ output_tokens / 1,000,000 × output_priceСтоимость задачи — сумма по всем запросам, которые агент сделал, пока её решал.
Почему у агентов почти всё — вход#
На каждом шаге агент отправляет модели:
- системный промпт и описания инструментов;
- всю историю на этот момент — прошлые сообщения, предыдущие ответы модели и результаты инструментов (содержимое файлов, вывод команд, результаты поиска);
- новую инструкцию.
Модель обычно отвечает коротким сообщением или вызовом инструмента. Затем результат инструмента добавляется в историю, и следующий шаг снова отправляет всё. Вход каждого шага растёт, а выход остаётся небольшим.
Разберём пример#
Условия (допущения — подставьте цифры своего агента):
- системный промпт и описания инструментов: 6 000 токенов;
- каждый шаг добавляет в историю 1 500 токенов результатов инструментов и 500 токенов ответа модели;
- задача занимает 30 шагов;
- модель: DeepSeek-V4-Flash — $0.0221 за 1M входных токенов и $0.10 за 1M выходных (текущие цены).
Вход шага n — 6 000 + (n − 1) × 2 000 токенов. За 30 шагов:
- весь вход: 30 × 6 000 + 2 000 × (0 + 1 + … + 29) = 180 000 + 870 000 = 1 050 000 токенов;
- весь выход: 30 × 500 = 15 000 токенов;
- стоимость: 1,05 × $0.0221 + 0,015 × $0.10 ≈ $0.0247 за задачу.
На вход приходится 98,6% токенов и почти вся стоимость. Насколько вход преобладает, зависит от сценария: длинные ответы, генерация файлов и рассуждающие модели увеличивают долю выхода, а сокращённая история и короткий вывод инструментов уменьшают долю входа.
Та же задача на всех моделях по текущим ценам и, для сравнения, по справочным ценам OpenRouter:
| Модель | Вход $/1M | Выход $/1M | Стоимость | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.027 | $0.08 | $0.0296 | $0.0534 |
| DeepSeek-V4-Flash | $0.0221 | $0.10 | $0.0247 | $0.0264 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.0548 | $0.333 |
1 050 000 входных и 15 000 выходных токенов всего. Цены за 1M токенов актуальны и меняются вместе с нашими тарифами; столбец OpenRouter показывает справочные цены для той же нагрузки.
Расчёт в коде#
Тот же расчёт в виде функции — меняйте допущения и цены:
def estimate(steps, base_tokens, tool_tokens, out_tokens, price_in, price_out):
"""Токены и стоимость одной задачи агента. Цены — $ за 1M токенов."""
grow = tool_tokens + out_tokens # сколько каждый шаг добавляет в историю
total_in = steps * base_tokens + grow * steps * (steps - 1) // 2
total_out = steps * out_tokens
cost = (total_in * price_in + total_out * price_out) / 1_000_000
return total_in, total_out, round(cost, 5)
# примерные цены, $ за 1M токенов — подставьте текущие из таблицы цен ниже
print(estimate(30, 6_000, 1_500, 500, price_in=0.10, price_out=0.40))
# (1050000, 15000, 0.111)Обратите внимание на квадратичный член: если шагов вдвое больше, вход вырастает примерно вчетверо. Длинные сессии дорожают не из-за отдельного шага, а потому что каждый шаг несёт всю историю.
Измеряйте, а не угадывайте#
В каждом ответе есть usage. (вход) и usage. (выход). Запишите их для каждого шага реальной задачи, умножьте на текущие тарифы — и получите фактическую стоимость. В личном кабинете использование также видно по моделям и по дням.
Актуальные тарифы — те же данные, что на странице цен:
| Модель | Контекст | Вход $/1M | Выход $/1M | OpenRouter вход | OpenRouter выход |
|---|---|---|---|---|---|
| GLM-5.3-Flash reasoning временно недоступно | 390K | $0.027 | $0.08 | $0.048 | $0.20 |
| DeepSeek-V4-Flash временно недоступно | 380K | $0.0221 | $0.10 | $0.016 | $0.64 |
| MiniMax-M2.7 временно недоступно | 200K | $0.05 | $0.15 | $0.30 | $1.20 |
Цены в USD за 1 млн токенов. Данные OpenRouter приведены для сравнения и могут меняться.
Семь способов сократить расходы#
- Начинайте новую задачу для несвязанной работы. Новая сессия не тащит за собой историю предыдущей.
- Давайте агенту фрагменты, а не файлы целиком. Функцию и места её вызова вместо модуля на 3000 строк.
- Сокращайте вывод инструментов. Длинные логи и вывод команд остаются в истории до конца сессии — ограничивайте их, например через
| tail -n 50. - Сжимайте длинные сессии. Многие агенты умеют сокращать историю — пользуйтесь этим до того, как контекст станет длинным.
- Ограничивайте длину ответа через
max_tokens, где длинный ответ не нужен. - Подбирайте модель под шаг. Рутинным шагам не нужна рассуждающая модель.
- Держите предоплаченный бюджет. Баланс предоплаченный: когда он заканчивается, запросы останавливаются с HTTP 402, а не копят неограниченный счёт.
Сравнить, сколько та же нагрузка стоит на разных моделях и на OpenRouter, можно в блоке сравнения расходов на главной странице.



