Контекстное окно: почему ИИ забывает начало разговора
НЕ ЗНАЧИТ ВСЁ
В начале диалога вы описали аудиторию, запретили несколько формулировок и приложили документ. Через двадцать сообщений модель нарушает тон, повторяет уже исправленную ошибку или спрашивает то, что вы сообщали раньше. Это обычно называют «забыванием», хотя внутри системы происходит более конкретная вещь: история перестаёт целиком или одинаково хорошо влиять на следующий ответ.
Чтобы управлять этим, нужно различать три понятия: знания модели, контекст текущего запроса и долговременную память продукта.
Контекст — это рабочий стол
Представьте стол ограниченного размера. На нём лежат:
- системные инструкции сервиса;
- ваши сообщения;
- предыдущие ответы модели;
- прикреплённые документы и изображения;
- описания доступных инструментов;
- результаты поиска или других вызовов;
- место, необходимое для нового ответа и рассуждения.
Всё это занимает токены. Когда материала слишком много, интерфейс или приложение должно что-то удалить, сократить, заменить резюме или вообще отклонить запрос.
Окно не равно обучающим данным. Модель может знать общий факт из обучения, но не видеть ваш вчерашний файл. И наоборот: она может обработать неизвестный ей документ, если его содержимое попало в текущий контекст.
Почему большой лимит не решает всё
Современные модели принимают сотни тысяч и даже до миллиона токенов, но вместимость не гарантирует одинакового внимания к каждой строке. Чем больше материала, тем сложнее найти нужную деталь среди шума.
Есть три разных сбоя:
Информация не попала в запрос
Интерфейс мог не передать старые сообщения, файл не распознался или поисковая система выбрала не тот фрагмент. Модель физически не может использовать то, чего нет в её входе.
Информация есть, но теряется в шуме
Критичное условие находится в середине огромного документа рядом с сотнями похожих пунктов. Модель видит его, но отвечает по более заметному или недавнему фрагменту.
Инструкция конфликтует с более новой
Вы несколько раз меняли требования, оставили старый черновик и добавили новый. Модель не «забыла», а получила противоречивый контекст и выбрала одну из версий.
Что происходит в длинном чате
Каждый новый ход обычно добавляет к входу предыдущую историю. Поэтому запрос постепенно дорожает и приближается к лимиту. Разные интерфейсы управляют этим по-разному: отбрасывают самые старые сообщения, суммируют их или используют отдельную память.
Это объясняет знакомый эффект: модель помнит общий сюжет разговора, но теряет точную формулировку старого требования. Резюме сохранило смысл, но не деталь.
Как работать с длинным разговором
Держите источник истины
Создайте короткий блок «Актуальные требования» и обновляйте его, когда решение меняется. Не заставляйте модель выводить финальные правила из десятков сообщений.
Ниже — актуальное состояние задачи.
Оно заменяет противоречащие ему решения из истории.
Цель: [результат]
Уже принято: [решения]
Ограничения: [что обязательно]
Открытые вопросы: [неизвестное]
Следующий шаг: [что сделать сейчас]
Перед ответом укажи, если новое сообщение
противоречит этому состоянию.
Начинайте новый чат осознанно
Новый разговор полезен, когда старый заполнен отменёнными версиями и длинными пробами. Перенесите в него не всю стенограмму, а компактный бриф, финальные материалы и список нерешённых вопросов.
Разделяйте исследование и производство
Один чат может собирать факты, другой — писать итоговый документ на основе проверенного набора. Так черновые гипотезы и ошибочные источники меньше смешиваются с финальной задачей.
Просите ссылаться на место
При работе с большим файлом требуйте страницу, раздел или короткую цитату. Если модель не может показать опору, её вывод сложнее проверить.
Как работать с большим документом
Загрузка целой папки и просьба «найди всё важное» — не лучший тест длинного контекста. Сначала дайте модели карту задачи.
- Попросите перечислить структуру документа и типы данных.
- Определите вопросы и критерии поиска.
- Разбирайте по одному тематическому блоку.
- Ведите таблицу найденных утверждений и источников.
- Только затем просите общий вывод.
Если файлов много и они регулярно обновляются, полезнее RAG — поиск, который подставляет в контекст только релевантные фрагменты. Его механика разобрана в статье «Что такое RAG».
Что удалять из контекста
Больше данных не всегда лучше. Смело исключайте:
- длинные ответы, которые вы уже признали неверными;
- дубли одного документа;
- необработанные логи, не относящиеся к вопросу;
- старые версии требований;
- декоративные примеры, если формат уже понятен;
- результаты инструментов после того, как нужные факты перенесены в краткое состояние.
Но не сокращайте то, что обеспечивает проверяемость: исходные цифры, определения полей, ограничения, ссылки и исключения.
| Симптом | Вероятная причина | Что сделать |
|---|---|---|
| Нарушен старый запрет | Инструкция далеко или удалена | Повторить актуальные ограничения |
| Перепутаны версии документа | В контексте есть обе | Оставить одну и указать дату |
| Пропущен важный пункт | Слишком много однородного текста | Разбить задачу и запросить цитаты |
| Диалог стал дорогим и медленным | История повторно отправляется | Создать резюме и новый чат |
Контекст и память — не одно и то же
Некоторые продукты запоминают предпочтения между чатами. Это отдельный слой, который выбирает сохранённые факты и снова добавляет их в контекст. Такая память может быть полезной, но остаётся выборочной и требует контроля пользователя.
Не полагайтесь на неё для критичных условий. В рабочем процессе храните требования в документе, задаче или базе, где их можно увидеть, изменить и версионировать.
Главное
Контекстное окно — ёмкость, а не гарантия внимания. Надёжный результат получается не тогда, когда вы помещаете в запрос всё, а когда оставляете нужные источники, убираете устаревшее, явно фиксируете актуальные правила и требуете проверяемые ссылки.
О том, как текст и файлы занимают это пространство и влияют на стоимость, читайте в статье «Токены: из чего состоит запрос».