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

Управление контекстом

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

Каждая языковая модель имеет окно контекста — максимальный объём токенов (примерно 3/4 слова на токен), который она может держать в памяти одновременно. Этот объём включает системный промпт, историю разговора, содержимое упомянутых файлов, информацию об открытых вкладках и результаты вызовов инструментов.

Когда контекст заполняется, качество ответов начинает снижаться задолго до достижения формального лимита — практически это заметно уже при ~200–300K токенов, даже у моделей с большим окном.

При каждом запросе Kodik собирает окружение из нескольких источников:

Активные вкладки редактора (<active_tabs>) — файлы, открытые в видимых панелях редактора в данный момент. Медиа- и бинарные файлы исключаются автоматически.

Открытые вкладки (<opened_tabs>) — файлы, открытые в редакторе, но не находящиеся в фокусе. Дублирование с активными вкладками исключается.

Упоминания (<user_mentions>) — файлы, папки и диапазоны строк, явно указанные через @ Упоминания. Файлы, заблокированные через .kodikignore, не включаются.

Терминальный контекст (<terminal_context>) — вывод терминала, прикреплённый через @terminal:<имя>.

Правила и инструкции — содержимое файлов из .kodik/rules, глобальных правил и AGENTS.md добавляется в системный промпт.

Память — записи из .kodik/memories включаются в системный промпт.

Вы можете исключить открытые файлы из контекста через интерфейс вкладки Context в панели Kodik.

Kodik автоматически сжимает историю разговора при приближении к лимиту. Подробнее — на странице Авто-сжатие.

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

Также доступен ручной вызов через /compact.

Что стоит включать явно:

  • Файлы, непосредственно относящиеся к задаче — через @Упоминания
  • Диапазоны строк для точного указания проблемного места
  • Вывод терминала с ошибкой или результатом сборки

Что стоит исключать:

  • Открытые, но нерелевантные вкладки — через панель Context
  • Файлы, которые не должны попадать к агенту — через .kodikignore

Правила и инструкции (.kodik/rules) занимают постоянное место в системном промпте, поэтому их стоит держать краткими и актуальными.

Контекст текущего разговора не переносится автоматически в новую сессию. Для преемственности используйте:

  • Начинайте свежую сессию при переходе к несвязанным задачам — это очищает контекст и снижает вероятность путаницы.
  • Используйте MCP серверы для подключения внешних баз знаний.
  • Скриншоты можно передавать как контекст для моделей с поддержкой изображений.