Архив рубрики ~Лента новостей~

89% моих трат на AI‑агентов — это кэш, а не генерация. Написал CLI, чтобы увидеть

89% моих трат на AI‑агентов — это кэш, а не генерация. Написал CLI, чтобы увидеть
89% моих трат на AI‑агентов — это кэш, а не генерация. Написал CLI, чтобы увидеть

Я много работаю с кодинг‑агентами в Claude Code. В какой‑то момент поймал себя на том, что не представляю, на что уходят токены. Счёт в конце месяца есть, а из чего он складывается, непонятно. Написал небольшую утилиту, которая читает то, что Claude Code и так пишет на диск, и раскладывает расходы по статьям. То, что она показала, мне не понравилось.

Вывод ledgent report ‑redact

Почти 89 процентов моих расходов это не работа модели над задачей, а перечитывание и перезапись закэшированного контекста. На саму генерацию ответов уходит около 9 процентов.

Дальше расскажу, как это считается, почему я дважды переписывал самую заметную часть отчёта и как чуть не завысил себе счёт втрое.

Что лежит на диске

Claude Code сохраняет каждую сессию в JSONL внутри ~/.claude/projects. Это полный лог диалога, и у каждого ответа ассистента есть поле usage с разбивкой токенов. Токены там лежат не одной кучей, а пятью раздельными группами, и у каждой своя цена относительно обычного входа:

группа

цена

что это

fresh input

базовая

новый, не закэшированный ввод

cache read

0.1 от базовой

чтение из кэша

cache write 5m

1.25

запись пятиминутного кэша

cache write 1h

2.0

запись часового кэша

output

своя ставка

сгенерированные токены

Утилита берёт эти счётчики, умножает на ставки моделей и складывает. Обращений к API нет: данные уже на диске, наружу ничего не уходит.

Чтение кэша стоит в десять раз дешевле свежего входа. Но когда агент за сессию прокачивает через кэш сотни тысяч токенов помногу раз, дешёвое умножается на большое. Отсюда и 89 процентов.

Как я чуть не завысил себе счёт втрое

Первую версию ставок я вписал по памяти. Поставил Opus как 15 и 75 долларов за миллион токенов, потому что так было раньше. Отчёт показал 39 тысяч за месяц, и я почти поверил.

Настоящая ставка Opus сейчас 5 и 25. То есть я переоценил втрое, и реальная цифра оказалась около 15,5 тысяч. Вывод банальный, но я его усвоил на себе: цены на модели это данные с датой, а не константа в коде. За время моих наблюдений они менялись дважды. Теперь ставки помечены датой, а в выводе есть строчка rates as of 2026–06-24. На первый же вопрос «а по каким ценам ты считал» ответ лежит прямо в отчёте, а не в исходниках. Ещё я добавил проверку в рантайме: сумма пяти групп обязана сойтись с итогом, иначе программа падает. Поймать расхождение сразу дешевле, чем потом краснеть в комментариях.

Про честность цифр

Тут два момента, которые я решил не прятать.

Первый. Доллары в отчёте это API‑эквивалент. Я на подписке, поэтому эти 15 тысяч за месяц я не платил. Столько же токенов стоили бы по тарифам API. Отчёт так и подписан. Разница, к слову, большая: по моим данным подписка даёт примерно в 155 раз больше токенов на доллар, чем API. Гонять агентов такого объёма через голый API одному разработчику экономически бессмысленно.

Второй. Одна строка в отчёте это настоящий счёт, а не гипотетический. Модель Fable тарифицируется отдельными кредитами и подпиской не покрывается. Поэтому в рамке прогноза стоит именно её месячный расход живыми деньгами, а годовой API‑эквивалент вынесен строкой ниже с явной пометкой. Мне не хотелось, чтобы придуманные 200 тысяч в год кто‑то принял за реальный счёт.

Приватность как решение, а не как галочка

Здесь я переспорил сам себя. Сначала сделал тихое автообновление по сети, как у самого Claude Code. Потом сообразил, чем именно читает эта утилита. Она читает полные транскрипты сессий: код, вывод команд в терминале, иногда что‑то похожее на секреты. Для такого инструмента бинарь, который сам ходит в сеть и подменяет себя, плохая идея. И он же ломает единственный честный аргумент: твои данные, твоя машина, ничего не уходит.

Поэтому по умолчанию сетевых обращений нет вообще. Отчёт работает полностью офлайн. Единственная команда, которая ходит в сеть, это ledgent update, и только когда ты сам её запускаешь. Автообновление осталось, но как явная опция для тех, кому оно нужно.

Как пользоваться

Запуск без установки:

npx @nexalix/ledgent report215eca2b3bc8d9eee2742cf7103ba5f7

Короткий вариант на пять строк, удобно вставить в чат или тред:

npx @nexalix/ledgent report —brief

Спрятать имена проектов, если собираешься показывать вывод:

