Кальтер / Блог

Контекстное окно и память нейросети: почему разговор забывается

Разбираем контекстное окно, историю чата, сохранённую память и файлы проекта — и даём шаблон передачи состояния между диалогами.

Материал подготовлен с помощью ИИ; источники и расчёты проверены редакцией ZASLON.

Контекстное окно охватывает только часть ленты разговора, а сохранённая память показана отдельно.
Редакционная схема ZASLON. Условная иллюстрация процесса, не скриншот сервиса.

Если нейросеть «забыла» начало разговора, это не обязательно баг памяти. В работе смешиваются разные вещи: текущий контекст модели, видимая история чата, отдельная функция сохранённой памяти и документы, которые можно повторно подключить. Это разные механизмы, и ни один не гарантирует, что каждый старый факт будет доступен в каждом ответе.

У разных моделей и тарифов разные ограничения. Например, справка Claude отдельно публикует размеры контекстных окон для разных моделей и режимов; числа меняются, поэтому сверяй актуальную таблицу Anthropic, а не запоминай число из старого обзора.

Пять слоёв, которые называют «памятью»

  1. Активный контекст — материалы, которые система фактически учитывает при подготовке конкретного ответа. Это ограниченный рабочий набор, а не бесконечная лента.
  2. История чата — сообщения, которые интерфейс показывает в диалоге. Наличие старого сообщения на экране не гарантирует, что оно целиком попало в текущий запрос модели.
  3. Сохранённая память — отдельная продуктовая функция, если она есть и включена. Она может хранить отобранные предпочтения, но не обязана сохранять каждую деталь разговора.
  4. Файлы или проект — документы, доступные в конкретном продукте. Некоторые сервисы извлекают из них релевантные фрагменты, другие работают иначе; не переноси поведение одного приложения на все остальные.
  5. Внешнее хранилище и retrieval — приложение само ищет нужные данные и передаёт их модели. Ошибка поиска здесь не исправляется «длинной памятью» модели.

Не путай максимальное контекстное окно модели с полезной ёмкостью конкретного приложения. Инструмент может добавлять системные инструкции, историю, результаты поиска и данные вызовов; часть доступного бюджета уже занята. А длинная переписка часто содержит противоречия и устаревшие решения.

Передавай состояние, а не весь архив

Когда задача переезжает в новый чат, собери короткий handoff:

Цель:
Что уже решено:
Факты, которые нужно считать подтверждёнными:
Что изменилось с прошлого шага:
Открытые вопросы:
Ограничения и запреты:
Следующий конкретный шаг:
Источники/файлы:
Дата актуальности:

Пример: «Цель — сравнить два способа импорта CSV. Подтверждено: файл содержит 4 столбца и разделитель ;. Решено: исходник не менять. Открыто: кодировка. Следующий шаг: определить кодировку на копии файла. Инструкция из сообщения от марта устарела — не применять».

Такой конспект удобнее для проверки и снижает риск, что старый черновой вариант будет принят за последнее решение. Для длинной задачи добавляй ссылки на исходные документы и дату, а не копируй всё содержимое в один бесконечный prompt.

Как диагностировать «забывчивость»

  • Задай вопрос о свежем фрагменте, затем о старом конкретном факте.
  • Если интерфейс умеет показывать цитату или место в источнике, попроси указать его и сверь вручную. Самообъяснение модели без проверяемого фрагмента не подтверждает, что именно этот источник обосновал ответ.
  • Повтори ключевое условие в компактном контекстном блоке и сравни ответ. Это проверка процесса, а не измерение модели.
  • Убедись, что нужный файл прикреплён именно к текущему проекту или запросу.
  • Если ответ зависит от версии продукта, проверь официальную справку на дату использования.

Не вставляй секреты в «память» ради удобства. Не считай сохранённый чат резервной копией документов. Удаление и хранение истории зависят от конкретного сервиса и его настроек — проверь их отдельно.

Устойчивая привычка

Для разовой задачи держи в запросе цель, вводные и критерий готовности. Для повторяющейся отдельно храни актуальный краткий brief и первичные файлы. После важного решения обнови brief, поставь дату и отметь, какой вариант он заменил. Большой архив чата часто смешивает актуальные условия с черновиками; передавай новое состояние и ссылки на источники, а не всю историю.

Не помещай секреты в «память» и не считай историю чата резервной копией документов. Возможности файлов и сохранённой памяти зависят от продукта, поэтому сверяй его справку. Для поиска по большому набору документов важны индекс и качество retrieval: см. разбор RAG для базы знаний. Начать с повседневных сценариев ИИ можно в БАЗЕ.

Быстрый шаблон handoff для проекта

Для командного проекта укажи, какой документ считается источником истины и кто подтверждает спорный факт. Например: «Черновик в старом чате неактуален; утверждённый бюджет — в таблице отдела; владелец цифры — менеджер проекта».

При ответе по файлу попроси указать название источника и раздел, затем сверь их вручную.

Мини-проверка после handoff

Попроси новый чат назвать цель, два действующих ограничения и следующий шаг. Сверь их с brief, затем дай задачу на один переданный факт. Ошибка подскажет, что handoff неясен или источник недоступен; это проверка передачи, а не измерение размера памяти.

В OpenAI API guide context window определяется как объём данных, который модель может учитывать в рамках generation request; ограничения различаются по модели (официальное объяснение контекстного окна). Не используй универсальное число токенов из старой статьи.