Руководства
Контекстное окно Claude Code: что его заполняет и что сохраняет /compact
Контекстное окно содержит всё, что Claude знает о вашей сессии: ваши инструкции, прочитанные файлы, его собственные ответы и содержимое, которое никогда не появляется в терминале. Эта страница разбирает документацию Anthropic Explore the context window: что загружается при старте, как проверить использование, что происходит при заполнении окна, что остаётся после /compact и как работают /compact, /clear и /rewind. Документация проверена 30 октября 2026 г.
- Контекстное окно содержит не только ваш разговор: CLAUDE.md, auto memory, имена инструментов MCP и описания skills загружаются ещё до того, как вы что-либо наберёте.
- Выполните
/context, чтобы получить актуальную разбивку по категориям с советами по оптимизации. - Claude Code автоматически сжимает контекст при приближении к лимиту, поэтому заполненное окно не завершает сессию.
- После сжатия CLAUDE.md в корне проекта и auto memory заново подгружаются с диска. Правила с
paths:и вложенные файлы CLAUDE.md вместо этого загружаются заново по требованию. - Чтобы краткое изложение сохранило важное для вас, выполните
/compactс инструкциями, например/compact focus on the auth bug fix. При переходе к несвязанной работе используйте/clear.
Что попадает в контекстное окно
В документации есть интерактивная временная шкала, которая проигрывает сессию от запуска до сжатия. Количества токенов на ней показательные, а не ваши реальные. Согласно документации, порядок примерно такой:
- Прежде чем вы что-либо наберёте: в контекст загружаются CLAUDE.md, auto memory, имена инструментов MCP и описания skills. Вместо CLAUDE.md могут загружаться файлы AGENTS.md. Ваша собственная настройка может добавить сюда ещё что-то, например output style или текст из
--append-system-prompt. - Пока Claude работает: каждое прочитанное содержимое файла добавляется в контекст, правила с привязкой к путям автоматически загружаются вместе с подходящими файлами, а после каждой правки срабатывает hook PostToolUse.
- Следующий запрос: исследование выполняет subagent в собственном отдельном контекстном окне, так что большие чтения файлов остаются вне вашего. Возвращается только краткое изложение и небольшой блок метаданных.
- В конце шкалы: вы выполняете
/compact, который заменяет разговор структурированным кратким изложением. Большая часть стартового содержимого перезагружается автоматически; в таблице ниже показано, что происходит с каждым механизмом.
О написании subagents см. subagents в Claude Code. О skills — skills в Claude Code. О CLAUDE.md — как написать CLAUDE.md.
Как проверить использование контекста
В документации сказано выполнить /context в любой момент, чтобы увидеть реальное использование: актуальную разбивку по категориям с советами по оптимизации, в том числе какие файлы CLAUDE.md и auto memory загрузились. Выполните /memory, чтобы открыть и отредактировать эти файлы.
Справочник команд описывает эти две команды так:
| Команда | Что говорится в документации |
|---|---|
/context [all] | Визуализирует текущее использование контекста в виде цветной сетки с советами по оптимизации для тяжёлых для контекста инструментов, раздутой памяти и предупреждениями о заполнении. Когда разговор превышает контекстное окно, вывод содержит предупреждение о том, насколько превышен лимит и какая команда освободит место. В полноэкранном режиме /context сворачивает разбивку по элементам, чтобы сетка оставалась видимой. Передайте all, чтобы развернуть её. |
/memory | Редактирует файлы CLAUDE.md, включает и выключает auto memory и показывает записи auto memory. |
Документация о расходах добавляет, что /usage проверяет текущее использование токенов и что можно настроить строку состояния так, чтобы она показывала его постоянно. /usage показывает стоимость сессии, лимиты тарифа и статистику активности.
Что происходит, когда контекст заполняется
Claude Code автоматически сжимает контекст при приближении к лимиту, поэтому заполненное окно не завершает сессию. Автоматический проход работает так же, как шаг /compact на временной шкале.
Момент, когда запускается автоматическое сжатие, зависит от вашей модели и конфигурации. Пороги по умолчанию для каждой модели и способ исправить ситуацию, когда Claude Code предполагает неверное окно для вашего ID модели, документация держит на странице model-config. На этой странице конкретных чисел нет.
Если вам нужно окно побольше, а не разговор поменьше: в документации сказано, что модели Fable, Sonnet 5 и новее, Haiku 5.5, Opus 4.6 и новее и Sonnet 4.6 поддерживают контекстное окно в 1 миллион токенов. Доступность по тарифам и способ выбрать вариант модели [1m] описаны в разделе Extended context. Там же сказано, что при большем лимите сжатие работает так же.
Что переживает сжатие, а что нет
Когда длинная сессия сжимается, Claude Code пересказывает историю разговора, чтобы она уместилась в контекстное окно. Начиная с v2.1.198 запрос на сжатие наследует конфигурацию extended thinking вашей сессии: рассуждает с включённым thinking, если он включён в сессии, и остаётся выключенным в противном случае. Thinking влияет только на то, как создаётся краткое изложение; настройки сессии потом не меняются. Что происходит с каждым видом содержимого, зависит от того, как оно было загружено:
| Механизм | После сжатия |
|---|---|
| Системный промпт и output style | Оба по-прежнему действуют |
| CLAUDE.md в корне проекта и правила без привязки к путям | Заново подгружаются с диска |
| Auto memory | Заново подгружается с диска |
| Описания skills | Пересобираются из ваших текущих skills и подгружаются заново. Нужен Claude Code v2.1.304 или новее |
| Снимок статуса Git | Если сессия началась со снимка, Claude Code читает новый из вашего репозитория |
| План, который Claude написал в режиме планирования | Заново подгружается с диска |
Правила с frontmatter paths: | Claude Code загружает их заново по требованию |
| Вложенные CLAUDE.md в подкаталогах | Claude Code загружает их заново по требованию |
| Файлы, которые Claude читал или правил | Claude Code перечитывает до пяти, начиная с изменённых последними |
| Тела вызванных skills | Подгружаются заново, не более 5 000 токенов на skill и 25 000 токенов суммарно; самые старые отбрасываются первыми |
| Фоновые команды и фоновые subagents | Продолжают работать. Claude Code напоминает Claude, какие ещё выполняются, чтобы он не запускал дубликат |
| Контекст, ранее добавленный hooks | Сжимается вместе с остальным разговором |
Hooks SessionStart, подходящие под источник compact | Claude Code запускает их и добавляет их вывод в сжатый контекст |
Три детали, на которые указывает документация:
- У повторного чтения файлов есть ограничение по размеру. Сразу после сжатия Claude Code перечитывает до пяти файлов, которые Claude читал или правил в сессии, выбирая изменённые последними. Файл больше 5 000 токенов возвращается как ссылка на путь без содержимого и отображается как
Referenced fileвместоRead. - Правила с привязкой к путям и вложенные файлы CLAUDE.md теряются при сжатии. Они загружаются в историю сообщений, когда Claude читает, пишет или правит файл-триггер, поэтому сжатие пересказывает их вместе со всем остальным. Если правило должно сохраняться после сжатия, уберите frontmatter
paths:или перенесите его в CLAUDE.md в корне проекта. - Тела skills могут быть усечены. Тела skills подгружаются заново, но большие skills усекаются до лимита на skill, а самые старые из вызванных отбрасываются, когда превышен общий бюджет. Усечение сохраняет начало файла, поэтому самые важные инструкции помещайте ближе к началу
SKILL.md.
Что можно сделать до сжатия
Действовать можно до запуска автоматического прохода. В документации перечислены пять способов:
| Подход | Как |
|---|---|
| Сжатие с фокусом | Выполните /compact с инструкциями, например /compact focus on the auth bug fix, перед началом долгой новой задачи. Краткое изложение сохранит то, что выбрали вы, а не то, что автоматический проход счёл важным. |
| Сжатие части разговора | Выполните /rewind, выберите сообщение и нажмите Summarize from here или Summarize up to here. |
| Сжатие раньше | Выполните /autocompact с числом токенов, например /autocompact 500k, чтобы задать, насколько заполнится контекстное окно до запуска автоматического прохода. |
| Очистка между задачами | Выполните /clear, переходя к несвязанной работе. Старый разговор вытесняет нужные дальше файлы и стоит токенов при каждом сообщении. |
| Делегирование больших чтений | Отдайте исследование subagent, чтобы содержимое файлов оставалось в его контекстном окне, а не в вашем. |
Справочник команд говорит о задействованных командах следующее:
| Команда | Что говорится в документации |
|---|---|
/compact [instructions] | Освобождает контекст, сжимая разговор до этого момента. Можно передать инструкции, на чём сфокусировать сжатие. |
/clear [name] | Начинает новый разговор с пустым контекстом. Передайте имя, чтобы подписать предыдущий разговор в списке /resume. Чтобы освободить контекст, продолжая тот же разговор, используйте вместо этого /compact. Вернуться к предыдущему разговору можно через /resume. Алиасы: /reset, /new. |
/rewind | Откатывает разговор и/или код к предыдущей точке или сжимает всё начиная с выбранного сообщения. Алиасы: /checkpoint, /undo. |
/autocompact [auto|<tokens>] | Задаёт окно автосжатия: насколько заполнится контекстное окно, прежде чем Claude Code сожмёт его автоматически. Передайте размер, например 500k, или auto, чтобы вернуться к окну, подобранному под вашу модель. Claude Code сохраняет значение в пользовательских настройках и применяет его к текущей сессии. Нужен Claude Code v2.1.221 или новее. |
Как держать контекст компактным
Советы по контексту из документации о расходах:
/clearмежду задачами. Устаревший контекст тратит токены при каждом следующем сообщении. Используйте/renameперед очисткой, чтобы потом найти сессию, а затем/resume, чтобы к ней вернуться.- Добавьте собственные инструкции для сжатия.
/compact Focus on code samples and API usageговорит Claude, что сохранить при сжатии. То же можно записать в CLAUDE.md в корне проекта:# Compact instructions When you are using compact, please focus on test output and code changes - Следите за MCP. Определения инструментов MCP по умолчанию откладываются, поэтому в контекст попадают только имена инструментов и инструкции серверов, пока Claude не использует конкретный инструмент. Выполните
/context, чтобы увидеть, что занимает место. - Предпочитайте CLI-инструменты, когда они есть. Инструменты вроде
gh,aws,gcloudиsentry-cliэкономнее по контексту, чем серверы MCP, потому что не добавляют перечень по каждому инструменту. - Сократите CLAUDE.md. Он загружается в контекст при старте сессии. Если в нём подробные инструкции для отдельных рабочих процессов, эти токены присутствуют, даже когда вы занимаетесь несвязанной работой. Skills загружаются по требованию только при вызове, поэтому перенос специализированных инструкций в skills уменьшает базовый контекст. Документация советует держать CLAUDE.md короче 200 строк, оставляя только необходимое.
- Отправляйте многословный вывод в subagents. Запуск тестов, получение документации или обработка лог-файлов могут занять много контекста. Делегируйте это subagents, чтобы многословный вывод остался в их контексте, а в основной разговор вернулось только краткое изложение.
- Предобрабатывайте данные с помощью hooks. Пример из документации: вместо того чтобы Claude читал лог на 10 000 строк в поисках ошибок, hook может сделать grep по
ERRORи вернуть только подходящие строки, сократив контекст с десятков тысяч токенов до сотен.
О том, как эти привычки влияют на счёт, см. наше руководство по экономии токенов, а о поведении кэша — руководство по кэшу. Эта страница посвящена тому, как устроен сам контекст.
FAQ
Заполненное контекстное окно завершает мою сессию?
Нет. В документации сказано, что Claude Code автоматически сжимает контекст при приближении к лимиту, поэтому заполненное окно не завершает сессию. Вы можете и сами выполнить /compact раньше и инструкциями задать, что сохранит краткое изложение. Момент автоматического сжатия зависит от вашей модели и конфигурации.
Переживают ли сжатие правила из моего CLAUDE.md?
CLAUDE.md в корне проекта и правила без привязки к путям заново подгружаются с диска. Правила с frontmatter paths: и вложенные CLAUDE.md в подкаталогах иначе: они загружаются по требованию, а сжатие их пересказывает и теряет. Если правило должно сохраняться после сжатия, в документации сказано убрать frontmatter paths: или перенести его в CLAUDE.md в корне проекта.
Чем /compact отличается от /clear?
/compact освобождает контекст, сжимая разговор, и разговор продолжается. /clear начинает новый разговор с пустым контекстом, а к предыдущему можно вернуться через /resume. Справочник команд прямо говорит: чтобы освободить контекст, продолжая тот же разговор, используйте /compact. При переходе к несвязанной работе документация рекомендует /clear.
Источники
- Claude Code: Explore the context window (что загружается при старте, что переживает сжатие, когда контекст заполняется,
/context) - Claude Code: Commands (
/context,/compact,/clear,/rewind,/autocompact,/memory,/usage) - Claude Code: Manage costs effectively (практики управления контекстом, собственные инструкции для сжатия)