Забывание в длинном чате · механика и практика

Нейросеть забывает контекст: 2 причины и что делать

Ты сказал боту правило в начале разговора, он час его держал, а потом как будто забыл. Это не глюк и не капризы конкретной модели: внутри длинного чата с историей происходит одна из 2 вещей - либо старые сообщения физически сжимаются в короткий пересказ, либо нужная инструкция оказывается зажата где-то в середине огромного текста, а модели надёжнее держат начало и конец

К концу статьи ты будешь знать: что именно происходит с текстом внутри длинного разговора, чем сжатие истории отличается от простой «забывчивости», какие правила переживают это сжатие, а какие теряются первыми, и что сделать уже сегодня, чтобы твои инструкции держались дольше одного вечера. Я лично прогнал эксперимент 05 сентября 2026 года и покажу его честный результат - без округления в пользу красивой истории. Если тебе нужно, что именно писать в файле правил - у меня есть отдельный разбор 4 правил Karpathy для CLAUDE.md, здесь же речь про другое: почему любое правило, даже хорошо написанное, может исчезнуть из памяти бота на середине разговора

2 причины забывания: сжатие истории стирает сказанное вслух, а позиция инструкции в середине текста снижает точность больше чем на 30% даже без сжатия. Открой новый чат, как только заметишь потерю правила, и держи ключевые инструкции не в реплике, а в отдельном файле памяти (CLAUDE.md в Claude Code, кастомные инструкции в других системах): такой файл перечитывается заново после каждого сжатия, а сказанное просто вслух - нет. Дальше в статье - что именно происходит внутри чата и мой собственный прогон на живом примере

Что на самом деле происходит внутри длинного чата

У любой нейросети есть окно - место, куда помещается весь текст разговора разом: твои сообщения, ответы бота, файлы, которые он читал. У модели, на которой работает Claude Code, это окно держит 200 000 токенов - это примерно 150 000 слов, то есть целая толстая книга текста. Пока разговор в это окно помещается, всё идёт как обычно: и первое твоё сообщение, и сотое лежат внутри одного окна одновременно

Официальная страница Claude Code Docs «Explore the context window», лимит окна 200K токенов
Официальная документация Claude Code: Context window, живой лимит окна 200K токенов (illustrative), снята 05 сентября 2026

Проблема начинается, когда разговор перестаёт помещаться. У бота есть ровно два выхода из этой ситуации, и они принципиально разные

Первый - сжатие истории (компакция). Старые сообщения не выбрасываются молча, а пересказываются одним коротким текстом, который заменяет собой десятки исходных реплик. Это как если бы секретарь час записывал совещание дословно, а потом свернул всё в три абзаца пересказа - смысл в целом сохранён, но точные формулировки потеряны, а какие-то детали пересказчик посчитал неважными и выкинул

Второй - инструкция «потеряна в середине». Даже если сжатия ещё не было, а окно просто очень длинное, модели надёжнее держат начало и конец разговора, чем его середину. Правило, сказанное на пятой минуте часового разговора, физически лежит в контексте, но модели труднее до него дотянуться, чем до того, что было сказано только что

Это две разные причины одного и того же симптома «бот тупеет к середине разговора» - и лечатся они по-разному

Почему сжатие стирает именно правила, а не факты

Официальная документация Claude Code прямо объясняет, что происходит при сжатии истории, и там есть таблица «что выживает после компакции». Смысл в одной фразе: выживает то, что физически лежит ФАЙЛОМ на диске и перечитывается заново, а не то, что было просто сказано словами в разговоре

Таблица документации Claude Code «What survives compaction» со списком механизмов памяти
Официальная документация Claude Code: Context window, раздел «What survives compaction», снята 05 сентября 2026

Вот что перечитывается заново после сжатия, а что уходит в общий пересказ вместе со всей остальной историей (дословный перевод таблицы документации):

Что было в разговореЧто происходит после сжатия
Файл правил проекта (CLAUDE.md)Перечитывается заново с диска
Заметки, которые бот сохранил сам о тебеПеречитываются заново с диска
План, составленный заранееПеречитывается заново с диска
Файлы, которые бот открывал по ходу работыПеречитываются заново, но только 5 последних
Правило, просто сказанное тобой в репликеПересказывается вместе со всей остальной историей

