Контекстное окно Claude Code: практическое руководство

Как управлять контекстным окном Claude Code: что его заполняет, как работают /context, /compact и /clear, размер CLAUDE.md, субагенты, цена MCP и признаки «гниения».

Solviera Teknoloji 9 мин чтения

Контекстное окно Claude Code — это всё, что модель видит на данном ходу: системный промпт, имена инструментов, ваш CLAUDE.md, каждое сообщение, каждый прочитанный Claude файл и каждый вывод команды за сессию. Чтобы управлять им, смотрите, что в нём лежит, через /context, сжимайте длинные сессии через /compact (или доверьте это auto-compact), начинайте несвязанную работу с /clear, держите CLAUDE.md коротким и отдавайте тяжёлые исследования субагентам, чтобы возвращался только их итог. Дальше в руководстве показано, как работает каждый из этих приёмов и когда им пользоваться.

Что заполняет контекстное окно

Контекстное окно измеряется в токенах, и в Claude Code оно заполняется с двух сторон: тем, что загружается до того, как вы что-либо напечатали, и тем, что накапливает сессия по ходу работы.

Загружается при запуске

Согласно документации Claude Code, перед вашим первым промптом в контексте уже лежит следующее:

  • Системный промпт и встроенные инструменты.
  • Файлы CLAUDE.md (проекта, пользователя и всех родительских папок) и auto memory. Вместо CLAUDE.md может загружаться AGENTS.md.
  • Имена инструментов MCP и инструкции серверов. Полные определения инструментов по умолчанию откладываются и загружаются при использовании инструмента.
  • Описания skills. Тело skill загружается только при его вызове.

Этот базовый уровень мы измерили в статье о расходе токенов: около 34,4k токенов в первом запросе при стандартной настройке и около 13,3k при облегчённой. Этот базовый объём отправляется заново на каждом ходу.

Добавляется в ходе сессии

Именно здесь возникает основной рост:

ИсточникПочему он быстро растёт
Чтение файловБольшой файл, прочитанный целиком, может стоить тысячи токенов, а повторное чтение стоит столько же
Вывод командЗапуски тестов, сборки и логи часто длинные и в основном шум
Ваши сообщения и ответы ClaudeКаждый ход остаётся в истории
Результаты инструментов серверов MCPРезультат поиска или запроса попадает в контекст целиком
Неудачные попыткиНеверные подходы и ваши поправки остаются, пока вы не очистите или не сожмёте контекст

Одна сессия отладки или изучения кодовой базы может породить десятки тысяч токенов. Это важно, потому что, как сказано в документации Claude Code, качество работы LLM падает по мере заполнения контекста: Claude может начать забывать прежние инструкции или чаще ошибаться.

Насколько велико окно?

Зависит от модели. В документации по настройке моделей Claude Code для последних моделей указано контекстное окно в 1M токенов (модели Fable, Sonnet 5 и новее, Haiku 5.5, Opus 4.7 и новее работают с ним по умолчанию). Opus 4.6 и Sonnet 4.6 достигают 1M только через вариант [1m]; в остальных случаях они работают с границей 200K.

Большое окно даёт запас, но не иммунитет. Сессия, где лежит 600k токенов старых исследований, всё равно медленнее, дороже на каждый ход и шумнее, чем та, что хранит только нужное для текущей задачи.

Смотрите на индикатор: /context

Прежде чем что-то менять, посмотрите. /context показывает актуальную разбивку того, что занимает окно, по категориям, с подсказками. Он также перечисляет, какие файлы CLAUDE.md и памяти были загружены, и это самый быстрый способ найти забытый файл инструкций в родительской папке.

/context

Здесь помогают и несколько связанных команд:

  • /memory открывает загруженные файлы памяти, чтобы их можно было отредактировать.
  • /mcp показывает подключённые серверы и позволяет отключить те, которыми вы не пользуетесь.
  • /usage показывает расход токенов за сессию, включая строку о кэше промптов.

Расход контекста можно вывести и в собственную строку состояния, чтобы видеть его без запроса.

Сжатие: /compact и auto-compact

/compact заменяет разговор на данный момент кратким пересказом и продолжает работу в той же сессии. Claude Code делает то же самое сам, когда вы приближаетесь к лимиту; это и есть auto-compact.

Направьте пересказ

Простой /compact оставляет Claude самому решать, что сохранить. Результат лучше, если вы скажете ему об этом:

/compact Focus on the API changes and the list of files we modified

Сделать это постоянным можно с помощью раздела # Compact instructions в CLAUDE.md, например: «При сжатии всегда сохраняй полный список изменённых файлов и все команды для тестов».

Чтобы сжать только часть разговора, нажмите Esc дважды или выполните /rewind, выберите сообщение и нажмите Summarize from here или Summarize up to here.

