Ручной компакт в Claude Code: правило 50-55% и экономия лимита
vipsrv:~$ cat ruchnoy-kompakt-okno-konteksta.md

vipsrv:~$ cat ruchnoy-kompakt-okno-konteksta.md

# ИИ // ручной компакт

Почему ваш Claude Code сжирает лимит к обеду - и как ручной компакт спасает подписку

Утром Claude Code летает, к обеду начинает тупить, а к вечеру здоровается плашкой «лимит исчерпан». Подписка та же, задачи те же, а токены кончились втрое быстрее, чем на прошлой неделе. Нет, Anthropic вас не обманула. Вы сами возите с собой мусорный полигон и платите за каждую ходку.

Дальше механика этого жора и правило 50-55%, которое режет расход лимита в разы. Без плагинов и бубна, всё штатными средствами.

Как вы платите за один и тот же мусор по сто раз

Главное, что упускают почти все: Claude Code отправляет в API всю историю сессии заново с каждым вашим сообщением. Не дельту. Не последний вопрос. Всю простыню целиком.

Прочитали в сессии двадцать файлов, вывалили лог на пятьсот строк, вставили пару скриншотов - поздравляем, весь этот балласт теперь едет в КАЖДЫЙ следующий запрос до конца сессии. Спросили «а что дальше?» тремя словами, а заплатили как за том «Войны и мира»: вместе с вопросом уехал весь накопленный хлам.

Представьте такси, где счётчик мотает не за километры, а за вес багажника. Ехать вам три квартала, но в багажнике с утра лежат холодильник, два мешка цемента и чей-то диван. Вот это ваша сессия к шести вечера.

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

Про вторую половину счёта - пятиминутный кеш, догонки по одной правке и служебку на дорогой модели - мы писали в «Как мы спалили лимит нейросети на мелких правках». Здесь разбираем главный кран: окно контекста.

«У меня безлимит, мне пофиг» - безлимитов нет, есть недельные квоты. Проверьте /status, удивитесь.

Автокомпакт - это подушка безопасности, а не тормоза

В Claude Code есть автокомпакт: когда окно почти забито, он сам сжимает историю в короткое резюме. Звучит как решение? Ага, йух там плавал.

Порог у автокомпакта - ~90%+ заполнения. То есть десятки ходов с раздутым окном по конской цене вы к этому моменту УЖЕ откатали. А момент он выбирает сам, обычно посреди задачи, когда в контексте живут важные детали: пути, договорённости, промежуточные решения. Сжатие перемалывает их в кашу, и дальше модель «вспоминает» детали из резюме, то есть выдумывает. Х#як - и вместо точного пути к боевому файлу у вас правдоподобная подделка, которую ещё надо успеть заметить.

Подушка безопасности штука полезная. Но руль она не заменяет. Никто же не въезжает в столб на том основании, что airbag в машине есть.

Правило 50-55%: компакт руками, на границе задач

Схема из трёх пунктов.

1. Следите за цифрой. Первое, что спрашивают все: а где этот процент вообще увидеть? Три штатных способа:

  • Команда /context - набираете прямо в чате, получаете раскладку окна: сколько занято, чем именно (системный промпт, история переписки, прочитанные файлы) и сколько осталось. Способ разовый: захотели - посмотрели.
  • Статус-бар - постоянный и самый удобный. Набираете /statusline и просите Клода обычным текстом: «добавь в статус-бар процент занятого контекста». Он сам напишет и подключит скрипт, цифра будет висеть внизу экрана всегда. Настроили один раз и забыли, дальше она работает как датчик топлива.
  • Встроенное предупреждение «Context left until auto-compact: X%» - появляется само, но уже на подходе к автокомпакту. Это не инструмент контроля, а сирена «вы всё проспали».

У нас в работе агент вообще пишет метку с процентом в конце каждого ответа - самоконтроль на автомате. Не обязательно, но принцип показывает: цифра должна быть перед глазами, а не в голове. В голове она всегда «ну, процентов сорок», а по факту семьдесят восемь.

2. Потолок 50-55%. Подошли к нему, жмите /compact руками. Почему именно тут: ниже 50 компактить рано, сам компакт тоже стоит токенов, а выше 60 каждый ход уже золотой и качество ответов ползёт вниз.

3. Только на границе задач. Компакт - это смерть деталей. Посреди задачи не жать никогда. Закончили кусок, зафиксировали состояние, сжали - и чистый заход на следующий. Компакт посреди отладки это как ребутнуть комп, не сохранив файл: машина работает бодро, работы нет.

«Я что, теперь на проценты пялиться должен вместо работы» - должны. Полминуты на статус-бар один раз против «почему он опять тупит» каждый вечер.

Стейт наружу - ДО компакта

