📄 Claude Code: Управление сессиями и контекстом 1M

Краткий обзор

Материал объясняет, почему окно в 1M токенов не отменяет дисциплину, а делает ее критически важной. Главная мысль: производительность Claude Code падает не из-за “малого контекста”, а из-за его загрязнения, поэтому ключевой навык - управлять ветками сессии через rewind, clear, compact и subagents.

🔗 Оригинал: Using Claude Code: Session Management & 1M Context


🏛️ Ключевые идеи

  • Деградация контекста (Context Rot): чем длиннее сессия, тем выше риск, что старые и нерелевантные фрагменты начинают отвлекать модель.
  • Каждый ход - это развилка: после ответа агента нужно осознанно выбирать continue, rewind, clear, compact или subagents.
  • Rewind лучше “словесных правок”: откат убирает неудачную ветку из контекста, а не наслаивает исправления поверх ошибки.
  • Compact и новая сессия не равны: compact сохраняет линию работы, но с потерями; clear требует ручного брифа, зато дает максимально чистый контекст.
  • Субагенты - инструмент гигиены: шумная работа уходит в отдельное окно контекста, в родительскую сессию возвращается только вывод.

💡 Где использовать (Use Cases)

  • Длинные инженерные сессии: рефакторинг, миграции, большой дебаг, где критично не потерять главную цель.
  • Переход между связанными задачами: например, после реализации фичи перейти к документации без полного пересборa контекста.
  • Работа с большим шумом: чтение длинных логов, внешних кодовых баз и артефактов через subagents.
  • Стабилизация качества ответов: когда агент начинает “плыть”, выбирать rewind или ранний compact вместо продолжения по инерции.

🧩 Структура оригинала (обязательно сохранить)

  • A Quick Primer on Context, Compaction & Context Rot
  • Every Turn Is a Branching Point
  • When to Start a New Session
  • Rewinding Instead of Correcting
  • Compacting vs. Fresh Sessions
  • What Causes a Bad Compact?
  • Subagents & Fresh Context Windows
  • Summary

Ниже сохранена логика и порядок аргументов оригинального текста, с адаптацией формулировок под русский язык.


🧠 Основная часть (контекстно близко к оригиналу)

A Quick Primer on Context, Compaction & Context Rot

Автор начинает с базы: окно контекста (Context Window) - это весь объем информации, который модель “видит” в момент генерации следующего ответа. Сюда входят системный промпт, история диалога, все tool calls с их выводом и прочитанные файлы. В Claude Code это до 1M токенов.

Но большой объем имеет цену. Деградация контекста (Context Rot) проявляется так: по мере роста окна внимание размазывается между большим числом токенов, а старые нерелевантные фрагменты начинают мешать текущей задаче. В статье упоминается практический ориентир: заметное ухудшение часто появляется в районе ~300-400k токенов, хотя это сильно зависит от типа задачи.

Когда контекст подходит к лимиту, нужна компактизация (Compaction): сжать текущую работу в краткий бриф и продолжить в новом окне. Это можно делать вручную, не дожидаясь автопорогов.

Every Turn Is a Branching Point

После каждого ответа Claude у вас уже накоплен контекст (инструкции, вызовы инструментов, промежуточные результаты), и дальше есть пять разных режимов продолжения:

  • Continue - продолжить в той же сессии.
  • /rewind (двойной Esc) - откатиться к предыдущему сообщению и пойти по другой ветке.
  • /clear - стартовать новую сессию с чистого листа.
  • Compact - сжать историю и продолжить поверх резюме.
  • Subagents - делегировать кусок работы агенту с отдельным чистым контекстом.

Ключевой тезис: естественно просто “продолжать”, но качественная работа строится на осознанном выборе остальных четырех режимов.

When to Start a New Session

Окно в 1M токенов действительно позволяет дольше держать сложные задачи (например, разработку full-stack фичи с нуля). Но это не означает, что новую сессию нужно запускать только после исчерпания лимита.

Практическое правило автора: новая задача = новая сессия.