Задайте, когда срабатывает auto-compact

По умолчанию Claude Code сжимает разговор, когда он достигает лимита контекста модели; модели с нативным окном 1M сжимают чуть раньше, примерно на 967K токенов. Если хотите сжимать раньше, задайте своё окно:

/autocompact 500k
/autocompact auto

Первая команда сохраняет окно 500k для текущей модели; вторая возвращает значение по умолчанию. Та же настройка есть как autoCompactWindow в settings.json и как переменная окружения CLAUDE_CODE_AUTO_COMPACT_WINDOW для скриптов. Допустимы значения от 100K до 1M.

Что переживает сжатие

В документации перечислено, что возвращается после сжатия: системный промпт, CLAUDE.md в корне проекта, правила без области действия, auto memory и текущий план режима плана. Недавно изменённые файлы читаются заново, а вложенные файлы CLAUDE.md и правила с привязкой к путям загружаются снова, когда Claude опять работает в этих папках. Дословно не сохраняется сам разговор, поэтому инструкция, которую вы только вводили в чате, может потерять детали. Если она важна, поместите её в CLAUDE.md.

Об одной цене стоит помнить: /compact читает весь разговор, чтобы его пересказать, так что само сжатие — крупный запрос.

Начать заново: /clear

/clear опустошает разговор и ничего не стоит. Используйте его при переходе к несвязанной работе. В рекомендациях Claude Code названы два сценария сбоев, которые он исправляет:

  • Сессия «всё в одном». Вы начинаете одну задачу, спрашиваете о несвязанном, затем возвращаетесь. Контекст полон нерелевантного материала.
  • Бесконечные поправки. После двух неудачных поправок по одной проблеме контекст засорён неверными подходами. Очистите его и напишите лучший первый промпт, в который включите то, что вы узнали.

Если сессия может понадобиться снова, сначала дайте ей имя через /rename, затем выполните /clear; позже /resume вернёт её. Для быстрого вопроса, который не должен оставаться в истории, /btw отвечает, не добавляя ничего в разговор.

СитуацияЧто выбратьПочему
Та же задача, длинная история/compact <focus>Сохраняет нить, убирает объём
Устарела только ранняя часть/rewind → Summarize up to hereСвежие ходы остаются целиком
Переход к несвязанной работе/clearБесплатно, и ничего лишнего не переносится
Две поправки не помогли/clear + лучший промптНеудачные попытки сбивают следующие
Разовый вопрос/btwНикогда не попадает в историю

Держите CLAUDE.md небольшим

CLAUDE.md загружается в каждой сессии, поэтому каждая строка оплачивается на каждом ходу. В документации Claude Code советуют держать его в пределах около 200 строк и спрашивать про каждую строку: приведёт ли её удаление к ошибкам? Если нет, вычеркните. У раздутого файла есть и вторая цена помимо токенов: важные правила теряются в шуме, и Claude их игнорирует.

Что делать с остальным:

  • Переносите инструкции, привязанные к рабочим процессам (как выпускать релиз, как писать миграцию), в skills. При запуске загружаются только их краткие описания; тело загружается, когда skill используется.
  • Давайте ссылки на подробные документы вместо вставки их текста.
  • Удаляйте всё, что Claude и так делает правильно без подсказок, или превращайте в hook то, что должно выполняться всегда.

Подробнее о структуре мы пишем в руководстве по CLAUDE.md и AGENTS.md.

Используйте субагентов, чтобы основной контекст оставался чистым

Исследование — классический убийца контекста: чтобы ответить на вопрос «как наша авторизация обновляет токены?», Claude может прочитать двадцать файлов. Субагент работает в собственном контекстном окне, читает всё это там и возвращает в вашу основную сессию только краткий итог.

Use subagents to investigate how our authentication system handles token
refresh, and whether we have any existing OAuth utilities I should reuse.

Хорошие кандидаты для субагента:

  • Изучение кодовой базы перед изменением.
  • Чтение длинных логов или вывода тестов, чтобы найти единственный важный сбой.
  • Ревью diff в свежем контексте, что заодно исключает предвзятость к коду, который только что написала основная сессия.

Субагенты не бесплатны. Они расходуют собственные токены, а в документации Claude Code отмечено, что команды агентов тратят примерно в 7 раз больше токенов, чем одна сессия. Выигрыш здесь в качестве и сосредоточенности основной ветки, а не всегда в меньшем счёте.

Сколько стоят серверы MCP

Model Context Protocol раньше был одной из самых больших статей расхода при запуске, потому что определения всех инструментов каждого сервера загружались сразу. Теперь Claude Code по умолчанию откладывает определения инструментов (tool search), поэтому, пока инструмент не используется, в контексте лежат только его имя и инструкции сервера.

