Перейти к содержимому

Автоматическое резюмирование контекста

По умолчанию, когда разговор приближается к лимиту контекстного окна модели, Kodik автоматически резюмирует его, чтобы освободить место и продолжить работу. Автоматическое резюмирование включено всегда; его также можно запустить вручную с помощью команды /compact.

Когда Summarize after inactivity выключена, в чатах с достаточным числом токенов разговора после 60 минут простоя может появиться уведомление о кэше промпта. Порог ограничен 30 тыс. токенов и не включает постоянные системные инструкции или определения инструментов. Оно оценивает, сколько токенов контекста может быть оплачено повторно при следующем сообщении. Сжать контекст создаёт резюме, сохраняя черновик; кнопка закрытия скрывает уведомление без сжатия. Доступность кэша зависит от провайдера, а само сжатие тоже использует оплачиваемый запрос.

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

При продолжении чата, созданного до перехода на общий Markdown-промпт, Kodik начинает новую эпоху кэша промпта до отправки следующего сообщения. Предыдущая эпоха сохраняется для восстановления. Старые сообщения сохраняют исходный текст, время отправки, вложения, результаты инструментов и нативные данные провайдера; Kodik не считывает заново открытые сегодня редакторы или текущее время для прошлых сообщений. Если переход не удался, предыдущая эпоха остаётся целой и отправку можно повторить.

Если Kodik сжимает только старую часть разговора, более свежие сообщения и результаты инструментов сохраняются после сводки в исходном порядке, в том числе после перезагрузки. Проверка размера учитывает этот остаток истории, сводку, инструкции и инструменты. Любая завершённая непустая сводка, которую вернула модель, принимается; Kodik больше не отклоняет её за то, что она оставляет слишком мало места или не сокращает заменяемый контекст. Запрос контрольного резюме, который не помещается в окно, резервирует 8 192 токена на ответ, убирая самые старые ходы сжимаемого участка; эти ходы в сводку не попадают, а карточка резюмирования показывает, сколько их. Если сам запрос сводки не удался, исходный разговор остаётся целым; кнопка «Стоп» отменяет восстановление.

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

Во время длительной задачи повторное резюмирование сохраняет её исходное указание дословно. Завершённая работа, оставленная после одного резюме, может войти в следующее по мере роста разговора.

Kodik отслеживает использование токенов и изменения контекста по ходу разговора. Авторезюмирование может сработать в следующих случаях:

  • Проактивно — когда разговор достигает 95% контекстного окна модели минус 8 192 токена, которые нужны самому запросу на суммаризацию для ответа; одно правило для всех моделей и окон (на очень маленьких окнах — не ниже половины окна). Например, окно в 200 000 токенов суммаризируется при 181 808, окно в 128 000 — при 113 408, а окно в 32 768 — при 22 937. Бюджет ответа обычного запроса от этого порога не зависит: каждый запрос может использовать до 32 000 выходных токенов в пределах лимита самой модели и того, что остаётся в используемом окне после текущего разговора. В выборе модели и Settings показывается именно этот эффективный порог.
  • После паузы — при включённой настройке, после заданного периода бездействия (по умолчанию пять минут), если разговор накопил достаточно контекста, чтобы резюмирование окупилось. Выбирается меньший минимум: 30 тыс. токенов или эффективный порог резюмирования модели. Этот триггер по умолчанию выключен; чтобы использовать его, включите Summarize after inactivity в Settings → Agents.
  • После смены модели — необязательно, при следующем ходе, если включена настройка Summarize on model switch и накопилось достаточно старого контекста. Исключение — переход, достигающий порога резюмирования или доступного входного бюджета новой модели, даже если её полное окно такое же или больше: он выполняется, даже если выключена Summarize on model switch. Проверки безопасности контекстного окна остаются включёнными. Смена режима оставляет ту же модель, поэтому никогда не запускает это резюмирование, а только меняет инструкции для следующего хода.

