$ sudo teach IT

В прошлом уроке контекст был абстракцией: где-то есть окно, оно чем-то заполняется, при переполнении становится хуже. Работать с абстракцией неудобно — непонятно, когда вмешиваться и что именно чистить.

Команда /context превращает абстракцию в цифры. Она показывает живую картину текущей сессии: сколько токенов занято, чем именно, сколько осталось свободного места. С этой картиной решения перестают быть догадками: вы видите, что половину окна съел один разросшийся файл инструкций, или что вы прошли три четверти окна и пора освобождать место, — и действуете по факту, а не по ощущению.

Что уже умеем / что добавим

Вы знаете, что контекстное окно ограничено, что оно заполняется стартовыми инструкциями и всем, что делает агент, и что переполнение ухудшает результат. Теперь научимся это измерять: разберём вывод /context, поймём, что означает каждая категория, и научимся по цифрам определять момент для вмешательства.

Что вы узнаете в рамках статьи

  • Как вызывается /context и что показывает её вывод
  • Какие категории расхода она выделяет и что означает каждая
  • Как по выводу команды понять, что именно съедает окно
  • Как проверить, что нужный файл инструкций действительно загрузился
  • Какие пороги заполнения считать сигналом к действию

Ключевые термины

  • /context — slash-команда, показывающая текущее использование контекстного окна в виде цветной сетки с разбивкой по категориям и подсказками по оптимизации.
  • Memory files — раздел вывода /context, перечисляющий файлы инструкций, которые фактически загрузились в текущую сессию.
  • Свободное место (free space) — часть окна, ещё не занятая содержимым; в неё помещается дальнейшая работа агента.
  • Системный промпт — базовые инструкции модели о поведении и инструментах, загружаемые первыми и не входящие в историю сообщений.
  • Определения инструментов — описания доступных агенту инструментов; занимают часть окна ещё до начала работы.
  • Порог автосжатия — уровень заполнения окна, при достижении которого Claude Code автоматически сжимает историю.

Как вызвать и что увидеть

Команда набирается прямо в приглашении сессии:

> /context

Ответ появляется мгновенно и не расходует запрос к модели: Claude Code считает всё локально по тому, что сам же собирается отправить. Это важное свойство — командой можно пользоваться сколько угодно часто, она ничего не стоит.

Вывод состоит из цветной сетки, изображающей окно целиком, и списка категорий под ней. Каждая категория окрашена в свой цвет, и по площади её блока в сетке видно долю от окна. Рядом Claude Code выводит подсказки по оптимизации: предупреждает о разросшихся файлах памяти, о слишком «тяжёлых» инструментах и о приближении к пределу.

Если разговор уже превысил окно, в вывод добавляется предупреждение с тем, насколько вы вышли за предел, и указанием, какая команда освободит место.

У команды есть аргумент:

> /context all

В полноэкранном режиме /context сворачивает подробную разбивку по элементам, чтобы сетка оставалась видна. Аргумент all разворачивает её обратно.

Что означают категории

Разбивка делит занятое место по источникам. Типичные категории и их смысл:

Системный промпт. Базовые инструкции о поведении, использовании инструментов и формате ответов. Величина фиксированная, вы на неё не влияете, кроме как через обновление версии инструмента.

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

Memory files. Файлы инструкций, которые загрузились в сессию: пользовательский ~/.claude/CLAUDE.md, проектный CLAUDE.md, автопамять. Это самая полезная для диагностики категория — о ней ниже.

Сообщения. Ваши промпты и ответы Claude. Обычно скромная величина.

Результаты вызова инструментов. Содержимое прочитанных файлов, вывод команд, результаты поиска. В рабочей сессии это, как правило, крупнейшая категория.

Свободное место. Остаток окна. Именно за этой цифрой стоит следить.

Проверка загруженных инструкций

У раздела Memory files есть отдельное практическое применение, которое стоит запомнить сразу: это единственный надёжный способ убедиться, что ваш файл инструкций действительно попал в сессию.

Ситуация встречается постоянно: разработчик создал CLAUDE.md, записал в него правила, а Claude их игнорирует. Причин может быть две — либо инструкция сформулирована размыто, либо файл вообще не загрузился. Разбираться в формулировках, пока не проверена загрузка, бессмысленно.

# Проверить, что файл существует на диске
ls -la CLAUDE.md

# Проверить, что он загрузился в текущую сессию
> /context
# смотрим раздел Memory files

Если файла нет в списке Memory files, Claude его не видит, и никакая доработка текста не поможет. Проверьте расположение файла и перезапустите сессию: правки в проектном CLAUDE.md не применяются на лету — он читается один раз при старте, и новое содержимое подхватится только при следующем запуске или после очистки контекста.

Как читать цифры и когда действовать

Абсолютные значения сами по себе мало о чём говорят. Полезны отношения и динамика.

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

Второе — соотношение категорий. Если результаты вызова инструментов занимают в разы больше, чем всё остальное, это норма для рабочей сессии. А вот раздутые Memory files — сигнал проблемы: файл инструкций на несколько тысяч токенов платится в каждой сессии по этому проекту и при этом хуже соблюдается, потому что важные правила теряются в объёме.

Третье — динамика. Полезная привычка: вызвать /context в начале работы и повторить после крупного шага. Разница покажет, во что реально обошлось действие. Часто выясняется, что одна невинная просьба «прогони тесты» стоила больше, чем весь предыдущий диалог.

# В начале задачи
> /context
# Свободно: 96%

# После того как агент исследовал модуль и прогнал тесты
> /context
# Свободно: 71%
# Вывод: один шаг исследования стоил примерно четверть окна

Частые ошибки

  • Судить о загрузке CLAUDE.md по наличию файла на диске. Файл может лежать в месте, которое не загружается для текущей рабочей директории. Единственная надёжная проверка — раздел Memory files в выводе /context.
  • Править CLAUDE.md посреди сессии и ждать эффекта сразу. Проектный и пользовательский файлы читаются один раз при старте. Новая редакция вступит в силу после перезапуска сессии или очистки контекста, а не мгновенно.
  • Вызывать /context только когда уже стало плохо. К этому моменту решать приходится в спешке. Проверка в спокойный момент, между задачами, даёт возможность освободить место без потерь.
  • Игнорировать подсказки по оптимизации в выводе команды. Claude Code сам указывает на разросшиеся файлы памяти и тяжёлые инструменты. Это готовый список того, что стоит починить.

Наиболее частые вопросы

  • Расходует ли сам вызов /context токены? — Нет, подсчёт локальный, запроса к модели не происходит. Вызывайте команду столько раз, сколько нужно.
  • Почему свободного места меньше, чем я ожидал по своим сообщениям? — Потому что ваши сообщения — наименьшая часть расхода. Основной объём дают чтения файлов, вывод команд и стартовые инструкции.
  • Что делать, если Memory files занимают слишком много? — Сократить файлы инструкций до фактов, которые нужны в каждой сессии. Разрастание CLAUDE.md вредит дважды: съедает окно и снижает соблюдение правил.
  • /context показал, что окно почти заполнено. Что дальше? — Освободить место: либо начать новую сессию, либо сжать историю в сводку. Разбору этих двух путей посвящён следующий урок.
  • Совпадёт ли вывод /context у меня и у коллеги на том же проекте? — Нет. Категория Memory files зависит от личных файлов инструкций, а результаты вызова инструментов — от того, что каждый из вас делал в своей сессии.

Итоги

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

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

На следующий урок