Управляйте контекстом как ресурсом
Длинный разговор не бесплатен. По мере роста треда ранние инструкции тонут, модель сильнее опирается на недавние сообщения, а детали, которые вы озвучили двадцать ходов назад, тихо перестают что-либо значить. Представьте окно контекста как коробку фиксированного размера: по мере роста разговора она заполняется, а ваши самые ранние инструкции вытесняются ко дну, где модель уделяет им меньше всего внимания:
ранний ход длинный диалог
┌──────────────┐ ┌──────────────┐
│ СПЕК (ясно) │ │ болтовня │ ◀ свежее (учтено)
│ │ │ болтовня │
│ │ │ попытка фикс │
│ │ │ старый код v3│
│ │ ───▶ │ старый код v2│
│ │ ├──────────────┤
│ │ │ СПЕК (внизу) │ ◀ игнор
└──────────────┘ └──────────────┘
│ XXXXXX │ ◀ вытеснено
└──────────────┘
Относитесь к окну контекста как к рабочей поверхности, за чистоту которой отвечаете вы, а не как к бесконечной памяти.
Помогают несколько привычек:
- Переизлагайте спецификацию при смене курса. Не полагайтесь на то, что требование из сообщения десятиходовой давности всё ещё в силе. Резюмируйте текущую цель одним коротким абзацем и дайте AI работать от него.
- Начинайте заново для новой задачи. Когда вы переключаетесь с кода авторизации на баг в CSS (каскадные таблицы стилей — язык, управляющий внешним видом страницы), открывайте новый разговор. Таскать за собой несвязанный контекст делает модель хуже, а не лучше.
- Вставляйте текущий код, а не историю. Если функция менялась пять раз, AI не нужны пять старых версий — ему нужна та, что существует сейчас. Дайте ему текущее состояние и следующее изменение.
- Держите краткий источник истины вне чата. Для задачи подлиннее несколько строк в файле («стек, ключевые решения, что сделано, что дальше») позволяют пересеять свежий разговор за секунды вместо того, чтобы восстанавливать его по прокрутке.
Цель та же, что проходит через всю эту главу: в каждый момент AI должен работать от точной, компактной картины задачи — а не от раздутого транскрипта, сквозь который ему приходится продираться наугад.