Серая зона - связанные задачи, где часть контекста полезна, а часть уже лишняя. Пример из статьи: после реализации функции перейти к написанию документации. Формально можно начать новую сессию, но тогда Claude заново перечитает файлы, что медленнее и дороже. Для менее “интеллектуально чувствительных” задач иногда выгоднее остаться в текущем контексте ради эффективности.

Rewinding Instead of Correcting

Самая показательная привычка зрелого управления контекстом - rewind.

Если агент попробовал путь A и зашел в тупик, интуитивно хочется написать: “не сработало, попробуй B”. Но лучше откатиться к точке, где у модели уже есть нужные наблюдения (например, после чтения файлов), и перезапустить ход с уточненной инструкцией. Так вы убираете из окна весь неудачный хвост рассуждений и действий.

Автор также отмечает полезный прием summarize from here: попросить модель собрать аккуратный handoff по полученным выводам и передать следующей итерации, как сообщение “из будущего”.

Compacting vs. Fresh Sessions

Когда сессия стала тяжелой, у вас два механизма “сброса веса”:

  • /compact - модель сама суммирует разговор и заменяет историю этим резюме;
  • /clear - вы вручную формулируете, что важно, и стартуете чистую сессию.

Разница принципиальная. Compact экономит время, но это сжатие с потерями: вы доверяете модели решение, какие детали оставить. Clear требует больше усилий, зато итоговый контекст точно отражает вашу приоритизацию. Для compact можно задавать фокус, например: оставить рефакторинг auth и выкинуть отладку тестов.

What Causes a Bad Compact?

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

Типичный сценарий: автокомпакт срабатывает после длинной отладки и делает резюме именно этой ветки, а затем вы резко переключаетесь на другой warning в bar.ts. Этот warning мог не попасть в сжатую версию - и модель “теряет” важный контекст.

Проблема усиливается тем, что compaction часто происходит в момент, когда контекст уже разросся и интеллект модели работает не в пиковой зоне. Поэтому при 1M окне выгоднее запускать compact проактивно и явно указывать, что именно сохранить.

Subagents & Fresh Context Windows

Субагенты (Subagents) - это не просто делегирование, а стратегия управления контекстом. Если заранее понятно, что задача породит много промежуточного шума, лучше вынести ее в отдельного агента.

Когда Claude создает subagent через Agent tool, тот получает собственное чистое окно контекста, выполняет работу и возвращает в родительскую сессию только синтезированный отчет. Это защищает основную ветку от перегрузки логами и вторичными шагами.

Ментальный тест из статьи: “мне позже понадобится весь вывод инструмента или только итоговый вывод?” Если только итог - это кандидат на subagent.

Примеры задач для субагентов:

  • верификация результата по spec-файлу;
  • чтение чужого кодбейса и выжимка по реализации auth-flow;
  • подготовка документации на базе текущих git-изменений.

Summary

В финале автор сводит всё к простой управленческой рамке: каждый новый ваш запрос после ответа Claude - это точка принятия решения о форме контекста. Пока система не автоматизировала это полностью, качество результата напрямую зависит от того, насколько осознанно вы управляете сессией.


🛠️ Технические детали и реализация

Практический набор команд и решений из статьи:

  • /rewind (или Esc x2): удалить неудачную ветку и перезапустить задачу от чистой точки.
  • /clear: старт новой несвязанной задачи или ручной перезапуск с curated-брифом.
  • /compact: сжать длинную историю, желательно с указанием фокуса (что оставить, что выкинуть).
  • summarize from here: сформировать handoff между итерациями работы.
  • subagents: изолировать шумные подзадачи и вернуть только финальный отчет в основную сессию.

Мини-чеклист перед каждым следующим сообщением:

  1. Это продолжение той же задачи или уже новая работа?
  2. Нужна точность (лучше rewind/clear) или скорость (возможен compact)?
  3. Нужен ли мне весь промежуточный вывод, или достаточно заключения (кандидат на subagent)?

🔗 Связи

Теги: claudecode contextmanagement llmengineering anthropic sessiondesign