Вы оставили длинную сессию Claude Code на час, вернулись и видите незнакомое сообщение: «Compacted while idle, before the prompt cache expired.» Это idle compaction, сжатие при простое. Anthropic выпустила его в октябре 2026 года и с тех пор расширяет почти в каждом релизе. Функция включена по умолчанию, поэтому многие сталкиваются с ней раньше, чем читают о ней.
В статье разберём, что делает idle compaction, когда она срабатывает, как её настроить или отключить и что она меняет, если у вас несколько агентов работают бок о бок.
Что изменилось и когда
Даты — это даты публикации версий в npm, описания взяты из журнала изменений Claude Code.
| Версия | Дата | Изменение |
|---|---|---|
| 2.1.299 | 14 октября 2026 | Idle compaction в терминале: диалог больше 200K токенов, простоявший около 54 минут, сжимается до того, как истечёт его часовой кэш промптов. Появились CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS и настройка idleCompaction. |
| 2.1.302 | 16 октября 2026 | Строка Idle compaction в /config, чтобы выключить или снова включить функцию. Уведомление после сжатия теперь подсказывает, как её отключить. |
| 2.1.314 | 30 октября 2026 | Idle compaction в VS Code и во вкладке Code десктопного приложения. Работает и у подписчиков с выключенной телеметрией, и на Bedrock, Vertex, Foundry и LLM-шлюзах, если включён часовой кэш. |
| 2.1.318 | 3 ноября 2026 | Исправлено: idle compaction могла заменить диалог ответом, который не был пересказом. |
Если вы пользуетесь idle compaction, обновитесь до 2.1.318 или новее ради этого исправления.
Зачем Claude Code сжимает диалог, пока вас нет
Каждое сообщение заново отправляет весь диалог. Дёшево это только благодаря кэшу промптов: API повторно использует то, что уже обработал. Но кэш истекает после периода бездействия. Если вернуться позже, следующее сообщение обработает всю историю как некэшированный ввод, а для диалога больше 200K токенов это медленно и дорого.
Сжимать дешевле всего, пока кэш ещё тёплый: запрос на пересказ читает историю из кэша. Idle compaction пользуется именно этим окном: незадолго до истечения часового кэша Claude Code пишет пересказ. Когда вы возвращаетесь, следующее сообщение начинается с короткого пересказа, а не с пересборки всего диалога. Подробнее об этом компромиссе — в документации по кэшу промптов.
Когда срабатывает idle compaction
Согласно справочнику настроек, диалог подходит, только если выполнены все условия:
- Сессия: интерактивная сессия в терминале, панель чата расширения VS Code или вкладка Code десктопного приложения, если сессия работает на вашем компьютере или по SSH.
- Автосжатие (
autoCompactEnabled) включено. - Кэш промптов: диалог работает с часовым TTL.
- Размер: контекст достиг порога, по умолчанию 200 000 токенов.
- Простой: с последнего запроса прошло около часа, и компьютер всё это время не засыпал.
Условие про кэш важнее, чем кажется. По умолчанию Claude Code запрашивает часовой TTL только для основного диалога в подписке Claude и только пока вы в пределах лимитов тарифа. С API-ключом или облачным провайдером по умолчанию пять минут, и idle compaction не сработает, если не задать promptCacheTtl равным 1h. Если вы превысили лимит тарифа и перешли на кредиты использования, основной диалог тоже переключается на пять минут.
Как отключить
Достаточно одного способа:
- Файл настроек: добавьте
"idleCompaction": falseв~/.claude/settings.jsonили в файл настроек проекта, чтобы отключить только в этом репозитории. /config: переключите строку Idle compaction. Выбор сохраняется в пользовательских настройках и применяется сразу (v2.1.302 и новее).- Переменная окружения:
DISABLE_AUTO_COMPACT=1отключает idle compaction вместе с автоматическим сжатием. Ручной/compactпродолжает работать.
{
"idleCompaction": false
}
Если в /config нет этой строки, скорее всего, ключ задаёт другой источник настроек: управляемые настройки, файл проекта или --settings. Меняйте его там.
Как настроить порог
CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS задаёт, насколько большим должен быть диалог, чтобы к нему применялась idle compaction. Значения меньше 100 000 поднимаются до 100 000.
Есть деталь, которую стоит знать. На модели с окном 200K автосжатие срабатывает раньше, чем диалог дойдёт до 200 000 токенов, так что при пороге по умолчанию idle compaction затрагивает в основном сессии с контекстом 1M. Чтобы охватить и диалоги с окном 200K, понизьте порог:
{
"env": {
"CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS": "150000"
}
}
Что остаётся после сжатия
Сжатие заменяет историю сообщений пересказом, но пропадает не всё. CLAUDE.md из корня проекта и автопамять заново подгружаются с диска, план из режима планирования возвращается, а Claude Code перечитывает до пяти файлов, которые он читал или правил, начиная с последних изменённых. Фоновые команды и фоновые субагенты продолжают работать. Уходят детали: точный вывод инструментов, длинные рассуждения, обсуждение, которое привело к решению. Подробнее — в нашем руководстве по контекстному окну Claude Code.
Правило простое. Если задача была закончена, idle compaction экономит деньги, и вы её почти не заметите. Если вы остановились посреди тонкой работы и хотите, чтобы Claude помнил каждый шаг, отключите её для этого проекта или вернитесь в течение часа.
Что это значит при нескольких агентах
Idle compaction задумана под одного человека, который отошёл от одной сессии. С несколькими параллельными агентами картина другая:
- Каждая сессия оценивается сама по себе. Сессии в разных папках строят разные префиксы кэша, поэтому агенты в отдельных git worktree никогда не делят кэш. Каждый, кто перешёл порог и простоял около часа, сжимается независимо.
- Ждущий агент — простаивающий агент. Агент, который закончил ход и ждёт вашего ревью или ответа на вопрос, считается простаивающим. Когда после обеда вы доберётесь до четвёртой панели, он может уже работать по пересказу. Для «отлично, выкатывай» это не страшно, а для «вернись к подходу, который ты отбросил раньше» — уже хуже.
- Субагенты и напарники не в фокусе. По умолчанию они в группе пятиминутного кэша. Idle compaction касается ваших основных диалогов.
- Headless-запуски не затрагиваются. Запуски с
-pи сессии Agent SDK не подпадают под условия, так что ночные пайплайны на их основе работают как раньше. Об интерактивной ночной работе — в статье как безопасно запустить Claude Code на ночь. - Ноутбук не должен засыпать. Если компьютер уснёт, час пройдёт без сжатия, и вы снова заплатите за перечитывание без кэша.
Практичная схема: оставить idle compaction включённой по умолчанию, отключить её в одном-двух репозиториях, где агент часто ждёт вас посреди задачи, и стараться отвечать агентам с вопросами в течение часа.
При чём здесь AgentVera
Мы делаем AgentVera — десктопное приложение для macOS, Windows и Linux, которое запускает Claude Code, Codex и ещё 16 агентов для программирования бок о бок, каждого в настоящем терминале с вашей установкой и вашим аккаунтом. Некоторые его части перекликаются с idle compaction:
- Экономия токенов: автосжатие по умолчанию включено для каждого агента с порогом 150K токенов и использует собственную команду сжатия каждого CLI, а на каждой панели виден текущий размер контекста. Сообщение агенту, простоявшему больше часа, сначала сжимает большой диалог — это работает и для агентов без собственной idle compaction.
- Уведомления: вы узнаёте, когда агент закончил или ждёт ввода, поэтому меньше агентов простаивает дольше часа.
- Бюджеты токенов и лимиты использования: ограничение на агента и, в строке состояния, 5-часовое и недельное использование каждого аккаунта Claude и Codex.
Бесплатный тариф включает до 18 агентов, MCP, Git, Docker, SSH и код-ревью. Более широкое сравнение — в обзоре приложений для параллельных Claude Code и Codex.
Итог
Idle compaction — небольшая настройка по умолчанию с понятной целью: сжать длинный диалог, пока кэш ещё тёплый, чтобы ваше возвращение не стоило полного перечитывания без кэша. Ей нужна интерактивная сессия, часовой кэш и достаточно большой контекст. Порог можно понизить через CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS, а отключить — через "idleCompaction": false или /config. Когда вас ждут сразу несколько агентов, решайте для каждого проекта, хватит ли пересказа, и отвечайте сначала тем, кому нужен полный контекст.
Источники: журнал изменений Claude Code, idleCompaction в справочнике настроек, How Claude Code uses prompt caching и Explore the context window.