В последних разговорах с пользователями Claude Code постоянно всплывает одна тема: контекстное окно в 1М токенов — палка о двух концах.
С одной стороны, Claude Code дольше работает автономно и надёжнее справляется со сложными задачами. С другой — если не следить за сессиями, контекст быстро засоряется.
Управление сессиями сейчас важнее, чем когда-либо, и вопросов вокруг него много. Держать одну или две долгосрочные сессии в терминале? Начинать новую с каждым промптом? Когда использовать compact, rewind или subagents? Что приводит к плохой компактизации или плохой сессии?
Всё это неожиданно сильно влияет на опыт работы с Claude Code, и почти всё сводится к управлению контекстным окном.
Контекст, компактизация и context rot

Контекстное окно — это всё, что модель «видит» в момент генерации следующего ответа: системный промпт, история диалога, каждый вызов инструментов и его результат, каждый прочитанный файл. В Claude Code контекстное окно составляет один миллион токенов.
Однако по мере заполнения контекста качество работы модели снижается. Это явление называют context rot: внимание модели распределяется по всё большему числу токенов, и старый, нерелевантный контент начинает мешать выполнению текущей задачи.
Контекстное окно — это жёсткое ограничение. Когда вы приближаетесь к его пределу, задача автоматически сворачивается в краткое описание, и модель продолжает работу в новом контекстном окне. Этот процесс называется компактизацией (compaction). Запустить его можно и вручную.

Если статья понравится — приглашаю в канал AI for Devs. Каждый день публикую похожие материалы: модели, агенты, практические кейсы и новости из мира AI.
Каждый шаг как точка ветвления
Допустим, вы попросили Claude что-то сделать, и задача выполнена. В контексте теперь есть вызовы инструментов, их результаты и ваши инструкции. У вас есть несколько вариантов того, что делать дальше:
Продолжить — отправить ещё одно сообщение в той же сессии
/rewind(Esc Esc) — вернуться к любому предыдущему сообщению и начать с него заново/clear— начать новую сессию, обычно с кратким описанием того, что вы узналиCompact — свернуть историю сессии в краткое резюме и продолжить поверх него
Subagents — делегировать следующий блок работы агенту с собственным чистым контекстом и получить только результат
Самый естественный вариант — просто продолжить. Остальные четыре нужны для управления контекстом.

Когда начинать новую сессию
Когда оставлять долгосрочную сессию, а когда начинать новую? Общее правило: новая задача — новая сессия.
Контекстное окно в 1М токенов позволяет надёжнее выполнять длинные задачи — например, с нуля строить full-stack приложение. Но context rot при этом никуда не исчезает.
Бывают ситуации со связанными задачами, где часть контекста всё ещё актуальна. Например, написание документации к только что реализованной фиче. Можно начать новую сессию, но тогда Claude придётся заново читать файлы реализации — это медленнее и дороже.
Rewind вместо коррекции

В Claude Code двойное нажатие Esc (или команда /rewind) позволяет вернуться к любому предыдущему сообщению и заново сформулировать запрос с этой точки. Все сообщения после неё удаляются из контекста.
Rewind часто лучше, чем попытка исправить ошибку в продолжении. Например: Claude прочитал пять файлов, попробовал подход — и он не сработал. Первый инстинкт — написать «это не работает, попробуй X вместо этого». Но лучше перемотать назад к моменту сразу после чтения файлов и переформулировать запрос с учётом того, что вы узнали: «Не используй подход A — модуль foo его не поддерживает. Переходи сразу к B».
Также можно попросить Claude «подвести итоги с этого места» — /rewind создаст сообщение-передышку, своего рода записку от версии Claude, которая уже попробовала что-то и убедилась, что это не работает.
Compact против чистой сессии
Когда сессия становится слишком длинной, от лишнего контекста можно избавиться двумя способами: /compact или /clear (и начать с чистого листа). Выглядит похоже, работает по-разному.
Compact просит модель свернуть историю разговора в резюме и заменяет им всю историю. Это потеря части данных, зато делать ничего особо не нужно — Claude сам решает, что важно. Можно задать направление через инструкции: /compact focus on the auth refactor, drop the test debugging.

При /clear то, что важно, записываете вы сами: «мы рефакторим middleware авторизации, ограничение вот такое, важные файлы A и B, вариант Y уже отброшен» — и начинаете с нуля. Больше усилий, но контекст именно такой, какой нужен вам.
Что приводит к плохой автокомпактизации?
Если вы запускаете много долгих сессий, наверняка замечали случаи, когда компактизация оказывалась неудачной. Чаще всего это происходит, когда модель не может предсказать направление дальнейшей работы.
Пример: автокомпактизация срабатывает после долгой отладки и сворачивает историю расследования. Следующий ваш запрос — «теперь исправь то предупреждение, которое мы видели в bar.ts». Но поскольку сессия была сосредоточена на отладке, это предупреждение могло выпасть из резюме.
Есть дополнительная сложность: из-за context rot модель работает хуже всего именно в момент компактизации. С контекстом в один миллион токенов у вас больше времени на то, чтобы вызвать /compact вручную и описать, чем собираетесь заниматься дальше.
Subagents и чистые контекстные окна
Subagents хорошо работают, когда заранее известно, что блок работы породит много промежуточного вывода, который потом не понадобится.
Когда Claude запускает subagent через инструмент Agent, тот получает собственное чистое контекстное окно. Он выполняет задачу и возвращает родителю только итоговый результат.

Тест, который используют в Anthropic: понадобится ли мне этот вывод инструментов в будущем, или только вывод самой задачи?
Claude Code запускает subagents автоматически, но можно указывать это явно. Например:
«Запусти subagent, чтобы проверить результат этой работы по следующей спецификации»
«Запусти subagent, чтобы он прочитал эту кодовую базу и объяснил, как там реализован auth flow, — потом реализуй то же самое у нас»
«Запусти subagent, чтобы написал документацию по этой фиче на основе моих git-изменений»
Итоговая таблица
Ситуация | Что использовать | Почему |
|---|---|---|
Та же задача, контекст ещё актуален | Продолжить | Всё, что в окне ещё нужно — незачем его перестраивать. |
Claude пошёл не туда | Rewind (Esc Esc) | Сохраняем полезные чтения файлов, убираем неудачную попытку, переформулируем с учётом выводов. |
Задача в процессе, но сессия захламлена отладкой или исследованием |
| Минимум усилий; Claude решает, что важно. Можно направить инструкцией. |
Начинается действительно новая задача |
| Нулевой context rot; вы сами контролируете, что переходит дальше. |
Следующий шаг породит много вывода, от которого нужен только результат (поиск по кодовой базе, проверка, написание документации) | Subagent | Промежуточный шум остаётся в контексте дочернего агента; назад возвращается только результат. |
Русскоязычное сообщество про AI в разработке

Друзья! Перевод этой статьи подготовила команда ТГК «AI for Devs» — канала, где мы рассказываем про AI-агентов, плагины для IDE, делимся практическими кейсами и свежими новостями из мира ИИ. Подписывайтесь, чтобы быть в курсе и ничего не упустить!