Таблица прокручивается вбок →

Смысл в одной строке: файл - это адрес, по которому бот приходит заново и читает исходный текст. Реплика в чате - это просто часть истории, и при сжатии она превращается в чей-то пересказ вместе со всем остальным. Пересказ может сохранить общую идею («пользователь просил быть кратким»), но потерять точную формулировку («не больше двух предложений на ответ») - а для правила именно точная формулировка и была всем смыслом

Официальная справка по самому файлу правил добавляет важную оговорку: даже файл - это не железная команда. «Claude reads it and tries to follow it, but there's no guarantee of strict compliance» - бот читает файл и старается следовать написанному, но гарантии стопроцентного соблюдения нет, особенно если формулировка расплывчатая или правила в разных местах противоречат друг другу. Файл сильно надёжнее устной реплики, но не абсолютная гарантия

Сколько теряется на самом деле - и почему круглая цифра «83%» неточная

Ходит популярная формулировка «83% инструкций теряются при сжатии контекста» - она недалека от правды, но подана нечестно: без ссылки на источник и в перевёрнутом виде. Я нашёл первоисточник - научную работу под названием «Lost in Compaction: Evaluating Side-Constraint Loss under Context Compaction» (Zhiqi Wang, Yichi Zhang, Dongwon Lee, Yuchen Yang, опубликована в конце июля 2026 года). Дословная цифра оттуда другая и сформулирована как раз наоборот - не через потери, а через то, что осталось:

«Current compactors retain only 17% of injected SCs on average» - действующие механизмы сжатия сохраняют в среднем только 17% явно заданных пользователем ограничений (правил вида «не делай X, пока я не разрешу»). Если считать в обратную сторону, теряется около 83% - число почти совпадает с ходящей по сети формулировкой, но у неё нет ни автора, ни точной методики, а у 17% - есть

Страница arXiv с научной статьёй Lost in Compaction, видна цифра 17% удержания правил
Научная работа Lost in Compaction: Evaluating Side-Constraint Loss under Context Compaction, Wang, Zhang, Lee, Yang, подана 31 июля 2026, снята 05 сентября 2026

Авторы того же исследования предложили дополнительный модуль, который работает рядом с механизмом сжатия и поднимает удержание правил выше 90% - то есть проблема решаема, просто обычный сжиматель истории её пока не решает сам

Собственный прогон: я специально попробовал сломать своё же правило

Чтобы не пересказывать чужие цифры без проверки, я прогнал свой эксперимент 05 сентября 2026 года через Claude Code (версия 2.1.251, headless-режим, без файла правил - только устная инструкция в первом сообщении). Я задал правило текстом: «каждый твой ответ должен заканчиваться строкой ПРАВИЛО-ОК» - и стал наращивать разговор шумовыми репликами, чтобы посмотреть, на каком объёме правило перестанет соблюдаться

Честный результат, без натяжки в сторону красивой истории: на 46 000 токенов истории правило держалось. На 119 000 - держалось. На 173 000, почти у самой границы 200-тысячного окна - держалось тоже. Правило перестало срабатывать не из-за забывания, а потому что дальнейший прогон уткнулся в защитный фильтр на повторяющемся синтетическом тексте раньше, чем в реальное сжатие истории

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

Мой прогон Claude Code 2.1.251, окно-чат: реплики и ответы, правило ПРАВИЛО-ОК держится
Живой прогон 05 сентября 2026, версия Claude Code 2.1.251, headless -p --resume: правило из первого сообщения держится вплоть до 173262 токенов

Мой прогон по шагам, реальные числа

  • 46 000 токенов истории правило «ПРАВИЛО-ОК» в конце каждого ответа - держится
  • 119 000 токенов истории правило держится, разговор уже больше половины окна
  • 173 000 токенов истории правило держится на самом подходе к границе окна
  • 215 000 токенов (за пределами окна) сессия остановилась защитным фильтром раньше, чем реальным переполнением - до сжатия так и не дошло

Честно отмечу и границу метода: командная строка Claude Code умеет разово запускать сжатие истории по команде, но в этом одноразовом автоматическом режиме такая команда не срабатывает как настоящее сжатие - она рассчитана на живой интерактивный разговор. Поэтому у меня не получилось за один присест показать сам МОМЕНТ сжатия вживую, только подтвердить официальным замером и документацией, что происходит в этот момент по устройству системы

