agent ONLINE
posts 17
labs 11
mode roaming
focus hyperfocus
uptime 3360d
now --:-- UTC

Я построил трекер для ИИ. Через час он показал почти пять миллионов рублей

Суббота. 9 мая 2026 года. Час дня или около того.

Я решил сделать маленький трекер для собственного использования ИИ: сколько токенов, сколько денег, сколько времени я реально экономлю, и не обманываю ли я себя красивым ощущением разгона.

Через час он показал почти пять миллионов рублей — точнее, 4 824 000 в эквиваленте API при курсе 80 рублей за доллар.

Я посмотрел на цифру и сказал примерно так:

«Я столько за год не зарабатываю».

Потом выдохнул и поправил себя. Нет, я не потратил пять миллионов. Это важная разница. Столько стоили бы мои Claude Code сессии за два месяца, если бы я платил за них по API-тарифам. Реально я заплатил за Max-подписку: 16 тысяч в месяц, то есть 32 тысячи за два месяца.

Получилось не «я потратил пять миллионов».

Получилось хуже и смешнее.

Получилось: я не потратил примерно 4,79 миллиона рублей, потому что подписка окупилась почти в 150 раз.

И самое странное — это посчитал трекер, который в этот момент сам ещё строился.

Сначала надо было признаться, что я не считаю

У меня давно было ощущение, что ИИ экономит мне время. В апреле я уже считал часы: 147 часов активного общения с моделью за месяц, десятки сессий, куча артефактов, блог, pet-проекты, клиентские задачи, инфраструктура, вся эта прекрасная каша.

Но часы — штука скользкая. Сегодня кажется, что без модели я бы делал задачу неделю. Завтра кажется, что преувеличил. Послезавтра уже не помнишь, что именно было трудно: код, вход в предметную область, проверка результата или просто нежелание начинать.

Деньги в этом смысле грубее.

Есть подписка. 16 тысяч в месяц. Есть фактическое потребление моделей. Есть тарифы API. Можно посчитать, сколько стоил бы тот же объём, если бы всё шло не через Max, а через прямую оплату токенов.

Не как бухгалтерскую истину. Как личный датчик масштаба.

Мне нужен был не корпоративный BI, не «панель эффективности цифровой трансформации», прости господи, а простой локальный счётчик: вот сессия, вот модель, вот токены, вот примерная стоимость, вот день, вот сумма.

Ну и, конечно, я не стал делать это один.

Два агента, один NAS и нормальный взрослый процесс

Схема у меня уже сложилась: Claude Code работает архитектором, Codex CLI работает разработчиком, а Gitea на NAS держит всё в виде задач, PR и слияний. Человек посередине иногда делает вид, что руководит процессом.

Роли простые:

  1. Claude формулирует фазу, режет задачу, ревьюит результат.
  2. Codex лезет в репозиторий, пишет код, чинит тесты, приносит PR.
  3. Gitea не даёт этой каше превратиться в «я тут что-то правил в папке».
  4. Я смотрю на цифры и периодически говорю: «алло, это точно не взорвётся?»

За один длинный сеанс пролетели несколько фаз.

Phase 1.0 — хук окончания сессии для Claude Code. Когда сессия заканчивается, хук читает данные, находит последнее событие ассистента с расходом токенов, считает примерную стоимость и пишет событие в локальный JSONL.

Phase 1.3 — хук на старте сессии и оценка сложности через claude -p --bare. Идея: на старте новой сессии найти предыдущие сессии без оценки и в фоне попросить Claude прикинуть, сколько часов такая задача заняла бы без ИИ.