Порог для конкретной модели можно изменить через Summarize at в её настройках в списке моделей. Переопределения для моделей Kodik, Ollama и пользовательских провайдеров сохраняются после перезагрузки; Reset возвращает вычисленное значение по умолчанию. Kodik резюмирует именно при заданном значении; бюджет ответа от него не зависит. Настройка ограничена тем же потолком, что и значение по умолчанию, — 95% окна минус 8 192 токена, — выше запросу на суммаризацию уже негде отвечать: большее значение урезается, и поле показывает максимум. Физический лимит окна сохраняется: в него должны поместиться инструменты, системный промпт и запас на оценку токенов. Один запрос никогда не занимает больше 95% окна вместе с ответом: у самого предела уменьшается бюджет ответа, а не растёт разговор (на окнах меньше примерно 10 тыс. токенов немного уступает и сам порог). Текст не на латинице считается не менее чем по одному токену на четыре байта UTF-8, а когда разговор не покрыт замером провайдера — первый запрос, смена модели, изменившийся набор инструментов — оценка расширяется на запас токенизатора семейства модели (около 20% для Claude, 10–15% для GLM, Gemini, DeepSeek и похожих семейств) — так провайдер, чей токенизатор насчитывает больше, чем оценка Kodik, всё равно принимает запрос.

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

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

Во время сжатия строка в чате показывает точную причину: размер контекста, простой, смену модели, переполнение контекста или ручную команду /compact.

Пока модель готовит резюме, можно отправлять дополнительные указания. Kodik сразу сохраняет их в очереди сообщений и обрабатывает после завершения сжатия. Кнопка «Стоп» оставляет ожидающие указания в очереди до явного продолжения работы. Указания или черновик, добавленные в момент запуска сжатия, его не прерывают. Если сохранить результат сжатия не удалось или его нельзя применить к диалогу, Kodik сообщает об ошибке, а не повторяет весь запрос к модели автоматически, и следующее сжатие запускается как обычно.

После успешного сжатия одна строка остаётся в том месте разговора, где произошло резюмирование. Она показывает Автоматическое сжатие завершено, Сжато после простоя или Сжато через /compact, число освобождённых токенов и кнопку Настроить. Для других причин сжатия причина указана в той же строке. Успешные резюме сворачиваются вместе с соседними инструментами и внутри Worked for, если эти настройки включены; при раскрытии сохраняется исходный порядок. Перезагрузка окна сохраняет каждое резюме и его показатели без дубликатов. Выполняющееся сжатие и ошибки остаются видимыми, чтобы статус и действия восстановления были доступны. Карточка неудачного сжатия показывает только сообщение на вашем языке, в том числе после перезагрузки окна; внутренняя причина записывается в журнал. Значение после сжатия учитывает новый системный промпт, активные определения инструментов и сжатый разговор — те же категории, что и меню Context Usage, — поэтому обе поверхности показывают одинаково освобождённый контекст даже при очень больших старых результатах инструментов.

При срабатывании:

  1. Kodik выбирает завершённую историю провайдера для создания контрольного резюме. Во время активного автономного хода исходная задача остаётся дословной, а сжимать можно только завершённые обмены с инструментами.
  2. Завершённые вызовы инструментов и соответствующие результаты передаются модели сжатия вместе как неделимые доказательства. В сохраняемую активную контрольную точку они не копируются; точные данные провайдера остаются доступными вне контекстного окна.
  3. Модель сжатия создаёт контрольное резюме непотоковым запросом. Обычно это выбранная для чата модель. При смене модели Kodik использует прежнюю модель и её провайдера для необходимого резюме. Следующий ход отправляется новой модели только после успешного создания резюме; иначе Kodik безопасно останавливает ход, не отправляя запрос новой модели. Если выбранный префикс совместим, Kodik сохраняет историю провайдера и ту же детерминированную схему инструментов, добавляет инструкцию резюмирования последней и отключает выполнение инструментов через tool_choice=none, поэтому модель сжатия не может начать новую работу. Это позволяет повторно использовать кеш префикса; доступность кеша и тариф зависят от провайдера. Ограниченная выборка при восстановлении или отдельный сервис резюмирования могут использовать пересобранный запрос. Запрос на резюме читает ту же историю, что и остальные запросы чата, поэтому у провайдера Chat Completions он содержит рассуждения шагов только там, где их содержат эти запросы (см. Custom Providers).
  4. Активная контрольная точка начинается с обновлённого системного промпта, затем содержит только настоящие сообщения пользователя в пределах общего бюджета (отбираются начиная с самых новых, самая старая граница может быть обрезана с двух сторон, затем сообщения возвращаются в исходный порядок) и одно отдельное помеченное резюме после них. Этот бюджет не превышает 20 000 токенов и четверти места, которое остаётся после системного промпта, схем инструментов, ожидающего сообщения и резерва на ответ, поэтому у модели с небольшим контекстом остаётся место для резюме. Прежние резюме и служебные заметки Kodik о восстановлении не считаются сообщениями пользователя, а сообщение, отправленное прямо перед сжатием, остаётся последним, что читает модель. Ответы ассистента, обмены с инструментами, рассуждения и тела вложений не попадают в этот активный хвост; видимая история чата не заменяется.