Второй эффект без всякого сжатия: инструкция «потерялась в середине»

Даже если бот ни разу не сжимал историю, у длинного текста есть своя ловушка. Независимые исследования (в том числе научная работа про эффект «Lost in the Middle») показывают: модели держат начало и конец разговора надёжнее, чем середину, и точность падает больше чем на 30%, когда важная инструкция оказывается зажата где-то посередине длинного текста

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

Позиция инструкции в разговореНасколько надёжно бот её держит
Начало разговора (первые сообщения)Надёжно, особенно пока не случилось сжатие истории
Середина длинного разговораНенадёжно - падение точности больше 30% по независимым замерам
Конец разговора (последние сообщения)Надёжно - самая свежая часть истории

Таблица прокручивается вбок →

Шаг 1. Замечаешь первые признаки забывания

Бот вдруг перестаёт делать то, что ты явно просил в начале, хотя ты не менял правило и не отменял его. Часто это выглядит как: раньше отвечал коротко, теперь снова расписывается на полстраницы, или раньше держал определённый формат, а теперь сбился

Что увидишь: разница в поведении на пустом месте, без твоей команды её менять. Это тебе даёт сигнал, что дело не в капризе модели, а в устройстве памяти разговора

Шаг 2. Проверяешь, где живёт правило

Задай себе один вопрос: это правило я написал в отдельном файле проекта, или просто сказал вслух в одной из реплик? В Claude Code файл называется CLAUDE.md и кладётся в корень проекта - его можно открыть обычным текстовым редактором и посмотреть, что в нём записано

Что увидишь: если правило было только в реплике - его больше нигде не найти, кроме истории разговора. Это тебе даёт понимание, почему конкретно это правило пропало, а не абстрактное «нейросеть подводит»

Шаг 3. Переносишь ключевые правила в файл

Открой файл памяти проекта (в Claude Code это CLAUDE.md, в других системах - раздел кастомных инструкций или системный промпт) и коротко впиши туда правило, которое обязано держаться весь разговор. Официальная рекомендация - держать такой файл короче 200 строк: чем он компактнее, тем надёжнее бот его соблюдает

Что увидишь: после следующего сообщения бот снова начинает вести себя по правилу - файл был перечитан заново с диска, а не восстановлен по памяти из середины пересказанной истории. Это тебе даёт правило, которое переживает и сжатие истории, и переключение между темами внутри одного разговора

Шаг 4. Начинаешь новый чат под новую задачу

Если правило снова начало «плыть» посреди огромного разговора, не нужно уговаривать бота вспомнить - проще открыть новый чат. Новый чат начинается с чистого листа и заново читает файл правил проекта, вместо того чтобы тащить весь накопленный пересказ прошлого разговора

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

Как это устроено не только в Claude Code

Механика одна и та же у любого чат-бота с историей разговора, не только у Claude Code - просто название файла и команды у каждого свои. Разница только в деталях интерфейса

ИнструментФайл или раздел правилКоманда сжатия истории
Claude CodeCLAUDE.md в корне проекта/compact
ChatGPTкастомные инструкции в настройкахновый чат (сжатия нет, есть отдельная долгосрочная память)
Geminiсистемные инструкции проектановый чат в рамках проекта
Другой ИИ-агентсистемный промпт или файл конфигурациизависит от инструмента, принцип тот же

Таблица прокручивается вбок →

Смысл таблицы один: где бы ты ни работал, вопрос всегда один и тот же - лежит правило файлом, который система перечитывает заново, или оно живёт только в истории разговора, которую рано или поздно придётся сжать или начать заново

Что ещё стоит знать про формат разговора

Файл правил - это не единственный рычаг. Полный разбор того, как писать сам промпт по новым официальным правилам Anthropic и как ведут себя команды очистки и сжатия истории - в отдельном гайде Claude отвечает хуже, чем может: новые правила контекста, там детальнее про сами команды /clear и /compact. Если тебя интересует не память ВНУТРИ одного разговора, а долгосрочная память между разными чатами (например, в обычном приложении Claude, не в Claude Code) - это устроено иначе и подробно разобрано в гайде Память Claude в 2026: как посмотреть и стереть за 4 шага. А что конкретно писать внутри самого файла правил - 4 рабочих принципа с живым примером разобраны в гайде CLAUDE.md Karpathy: 210K звёзд и 4 правила простыми словами

