Skip to content

Контекст и компактация ​

У каждой модели есть контекстное окно — фиксированный бюджет токенов, в который должны поместиться системный промпт, ваши файлы памяти, определения инструментов, навыки и вся беседа до текущего момента. Долгие сессии его заполняют. Command Code управляет этим бюджетом за вас: показывает, куда именно уходят токены (/context), автоматически сжимает беседу прогрессивными уровнями до переполнения окна, восстанавливается сам, когда запрос возвращается с ошибкой «prompt too long», и отслеживает, сколько токенов компактация вернула за сессию.

Эта страница — полный справочник: окно, разбивка /context, уровни автокомпактации, /compact и /compact-mode, учёт экономии, автоматическое восстановление, переключение моделей и привычки, которые держат контекст компактным с самого начала.

Контекстное окно ​

Всё, что модель видит в одном запросе, списывается с одного бюджета:

  • Системный промпт — идентичность Command Code, поведение и инструкции по безопасности.
  • Память — ваши файлы AGENTS.md во всех уровнях памяти, которые существуют.
  • Вкус (taste) — ваш taste.md, когда изучение вкуса включено.
  • Определения инструментов — схема каждого встроенного инструмента плюс по одной схеме на каждый подключённый MCP-инструмент.
  • Навыки и субагенты — загруженный каталог навыков и определения агентов.
  • Сообщения — сама беседа: ваши ходы, ходы модели и каждый результат инструмента (чтение файлов, вывод shell, результаты поиска). Именно это и растёт.

Размер окна зависит от модели: переключитесь через /model, и бюджет изменится вместе с ней. Command Code читает лимит активной модели заново при каждой проверке, поэтому переключение посреди сессии сразу пересчитывает всё описанное ниже.

Индикатор в строке статуса ​

Чтобы понять, где вы находитесь, не нужно запускать команду. Маленький индикатор контекста рядом с полем ввода скрыт, пока места много, и появляется, когда до порога автокомпактации остаётся 20 процентных пунктов (сам порог срабатывает на 90% окна — см. ниже), в виде небольшой полосы с обратным отсчётом оставшихся процентов. На моделях с очень большим окном он раньше показывает простой текстовый счётчик токенов, как только использование переходит за ~180k токенов — намёк на то, что /compact стоит запустить ради качества ответов задолго до того, как окну в 1M начнёт что-то угрожать.

/context: куда уходят токены ​

Запустите /context в любой момент, чтобы получить полный отчёт по окну:

  • Полоса прогресса — использованные токены, лимит модели, оставшиеся токены и процент, окрашенный по степени давления (норма → предупреждение на 50% → опасность на 80%). Цифры опираются на данные, сообщённые API в последнем запросе, когда они доступны; до первого запроса (или сразу после возобновления сессии) это локальные оценки, и представление об этом сообщает.
  • Расстояние до автокомпактации — как только использование превышает 40%, появляется строка с примерной оценкой, сколько токенов осталось до срабатывания уровня суммаризации («~52k until auto-compact»), и её тон становится тревожнее по мере приближения.
  • Разбивка по разделам — по строке на каждый сегмент, от большего к меньшему:
СтрокаЧто измеряет
System promptСобранный системный промпт, измеренный по разделам сервером в момент сборки промпта (на первом ходу используется вычисленный остаток).
MemoryВаши файлы памяти. Если вы правили AGENTS.md после последнего запроса, строка помечается (modified, refreshes next request).
Tastetaste.md, если он есть.
System toolsВсе схемы встроенных инструментов с их количеством.
MCPКаждая схема подключённого MCP-инструмента, с именами серверов.
SkillsЗагруженные записи каталога навыков.
SubagentsЗагруженные определения агентов.
MessagesСама беседа — с количеством сообщений пользователя и ассистента.
  • Подсказки — зависящие от контекста советы, построенные по реальным цифрам: /compact до срабатывания уровня суммаризации, предупреждение, когда беседа занимает большую часть окна, замечание, когда схемы MCP-инструментов становятся большой постоянной нагрузкой, количество изображений (~1.5k токенов каждое) или совет начать свежую сессию после очень долгой.

Автокомпактация ​

Command Code сжимает реактивно, прогрессивными уровнями, привязываясь к тому, насколько прямо сейчас заполнено окно активной модели: число токенов, которое провайдер сообщил за последний завершённый ход, плюс оценка всего, что добавилось после (результаты инструментов, steering, ваш следующий промпт, причём изображения считаются по ~1.5k токенов каждое). Когда достоверного сообщённого числа нет — свежая или возобновлённая сессия, модель, чьи запросы постоянно падают, или провайдер, который не сообщает usage — вместо этого оценивается весь ожидающий транскрипт. Поэтому компактация срабатывает и для моделей, которые никогда не дают пригодного сигнала об использовании. Проверка выполняется перед каждым вызовом модели; каждый уровень включается, только когда давление перешло его порог.

