С плагином catnap Claude Code сжимает контекст после задачи

Автор плагина catnap попросил Claude пересчитать автосжатия контекста в своих логах Claude Code. Из 82 сжатий 78 сработали, пока агент был посреди работы. 20 октября автор показал на Hacker News плагин, который переносит сжатие на паузу между задачами. Код и замеры лежат в репозитории на GitHub.
Штатное автосжатие срабатывает, когда разговор подходит к пределу окна: Claude Code пересказывает историю и продолжает работу с этого пересказа. При пересказе часть деталей теряется, и автор говорит, что каждый раз гадал, всё ли Claude подхватил правильно и не пропало ли что-нибудь. Сначала он написал навык, который заставлял Claude явно сохранять прогресс по ходу длинных прогонов. Основную проблему навык не решил, а токенов тратил больше. Исправить её саму получилось, когда в Claude Code появились моды.
Три порога
Когда контекст заполнен наполовину, catnap сообщает Claude, сколько места занято, и просит закончить текущую работу, написать передаточную записку и самому запустить сжатие. Записка (handoff) коротко описывает состояние задачи, чтобы после сжатия было с чего продолжить. Как только Claude заканчивает свой кусок, плагин сжимает контекст, и работа идёт дальше уже от записки. Записка заменяет стандартное резюме Claude Code, поэтому одна и та же работа дважды не делается.
Если к 60% Claude так и не сжался, он получает напоминание построже. На 70% страхует штатное автосжатие Claude Code. Все три порога настраиваются.
После перехода на catnap ни одно из 129 сжатий не пришлось на середину задачи: 98 из них прошли в бенчмарках, 31 в собственных сессиях автора.
По токенам и деньгам catnap обходится так же, как штатное автосжатие, если поставить его на тот же порог. Автор проверял это на окнах в 200K и 1M токенов. Против штатного сжатия, которое ждёт почти полного окна, catnap потратил на 56% меньше токенов. Но, как оговаривается сам автор, большую часть этой экономии даёт и простое снижение порога штатного автосжатия. Для этого в Claude Code есть переменная CLAUDE_AUTOCOMPACT_PCT_OVERRIDE: она задаёт порог в процентах окна и может его только опустить.
Память и время
В день публикации автор замерил ещё и память. Claude решал задачи по одному сообщению за раз, а в чате между делом звучали 20 инструкций и фактов, спрятанных в длинных разговорных сообщениях, больше нигде их не было. Сразу после сжатия Claude просили перечислить их по памяти, не читая файлов. Все 20 он назвал в каждом прогоне: в 15 прогонах с catnap и в 5 со штатным сжатием. Разница была только в размере: записка catnap заняла 4,0K токенов, стандартное резюме 10K, на 60% больше. Тест шёл на выдуманных задачах по программированию в окне на 200K.
Скорость автор называет побочным эффектом, которого специально не добивался. Claude пишет записку за один проход, а штатное сжатие делает для резюме отдельный вызов, да и записка короче. Задачи, если мерить от начала до конца, заняли 406 секунд вместо 464, почти на минуту меньше.
Что нужно для запуска
Плагину нужен Claude Code 2.1.287 или новее: в этих версиях моды включены по умолчанию. Пока catnap работает только с Claude Code и проверен на Windows и Linux. Ставится он двумя командами: claude plugin marketplace add LippInc/catnap и claude plugin install catnap@lippinc.
Похожие инструменты автор перечисляет сам: compact-adviser, handoff-compact, session-pilot и sub-agent-compact. От них catnap, по его словам, отличается тем, что Claude сначала доводит свой кусок работы до конца, и тем, что плагин показывает, в какой момент пришлось сжатие.
Проверить собственные сессии можно и без установки. Команда npx github:LippInc/catnap выводит, как часто автосжатие обрывало работу посреди задачи в ваших логах. По словам автора, она читает только числа и ничего никуда не отправляет.
Дальше
Скрипт проверит, не ломает ли сеть загрузки в Claude API
Мелкие запросы к Claude API проходят все до одного, а крупные загрузки падают пачками с EPROTO и ECONNRESET. Небольшой скрипт на Node.js ловит этот сбой и проверяет, не в вашей ли сети дело. У вас Claude Code падал с EPROTO, когда интернет в остальном работал?
Читайте также
- Из промпта Claude Code вырезали больше 80% текста
- context-tax считает, во что обходится контекст Claude Code
- /design-sync отучает Claude Design выдумывать кнопки
- 57% субагентов Claude Code наследуют Bash вызвавшего
- Toolog ведёт локальный журнал вызовов Claude Code
- Stemma компилирует CLAUDE.md и AGENTS.md из одного источника
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите, чтобы оставить комментарий. Он появится после модерации.