Если один автономный ход заполняет окно результатами инструментов, провайдер отправляет терминальную передачу для сжатия с точной историей разговора и сразу освобождает исходный запрос. Владелец хода сжимает завершённые обмены, а затем запускает новое продолжение с тем же идентификатором хода, не ожидая нового сообщения пользователя. Уже первый огромный результат можно сжать после завершения, а длинный ход может повторять цикл «передача — сжатие — продолжение» по мере накопления новых результатов. Локальные и размещённые сессии, а также делегированные субагенты используют один и тот же поток, поэтому разговор провайдера не остаётся приостановленным в ожидании межпроцессного обратного вызова. Если сжатие завершается ошибкой, ход заканчивается карточкой неудавшегося сжатия: ошибка показывается один раз, а кнопка «Повторить» на этой карточке перезапускает ход — вместо того чтобы молча заморозить чат. Также можно выполнить /compact вручную.

После ошибки сжатия во время хода кнопка Повторить сохраняет выполненную работу инструментов и продолжает ту же задачу, не добавляя исходный запрос пользователя в контекст модели второй раз. Восстановление доступно и после Reload Window.

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

Перед отправкой Kodik подгоняет запрос контрольного резюме под окно модели — сжимаемый участок, системный промпт и инструменты с резервом 8 192 токена на ответ, — убирая самые старые ходы участка, пока запрос не поместится. Kodik устанавливает контрольное резюме только после подтверждённого завершения ответа провайдера с непустым текстом резюме: незавершённый или отфильтрованный ответ, отказ, отсутствие признака завершения и незавершённые вызовы инструментов отклоняются, даже если содержат текст. Завершённое резюме не отклоняется из-за длины: проверки, что контекст стал меньше, нет, следующий сформированный запрос отдельно проверяется на соответствие входному и выходному бюджету модели, а пересобранный запрос, который провайдер всё же отклонил из-за размера контекста, ход один раз восстанавливает через резюмирование с повторной отправкой. Если сам запрос сводки не удался или его результат отклонён, исходный активный контекст остаётся доступен для повтора или ручного /compact. Низкий пользовательский порог Summarize at может быть меньше фиксированного промпта и инструментов; следующая компакция по этому порогу требует накопления нового контекста.

Непосредственно перед каждым запросом к провайдеру — первым запросом и каждым продолжением после инструмента — Kodik оценивает точную окончательную нагрузку, которая будет отправлена по сети. Бюджет включает текст сообщений, имена, идентификаторы и аргументы вызовов инструментов, связь с их результатами, мультимодальные изображения (около 1 844 токенов каждое), рассуждения, которые отправляются модели обратно (зашифрованные — по их расшифрованному размеру, а не по длине кодировки), сериализованные схемы инструментов, резерв на запрошенный ответ и 5-процентный запас на погрешность токенизатора. Если провайдер сообщил объём входных токенов для неизменившегося префикса провайдера, модели и схем инструментов, Kodik распространяет этот измеренный показатель на новый суффикс и использует большее из двух значений: локальную оценку или проекцию провайдера. Изменение префикса, модели, провайдера или схем инструментов делает показатель несовместимым.