text
window used        fires
──────────────────────────────────────────────
 0%  ┤  quiet
     ┆
40%  ┤  /context starts warning
     ┆
50%  ┤━ TIER 1: keep last 20 tool calls   fast only
     ┆
80%  ┤━ TIER 2: keep last 10 tool calls   fast only
     ┆
90%  ┤━ TIER 3: summarize older turns     always
     ┆
100% ┤  overflow (never reached)

Уровни 1 и 2 выполняются, только когда /compact-mode установлен в fast. В режиме по умолчанию ничего не происходит до 90%, затем уровень 3 суммирует.

УровеньСрабатывает приЧто делаетКогда работает
1≥ 50% окнаОбрезает транскрипт до последних 20 вызовов инструментов (только если их больше 20)Только при режиме компактации fast
2≥ 80%Обрезает до последних 10 вызовов инструментовТолько при режиме компактации fast
3≥ 90%Суммирует старые сообщения в передаточный брифВсегда, в любом режиме компактации

Уровни 1–2: обрезка вызовов инструментов ​

Уровни обрезки чистые и не используют модель: они удаляют целые пары tool_use/tool_result — начиная с самых старых — и ничего больше. Ваши сообщения и текст модели выживают; отбрасывается только устаревший вывод инструментов (старые чтения файлов, старый вывод команд). Эти уровни работают, только если /compact-mode установлен в fast; в режиме по умолчанию Command Code сразу переходит к суммаризации на 90%.

Уровень 3: суммаризация ​

На 90% Command Code делает настоящий вызов модели, который сжимает старую часть беседы в структурированный передаточный бриф — цель, проход по вашим ходам, работа в процессе, ожидающие задачи, затронутые файлы, принятые решения, встреченные ошибки и точная точка возобновления. Бриф заменяет старые сообщения; в транскрипте вы увидите его с префиксом «This is an auto-compacted summary of the earlier conversation…».

Суммаризация намеренно консервативна:

  • Недавний хвост выживает дословно: примерно последние 30k токенов беседы никогда не суммируются (и никогда не меньше последних 3 сообщений), разрез идёт по чистой границе хода — активный обмен всегда выживает целиком.
  • Содержимое навыков исключено из любого уровня: инструкции загруженного навыка вставляются заново намеренно и должны продолжать управлять сессией, поэтому сообщения навыков переносятся через компактацию дословно — их никогда не обрезают и не сворачивают в сводку.
  • Изображения сохраняются дословно: сводка не может воспроизвести пиксели, поэтому граница сохранения сдвигается к первому изображению, и всё после него остаётся как есть.
  • Старые сводки никогда не питают новые: предыдущий бриф компактации отбрасывается и заменяется, а не суммируется повторно.
  • Сбой не ломает работу, есть запасные варианты: меньше 5 старых сообщений → суммировать нечего, транскрипт остаётся нетронутым. Вызов суммаризатора повторяется при временных ошибках и один раз переключается на вторую модель, если upstream модели компактации недоступен; если сводку всё равно получить не удалось, Command Code откатывается к обрезке вызовов инструментов уровня 2, а не оставляет окно полным. Сбой никогда не теряет беседу.
  • Неэффективные проходы берут паузу: когда проход почти ничего не возвращает (очень плотная беседа или слишком мало старого содержимого для суммирования), Command Code ждёт, пока беседа вырастет, вместо повторного суммирования на каждом ходу. Сбой суммаризатора — другое дело: его повторяют на следующем ходу.
  • Файлы скретчпада индексируются, а не теряются: бриф несёт небольшой манифест файлов скретчпада сессии, которые остаются на диске (только имена и метаданные), так что после компактации модель всё ещё знает, что там есть.

Ваш исходный журнал никогда не перезаписывается ​

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

Когда это срабатывает ​

Когда включается уровень суммаризации, вы увидите строку статуса во время его работы, а затем запись в ленте с результатом:

text
Compacted conversation. Saved ~41,300 tokens (total ~112,000 this session).

Каждое событие компактации — автоматическое, ручное или при смене модели — сообщает свою экономию и накопленный итог сессии. Итоги сохраняются в метаданных сессии по мере накопления, поэтому переживают перезапуск: возобновите через --resume, и цифра «total ~N this session» продолжит считаться с того места, где остановилась.

/compact: компактация по вашему выбору ​

