3 Годувальник доками 4 Гід-напрямний ~9 хв

Компакт памʼяті агента: коли чистити контекст і нічого не втратити

Змахни зі столу мотлох вчасно - і нічого потрібного не полетить разом із ним

Компакт памʼяті агента простими словами: що стискається й губиться, що виживає, і в який момент чистити контекст безпечно, а в який - постріл собі в ногу.

Скіли ECC у цьому уроці: strategic-compact

Що таке компакт памʼяті простими словами

Уяви свій робочий стіл. На ньому папери: задача, чернетки, нотатки, роздруківки. Поки все потрібне під рукою - голова варить швидко. Але стіл не гумовий. Завалив так, що чашку поставити нікуди - і ось ти вже порпаєшся в стосах і гальмуєш.

В агента точнісінько та сама біда. Його «стіл» - це контекст . Переповнився? Агент робить компакт : згрібає старі папери в одну теку «різне» і підписує її парою рядків - «робили лендинг, обговорювали шрифт». Місце звільнилося. Але знадобився конкретний папірець із тієї теки? Його там більше немає. Лишився тільки підпис на обкладинці.

Робочий стіл: ліворуч завалений паперами, праворуч усе згребли в одну теку з підписом різне
Компакт звільняє стіл, але деталі їдуть у теку «різне».

Навіщо вайбкодеру розуміти чистку контексту

Ти вайбкодер. Код руками не пишеш - але кермуєш довгою сесією з агентом. І рано чи пізно ловиш один із двох сюжетів:

  • агент раптом забув, про що ви говорили годину тому, і перепитує очевидне;
  • агент став тупішим і повільнішим, почав повторюватися й плутати деталі.

Обидва - про памʼять і компакт. Розберешся в механіці - і одразу три виграші:

  • сам обираєш момент прибирання, а не чекаєш, поки агент влаштує його у найгіршу секунду;
  • не втрачаєш результат роботи через випадкову чистку;
  • тримаєш агента швидким і зібраним, а не таким, що захлинається в полотнах логів.

Різниця між «агент раптом усе забув» і «агент стабільно тримає задачу» - це найчастіше одна навичка: вчасно почистити стіл і заздалегідь зберегти важливе у файл.

Що виживає при компакті, а що губиться

Найважливіше в уроці. Компакт стирає не все підряд - у нього є чіткий поділ. Запамʼятай дві колонки, і страх перед чисткою випарується.

Виживає (живе поза «столом»)
  • Файли на диску - код, нотатки, усе, що записано.
  • Правила проєкту та інструкції - наприклад, файл із налаштуваннями агента.
  • Список задач (todo), який агент веде в процесі роботи.
  • Історія git - коміти й гілки. Вони взагалі не в памʼяті агента.
  • Файли памʼяті, якщо ти їх завів - нотатки, які агент дописує на ходу.
Губиться (жило тільки на «столі»)
  • Шматки файлів, які агент читав, але нікуди не записував.
  • Міркування та аналіз дорогою до рішення.
  • Твої усні побажання з чату: «шрифт мʼякший», «кнопку лівіше».
  • Проміжний стан: які змінні, які шляхи обговорювали.
  • Сама історія розмови - хто, що й коли казав.

Як зрозуміти, що пора робити компакт

Агент сам подає сигнали. Лови три штуки.

Сесія стала надто довгою

Спілкуєтеся вже довго, у чаті гора прочитаних файлів і логів? Стіл напевно близький до переповнення. Саме час роззирнутися.

Задача змінилася

Закінчив один шматок і берешся за зовсім інший? Старий контекст тепер тільки заважає - лежить мертвим вантажем і збиває агента з пантелику.

Агент почав «пливти»

Відповіді стали повільнішими, агент повторюється, плутає деталі, перепитує те, що щойно знав. Класика: стіл забитий, кухарю нікуди покласти ніж.

Коли чистити памʼять агенту, а коли не можна

Ось шпаргалка з переходів між етапами роботи. Зелене - чисти сміливо. Червоне - руки геть.

Чисти - саме час
  • Після дослідження, перед роботою: нагріб купу файлів, а потрібні лише висновок і план.
  • Закінчив фічу - почистив і почав нову з чистого столу.
  • Після глухого кута: прибери мертві міркування перед новим підходом.
  • Перед зміною теми: переходиш до іншої частини проєкту - старий контекст зайвий.
