Контекст и usage в Claude Code: как диагностировать лишние Token
Пошаговая диагностика Claude Code: как измерить стартовый контекст через /context и /usage, изолировать источники шума и проверить результат по A/B-тесту.
Содержание
В сообществе Claude Code пользователь описал, что свежая сессия начиналась примерно с 35 000 Token, а после оптимизации файлов — примерно с 13 000. Это хороший повод проверить собственный проект, но не benchmark: размер кодовой базы, инструкции, MCP-инструменты и способ измерения у каждого свои.
Проверить свой случай можно за два контролируемых запуска. Измерьте исходный контекст встроенными средствами Claude Code и метаданными API, измените ровно один источник и повторите тот же запрос. Затем сравните не только расход Token и стоимость, но и корректность ответа.
Как измерить стартовый контекст штатными средствами
Не нужно угадывать размер контекста по ощущениям. В Claude Code есть встроенные команды:
/context— показывает структуру текущего контекста: объем загруженных инструкций проекта, активные MCP-инструменты, кэш файлов и сообщения истории;/usage— показывает доступные для текущего способа входа session token statistics, plan usage и credits; для API-пользователей текущая оценка также может отображаться в cost field status line.
Для отдельного API-провайдера точные числа по каждому запросу отображаются в Dashboard: входные токены, токены генерации, кэш-хиты, HTTP-статус и списанная сумма.
Задача для проверки: один повторяемый запрос
Используйте небольшой запрос на чтение без изменения файлов:
Найди, где определяется validateInvoice.
Назови файл функции и один тест, который проверяет пустой amount.
Ничего не изменяй.
Он даёт однозначный результат: два правильных пути или ошибка.
Перед запуском зафиксируйте:
- одну и ту же ветку и ревизию Git;
- один и тот же текст запроса;
- одинаковую модель;
- активные project instructions, skills и MCP-инструменты;
- ожидаемые пути к функции и тесту.
Запуск A: зафиксируйте базовое состояние
Откройте свежую сессию, выполните /context для фиксации стартового состояния, затем отправьте тестовый запрос и сохраните метаданные:
| Поле | Запуск A |
|---|---|
| Статус запроса | заполните по факту |
| Input Token | заполните по факту |
| Output Token | заполните по факту |
| Cache Token | заполните по факту или не показано |
| Расход / Стоимость | заполните по факту или не показано |
| Результат | завершено / частично / ошибка |
Не заменяйте отсутствующее значение нулём. В своём проекте используйте показатели из текущего интерфейса Claude Code или Dashboard выбранного API-контура и помечайте недоступное поле как не показано.
Не переносите в отчёт API Key, приватный код, полные промпты или конфиденциальные логи. Достаточно метаданных, названий модулей и статуса задачи.
Приоритетный порядок диагностики источников
Не отключайте всё одновременно. Проверяйте источники по приоритету:
- Project Instructions (
CLAUDE.md) — проверьте наличие устаревших логов сборки, дублирующихся описаний API и многостраничных справочников. - MCP-серверы и Skills — отключите тяжелые внешние инструменты, которые не требуются для текущей изолированной задачи.
- История сессии — проверьте, не остались ли в диалоге следы предыдущих нерелевантных задач (при необходимости используйте
/compactили начните чистую сессию с handoff). - Область чтения файлов — ограничьте поиск точными путями, если агент сканирует лишние директории.
Допустим, в CLAUDE.md обнаружен лог сборки на 12 000 строк. Сделайте обратимое изменение: перенесите лог в отдельный файл docs/build.log и оставьте в CLAUDE.md только краткую ссылку. Не меняйте одновременно модель, MCP или формулировку промпта.
Запуск B: повторите тот же запрос и сравните метрики
Сохраните ту же ревизию, модель и промпт. После одного изменения повторите запрос и заполните таблицу A/B сравнения:
| Поле | Запуск A | Запуск B | Разница |
|---|---|---|---|
| Статус запроса | фактический | фактический | сравнить |
| Input Token | фактический | фактический | B - A |
| Output Token | фактический | фактический | B - A |
| Cache Token | факт или не показано | факт или не показано | считать только при двух значениях |
| Расход / Стоимость | факт или не показано | факт или не показано | считать только при двух значениях |
| Функция найдена | да / нет | да / нет | тот же критерий |
| Тест прошёл | да / нет | да / нет | тот же критерий |
Если Input Token снизился, но второй запуск назвал неверный тест или пропустил обязательное архитектурное правило — изменение ухудшило результат. Верните исходные инструкции.
Handoff вместо повторной загрузки истории
Для новой сессии подготовьте короткий handoff: цель, ограничения, текущая ревизия, изменённые файлы, уже выполненные проверки, нерешённые вопросы и следующая команда. Не переносите весь transcript и полные логи. Новая сессия должна читать только handoff и точечные файлы, а затем подтвердить состояние командами вроде git status и конкретного теста.
Сравните такой запуск с вариантом, где заново передаётся длинная история. Задача, ревизия и acceptance criteria остаются теми же; меняется только способ передачи контекста. Для отдельных источников расхода используйте разбор стоимости контекста агента, а поведение стабильного prefix проверяйте по эксперименту Prompt Cache.
Пошаговая верификация результатов
Оставляйте изменения в конфигурации проекта только при выполнении пяти шагов:
- Один фактор за итерацию: изменился только один источник контекста.
- Сохранение точности: тест и функция найдены корректно.
- Проверка ограничений: обязательные правила безопасности и стиля сохранились.
- Сверка usage:
/usage, доступный cost field status line и Dashboard подтверждают ожидаемое изменение метаданных. - Второй контрольный тест: результат воспроизведён на ещё одной небольшой задаче.
Сверка данных в BetterToken Dashboard
Для собственного API-workflow BetterToken Dashboard отображает баланс, используемую модель, точное время, HTTP-статус, Input, Output и Cache Token, а также итоговое списание. Сопоставьте записи по времени запусков A и B и перенесите данные в свою таблицу. Dashboard хранит метаданные запросов, но не полный текст приватных промптов и ответов.
BetterToken предоставляет Anthropic-compatible API-доступ с собственным API Key пользователя, а не подписку Claude.ai. Ознакомьтесь с актуальной документацией BetterToken для Claude Code и проверяйте фактический status и usage в Dashboard.
Итог диагностики
Цель настройки — убрать нерелевантный шум, а не добиться минимального числа любой ценой. Измеряйте стартовый контекст через /context, usage — через текущий /usage и доступный status line, меняйте один источник за раз, проверяйте точность решения и сопоставляйте метаданные API.