После сокращения промпта проверяйте экономию по usage каждого ответа и стоимости всей задачи. Короткий ответ может сопровождаться существенным расходом на обдумывание, а продолжение разговора — повторным учётом истории. Для контроля бюджета разделите объём токенов, тарифные категории и число вызовов, потребовавшихся для результата.

Четыре счётчика и их вложенность
В примере объекта usage OpenAI показывает вход, выход и детализацию обоих счётчиков. Читайте их так:
input_tokens— общий объём входных токенов данного вызова, включая контекст, который используется для продолжения разговора.input_tokens_details.cached_tokens— часть входа, обслуженная из кэша. Она уже включена вinput_tokens.output_tokens— общий объём сгенерированных токенов, включая обдумывание.output_tokens_details.reasoning_tokens— часть выхода, потраченная на обдумывание.
Reasoning-токены уже входят в output_tokens; прибавлять их к выходу второй раз нельзя. OpenAI учитывает их по тарифу выходных токенов. Аналогично, прибавление cached_tokens к входу повторно учитывает одну и ту же часть запроса. Для общего объёма используйте total_tokens или сумму input_tokens + output_tokens.
Стоимость: разложите вход по категориям
На актуальной странице тарифов отдельно представлены обычный вход, кэшированный вход, запись кэша и выход. Выбирайте ставки для фактической модели, режима обработки и применимой длины контекста. Точные значения храните в версионируемой конфигурации расчёта.
Существенная деталь текущей документации кэширования: для GPT-5.6 и более новых моделей учитывается input_tokens_details.cache_write_tokens. Если ваша схема предусматривает отдельную оплату записи кэша, вычитайте эту категорию из обычного входа и применяйте её ставку.
I = input_tokens
C = input_tokens_details.cached_tokens
W = input_tokens_details.cache_write_tokens
O = output_tokens
ordinary_input = I - C - W
cost = ((I - C - W) * P_input
+ C * P_cached
+ W * P_write
+ O * P_output) / 1_000_000
Здесь цены заданы за миллион токенов; для схемы без отдельной категории записи используйте W = 0. Формула покрывает перечисленные токенные категории. Платные инструменты добавляйте отдельными строками по их условиям тарификации.
Условный пример: вход — 4000, кэшированный вход — 3000, запись кэша — 500, выход — 1000, из них reasoning — 600. Получается 500 обычных входных токенов и 5000 токенов всего. Выход оплачивается в объёме 1000; значение 600 сохраняется для диагностики.
Продолжение разговора снова расходует вход
При ручном управлении историей приложение передаёт предыдущие сообщения вместе с новым вводом. Сообщения, включённые в следующий запрос, снова становятся входным контекстом. Поэтому измерение только последней пользовательской реплики пропускает расход истории.
С previous_response_id приложение передаёт ссылку на предыдущий ответ, а API связывает контекст. Согласно правилам учёта продолжений, предыдущие входные токены цепочки снова оплачиваются как входные. Кэш может изменить тарифную категорию части этого входа; фактическое попадание смотрите в cached_tokens каждого ответа.
Как проверить результат оптимизации
- Сохраните базовую выборку. Сравнивайте одинаковые задачи, модель, критерий успешности и сопоставимую длину диалогов.
- Логируйте каждый вызов. Записывайте идентификаторы ответа и задачи, модель, настройки reasoning, статус, задержку и полный
usage. Сохраняйте версию промпта и тарифной конфигурации. - Суммируйте расходы задачи. Включайте все её вызовы и полученные ответы повторных попыток. Основная метрика — стоимость успешно завершённой задачи.
- Разделяйте причины изменения. Следите за обычным входом, чтением и записью кэша, выходом и долей reasoning. Для агрегированной доли кэша делите сумму
Cна суммуI. - Проверяйте качество и хвост распределения. Вместе со средней стоимостью сравнивайте p95, число попыток и процент успешных задач.
Параметр max_output_tokens ограничивает генерацию вместе с reasoning. При исчерпании лимита ответ может получить статус incomplete, включая случаи без видимого текста, но с расходом токенов. Учитывайте такие ответы при проверке экономии: оптимизация достигла цели, когда сопоставимые задачи успешно завершаются с меньшими суммарными затратами.