Не чисти - втратиш потрібне
  • Посеред налагодження складного бага - зітреш саме ті деталі, заради яких старався.
  • У середині великої правки - агент забуде, які файли та змінні в роботі.
  • Просто перед важливим рішенням - агент забуде, чому взагалі його ухвалює.
  • Надто часто «про всяк випадок» - кожна чистка = мінус контекст.

Приклад: як авто-компакт зʼїв пів години роботи

Ти три години робиш з агентом інтернет-магазин. Спершу довго розбиралися, які товари показувати, читали приклади, сперечалися про структуру. Потім зверстали вітрину. Потім пів години ловили баг із кошиком - агент читав десяток файлів, пробував, помилявся, пробував знову.

І ось баг майже спіймано. Агент бадьоро рапортує: «здається, проблема в підрахунку суми, зараз перевірю». Цієї самої миті стіл переповнюється й спрацьовує авто-компакт. Агент повертається - і невинно питає: «а з чим у нас була проблема?» Усі напрацювання по багу поїхали в теку «різне». Пів години - котові під хвіст.

Де схибили? Чистка сталася у найгірший момент - у середині налагодження. І сталася сама, бо ти раніше не прибрався на безпечній межі.

А ось як зробив би тямущий вайбкодер:

Промпт - скопіюй і спробуй

Ми закінчили великий блок дослідження товарів і зверстали вітрину. Перш ніж братися за кошик, зроби так:

  1. Запиши у файл DECISIONS.md ключові рішення: які товари показуємо, структуру вітрини, домовленості щодо дизайну. Щоб це пережило чистку.
  2. Туди ж запиши, що ми зараз починаємо лагодити кошик і в чому суть проблеми.
  3. Тепер зроби компакт - звільни памʼять, попереду окрема задача про кошик.
  4. Далі працюй над кошиком, НЕ перериваючись на чистку, поки баг не спіймано.
Мем: агент бадьоро чистить памʼять саме в той момент, коли майже спіймав баг
Авто-компакт завжди обирає найдраматичнішу секунду.

Ритуал із трьох кроків перед чисткою

Щоб компакт ніколи не кусався, перед кожною ручною чисткою пробіжи три кроки. Це буквально суть скіла strategic-compact.

  1. Я на межі? Справу доробив чи я в середині? У середині - стоп, не чищу.
  2. Важливе записано? Рішення, домовленості, поточна задача лежать у файлі? Якщо ні - спершу попроси записати.
  3. Чи дам я коротку підказку? Під час ручного компакту додай пару слів: «далі робимо кошик». Агент стартує з чистого столу, але вже знаючи, куди йти.
Чек-лист із трьох галочок перед кнопкою очищення памʼяті
Три галочки - і чистка безпечна.

Часті помилки при компакті контексту

  • Чистити посеред налагодження. Найболючіша: стираєш саме ті деталі, заради яких старався. Дотисни баг, потім чисти.
  • Сподіватися, що чат сам усе запамʼятає. Усні побажання компакт не переживуть. Важливе - у файл, і тільки потім прибирання.
  • Чекати на авто-компакт. Він спрацює у випадковий, зазвичай найнезручніший момент. Чисти сам, першим, на зручній межі.
  • Чистити надто часто «про всяк випадок». Кожна чистка губить контекст. Без потреби стіл не чіпай.
  • Чистити, не давши підказки. Після голого компакту агент може не зрозуміти, що робити далі. Додай коротку фразу про наступну задачу.
  • Плутати чистку з поломкою. Агент «забув»? Це не глюк - це спрацював компакт. Лікується повтором ключового й записом у файл.

TL;DR - если коротко

  • Компакт - агент згортає старе листування в стислий переказ і звільняє місце на «столі».
  • Губляться деталі: шматки файлів, міркування, твої усні побажання. Виживають файли на диску, todo-список і правила проєкту.
  • Чисти на межах задач: фіча готова, дослідження закінчено, глухий кут пройдено - ось безпечні вікна.
  • Не чисти посеред налагодження і в розпал великої правки - зітреш саме те, що шукав.
  • Збережи важливе у файл до компакту - і чистка перестане кусатися.
  • Авто-компакт бʼє у випадкову секунду. Ручний - коли зручно тобі. Чисти сам і першим.

Пошук по вікі

Натисніть Esc для закриття

Введіть запит для миттєвого пошуку по всіх сторінках курсів та уроків.