Обкатка token-budget на Claude Code Антона — прогнать аудит и выложить результаты в комментарии #1
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Зачем это нужно (мотивация)
Плагин
token-budgetпока проверен только на одной истории использования (моей). Этого мало, чтобы верить выводам: пороги вhogs(marathon-session ≥2 дней, bloated-context >300k, subagent-heavy >50% турнов, model-switching) подобраны по одному профилю работы, и совершенно неясно, как они ведут себя на чужом.Основной тезис плагина: квота уходит не на то, что Клод пишет, а на повторное перечитывание контекста. На тяжёлом агентном использовании расклад такой:
cache_read(перечитывание контекста)cache_writeoutput(то, что Клод генерирует)То есть расход масштабируется как
(длина сессии × размер контекста)и почти не зависит от того, сколько полезной работы сделал конкретный турн. Сессия, живущая несколько дней, оплачивает всю накопленную историю на каждом турне.Нужна вторая независимая точка данных, чтобы понять:
cache_read/cache_write/outputна другом стиле работы, или это артефакт моего.hogs(и не молчат ли они там, где расход реально большой).Всё считается офлайн по локальным транскриптам
~/.claude/projects/**/*.jsonl, которые Claude Code и так пишет. Никакой сети, никаких зависимостей — только stdlib Python. Наружу ничего не уходит; в комментарии выкладывай ровно столько, сколько считаешь нужным.Что сделать
1. Поставить плагин
2. Запрос, который надо дать своему Claude Code
Скопируй целиком в свою сессию Claude Code:
3. Выложить результаты сюда
Оставь в этом issue комментарии с:
composition(или хотя бы итоговым процентным раскладом);hogs— и своей оценкой, справедливы ли находки;Отдельно интересно: за какое время отработало на твоём объёме истории.
Что считаем успехом
Не «плагин работает», а — понятно, какие пороги надо править под другой профиль работы, и найдены ли места, где парсер или формулировки врут. Отрицательный результат тут ценнее вежливого «всё ок».
Обкатка на истории Антона (748 сессий, 30 дней, 8.2B токенов) — composition
Тезис воспроизвёлся почти один-в-один на другом профиле (тяжёлые агентные флоты, много фоновых сессий): у тебя 95%+/~60%, у Антона 97.1%/61.0% cache_read; cache_write 2.4%/27.5%; output 0.4%/11.0%. Это не артефакт твоего стиля.
Скорость: каждая команда ~4.5–6 s на 52k турнов / 8.2B токенов. Парсер не упал ни разу, разные модели в сессиях (fable/opus/sonnet) переварил.
Находка №0 — README/issue:
claude plugin add <url>не существует в текущем CLI (error: unknown command 'add'), аclaude-plugins.oleks.space/plugins/token-budget.gitотдаёт 404. Поставили через локальный маркетплейс (claude plugin install token-budget@oleksпосле добавления записи в marketplace.json). Обнови install-инструкцию.hogs: находки и честная оценка
hogs --days 30: 15 flagged = 41% of spend ($7,271 всего). ВСЕ находки —bloated-context(peak 335k–735k), у 4 добавкаsubagent-heavy(57–80% турнов — подагенты). Примеры: 89e2100f $349/4694 турна (флот 07-20→21, 78% subagents) · 6e6334bb $338 · caf59ee4 $278.Справедливость: да, по делу. Профиль Антона — оркестрация флотов агентов из /home/a с жирным always-on контекстом (MEMORY.md-индекс + CLAUDE.md + куча MCP-тулов): контексты 600k+ и правда пересылаются каждый турн. Кривая
context --session 89e2100fпоказывает классическую пилу: рост 90k→648k, компакт-сброс, снова рост — и $0.20/турн в среднем.Молчащие эвристики (для калибровки порогов):
marathon-sessionНЕ сработала ни разу: у Антона lifespan всех топ-сессий 0–1 день (watchdog'и/переزапуски убивают марафоны раньше). Порог ≥2 дней на этом профиле мёртв — но дорогие сессии есть. Т.е. marathon ловит СИМПТОМ (возраст), а не причину (накопленный контекст) — на этом профиле её работу целиком делает bloated-context. Возможно, marathon стоит переформулировать по (turns × avgCtx), а не по календарю.model-switchingне сработала ни разу — сессии почти всегда однo-модельные, проверить эвристику на этом профиле не удалось (не ложный минус, просто нет материала).Ложные срабатывания: явных нет. Можно спорить, что для оркестратора флотов 300k+ контекст — «норма профессии», но совет «trim MCP/CLAUDE.md» всё равно валиден.
Пропуски: содержательных нет — всё дорогое за пределами топ-15 это длинный хвост средних сессий того же типа.
Косметика/мелкие грабли:
context --session— «1,201 turns»: первая цифра с подагентами, вторая без — рядом это читается как противоречие, стоит подписать (main+sub).a($1,857) — это просто $HOME, все флот/оркестрационные сессии слиплись в одну кучу. Для профиля «запускаю всё из хоума» разрез по проектам малоинформативен; хочется fallback на имя сессии/агента.Понятность + три изменения привычек
Понятно ли, что менять: да — hogs называет сессию, причину и рычаг одной строкой, догадываться не пришлось. Единственное, чего не хватает для действия: bloated-context говорит «trim MCP servers / CLAUDE.md / pasted files», но не показывает, ИЗ ЧЕГО состоит контекст конкретной сессии (сколько весят тулы vs память vs вставленные файлы). Разбивка контекста по источникам была бы killer-фичей.
Три изменения с наибольшей экономией (по цифрам этого профиля):
Время работы: каждая из 5 команд 4.5–6 s wall на 748 сессий / 8.2B токенов / 30 дней. Отлично.
Итог для целей issue: тезис подтверждён второй точкой; порог marathon (≥2d) на этом профиле мёртв (см. предыдущий коммент — предлагаю метрику turns×avgCtx); парсер не соврал ни разу; README-инсталляция сломана (находка №0).