Запросы сжатия повторяются только при временных сетевых сбоях, тайм-аутах, ответах HTTP 408/425/429, ошибках сервера и временных ошибках провайдера внутри ответа HTTP 200. Каждому маршруту провайдера — включая маршрут резюмирования Kodik — отводится до пяти минут и до четырёх сетевых попыток для неизменённого запроса, у каждой попытки свой лимит времени; допустимый резервный маршрут Kodik имеет собственный ограниченный бюджет. Запрос контрольного резюме, который провайдер отклонил из-за размера контекста, обрабатывается иначе: Kodik убирает из него самый старый ход (сохраняя каждый вызов инструмента рядом с его результатом) и спрашивает снова с новым запасом попыток, не более двух раз и не сбрасывая общий срок; перед отправкой такой запрос также ограничен теми же 95% окна и запасом токенизатора, что и обычные ходы, с резервом 8 192 токена на ответ. Задержка Retry-After никогда не сокращается: если она не помещается в оставшееся время, сжатие завершается ошибкой, а не отменой. Неповторяемая ошибка или исчерпание попыток отклоняет сжатие. Запросы к Kodik и отдельному сервису резюмирования используют актуальный токен аккаунта; его обновление не сбрасывает срок попытки. Владелец хода запускает новое продолжение только после сохранения пригодного контрольного резюме. Если сам провайдер сообщает о переполнении контекста в обычном запросе, Kodik автоматически сжимает разговор и отправляет этот запрос заново — один раз на запрос, без вопроса и без строки ошибки; так же работают субагенты, во вкладке которых карточки резюмирования и готового резюме появляются сразу. В чатах на моделях Kodik резюме, которое не поместилось и после двух сокращений, один раз создаётся через ограниченный маршрут резюмирования только из текста пользователя и ассистента; пользовательские провайдеры и Ollama этот шаг пропускают. Если и это не удалось или сжатый запрос всё равно превышает окно, ход завершается карточкой неудавшегося резюмирования с кнопкой Retry без повторной отправки слишком большого запроса. Нажатие Stop на любом из этих шагов, в том числе во время ожидания повтора или обновления токена аккаунта, отменяет запрос резюме и завершает ход как остановленный — без ошибки и без повторной отправки, и в чатах, и в субагентах.

Перед заменой активного контекста Kodik сохраняет результат и атомарно активирует новую эпоху истории провайдера. Попытка, которую опередило другое изменение чата, не заменяет историю и не помечает новые правила и навыки как уже установленные: следующий ход по-прежнему получает их обновления. Уже сохранённый результат можно восстановить без повторного запроса к модели. Исходная история провайдера хранится отдельно от активного контекста, пока нужна чату или его ответвлениям. Видимая переписка остаётся неизменной.

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

Запрос контрольного резюме перед отправкой подгоняется под окно прежней модели с резервом 8 192 токена на ответ, и любая завершённая непустая сводка принимается; Kodik больше не сверяет результат с настройкой Summarize at новой модели и не отклоняет сводку за длину. Это действует и при одинаковых полных окнах моделей, и при переходе на большее окно. Если новая модель всё же сообщает, что полученный контекст слишком велик, этот первый запрос один раз восстанавливается через резюмирование с повторной отправкой. Если сам запрос сводки не удался, переход остаётся незавершённым, а исходный разговор и сообщение сохраняются для повторной попытки.

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

Резюме создаётся по фиксированному шаблону. Оно всегда содержит:

  • Goal — краткое описание задачи одной фразой
  • Constraints & Preferences — требования и предпочтения пользователя
  • Progress — выполненная работа, текущие задачи, блокеры
  • Key Decisions — принятые технические решения
  • Next Steps — следующие действия
  • Critical Context — важные технические факты, ошибки, открытые вопросы
  • Relevant Files — пути к файлам и их значимость

Если формат API OpenAI-совместимого провайдера меняется между Chat Completions и Responses, сжатие использует формат сохранённого разговора. Следующий обычный ход может перейти на новый выбранный формат.

В старых восстановленных чатах иногда остаются только видимые сообщения без сохранённой истории провайдера. Сжать контекст и /compact могут создать приблизительное резюме по этим сообщениям; карточка помечает его как сводку видимого разговора. Скрытые результаты инструментов, вложения и рассуждения восстановить нельзя, а в очень длинном разговоре середина видимого текста может быть опущена, чтобы запрос поместился. При ошибке сообщения остаются доступными, а успешное резюме сохраняется после перезагрузки для следующего хода.

