Перейти к содержанию

Сжатие контекста

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

Как это работает

Koda создаёт summary на основе части истории диалога, а затем использует этот конспект вместо полной ранней переписки.

Обычно в summary попадают:

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

В интерфейсе такое место в истории помечается отдельным маркером, чтобы было видно, где ранние сообщения были сжаты.

Зачем это нужно

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

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

Ручное сжатие

Если вы хотите сжать историю сами, используйте команду:

/summarize

Команда создаёт конспект всей текущей истории диалога. Это удобно, когда:

  • завершён отдельный этап работы;
  • диалог заметно разросся;
  • вы хотите зафиксировать текущее состояние перед новой задачей.

Автоматическое сжатие

Автоматическое сжатие работает в агентском режиме. По коду проекта оно запускается, когда использование контекста достигает 75%.

Если функция включена, summary создаётся в фоне и не останавливает агентский цикл. По умолчанию автоматическое сжатие включено.

Что происходит при большом заполнении контекста

В проекте также есть защитное поведение для почти заполненного контекста:

  • при заполнении более 95% Koda просит выполнить /summarize;
  • при 100% продолжать диалог уже нельзя, пока контекст не будет сокращён или не будет начата новая сессия.

Что важно учитывать

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

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

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

Когда использовать

Сжатие особенно полезно в таких случаях:

  • долгая отладка или рефакторинг;
  • многошаговая работа над одной задачей;
  • переход от обсуждения к реализации;
  • длинная агентская сессия с несколькими изменениями файлов.

Практический совет

Не стоит ждать, пока контекст заполнится полностью. Лучше сжимать историю после завершения заметного этапа работы — так summary обычно получается точнее и полезнее.