npx @nexalix/ledgent report —redact

Нужен Node 18 или новее. Отдельно про Windows: если PowerShell отвечает running scripts is disabled, это его политика выполнения, а не проблема утилиты. Она одинаково рубит любой npx. Обход: запустить через npx.cmd, или в cmd.exe, или один раз выполнить Set‑ExecutionPolicy ‑Scope CurrentUser RemoteSigned.

Чем это отличается от ccusage

Есть хорошая утилита ccusage, она отвечает на вопрос «сколько». Моя отвечает на «почему» (разбивка по группам кэша) и «что дальше» (прогноз реальных кредитов). Логи одни и те же, вопрос разный. Имеет смысл держать обе.

Честно про версию 0.1: пока поддерживается только Claude Code и четыре модели. На чужих данных я прогонял ровно один раз, на машине приятеля. Что показательно, те же примерно 89 процентов воспроизвелись на совсем другом наборе проектов. В рантайме ноль зависимостей, TypeScript, лицензия Apache 2.0.

Код на Гитхабе.

Мне правда любопытно, какое у вас соотношение кэша и генерации. Прогоните —brief и покажите цифру. Подозреваю, у многих будет так же неуютно, как у меня.

Источник: habr.com

Оцените материал:

Поделиться
Понравилась статья? Расскажите другим
ВКонтакте
Читайте также
Новости робототехники От электронных таблиц к искусственному интеллекту: Deere предоставляет фермерам новые функции в Операционном центре, JD Архив рубрики ~Полезное~ 9 бесплатных нейросетей для генерации картинок: гайд для новичка (2026) Архив рубрики ~Коротко из Telegram~ Цифра дня: мемная робоутка принесла Hugging Face $2,6 млн всего… Архив рубрики ~Полезное~ Полезный лайфхак: любую статью с arXiv можно за секунду превратить… Архив рубрики ~Коротко из Telegram~ Нейросети способны выдавать гораздо более глубокие и точные результаты, если… Архив рубрики ~Коротко из Telegram~ Пять практичных способов использовать нейросети эффективнее — от тонкой настройки… Архив рубрики ~Коротко из Telegram~ Утренний дайджест на 01.09 2026 1️⃣ Правообладатели смогут запрещать использование… Архив рубрики ~Коротко из Telegram~ Дуров сообщил о запуске нового некастодиального Gram Wallet – пока… Архив рубрики ~Коротко из Telegram~ VideoCoCo Генератор видео с физически корректной анимацией. Использует код как… Архив рубрики ~Коротко из Telegram~ Первой страной, где всем жителям бесплатно (!) дадут нейронку без… Архив рубрики ~Коротко из Telegram~ Парень сделал отслеживание рук в реальном времени с физикой цифровой… Архив рубрики ~Коротко из Telegram~ Незаметно для многих мы вступили, а точнее провалились, в эпоху… Архив рубрики ~Коротко из Telegram~ Разговор с чат-ботом всё чаще становится рекламным активом ChatGPT начал… Архив рубрики ~Коротко из Telegram~ Счетная палата начала оценивать, насколько эффективно IT-компании используют налоговые льготы…. Новости робототехники От электронных таблиц к искусственному интеллекту: Deere предоставляет фермерам новые функции в Операционном центре, JD Архив рубрики ~Полезное~ 9 бесплатных нейросетей для генерации картинок: гайд для новичка (2026) Архив рубрики ~Коротко из Telegram~ Цифра дня: мемная робоутка принесла Hugging Face $2,6 млн всего… Архив рубрики ~Полезное~ Полезный лайфхак: любую статью с arXiv можно за секунду превратить… Архив рубрики ~Коротко из Telegram~ Нейросети способны выдавать гораздо более глубокие и точные результаты, если… Архив рубрики ~Коротко из Telegram~ Пять практичных способов использовать нейросети эффективнее — от тонкой настройки… Архив рубрики ~Коротко из Telegram~ Утренний дайджест на 01.09 2026 1️⃣ Правообладатели смогут запрещать использование… Архив рубрики ~Коротко из Telegram~ Дуров сообщил о запуске нового некастодиального Gram Wallet – пока… Архив рубрики ~Коротко из Telegram~ VideoCoCo Генератор видео с физически корректной анимацией. Использует код как… Архив рубрики ~Коротко из Telegram~ Первой страной, где всем жителям бесплатно (!) дадут нейронку без… Архив рубрики ~Коротко из Telegram~ Парень сделал отслеживание рук в реальном времени с физикой цифровой… Архив рубрики ~Коротко из Telegram~ Незаметно для многих мы вступили, а точнее провалились, в эпоху… Архив рубрики ~Коротко из Telegram~ Разговор с чат-ботом всё чаще становится рекламным активом ChatGPT начал… Архив рубрики ~Коротко из Telegram~ Счетная палата начала оценивать, насколько эффективно IT-компании используют налоговые льготы….

Оставить комментарий