Обычно сжатие использует модель, провайдера и уровень рассуждений, выбранные для этого чата, в том числе у провайдеров в формате Gemini Interactions. При смене модели Kodik сохраняет прежний выбор на время создания необходимого резюме. Если контекст достигает порога резюмирования или доступного входного бюджета новой модели, резюме обязательно, даже если выключена Summarize on model switch. Следующий ход допускается на новой модели только после успешного сжатия. Если это сжатие завершается ошибкой, запрос новой модели не отправляется, а ожидающее сообщение сохраняется для повтора.

Для чата через Kodik триггер После паузы обращается к выделенному серверному сервису резюмирования; его экономичную модель настраивают администраторы Kodik. IDE отправляет ограниченный нейтральный для провайдера разговор: системные инструкции, рассуждения провайдера, схемы инструментов, вложения и бинарные данные удаляются, а у большого вывода инструмента остаются только начало и конец. Полученная контрольная точка всё равно продолжает разговор на выбранной для чата модели. Для остальных сжатий Kodik-hosted выбранная модель остаётся основным маршрутом; после неудачи её обычных повторов Kodik один раз обращается к выделенному сервису и показывает ошибку, если неудачна и эта попытка. Пользовательские провайдеры и Ollama этот сервис не используют.

Для запросов резюмирования через Responses и Messages Kodik ограничивает длину ответа свободным местом в контекстном окне после учёта всего запроса, включая системные инструкции и определения инструментов.

Если завершённый ответ Responses не содержит обычного текста, но содержит открытое резюме рассуждений, Kodik использует его как контрольную точку. Незавершённый ответ и одни только зашифрованные рассуждения для этого не подходят. После перезагрузки Kodik обращается к сохраняемой карточке инструмента по её записи в SessionStore, поэтому видимый ID карточки tool:… не мешает сжатию. При ошибке исходная причина и этап сжатия записываются в локальный журнал рабочей области с меткой compaction_; карточка также может назвать исчерпанный лимит ответа Responses или пустое резюме. Исходный чат и неотправленное сообщение остаются доступны для повтора.

Для моделей Kodik с ручным режимом рассуждения через Messages запросу сжатия требуется не менее 1 025 токенов ответа. Если только обычный запас на погрешность уменьшает доступный ответ ниже этого минимума, Kodik оставляет необходимый минимум с меньшим запасом на вход. Если запрос или настроенный лимит модели всё равно не позволяют его выделить, карточка ошибки объясняет ограничение; исходный разговор и ожидающее сообщение сохраняются.

Для моделей Kodik каждый запрос одного чата также передаёт тот же идентификатор задачи как session_id OpenRouter, чтобы его best-effort sticky routing мог повторно использовать прогретый кеш провайдера. Kodik больше не хранит отдельное закрепление провайдера в Redis и не отправляет provider.order, который отключает sticky routing OpenRouter. Для Claude в настройках модели можно дополнительно ограничить маршрут одним точным endpoint-ом через provider.only. Чтобы проверить результат, откройте инструменты разработчика рабочей области, выберите Console и отфильтруйте [KodikChat][PromptCache]. После каждого завершённого ответа журнал показывает кешированные/общие токены промпта, процент попадания в кеш, записанные в кеш токены и некешированные токены промпта; содержимое промпта в журнал не попадает.

При формировании запроса Kodik API также применяет политику кеширования, сохранённую для выбранной модели. При импорте модели Kodik читает метаданные цен модели и endpoint-ов OpenRouter, предлагает только ручные режимы кеширования, поддерживаемые всеми доступными endpoint-ами, и перед сохранением показывает поля запроса для конкретного провайдера. Для моделей со встроенным кешированием по умолчанию управление остаётся у провайдера. Для Claude можно выбрать автоматический эфемерный кеш на 5 минут или 1 час; OpenRouter преобразует это поле для выбранного endpoint-а. Для GPT-5.6 применяется документированная явная политика на 30 минут: точка кеширования стабильного префикса вместе с prompt_cache_key и prompt_cache_options. Первый запрос записывает кеш провайдера, а следующие показывают чтение и запись кеша в данных usage. Ни Redis, ни Kodik не хранят кеш модели провайдера.