/compact запускает ту же суммаризацию уровня 3 немедленно, не дожидаясь порога 90%. Лучшее время для запуска — до срабатывания автокомпактации: подсказки /context начинают предлагать её на 50% и настойчиво — после 80%, потому что компактация в выбранный вами момент (граница задачи, сразу после достижения вывода) даёт суммаризатору чистую историю для сжатия, а не то состояние середины задачи, в котором её застанет порог.

После компактации сообщаемое использование контекста начинается заново относительно окна модели; если сжимать было нечего, вы увидите «Conversation is already compact.» Сбой сообщает об ошибке и оставляет беседу нетронутой.

/compact-mode: насколько агрессивна автокомпактация ​

/compact-mode выбирает одну из двух стратегий автокомпактации (доступна также в /config; выбор сохраняется в вашей пользовательской конфигурации):

РежимПоведение
defaultТолько суммаризация. Ничего не происходит до 90%, затем уровень 3 суммирует. Максимальная точность контекста — каждый результат инструмента остаётся доступным, пока окно действительно не кончится.
fastВсе три уровня. Старые результаты инструментов начинают обрезаться на 50% (оставить последние 20) и 80% (оставить последние 10) ещё до суммаризации на 90%. Более компактные запросы и более дешёвые ходы в долгих сессиях с обилием инструментов — ценой того, что старый вывод инструментов раньше уходит из контекста.

Настройка читается на лету — переключение посреди сессии применяется со следующей проверки.

Автоматическое восстановление и переключение моделей ​

«Prompt too long» больше не проваливает ход ​

Если провайдер отклоняет запрос как слишком длинный — оценки использования разошлись или один гигантский результат инструмента вылетел за окно — Command Code не показывает ошибку и не останавливается. Ошибка классифицируется, окно сжимается (суммируется) на месте, и запрос повторяется один раз с уже компактным транскриптом. Наружу выходит только второй подряд сбой. На практике сначала срабатывают реактивные уровни, и этот путь остаётся редким; он существует, чтобы крайний случай стоил вам одного повтора, а не целого хода.

/model пересчитывает — и может заранее обрезать ​

Пороги уровней — это доли окна текущей модели, перечитываемые при каждой проверке, поэтому смена модели мгновенно сдвигает ориентиры:

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

Как держать контекст компактным ​

Компакция — это страховка, а не стратегия. Самый дешёвый токен — тот, который никогда не попал в окно:

  • Делегируйте исследование субагентам: субагент, запущенный инструментом agent (например, встроенный агент Explore), сжигает своё контекстное окно на чтение файлов и поиск, а в ваше попадает только его финальный отчёт. Проход по кодовой базе в основной сессии может втянуть в окно десятки тысяч токенов содержимого файлов; тот же проход, делегированный, стоит несколько сотен.
  • /clear между несвязанными задачами: закончили один кусок работы и начинаете другой? Свежая беседа лучше, чем волочить за собой результаты инструментов старой задачи, — и лучше, чем заставлять будущую сводку двух несвязанных задач конкурировать за место. Используйте /clear на настоящих границах (файлы памяти и навыки перезагружаются, беседа начинается заново).
  • Указывайте путь к файлу вместо вставки: вставленный в промпт большой файл остаётся в окне навсегда — он часть вашего сообщения и переживает любой уровень обрезки. Путь позволяет Command Code прочитать файл как результат инструмента, который потом могут вернуть обрезка уровней 1–2 и сводки уровня 3. То же касается вывода модели: попросите её писать большие промежуточные результаты в скретчпад (или файлы проекта) и передавать пути — манифест скретчпада при компактации хранит индекс того, что лежит на диске, а сами данные никогда не занимают окно.
  • Отключайте MCP-серверы, которыми не пользуетесь: схемы инструментов каждого подключённого сервера — постоянная нагрузка на каждый запрос. /context показывает, сколько стоит каждый из них; /mcp ими управляет.
  • Следите за изображениями: каждое изображение в контексте стоит ~1.5k токенов и намеренно никогда не выпадает из сводки.
  • Сжимайте на границах, а не под давлением: /compact сразу после завершения подзадачи даёт лучший бриф, чем автокомпактация в середине следующей.

См. также ​

  • Слэш-команды — полный справочник команд, включая /context, /compact, /compact-mode, /clear и /model.
  • Пользовательские агенты — субагенты с собственными контекстными окнами.
  • Чекпоинты — история сессии только на добавление, которую компактация никогда не перезаписывает.
  • Память — файлы памяти, учитываемые в разбивке /context.

Источник

Сверено с оригиналом 13 ноября 2026.