Слогер Создать блог
Разработка

Счётчик затрат на AI-кодинг: почему цифра «стоимость» ничего не значит без контракта

Локальный инструмент собирает данные о токенах из Claude Code и Codex, но выдаёт оценку, а не счёт. Как не запутаться в метриках и не принять аппроксимацию за реальные расходы.

Самая опасная цифра в дашборде AI-кодинга — та, что подписана просто «стоимость» без единого пояснения.

Локальная утилита может восстановить активность токенов из логов Claude Code и Codex, применить таблицу цен с датой — и получить оценку. Она годится для сравнения периодов и понимания формы локальной активности. Но это не счёт.

Начните с границы формата файла

Claude Code и Codex пишут логи по-разному. Claude умеет показывать поля input, output, cache creation и cache read в сообщениях ассистента. Codex может отделять контекст модели от поздних событий с токенами, а кешированный ввод иногда включается в общий input.

Перед любыми расчётами приведите форматы к единому виду:

provider timestamp model input tokens output tokens cache creation tokens cache read tokens

Как только такая граница появилась, остальная часть отчёта перестаёт гадать, что означает сырое поле провайдера.

Кешированный ввод — не обычный ввод дважды

Для события Codex безопасный расчёт начинается с отделения кешированного ввода:

non-cached input = max(total input - cached input, 0)

Затем оценивается некeшированный ввод, вывод, создание кеша и чтение кеша по своим тарифам. Ценообразование общего ввода с добавлением чтения кеша даёт красивый на вид, но завышенный результат.

Вот почему простая функция tokens * price не годится для трекера с несколькими провайдерами.

Повторное сканирование не должно создавать новые расходы

Файлы сессий читаются многократно. Приложения перезапускаются, наблюдатели переподключаются, архивные файлы могут всплыть. Если одно и то же событие считать каждый раз при его обнаружении, недельный отчёт растёт, хотя объём работы не меняется.

Защита от повторного учёта — часть бухгалтерии. Используйте стабильные идентификаторы событий провайдера, где они есть. Если формат их не предоставляет, документируйте запасной вариант и его погрешность, а не прячьте за отполированной суммой.

Дата в таблице цен

Идентификаторы новых моделей могут появиться раньше, чем десктопное приложение узнает их тарифы. Цены API тоже меняются.

Трекер должен:

  • поставлять снимок тарифов с датой;
  • показывать неизвестные именованные модели;
  • оставлять их без цены, а не угадывать похожую ставку;
  • сохранять дату тарифа в исторических отчётах.

В Agent Island расчётное число подписано «API value». Это контрафактная оценка по встроенным тарифам.

Держите четыре ответа раздельно

Полезный дашборд не должен схлопывать в одну метрику:

  1. Квота провайдера: насколько аккаунт близок к сбросу.
  2. Локальный объём токенов: что содержат записи сессий.
  3. Оценочная стоимость API: расчёт по датированным категориям токенов.
  4. Фактические счета: чеки, кредиты, подписки и корректировки провайдера.

Только четвёртый — счёт. Локальные записи не содержат достаточно контекста, чтобы его воспроизвести.

Чек-лист для оценки

Прежде чем доверять трекеру затрат на AI-кодинг, спросите:

  • Какие именно локальные записи он читает?
  • Разделяет ли он ввод, вывод, создание кеша и чтение кеша?
  • Как он предотвращает двойной учёт повторных событий?
  • Что происходит, когда модель отсутствует в таблице тарифов?
  • Датирован ли снимок цен?
  • В интерфейсе написано «оценка» или подразумеваются реальные траты?
  • Сбор локальный, а передача данных — отдельное действие?

Реализация может быть сложной, но контракт должен легко объясняться. Если цифру можно принять за реально потраченные деньги, пояснение должно быть рядом с ней.

По материалам: productivity. Текст переработан редакцией Слогера.

← На главную

Рекламное место — Конец поста
Реклама · Слогер

Комментарии (0)

Войдите, чтобы комментировать.

Пока нет комментариев. Будьте первым.