Вне сжатия Kodik фиксирует системный промпт в начале эпохи кеша и сохраняет завершённый префикс провайдера неизменным. Если меняется режим, правило, память, навык, определение MCP или другой источник инструкций, Kodik добавляет одно хронологическое системное обновление вместо переписывания старого префикса. Зафиксированная база и принятые обновления переживают перезагрузку. После успешного сжатия начинается новая эпоха: актуальное состояние инструкций становится новой базой, а устаревшие обновления удаляются. Следующие запросы не отправляют их снова, в том числе после резюме посреди ответа. Запрос с точным префиксом сохраняет ту же детерминированную схему инструментов, отключая их выполнение через tool_choice=none; если схема больше не совпадает, Kodik использует безопасно пересобранный промпт и не считает префикс точным.

Сообщения после смены модели сохраняются до начала подготовки. В чате статус сжатия показывается после сообщения, которое его вызвало. Временные ошибки сжатия автоматически повторяются. Если подготовка всё же не удалась, сообщение остаётся в очереди, а в карточке сжатия появляется кнопка Повторить. После успешного сжатия сохранённое сообщение отправляется один раз, в том числе после Reload Window. Стоп оставляет сообщение в очереди, а чат принимает новые сообщения; чтобы продолжить, нажмите Отправить сейчас на нём.

Нажатие Stop, пока Kodik резюмирует чат перед отправкой сообщения после перерыва, отменяет отправку: ничего не отправляется, а сообщение остаётся в поле ввода. Если резюме начинается потому, что во время отправки разговор перестал помещаться в окно контекста, сообщение уже сохранено: Stop завершает этот ход, сообщение остаётся в разговоре, а поле ввода очищается. Если во время резюмирования длинной задачи посреди хода приходит другое изменение, Kodik один раз пропускает это резюме, и задача продолжается с прежним контекстом. Чат, сохранённый разговор которого превысил предел воспроизведения, автоматически резюмирует старые сообщения и продолжает работу — так же, как при заполненном окне контекста.

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

Чтобы сжать разговор в любой момент, используйте /compact. Команда немедленно запускает тот же процесс, не ожидая порога токенов, и сохраняет настоящие сообщения пользователя в общем токеновом бюджете. Завершённый разговор из одного хода можно сжать, когда токены разговора достигают общего порога; количество сообщений не является отдельным условием. Подробности — в обзоре slash-команд.

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

Агент сам выбирает момент: инструмент compact

Заголовок раздела «Агент сам выбирает момент: инструмент compact»

Автоматическое резюмирование срабатывает, когда разговор достигает вашего порога, и это может прийтись на середину тонкой работы. Инструмент compact позволяет агенту сжать разговор чуть раньше, в удобный для задачи момент. По умолчанию он выключен: включите его для нужного режима в Settings → Harness, в списке инструментов (Enabled или Deferred).

Пока инструмент включён для режима чата:

  • Каждое ваше сообщение и каждый результат инструмента, которые получает агент, заканчиваются одной короткой строкой, например Context: 50k tokens used, 130k left before automatic summarization. Её видит только агент. Остаток считается от вашего порога резюмирования.
  • Агент может сжать разговор сейчас, на текущей границе вызова инструмента, и добавить свои указания о том, что резюме обязано сохранить. Запускается тот же процесс, что и при /compact, и ход продолжается с резюме. Карточка сжатия в чате подписана Сжато по решению агента, так что её легко отличить от автоматической.

Изменить ваш порог резюмирования агент не может. Суб-агентам этот инструмент недоступен: их контекст управляется автоматически.

Kodik сохраняет контрольные точки в ходе работы. Если резюмирование произошло, вы можете откатиться к состоянию до него через контрольную точку. Следующее резюме, в том числе /compact сразу после восстановления, строится по восстановленному разговору и не возвращает отменённое резюме. Точные исключённые сообщения провайдера также остаются привязаны к активной сжатой сессии и доступны для ограниченного чтения до удаления чата.