Десять субагентов Claude Code стартовали одновременно и сожгли пятичасовой бюджет за четыре минуты — виновата команда, которая должна была помочь

2026-08-20 14:05:25 Время чтения 7 мин 97
Команда /compact в Claude Code сжимает историю сессии, что при этом сохраняется и что теряется

Разработчик описал на своём сайте случай из практики: в сессии с несколькими субагентами было чёткое указание запускать их по очереди. После автоматического сжатия контекста инструкция потерялась. Десять агентов стартовали одновременно и за четыре минуты потратили токенов на пять часов работы вперёд.

Речь о команде /compact, которая сжимает историю разговора в Claude Code, когда контекст начинает заполняться. Мы уже разбирали, что происходит с точностью агента к третьему часу долгой сессии. Эта статья про механизм, который должен с этим бороться, и про то, где он сам подводит.

Что делает /compact

/compact не стирает историю сессии. Вместо этого команда заменяет её структурированным резюме, освобождая место в контекстном окне, и разговор продолжается на том же месте. /clear работает иначе и стирает контекст полностью, начиная всё с нуля. По замеру одного независимого теста объём данных, который уходит в следующий запрос к модели, после /compact сокращается примерно на 87%: с 14 280 токенов до 1 820.

Команде можно дать направление, что сжимать бережнее, например «/compact сосредоточься на изменениях в API и списке файлов» — тогда остальное резюмируется агрессивнее. Посмотреть, сколько контекста уже занято, можно командой /context, она показывает заполнение окна цветной сеткой.

Автоматическое сжатие срабатывает само примерно на 83% заполнения окна. Порог можно понизить переменной окружения CLAUDE_AUTOCOMPACT_PCT_OVERRIDE, если хочется сжимать раньше. Поднять его выше значения по умолчанию нельзя, ограничение зашито в код инструмента.

Что реально сохраняется после сжатия

Официальная документация Claude Code даёт точную таблицу того, что происходит с разными частями настроек после /compact. Корневой файл CLAUDE.md и файл auto memory перезагружаются заново прямо с диска, поэтому формально не теряются. Вложенные CLAUDE.md в подпапках и правила, привязанные к конкретным путям через frontmatter, теряются до тех пор, пока агент снова не прочитает соответствующий файл. Тело вызванных скиллов тоже перезагружается, но с потолком в 5000 токенов на скилл и 25000 суммарно. При превышении лимита обрезается конец файла, начало остаётся нетронутым.

На практике пользователи описывают другую картину. Issue #4017 от июля 2025 сообщает, что после /compact или автоматического сжатия Claude Code начинает игнорировать правила из CLAUDE.md, а поведение становится непредсказуемым. Issue #24460 от февраля 2026 идёт дальше и предлагает сделать CLAUDE.md системным инвариантом, который переинжектится после каждого сжатия так же, как при старте сессии. Оба обращения закрыты статусом «не планируется», без официального исправления.

Файл при этом физически на месте, документация подтверждает его перезагрузку. Модель после сжатия хуже держится за перезагруженные инструкции, чем за те, что были в разговоре с самого начала, — это проблема соблюдения правил, не проблема их потери. Разработчики, столкнувшиеся с этим на практике, нашли рабочий обходной путь: после каждого /compact вручную просить агента перечитать CLAUDE.md, не полагаясь на автоматическую перезагрузку.

Как использовать /compact на практике

Несколько независимых источников сходятся на одной цифре. Сжимать вручную стоит на 50-60% заполнения контекста, не дожидаясь автоматического срабатывания на 83% и выше. Причина в том, что качество работы агента заметно проседает уже при заполнении контекста выше 60-70%, и ошибки начинаются раньше, чем срабатывает автоматическое сжатие. Сжатие раздутой, уже путающейся истории даёт менее точное резюме, чем сжатие компактной и ещё аккуратной.

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

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

Частые вопросы

Как понять, что пора делать /compact вручную, не дожидаясь автоматического? Проверить заполнение контекста командой /context. Если счётчик подбирается к 50-60%, разумнее сжать сейчас на своих условиях, чем ждать, пока агент сделает это сам ближе к 83% с большей потерей качества резюме.

Стоит ли использовать /clear вместо /compact, если задача закончена? Да, если предыдущий контекст для новой задачи не нужен вообще. /clear стирает всё и начинает с чистого листа, а /compact имеет смысл только тогда, когда текущий разговор нужно продолжить, просто освободив место.

Можно ли автоматизировать проверку CLAUDE.md после каждого сжатия? Прямой автоматической функции для этого нет, оба открытых обращения на GitHub с такой просьбой закрыты без исправления. Рабочий обходной путь — вручную попросить агента перечитать CLAUDE.md сразу после /compact, особенно перед тем, как оставить его работать без присмотра.

Заключение

/compact решает реальную проблему заполненного контекста, но не гарантирует, что агент одинаково хорошо помнит все правила после сжатия, даже те, что формально перезагружаются с диска. Проверять результат самому стоит именно в этом месте, до того как оставить агента работать без присмотра на несколько часов. Такие практические настройки Claude Code предприниматели разбирают на встречах клуба — присоединяйся к AI Practiq, если хочешь свериться с чужим опытом заранее.

Категории: Кейсы