Всё, что обязано пережить сжатие, пишется в файл ЗАРАНЕЕ. Заведите в проекте файл вроде current-focus.md и приучите Клода (через CLAUDE.md) перед компактом сбрасывать туда: текущий фокус, незакрытые хвосты, точные пути, ID, ключевые решения.

После компакта первое действие - прочитать этот файл. Не «вспоминать» из сжатого резюме: резюме врёт в деталях, файл нет. Это разница между «продолжил с того же места» и «полчаса восстанавливал, что вообще делали».

Резюме - это пересказ соседа о том, что было на совещании. Файл - протокол. С соседом можно спорить до ночи и без толку.

Не тащите мусор в окно - топ-3 пожирателя

Картинки. Один скриншот - десятки тысяч токенов. Живой случай: четыре фотографии, брошенные в чат подряд, раздули окно с 13% до 49%. Одним махом треть окна на «глянь, что тут». Красиво живём, бл#. Серию изображений в основную сессию не кидать: одно можно, остальные отдавайте путями к файлам, пусть разбирает субагент.

Простыни. cat файла на две тысячи строк, полный лог сборки, дамп JSON - всё это ложится в окно и ездит с вами до компакта. Читайте кусками, грепайте, отрезайте tail-ом. Клоду не нужен весь лог целиком, ему нужны те шесть строк, где всё легло.

Болтовня в одной сессии обо всём. Сессия про деплой, потом в ней же про вёрстку, потом «а посмотри ещё логи», и к вечеру в окне свалка из трёх несвязанных задач. Новая тема - новая сессия или компакт между ними.

«Да я одну картинку кинул, там же копейки» - одну и можно. Четыре подряд - это минус треть окна, замеряли.

Субагенты: лимит общий, окно своё

Частый вопрос: «субагент же тратит те же токены, в чём смысл? Или нужно отдельное окно открывать?» Разбираем по косточкам, тут сидит главное заблуждение всей темы.

Лимит подписки - общий. Токены субагента списываются с того же счётчика, чуда нет. Кто ждал бесплатных токенов - расходимся.

Окно контекста - у субагента СВОЁ. Вот тут и живёт экономия. Вспомните механику из начала статьи: главная сессия шлёт всю историю заново с каждым сообщением. Прочитали в ней двадцать файлов - этот груз едет в каждый запрос до конца сессии, вы платите за него снова и снова. Субагент читает те же двадцать файлов в своём отдельном окне, возвращает вам три абзаца выжимки и умирает вместе со своим мусором. В вашей истории остаётся только выжимка. Разово потрачено столько же, но главная сессия осталась тощей, и каждый следующий ход дешевле в разы, потому что не возит чужой хлам.

Грубо говоря, вы нанимаете одноразового стажёра: он перелопачивает гору бумаг у себя в каморке, приносит страничку выводов и уходит навсегда вместе с горой.

Ничего открывать руками не надо. Отдельное окно, вторая вкладка, ещё один терминал - не нужны. Субагент и есть это «отдельное окно», только автоматическое. Пишете обычным текстом: «через субагента найди все места, где у нас используется X» или «делегируй разбор этих логов субагенту» - и Клод сам вызовет встроенный Task-механизм. В интерфейсе это видно строчкой «Task: ...» со счётчиком, пока субагент пашет.

Что за Task такой? Встроенный в Claude Code механизм, ставить ничего не надо. Под капотом поднимается отдельный Клод с чистым окном, делает работу, отдаёт результат и исчезает. Кому интересно глубже - команда /agents заводит именных субагентов под свои задачи (например «ревьюер» со своей инструкцией), но для экономии контекста хватает и безымянных, через обычную просьбу.

Правило простое: жирное чтение (поиск по проекту, разбор логов, изучение чужой либы) - субагенту. Решения и правки - в главном окне.

«Это всё для задротов, я просто пользуюсь» - ну-ну. «Просто пользователи» и приносят нам сессии с окном 92% и вопросом «почему он отупел и лимит кончился».

Что это даёт в цифрах

Сессия, живущая на 15-30% окна, тратит на каждый ход в 3-5 раз меньше лимита, чем раздутая до 80%. На Max-подписке это разница между «упёрся в лимит к обеду» и «спокойно работаю весь день». На Pro - между «хватает на час» и «хватает на полдня».

Плюс модель в тощем контексте заметно умнее. Меньше хлама, меньше галлюцинаций.

Чеклист - выжигайте на мониторе

  1. Статус-бар с процентом контекста - настроить один раз
  2. Тяжёлое чтение - субагентам, картинки - путями, логи - фильтром
  3. Подошли к 50-55% - фиксируем стейт в файл
  4. /compact - только на границе задач
  5. После компакта - читаем файл стейта, работаем дальше

Пять пунктов, ни одной установки, а экономия колоссальная. Проверено на живых сессиях: лимита стало хватать на день вместо пары часов.

Разгрузите багажник. Счётчик заметит это первым.

> конец записи