Компакт памʼяті агента: коли чистити контекст і нічого не втратити
Змахни зі столу мотлох вчасно - і нічого потрібного не полетить разом із ним
Компакт памʼяті агента простими словами: що стискається й губиться, що виживає, і в який момент чистити контекст безпечно, а в який - постріл собі в ногу.
Що таке компакт памʼяті простими словами
Уяви свій робочий стіл. На ньому папери: задача, чернетки, нотатки, роздруківки. Поки все потрібне під рукою - голова варить швидко. Але стіл не гумовий. Завалив так, що чашку поставити нікуди - і ось ти вже порпаєшся в стосах і гальмуєш.
В агента точнісінько та сама біда. Його «стіл» - це контекст Контекст (контекстне вікно) - увесь текст, який модель бачить просто зараз: твої повідомлення, прочитані файли, результати команд. Що не влізло - для моделі не існує. . Переповнився? Агент робить компакт Компакт (compact) - стискання історії розмови. Агент згортає старе листування в стислий переказ, щоб звільнити місце. Деталі при цьому губляться. : згрібає старі папери в одну теку «різне» і підписує її парою рядків - «робили лендинг, обговорювали шрифт». Місце звільнилося. Але знадобився конкретний папірець із тієї теки? Його там більше немає. Лишився тільки підпис на обкладинці.
Навіщо вайбкодеру розуміти чистку контексту
Ти вайбкодер. Код руками не пишеш - але кермуєш довгою сесією з агентом. І рано чи пізно ловиш один із двох сюжетів:
- агент раптом забув, про що ви говорили годину тому, і перепитує очевидне;
- агент став тупішим і повільнішим, почав повторюватися й плутати деталі.
Обидва - про памʼять і компакт. Розберешся в механіці - і одразу три виграші:
- сам обираєш момент прибирання, а не чекаєш, поки агент влаштує його у найгіршу секунду;
- не втрачаєш результат роботи через випадкову чистку;
- тримаєш агента швидким і зібраним, а не таким, що захлинається в полотнах логів.
Різниця між «агент раптом усе забув» і «агент стабільно тримає задачу» - це найчастіше одна навичка: вчасно почистити стіл і заздалегідь зберегти важливе у файл.
Що виживає при компакті, а що губиться
Найважливіше в уроці. Компакт стирає не все підряд - у нього є чіткий поділ. Запамʼятай дві колонки, і страх перед чисткою випарується.
- Файли на диску - код, нотатки, усе, що записано.
- Правила проєкту та інструкції - наприклад, файл із налаштуваннями агента.
- Список задач (todo), який агент веде в процесі роботи.
- Історія git - коміти й гілки. Вони взагалі не в памʼяті агента.
- Файли памʼяті, якщо ти їх завів - нотатки, які агент дописує на ходу.
- Шматки файлів, які агент читав, але нікуди не записував.
- Міркування та аналіз дорогою до рішення.
- Твої усні побажання з чату: «шрифт мʼякший», «кнопку лівіше».
- Проміжний стан: які змінні, які шляхи обговорювали.
- Сама історія розмови - хто, що й коли казав.
Як зрозуміти, що пора робити компакт
Агент сам подає сигнали. Лови три штуки.
Сесія стала надто довгою
Спілкуєтеся вже довго, у чаті гора прочитаних файлів і логів? Стіл напевно близький до переповнення. Саме час роззирнутися.
Задача змінилася
Закінчив один шматок і берешся за зовсім інший? Старий контекст тепер тільки заважає - лежить мертвим вантажем і збиває агента з пантелику.
Агент почав «пливти»
Відповіді стали повільнішими, агент повторюється, плутає деталі, перепитує те, що щойно знав. Класика: стіл забитий, кухарю нікуди покласти ніж.
Коли чистити памʼять агенту, а коли не можна
Ось шпаргалка з переходів між етапами роботи. Зелене - чисти сміливо. Червоне - руки геть.
- Після дослідження, перед роботою: нагріб купу файлів, а потрібні лише висновок і план.
- Закінчив фічу - почистив і почав нову з чистого столу.
- Після глухого кута: прибери мертві міркування перед новим підходом.
- Перед зміною теми: переходиш до іншої частини проєкту - старий контекст зайвий.
- Посеред налагодження складного бага - зітреш саме ті деталі, заради яких старався.
- У середині великої правки - агент забуде, які файли та змінні в роботі.
- Просто перед важливим рішенням - агент забуде, чому взагалі його ухвалює.
- Надто часто «про всяк випадок» - кожна чистка = мінус контекст.
Приклад: як авто-компакт зʼїв пів години роботи
Ти три години робиш з агентом інтернет-магазин. Спершу довго розбиралися, які товари показувати, читали приклади, сперечалися про структуру. Потім зверстали вітрину. Потім пів години ловили баг із кошиком - агент читав десяток файлів, пробував, помилявся, пробував знову.
І ось баг майже спіймано. Агент бадьоро рапортує: «здається, проблема в підрахунку суми, зараз перевірю». Цієї самої миті стіл переповнюється й спрацьовує авто-компакт. Агент повертається - і невинно питає: «а з чим у нас була проблема?» Усі напрацювання по багу поїхали в теку «різне». Пів години - котові під хвіст.
Де схибили? Чистка сталася у найгірший момент - у середині налагодження. І сталася сама, бо ти раніше не прибрався на безпечній межі.
А ось як зробив би тямущий вайбкодер:
Ми закінчили великий блок дослідження товарів і зверстали вітрину. Перш ніж братися за кошик, зроби так:
- Запиши у файл DECISIONS.md ключові рішення: які товари показуємо, структуру вітрини, домовленості щодо дизайну. Щоб це пережило чистку.
- Туди ж запиши, що ми зараз починаємо лагодити кошик і в чому суть проблеми.
- Тепер зроби компакт - звільни памʼять, попереду окрема задача про кошик.
- Далі працюй над кошиком, НЕ перериваючись на чистку, поки баг не спіймано.
Ритуал із трьох кроків перед чисткою
Щоб компакт ніколи не кусався, перед кожною ручною чисткою пробіжи три кроки. Це буквально суть скіла strategic-compact.
- Я на межі? Справу доробив чи я в середині? У середині - стоп, не чищу.
- Важливе записано? Рішення, домовленості, поточна задача лежать у файлі? Якщо ні - спершу попроси записати.
- Чи дам я коротку підказку? Під час ручного компакту додай пару слів: «далі робимо кошик». Агент стартує з чистого столу, але вже знаючи, куди йти.
Часті помилки при компакті контексту
- Чистити посеред налагодження. Найболючіша: стираєш саме ті деталі, заради яких старався. Дотисни баг, потім чисти.
- Сподіватися, що чат сам усе запамʼятає. Усні побажання компакт не переживуть. Важливе - у файл, і тільки потім прибирання.
- Чекати на авто-компакт. Він спрацює у випадковий, зазвичай найнезручніший момент. Чисти сам, першим, на зручній межі.
- Чистити надто часто «про всяк випадок». Кожна чистка губить контекст. Без потреби стіл не чіпай.
- Чистити, не давши підказки. Після голого компакту агент може не зрозуміти, що робити далі. Додай коротку фразу про наступну задачу.
- Плутати чистку з поломкою. Агент «забув»? Це не глюк - це спрацював компакт. Лікується повтором ключового й записом у файл.
TL;DR - если коротко
- Компакт - агент згортає старе листування в стислий переказ і звільняє місце на «столі».
- Губляться деталі: шматки файлів, міркування, твої усні побажання. Виживають файли на диску, todo-список і правила проєкту.
- Чисти на межах задач: фіча готова, дослідження закінчено, глухий кут пройдено - ось безпечні вікна.
- Не чисти посеред налагодження і в розпал великої правки - зітреш саме те, що шукав.
- Збережи важливе у файл до компакту - і чистка перестане кусатися.
- Авто-компакт бʼє у випадкову секунду. Ручний - коли зручно тобі. Чисти сам і першим.