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

> Как Kodik формирует контекст, что включается автоматически и как работает авто-сжатие

Источник: https://docs.kodik.ru/context/overview

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

## Окно контекста

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

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

## Что автоматически включается в контекст

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

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

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

**Упоминания** (`<user_mentions>`) — файлы, папки и диапазоны строк, явно указанные через [@ Упоминания](https://docs.kodik.ru/context/mentions). Файлы, заблокированные через [`.kodikignore`](https://docs.kodik.ru/context/ignore-files), не включаются.

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

**Правила и инструкции** — содержимое файлов из [`.kodik/rules`](https://docs.kodik.ru/context/rules), глобальных правил и [AGENTS.md](https://docs.kodik.ru/context/agents-md) добавляется в системный промпт.

**Память** — записи из [.kodik/memories](https://docs.kodik.ru/context/memory) включаются в системный промпт.

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

## Авто-сжатие (Auto-compact)

Kodik автоматически сжимает историю разговора при приближении к лимиту. Подробнее — на странице [Авто-сжатие](https://docs.kodik.ru/context/auto-compact).

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

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

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

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

- Файлы, непосредственно относящиеся к задаче — через [@Упоминания](https://docs.kodik.ru/context/mentions)
- Диапазоны строк для точного указания проблемного места
- Вывод терминала с ошибкой или результатом сборки

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

- Открытые, но нерелевантные вкладки — через панель Context
- Файлы, которые не должны попадать к агенту — через [.kodikignore](https://docs.kodik.ru/context/ignore-files)

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

## Сохранение контекста между сессиями

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

- [Правила](https://docs.kodik.ru/context/rules) — постоянные инструкции для проекта
- [Память](https://docs.kodik.ru/context/memory) — накопленные факты о проекте
- [AGENTS.md](https://docs.kodik.ru/context/agents-md) — описание архитектуры и соглашений
- [Индексирование кодовой базы](https://docs.kodik.ru/context/indexing) — семантический поиск по коду без ручного указания файлов

## Советы

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