Управление контекстом
Контекст — это вся информация, которую Kodik знает в ходе разговора. Понимание того, как он формируется, помогает получать более точные и последовательные ответы.
Окно контекста
Заголовок раздела «Окно контекста»Каждая языковая модель имеет окно контекста — максимальный объём токенов (примерно 3/4 слова на токен), который она может держать в памяти одновременно. Этот объём включает системный промпт, историю разговора, содержимое упомянутых файлов, информацию о видимых редакторах и результаты вызовов инструментов.
Все модели получают одинаковые короткие инструкции в Markdown — меньше 1000 токенов в любом режиме; первая строка называет модель, на которой работает чат, и в них упоминаются только инструменты, включённые в текущем режиме. К ним добавляются правила, AGENTS.md, память, skills, инструкции выбранного режима (или роли субагента) и язык ответа; указания, специфичные для проекта, стоит держать в AGENTS.md или правилах.
Меню использования контекста оценивает эти данные локально и помечает счётчики знаком ~. Строки «Система», «Определения инструментов» и «Диалог» берутся из этой оценки. Когда провайдер сообщает размер последнего запроса, все строки масштабируются так, чтобы их сумма совпала с этим числом; кэшированные токены при этом учитываются полностью. Итог в меню — это контекстное окно модели: лимит ответа входит в это окно и не прибавляется сверху. В разделе «Диалог» события «Агент» учитывают всё, что сгенерировала модель — текст ответа вместе с вызовами инструментов, — а события «Инструмент» — это возвращённые результаты: раскрыв такое событие, вы увидите содержимое, которое и измеряет счётчик строки. Отчёт фонового субагента отображается там как результат Sub-agent. В длинном чате более ранние события агента и инструментов между двумя вашими сообщениями сворачиваются в одну строку, например Более ранних шагов: 24, которая сохраняет их счётчик токенов; ваши сообщения и последние события остаются в списке.
Когда контекст заполняется, качество ответов начинает снижаться задолго до достижения формального лимита — практически это заметно уже при ~200–300K токенов, даже у моделей с большим окном.
Что автоматически включается в контекст
Заголовок раздела «Что автоматически включается в контекст»При каждом запросе Kodik собирает окружение из нескольких источников:
Видимые редакторы — файлы, показанные в панелях редактора при отправке запроса. Медиа- и бинарные файлы исключаются автоматически. Фоновые вкладки не добавляются только потому, что остаются открытыми.
Упоминания — файлы, папки и диапазоны строк, явно указанные через @ Упоминания. Файлы, заблокированные через .kodikignore, не включаются.
Терминальный контекст — вывод терминала, прикреплённый через @terminal:<имя>.
Правила и инструкции — содержимое файлов из .kodik/rules, глобальных правил и AGENTS.md добавляется в системный промпт.
Память — записи из .kodik/memories включаются в системный промпт.
Если во время чата меняются правила, навыки, память, MCP-серверы или профили субагентов, Kodik добавляет изменение в конец разговора, а не переписывает начало промпта, поэтому провайдер продолжает использовать кэш промпта. При следующем сжатии эти изменения войдут в новый системный промпт.
Системный промпт содержит только то, что общее для всех чатов проекта. Текущая дата и ID сессии чата передаются модели вместе с вашим первым сообщением в чате и повторно — только когда что-то из них меняется (новый день, форк) или после сжатия чата; субагент получает их вместе с заданием, поэтому новый чат, форк или субагент использует кэш промпта, который уже построили предыдущие чаты.
Kodik автоматически включает контекст видимых редакторов. Чтобы добавить фоновый файл, явно укажите его через @упоминание. Исходные файлы с XML по-прежнему допустимы: Kodik сохраняет их текст без изменений внутри ограниченного блока Markdown.
Изображения во вложениях
Заголовок раздела «Изображения во вложениях»Формат вложений PNG, JPEG, GIF и WebP определяется по содержимому. Изображение можно вставить из буфера обмена, выбрать или перетащить, даже если тип в буфере обмена или расширение файла указывает на другой поддерживаемый формат. Kodik сохраняет исходное изображение и имя файла, в том числе при отправке из очереди, восстановлении после перезагрузки и повторной попытке. Неподдерживаемые форматы по-прежнему отмечаются как неподдерживаемые вложения. Если в буфере обмена одновременно есть текст и изображение, как после копирования из Microsoft Word, Kodik вставляет текст.
Авто-сжатие (Auto-compact)
Заголовок раздела «Авто-сжатие (Auto-compact)»По умолчанию Kodik автоматически сжимает историю разговора при приближении к лимиту. Подробнее — на странице Авто-сжатие.
Перед каждым обращением к провайдеру, включая продолжения после инструментов, Kodik рассчитывает бюджет окончательного запроса: сообщения, изображения, схемы инструментов, резерв на ответ и запас безопасности. Совместимый показатель токенов от провайдера позволяет уточнить эту оценку. Когда запрос приближается к доступному входному бюджету, Kodik создаёт контрольное резюме старых завершённых обменов и дословно сохраняет недавний хвост в пределах токенового бюджета.
Если провайдер сообщает о переполнении контекста, Kodik автоматически сжимает разговор и отправляет запрос заново — без вопроса и без ошибки в чате; карточка резюмирования остаётся видимой, а повторный запрос использует актуальные правила, навыки и MCP-инструменты. Запрос контрольного резюме, который провайдер сам отклонил из-за размера контекста, не прерывается: Kodik убирает из него самый старый ход и спрашивает снова, не более двух раз, а в чатах на моделях Kodik резюме, которое всё ещё не помещается, один раз создаётся через ограниченный маршрут резюмирования. Если безопасное резюме создать не удалось или сжатый запрос всё равно слишком велик, ход завершается карточкой неудавшегося резюмирования с кнопкой Retry, а слишком большой запрос не отправляется снова. Сжатие при достижении порога резюмирования включено всегда; сжатие при смене модели — необязательная функция, а сжатие после бездействия по умолчанию выключено. Достижение порога Summarize at или доступного входного бюджета выбранной модели — защитное исключение, даже если её полное контекстное окно такое же или больше. Даже если выключена Summarize on model switch, Kodik создаёт контрольное резюме прежней моделью и не отправляет ход новой модели, если это не удалось.
Также доступен ручной вызов через /compact.
Выбор новой модели сохраняется сразу, а необходимое резюме при смене модели создаётся перед отправкой следующего сообщения. Прежняя модель делает резюме, Kodik сохраняет его, и только затем продолжает выбранная модель. Короткий разговор, который помещается в бюджет сохраняемой истории, продолжается без резюме: сообщения, изображения и результаты инструментов сохраняются при смене провайдера и перезагрузке окна. Начальный системный промпт сам по себе не считается старой частью разговора для сжатия. Перед сохранением резюме при смене модели Kodik проверяет его вместе с новым промптом, инструментами, сохраняемой историей и ожидающим сообщением: всё должно помещаться ниже порога новой модели с учётом резерва на ответ и дополнительного запаса для продолжения. Если этот контекст не помещается или резюме получилось слишком длинным, исходный разговор и ожидающее сообщение сохраняются для повторной попытки.
Управление контекстом
Заголовок раздела «Управление контекстом»Что стоит включать явно:
- Файлы, непосредственно относящиеся к задаче — через @Упоминания
- Диапазоны строк для точного указания проблемного места
- Вывод терминала с ошибкой или результатом сборки
Что стоит исключать:
- Нерелевантные видимые файлы — закройте их панели редактора перед отправкой
- Файлы, которые не должны попадать к агенту — через .kodikignore
Правила и инструкции (.kodik/rules) занимают постоянное место в системном промпте, поэтому их стоит держать краткими и актуальными.
Сохранение контекста между сессиями
Заголовок раздела «Сохранение контекста между сессиями»Контекст текущего разговора не переносится автоматически в новую сессию. Для преемственности используйте:
- Правила — постоянные инструкции для проекта
- Память — накопленные факты о проекте
- AGENTS.md — описание архитектуры и соглашений
- Начинайте свежую сессию при переходе к несвязанным задачам — это очищает контекст и снижает вероятность путаницы.
- Используйте MCP серверы для подключения внешних баз знаний.
- Скриншоты можно прикреплять к любой модели. Текстовые модели Kodik получают краткое описание от отдельной модели с поддержкой изображений, а модели без поддержки изображений не получают байты изображения.