Памятка: 4 шага, чтобы правило не терялось

Собери итог всей статьи в одну шпаргалку - на случай, если правило снова начнёт «плыть» посреди работы, а разбираться в механике заново будет некогда

Что ещё почитать про память и контекст нейросетей

Вся тема памяти и контекста нейросетей на сайте собрана в разделе Нейросети и ИИ-инструменты - там разборы конкретных инструментов, а не только механика вроде этой статьи

Источники

Памятка: почему бот забывает и что сделать за 4 шага

Короткая шпаргалка на случай, когда правило снова начнёт «плыть» посреди разговора

Сохрани себе

  • Забывание - это не капризы модели, а два разных явления: сжатие истории (компакция) и позиционный эффект «потерян в середине»
  • При сжатии выживает то, что лежит ФАЙЛОМ на диске и перечитывается заново - файл правил, заметки бота о тебе, заранее составленный план
  • Правило, сказанное только вслух в реплике, при сжатии уходит в общий пересказ вместе со всей остальной историей и может потерять точную формулировку
  • Механизмы сжатия в среднем сохраняют около 17% явных пользовательских ограничений по независимому научному замеру - это и есть честная цифра вместо круглых «83%» без источника
  • Даже без сжатия точность падает больше чем на 30%, если инструкция оказалась зажата в середине длинного разговора
  • Ключевые правила переносятся в отдельный файл проекта короче 200 строк, а не оставляются одной репликой в чате
  • Правило снова «поплыло» - проще открыть новый чат, чем уговаривать старый вспомнить

Порог входа

Файл правил уже стоит, дальше - три дня бесплатно

Три дня, бесплатно, начать можно сегодня. Ставить и докупать ничего не надо: хватит того самого Claude Code, в котором ты только что завёл файл правил

Забрать путёвку в ИИ-Лагерь →

Заявка в закрытый канал, одобряю сразу. Бот сам напишет первым и покажет, как забрать три дня Лагеря. Бесплатно

Частые вопросы

Почему нейросеть вдруг перестаёт соблюдать правило, которое я дал в начале разговора?

Потому что либо история разговора была сжата в короткий пересказ (и устное правило туда просто не попало дословно), либо инструкция физически оказалась в середине огромного текста, а модели надёжнее держат начало и конец разговора, чем середину

Правда ли, что теряется 83% инструкций при сжатии контекста?

Дословная цифра из первоисточника (научная работа «Lost in Compaction», июль 2026) другая и сформулирована наоборот: механизмы сжатия сохраняют в среднем 17% явных пользовательских ограничений. Если считать в обратную сторону, теряется около 83% - но честная подача называет источник и точную формулировку, а не круглое число без ссылки

Файл правил (CLAUDE.md) гарантированно защищает от забывания?

Нет полной гарантии, но защита намного выше устной реплики. Файл перечитывается заново с диска после каждого сжатия истории, а сказанное просто вслух - нет. При этом даже файл - это подсказка, которой бот старается следовать, а не жёсткая команда, особенно если формулировка расплывчатая

Помогает ли просто начать новый чат?

Да, и это самый быстрый способ. Новый чат заново читает файл правил проекта с чистого листа, вместо того чтобы тащить накопленный пересказ старого разговора, где нужное правило могло быть похоронено или сжато

Как понять, что мой разговор уже близок к пределу окна?

В официальном интерфейсе Claude Code размер окна и текущее заполнение видны прямо в интерактивной странице документации - там же указан общий ориентир в 200 000 токенов на разговор. На практике это ощущается как момент, когда бот начинает путать детали, которые раньше держал точно

Достаточно ли просто написать правило один раз в файл, и больше не думать об этом?

Для правил, которые должны действовать всегда, - да, файл решает основную часть проблемы. Но если инструкция важна именно СЕЙЧАС, посреди активной работы (не постоянное правило проекта, а разовое требование к текущей задаче), её стоит время от времени повторять внутри разговора - это защита от эффекта «потерян в середине», который не связан со сжатием истории напрямую