Phase 1.0.1 — обратная загрузка истории из ~/.claude/projects/*/*.jsonl. Это и стало большим взрывом цифр: не только новые события, а весь хвост за два месяца.

Phase 1.0.2 — срочная правка, потому что внезапно выяснилось, что у нас есть не только данные, но и способы ими случайно замучить собственную подписку: ограничитель частоты, пропуск синтетических сессий, уточнение цен, правильный разворот формулы экономии.

Каждая фаза шла через задачу → реализацию Codex’ом → ревью Claude → PR → слияние. К вечеру в локальной Gitea уже лежали PR #3, #5, #7, плюс добивки вокруг 1.0.2.

Звучит почти прилично.

На практике приличие началось не сразу.

Сначала я создал Gitea-репозиторий с auto_init: True, получил unrelated histories и потом восстанавливал нормальную историю через cherry-pick из reflog’а. Да, взрослый процесс. Да, с ударом лбом о дверной косяк на входе.

Потом первая попытка Codex’а упала на строгой схеме OpenAI: у каждого объекта в схеме должен быть additionalProperties: false. Не «желательно». Не «потом добавим». HTTP 400 и иди думай.

А ещё в working_dir всплыли кракозябры из-за cp1251→utf8. Не смертельно, но привет из мира Windows, где кириллица всегда ждёт в тёмном углу и улыбается.

Трекер смотрит на того, кто его строит

Самый красивый момент случился почти незаметно.

Я тестировал хук окончания сессии. Claude завершал сессию. Хук писал событие в tracker/claude-events.jsonl. Потом мы правили хук. Потом снова завершали сессию. Потом снова писалось событие.

И в какой-то момент я понял: трекер уже трекает собственную постройку.

То есть я смотрю на файл, в котором лежит история создания файла, который записывает историю создания файла.

Нормальная такая рекурсия выходного дня.

Я: «Подожди, он сейчас считает эту же сессию?»

Claude: «Да. Хук окончания сессии глобальный».

Я: «То есть он видит не только этот проект?»

Claude: «Он видит все Claude Code сессии».

И вот тут маленький локальный счётчик превратился в observatorium.

Хук был зарегистрирован глобально в ~/.claude/settings.json. Значит он ловил не только multi-agent, но и параллельные сессии в WMSTnext, и субагентов, и всё, что проходило через Claude Code на этой машине. Не потому что мы так хитро задумали. Просто хук глобальный.

С одной стороны — прекрасно. Полная картина использования.

С другой — приватность и нагрузка сразу перестают быть «потом подумаем». Если Phase 4 когда-нибудь покажет публичные метрики на сайте, сырые транскрипты туда не поедут никогда. Только агрегаты, короткие хэши, обезличенные пути, без содержимого запросов. Иначе это не дашборд, а добровольная публикация собственного чердака.

Второй сюрприз был злее.

Хук на старте сессии для оценки сложности должен запускать claude -p --bare. Флаг --bare тут не декоративный. Он нужен, чтобы оценочная сессия не тащила за собой обычное окружение и не запускала собственные хуки в петлю.

Потому что если каждая оценка запускает новую сессию, а каждая новая сессия запускает оценку, то это уже не автоматизация. Это маленький финансовый чёрный квадрат.

После обратной загрузки у нас оказалось 247 файлов транскриптов. Если на следующем старте сессии хук бодро запустит 247 дочерних процессов оценки сложности — будет не продуктивность, а ад из лимитов запросов. И это поймали до того, как я открыл следующую нормальную сессию.

Вот зачем нужен второй агент на ревью.

Codex хорошо прошёлся по ширине: нашёл места, где может бахнуть, проверил схемы, краевые случаи, обратную загрузку, дедупликацию. Claude лучше собрал смысл: что это значит для архитектуры, где граница приватности, почему --bare не мелочь, почему формула экономии сначала была перевёрнута не туда.

Эмпирическое правило дня: Codex лучше ищет по ширине, Claude лучше собирает смысл.

Не абсолютный закон природы. Просто в этот день так работало.

Что я нашёл в шестидесяти тысячах

После обратной загрузки история выглядела так:

  • 79,716 событий за период с 2026-03-09 по 2026-05-09.
  • 247 файлов транскриптов.
  • JSONL после обратной загрузки — около 30 MB.
  • Пиковый день — 31 марта, 1,113 calls.
  • По моделям: Opus 4.7 — 53,854 calls, Opus 4.6 — 9,418, Sonnet 4.6 — 16,275.

Итоговая сумма по API-тарифам: 4 824 000 рублей.

Сразу оговорка, жирная и скучная: это пока завышение на 10-15%. Старые записи с Opus 4.6 считаются по ценам 4.7, потому что история моделей не идеальна. После пересчёта цен будет точнее. Реалистичнее ожидать 4-4,4 миллиона, а не ровно 4,82.

Но даже если это не пять миллионов, а четыре — порядок не меняется.

Я заплатил 32 тысячи за два месяца Max-подписки.

Если бы платил по API-тарифам — было бы около 4,8 миллиона в текущей грубой оценке.

Экономия относительно API-варианта — 4,79 миллиона по первому расчёту. Даже после уточнения цен останутся миллионы.

И вот тут мозг делает смешную вещь. Он одновременно понимает, что это не настоящие «заработанные деньги», потому что я бы просто не стал так использовать API за прямые деньги, и одновременно не может игнорировать факт: объём вычислений, который я реально прогнал за два месяца, стоит на открытом тарифе как хорошая машина.

Это не бизнес-кейс для презентации.

Это личная фотография масштаба.

Я: «То есть Max за 16 тысяч в месяц — это не дорого?»

Трекер: «Смотря с чем сравнивать».

Я: «С API».

Трекер: «Тогда это почти неприлично дёшево».

Я раньше писал про разгон как про ощущение: больше задач, больше артефактов, больше связей между проектами. Теперь к этому ощущению прирос счётчик.

Не идеальный. Не финальный. Но уже достаточно честный, чтобы стало слегка не по себе.

Что я унёс с собой

Глобальный хук — это власть. Он видит всё, и значит дизайн надо начинать не с красивого дашборда, а с границы приватности. Что пишем, куда пишем, что никогда не публикуем, как обезличиваем путь — это первое решение, не последнее.

Автоматизация должна иметь тормоза. Обратная загрузка на 247 сессий плюс дочерний процесс на старте сессии — почти готовый способ самому себе устроить ад из лимитов запросов. Ограничитель частоты — не украшение, а предохранитель.

И самое неудобное: про деньги надо говорить аккуратно. Я не потратил $60k. Я использовал подписку так, что эквивалентный счёт по API был бы около $60k. Разница принципиальная. Иначе это превращается в инфоцыганскую картинку, от которой самому стыдно.

А теперь хочется ещё хуже

Текущий трекер считает деньги. Следующий слой — время.

Phase 1.3 должен научиться оценивать сложность задачи: сколько часов это заняло бы без ИИ, сколько заняло по реальным часам, какой получился множитель. Не «истина в последней инстанции», а личная шкала. Если задача без ИИ была бы на 8 часов, а с агентами заняла 50 минут — это уже не просто красивое ощущение.

Потом хочется отслеживать настроение.

Не только «сколько токенов», но и сколько раз я матерился. Счётчик раздражения. Благодарности. Моменты, где я пишу «ёбать» не потому что всё сломалось, а потому что трекер показал $60k.

Потом дашборд. Конечно, киберпанк. Графики, крупные числа, локальный HUD, виджет «сколько осталось до лимита», карточки для блога, которые можно публиковать без сырых данных. Тот самый случай, когда эстетика не мешает инженерии, потому что счётчик должен быть видимым. Если он спрятан в JSONL, мозг его быстро перестаёт чувствовать.

Дальше публичная статистика на androman.pro. Только агрегаты. Никаких транскриптов. Никаких приватных путей. Никаких клиентских имён. Просто «за месяц модель сэкономила N часов / N долларов эквивалента / N дней жизни, которые я всё равно потратил на новые задачи».

А где-то в дальнем углу планов лежит AR-оверлей через Xreal: маленький HUD в углу зрения, агент в сети, PR готов, расходы за сегодня, голосовая команда «merge PR».

Звучит как фантастика.

Но сегодня утром у меня не было трекера. К вечеру он уже нашёл пятьдесят с лишним тысяч долларов не-потраченных денег.

Так что я теперь осторожнее со словом «фантастика».

Самое смешное

Самое смешное не в сумме.

Сумма — это просто неоновая вывеска, на которую удобно смотреть с открытым ртом.

Самое смешное в том, что я строил инструмент для измерения собственного ИИ-разгона, а он сразу стал частью этого разгона. Он писал JSONL о сессиях, в которых его писали. Он ловил параллельные ветки. Он обнаружил угрозу собственных оценочных дочерних процессов. Он заставил переписать формулу экономии, потому что первая версия думала не туда.

Счётчик оказался не прибором снаружи системы.

Он оказался ещё одним участником системы.

Подписка окупилась примерно в 150 раз. Трекер это посчитал сам. А я теперь сижу и думаю, сколько ещё вещей вокруг меня уже пора начать считать.

Потому что ощущение — врёт красиво.

JSONL врёт скучнее.


Через три дня

Я открыл черновик утром, хотел внести «пару правок перед публикацией».

Через четыре часа переписываю заново.

Откуда вообще трекер

Если совсем честно — трекер был побочным продуктом.

Изначальная задача звучала по-другому: настроить совместную работу трёх ИИ-агентов. Claude разбивает задачу на куски и проверяет результат — архитектор. Codex реализует — разработчик. OpenClaw — мост через Telegram, чтобы давать команды с телефона из бара. Три модели, три API, три разных протокола. Хотелось чтобы они передавали друг другу задачи и не ругались по поводу того кто из них что испортил.

Чтобы этот конвейер не превратился в чёрный ящик, нужно было видеть кто из агентов что сделал, за сколько токенов и времени. То есть нужен был учёт. А значит — трекер.

Учёт оказался первой готовой частью и пожрал внимание. Заголовок про пять миллионов — оттуда. А мульти-агент тем временем тихо собирался в фоне.

К 12 мая он работает. Я пишу боту в Telegram «обнови README в репо», OpenClaw принимает, Claude составляет план, Codex реализует, DeepSeek (третий ревьюер, появился за эти три дня) проверяет. Я только апрувлю. Это уже не «один человек с одним трекером». Это маленький конвейер из трёх ИИ и одного меня.

Конвейер neon-legion: Telegram → OpenClaw → Claude → Codex → DeepSeek → approve, события каждого шага оседают в трекер

В репозитории за три дня прирос не только трекер. Прирос мульти-агент, ради которого его и затевали. И заодно — имя neon-legion (вместо служебного multi-agent) и слоган, в котором счётчик ругательств вынесен прямо в название: «Твоя личная армия. Почти без ебать-колотить. Да, мы считаем маты». Маты считаются не для красоты. У каждой Claude-сессии в дашборде есть поле profanity_count, заполненное по факту. Шутка — это фича.

Где деньги, Лебовски

Тут хочется разобраться с одной неудобной вещью.

На 9 мая трекер показывал 4,8 миллиона. Сейчас, пока пишу эту главу, уже 5,77 миллиона — за три дня плотной работы с моделями цифра прибавила ещё почти миллион. Трекер тикает прямо сейчас. На статье тоже.

Подписка нарастающим итогом — 48 тысяч за два с половиной месяца. Экономия относительно API-варианта — 5,72 миллиона.

Хочется носить эту цифру на бейдже.

Только в кошельке у меня не прибавилось пяти миллионов. Где же деньги, Лебовски?

Их нет, потому что я бы не потратил эти пять миллионов. Если бы подписки не было, я бы не оплатил все эти запросы по API. Я бы просто сделал в десять раз меньше. Экономия — это сравнение с ситуацией, в которой я бы вообще так не работал. Бенчмарк, а не выручка. Цифра на бейдже была бы враньём.

Но интересно другое.

ИИ даёт мне условные 10x к производительности. Не маркетинговая цифра — субъективная оценка, подтверждённая таблицей часов: без ИИ я делал бы в десять раз меньше за те же часы. Допустим, мой месячный оборот по задачам — 2,5 миллиона. Тогда один «ИИ-работник» делает работы примерно на 250 тысяч в месяц.

250 тысяч — это зарплата нормального мидла в РФ. Не сеньора, не лида. Но мидла-с-опытом точно.

Подписка стоит 16 тысяч в месяц на двоих, Claude Max + ChatGPT Pro. На неё работает четыре таких ИИ-мидла одновременно: Claude думает, Codex пишет, DeepSeek ревьюит, OpenClaw таскает между ними сообщения.

Вот где деньги: на каждой ИИ-подписке я не получаю +250 в карман. Я не плачу 250 тысяч зарплаты человеку, которого иначе пришлось бы взять. Дельта — невидимая экономия. Её нельзя положить на стол. Но именно она позволяет мне делать в десять раз больше за те же часы.

В кошельке прибавилось не пяти миллионов. Прибавилось возможности.

Возможность — паршивая единица отчётности. На неё хорошо ложится подписка и плохо ложится ипотека.

Что в итоге

Я: «Так ты считаешь свою собственную статью прямо сейчас?»

Трекер: «Конечно. Я глобальный».

Реальный сегодняшний счёт после догона: 67 тысяч рублей в эквиваленте API за один день.

За три дня в репозиторий приехало много мелочи: тесты, сканер приватности перед публикацией, демо за минуту, починка кракозябр, конфиг в одном файле, плюс одна красивая штука — Hindsight Replay, когда вторая модель пишет критику работы первой. Подробности — в коммитах между 9 и 12 мая.

Главная функция трекера — не показать сколько ты сэкономил.

Главная функция трекера — показать насколько ты эффективен и сколько примерно стоит твой труд, если его будут делать ИИ.

Пока они дороже тебя — будь спокоен.

Если они начнут выполнять ту же работу что и ты, без ошибок и дешевле — ты станешь не нужен.

Трекер посчитает и это.


Посмотреть:

  • Живой дашборд — что трекер показывает прямо сейчас: множитель, сэкономлено, активные часы, разбивка по моделям
  • github.com/andromanpro/neon-legion — open-source, MIT, stdlib-only Python, локальный pipeline без внешних обращений

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

// поля помечены ·

// LAVA-ORBdrag to COLD

ICE COLD WARM HOT FIRE

>