Агент может сделать те же 80 шагов и оказаться заметно дороже просто потому, что слишком рано прочитал большой файл или таскает за собой многословный вывод инструмента. Цена запроса здесь почти ничего не объясняет. Для бизнеса рабочая единица экономики другая: полная стоимость завершённой операции.
Почти весь контекст уже был оплачен раньше
Автор разбора на Habr изучил логи 40 завершённых сессий агентной разработки: 20 в Claude Code и 20 в Codex на двух коммерческих веб-проектах. Суммарный оборот составил 777 млн токенов, из них 298 млн пришлось на Claude Code и 479 млн на Codex.
Медианный результат выглядит как ошибка в отчёте, но именно он объясняет счета провайдеров. На каждый токен, впервые попавший в контекст, Claude Code повторно пересылал 47 старых, Codex 36. Разброс между сессиями составил от 14:1 до 101:1.
Свежий ввод занял 0,003% объёма у Claude Code и 5,7% у Codex. Ответ модели в обоих случаях оказался меньше 1% объёма. Остальное составили системные инструкции, описания инструментов, история, прочитанные файлы и результаты команд, которые отправлялись модели снова на каждом следующем шаге.
Причина проста: модель не хранит состояние между вызовами. Каждый шаг агент заново собирает окно контекста, добавляет очередной результат и просит модель продолжить. У любой ранней вставки появляется дорогой хвост: чем она крупнее и чем раньше вошла в историю, тем больше раз будет переслана.
Поэтому длинная сессия дорожает быстрее, чем подсказывает число запросов. В выборке Claude Code удвоение количества шагов давало примерно 2,4-кратный рост токенов. У Codex зависимость была ближе к линейной, но не бесплатно: 10 из 20 сессий проходили через компакцию истории и теряли детали. У Claude Code компакция случилась в одной сессии из 20.
Кэш снижает тариф, но не отменяет налог
Провайдерский кэш делает повторную пересылку неизменного префикса примерно в десять раз дешевле обычного входа. Это полезно, но превращать кэш в синоним бесплатной памяти не стоит.
Запись в кэш обходится в 1,25-2 раза дороже обычного входа, а сама запись живёт от пяти минут до часа. После паузы тот же контекст приходится кэшировать заново. В 17 из 20 сессий Claude Code объём записей в кэш превысил реальный прирост контекста. Нижняя оценка переплаты за перестройку составила $30 из счёта в $271, или 11%. Медианная сессия повторно строила 45% своих записей.
Выходные токены при этом были примерно в пять раз дороже входных и забрали 14,6% денег, хотя занимали меньше 1% объёма. Значит, привычная борьба с «болтливостью» модели полезна, но бьёт не по главной статье расхода. Основной резерв находится в том, что агент читает и затем носит с собой.
Как считать эффективную стоимость агента
Цена миллиона токенов годится для прайс-листа, но плохо описывает агентный продукт. Для каждой завершённой операции я бы собирал отдельный токеновый контур:
- Базовый контекст: системный промпт, правила и схемы инструментов до первого сообщения пользователя.
- Новый ввод: запросы человека, прочитанные файлы и новые результаты инструментов.
- Повторный ввод: вся история, которая вернулась в модель на следующих шагах, отдельно по обычному тарифу и через кэш.
- Запись в кэш: первая запись стабильного префикса и все платные перестройки после пауз.
- Вывод модели: ответы и промежуточные реплики по тарифу выходных токенов.
- Цена потери контекста: число компакций и необходимость заново читать данные после сжатия истории.
Сумму этих расходов нужно делить не на запросы и не на шаги, а на число успешно завершённых задач. Так появляется метрика, которую можно сравнивать между моделями, настройками агента и версиями системного промпта: стоимость одной принятой бизнес-операции.
Практический аудит начинается не со смены модели. Сначала стоит сократить базовый контекст и схемы инструментов, ограничить объём результатов команд, не читать крупные данные раньше времени и удерживать стабильный префикс неизменным ради кэша. Длинную работу можно дробить между сабагентами, которые возвращают в основной контекст только итог, но и здесь считать нужно полный контур всех вызовов.
Главный маркер на ближайших счетах: коэффициент повторов и доля повторной записи в кэш должны снижаться вместе со стоимостью завершённой задачи. Если запросов стало меньше, а эти три показателя не двинулись, оптимизация была косметической. Агент просто продолжает возить один и тот же текст по более короткому маршруту.