TL;DR
Исследователи проверили: если дать модели только последнее сообщение пользователя (без переписки перед ним), ответ изменится по существу почти в половине случаев — 44,7%. Не изменится тон или длина, изменится суть: другая рекомендация, другой факт, другое решение — «отвечать или уточнять».
Причина проста: последнее сообщение в диалоге — это не самостоятельный запрос, а обновление состояния. Пользователь сказал «хочу ноутбук для путешествий», потом добавил бюджет, отверг один вариант, а закончил фразой «какой лучше?». Без этой истории модель не знает бюджет, не знает, что вариант уже отвергнут — и выдаёт правдоподобный, но неверный по сути ответ.
Решение — не обязательно тащить весь диалог. Достаточно сжатого пересказа предыдущих реплик (до 160 слов: цели, ограничения, отвергнутые варианты, что решено, что нет) — это снижает долю «испорченных» ответов с 44,7% до 30,8% и почти убирает разницу в качестве. Но полностью не заменяет полный диалог — треть ответов всё равно расходится по существу.
Схема метода
УСЛОВИЕ A (полный контекст):
Модели дают всю переписку + последнее сообщение → ответ
УСЛОВИЕ B (изоляция):
Модели дают только последнее сообщение → ответ
УСЛОВИЕ C (сжатие):
Отдельным запросом сжимают ВСЮ переписку КРОМЕ последнего сообщения
в пересказ до 160 слов (цели, ограничения, отвергнутые варианты, что решено)
→ этот пересказ + последнее сообщение → ответ
СРАВНЕНИЕ:
Судья (отдельная модель) видит все 3 ответа под случайными метками
→ решает: отличаются ли ответы ПО СУТИ (не по стилю)
Все три ответа генерируются отдельными запросами. Сжатие — тоже отдельный запрос, причём модель, которая сжимает, не видит последнее сообщение — чтобы не подгоняла пересказ под ответ.
Пример применения
Задача: Вы консультируетесь с ChatGPT по выбору CRM для своего бизнеса. В начале разговора обсудили бюджет (до 50 тыс. руб/мес), отказались от Битрикс24 из-за сложности внедрения, обсудили нужную интеграцию с Telegram. Через 20 сообщений спрашиваете: «Ну так что выбрать?»
Промпт (для проверки, теряется ли контекст):
Вот вся моя переписка с тобой про выбор CRM [вставить историю].
Мой последний вопрос: "Ну так что выбрать?"
Ответь на него, учитывая весь контекст переписки —
бюджет, отвергнутые варианты, требования к интеграциям.
Результат: Если вы зададите тот же вопрос в новом чате без контекста — «Помоги выбрать CRM для бизнеса» — модель предложит популярный вариант (возможно, тот же Битрикс24), не зная о вашем бюджете и отказе. Ответ будет звучать уверенно и по существу — но окажется бесполезным, потому что не учитывает то, что вы уже проговорили.
Практический вывод: если начинаете новый чат для «уточнения» долгого разговора — скопируйте туда сжатую выжимку предыдущего диалога (цели, ограничения, что отвергли), а не только последний вопрос. Иначе модель отвечает с нуля, теряя половину смысла вашего запроса.
Почему это работает
Модель отвечает только на то, что видит в промпте. Она не хранит память между сообщениями сама — весь «контекст» существует лишь пока он физически находится в тексте запроса. Если убрать историю, модель честно отвечает на последнюю фразу буквально, теряя все накопленные условия.
Сильная сторона модели — она отлично распаковывает и удерживает явно прописанные условия, если они есть в тексте. Именно поэтому сжатый пересказ (160 слов: цели, ограничения, отвергнутые варианты) закрывает большую часть разрыва в качестве — модель получает нужные факты в компактном виде.
Но сжатие теряет порядок и роли: кто предложил вариант — ассистент или пользователь; что было принято, а что просто озвучено. Именно эта потеря объясняет, почему треть ответов всё равно расходится — сжатый пересказ передаёт факты, но не передаёт историю принятия решений.
Рычаги управления: - Длина сжатия (160 слов в исследовании) → увеличьте лимит для сложных многошаговых решений, уменьшите для простых уточнений - Что просить сохранить в пересказе (цели, ограничения, отвергнутые варианты, что решено/не решено) → добавьте свои категории под задачу (например, «кто это предложил — я или ты») - Формулировка «различие по существу» (другая рекомендация, другое соответствие ограничению, другое уточнение/отказ) → это критерий, который стоит держать в голове, когда решаете, нужен ли полный контекст или сжатие достаточно
Шаблон промпта
Для случаев, когда вы переносите долгий разговор в новый чат или просите модель подытожить контекст перед сложным вопросом:
Вот моя переписка с тобой на тему {тема}:
{вставить историю переписки}
Не отвечай на последний вопрос из истории. Вместо этого сделай
краткую выжимку (не больше {число} слов), которая фиксирует:
— мои цели
— ограничения и требования, которые я озвучил
— варианты, которые обсуждались, и что я решил по каждому
— что я отверг и почему
— что осталось нерешённым
Отличай мои требования от твоих предложений — не выдавай
свои предложения за мои решения. Не добавляй фактов,
которых не было в переписке.
Затем в новом чате (или продолжении):
Вот выжимка контекста нашего разговора:
{вставить выжимку}
Мой вопрос: {последний_вопрос}
Что подставлять: {тема} — суть разговора (выбор CRM, планирование поездки, разработка стратегии), {число} — лимит слов для выжимки (160 — отправная точка из исследования, для сложных тем увеличьте до 300–400), {последний_вопрос} — то самое финальное сообщение, которое вы хотите задать.
🚀 Быстрый старт — вставь в чат:
Вот шаблон для сжатия контекста долгого разговора. Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, какая у вас тема разговора и насколько подробной должна быть выжимка — потому что от этого зависит, что войдёт в сжатый пересказ и не потеряются ли важные детали именно вашего случая.
Ограничения
⚠️ Сжатие — не полная замена контекста: даже с хорошим пересказом почти треть ответов остаётся другой по существу. Для важных решений (не мелких уточнений) стоит давать модели полную историю, а не выжимку.
⚠️ Метод проверен на «нейтральных» темах: исследование исключило медицинские, юридические, финансовые и другие чувствительные темы. На них разрыв между полным контекстом и изоляцией может быть ещё больше — а ошибка дороже.
⚠️ Судил ту же модель: оценку «отличается или нет» и «насколько хорошо» ставила отдельная модель, не человек. Возможны системные слепые пятна в оценке, общие для ИИ-судей.
⚠️ Один прогон на условие: каждый ответ генерировался один раз. Обычная случайность самой генерации (одна и та же модель на разные запуски выдаёт разные ответы) не отделена от эффекта контекста — реальный разброс может быть шире.
Как исследовали
Исследователи взяли 180 диалогов — 90 из коммерческого корпуса и 90 из открытого датасета PRISM — и для каждого сделали три версии ответа на один и тот же финальный вопрос: с полной историей, без истории, и с истории, сжатой в пересказ до 160 слов. Модель, которая делала сжатие, не видела финальный вопрос — чтобы не подгоняла пересказ под ответ.
Затем отдельная модель-судья (не участвовавшая в генерации ответов) под случайными метками A/Б/В оценивала: отличаются ли ответы по существу — другая рекомендация, другое соблюдение условия, другое решение уточнять или отвечать сразу. Стиль, тон и длина не считались.
Результат проверили на надёжность: 48 случаев прогнали повторно с другим порядком меток — совпадение решений судьи составило 91,7%, что говорит о стабильности оценки, а не случайном разбросе.
Что удивило: эффект в коммерческом корпусе (68,5% различий) оказался вдвое сильнее, чем в PRISM (35,4%) — вероятно, из-за более сложной структуры реальных бизнес-диалогов. Также неожиданно: даже разговоры, которые по формальным признакам выглядели «самодостаточными» (последнее сообщение не содержало явных отсылок к прошлому), в 31% случаев всё равно менялись при добавлении контекста — то есть формальные признаки «зависимости от контекста» ненадёжны.
Ресурсы
Benjamin Tannenbaum, Aiso (Tel Aviv, Israel). Beyond the Final Prompt: Measuring the Effect of Within-Conversation Context on AI Answers. Ссылки на связанные работы автора: Tannenbaum 2026a, 2026b (предыдущее исследование о том, что запросы часто "растворены" по репликам разговора). Датасет PRISM — Kirk et al., 2024.