Это меняет совет, но не отменяет его:

  • Отключайте через /mcp серверы, которыми вы не пользуетесь в этом проекте.
  • Предпочитайте CLI-инструменты вроде gh, aws, gcloud или sentry-cli, если они есть. В документации их называют самым экономным по контексту способом добраться до внешних сервисов.
  • Следите за результатами инструментов, а не только за определениями. Запрос к базе данных или снимок страницы, возвращённые инструментом MCP, попадают в контекст целиком.

Признаки «гниения» контекста

«Гниение контекста» (context rot) — неформальное название сессии, которая незаметно стала хуже, потому что её контекст слишком заполнен или слишком шумный. Типичные признаки:

  • Claude забывает правило, которое вы назвали раньше в разговоре, или правило из CLAUDE.md.
  • Он заново читает файлы, которые уже читал, или спрашивает о том, что и так знает.
  • Он повторяет подход, который вы уже отвергли.
  • Ответы становятся расплывчатее, а правки затрагивают не то место.
  • Каждый ход кажется медленнее, а счётчик токенов растёт быстрее.

Если вы видите два признака или больше, выполните /context. Если основную часть занимает разговор, сожмите его с указанием фокуса; если сессия блуждала по разным задачам, очистите её. Учтите и то, что после простоя кэш промптов истекает, поэтому следующее сообщение заново обрабатывает весь контекст по полной цене. Большая сессия после долгого простоя — хороший момент, чтобы сжать или очистить контекст перед продолжением.

Привычки, которые сохраняют сессии здоровыми

  • Одна задача на сессию. Дайте ей имя, завершите, очистите.
  • Указывайте, а не бродите. Ссылайтесь на файлы через @path и называйте функции, вместо того чтобы просить Claude «осмотреться».
  • Ограничивайте исследования. «Найди, где применяются лимиты запросов в src/api» лучше, чем «исследуй ограничение запросов». Или отдайте это субагенту.
  • Сокращайте вывод команд. Запускайте отдельные тесты, а не весь набор, и фильтруйте логи до того, как их прочитает Claude.
  • Сжимайте с фокусом и заранее. Сжатие, которое вы направили, до того как окно почти заполнено, обычно сохраняет нужные детали лучше, чем автоматическое на пределе.
  • Относитесь к CLAUDE.md как к коду. Сокращайте его, когда Claude начинает игнорировать правила.

Какое место занимает AgentVera

AgentVera запускает Claude Code, Codex и других агентов CLI бок о бок в одном десктопном приложении. Оно не заменяет привычки выше, но снимает с вас часть учёта, когда вы запускаете сразу несколько агентов. Всё это описано на странице экономии токенов:

  • Размер контекста в реальном времени в панели каждого агента, измеряемый по собственной истории CLI, поэтому работает не только с Claude Code и Codex.
  • Auto-compact включён по умолчанию с порогом 150k токенов, через собственную команду каждого CLI (/compact, /compress, /summarize, /smol). Меняется в разделе Settings → Token savings.
  • Профили контекста (Standard, Balanced, Lean), которые сокращают базовый объём при запуске для каждого агента.
  • Защита от повторного чтения, а также умные инструменты для Claude Code: они отклоняют повторное чтение неизменённого файла и сначала передают агенту структуру большого файла.
  • Карта проекта, чтобы агенты находили нужные файлы, не читая их по одному.
  • Менеджер MCP, проверка соединения в котором показывает приблизительную стоимость каждого инструмента в токенах.

Освоить /context, /compact и /clear самостоятельно всё равно стоит. Они работают одинаково с AgentVera и без неё.

Вопросы

Как посмотреть, что находится в контекстном окне Claude Code?

Выполните /context. Команда показывает актуальную разбивку по категориям (системный промпт, инструменты, MCP, файлы памяти, сообщения) вместе с подсказками и перечисляет, какие файлы CLAUDE.md и памяти были загружены.

Чем /compact отличается от /clear?

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

Когда срабатывает auto-compact?

По умолчанию Claude Code сжимает разговор, когда он приближается к лимиту контекста модели. Своё окно можно задать командой /autocompact, например /autocompact 500k, а вернуться к значению по умолчанию — через /autocompact auto.

Какой длины должен быть CLAUDE.md?

В документации Claude Code советуют держать его в пределах около 200 строк. Он загружается в каждой сессии, поэтому инструкции, важные только для некоторых задач, лучше вынести в skills, которые загружаются по требованию.

Заполняют ли серверы MCP контекстное окно?

Меньше, чем раньше. Определения инструментов по умолчанию откладываются, поэтому до первого использования инструмента загружаются только его имя и инструкции сервера. Неиспользуемые серверы всё равно добавляют вес, так что отключайте ненужные через /mcp.

Соберите своих агентов за одним столом.

Скачайте AgentVera бесплатно; ваши установленные CLI уже готовы к работе.

Другие статьи