Памʼять ШІ-агента: як Claude запамʼятовує тебе між сесіями
То він «вже знає твої звички», то перепитує те саме по колу - розбираємося чому
Як працює памʼять ШІ-агента: що таке інстинкти, впевненість і область памʼяті, чому довга памʼять агента живе у файлах, а не в моделі, і як її налаштувати.
Що таке памʼять агента простими словами
Уяви нового бариста в улюбленій кавʼярні. Першого дня кажеш: «капучино на вівсяному, без цукру». Він киває, робить - ідеально. Назавтра приходиш, а він знову: «вам як?». І післязавтра. І за тиждень. Кожен. Раз. Заново.
Бісить, так? Ось так само поводиться «гола» модель. Усередині однієї розмови вона геніальна, памʼятає кожну дрібницю. Але закрив чат - і ти для неї знову незнайомець. Не тому що дурна. Просто їй буквально ніде тебе зберігати між зустрічами.
А тепер уяви, що бариста завів блокнотик і записав: «постійний гість - капучино, вівсяне, без цукру». Зранку відкрив, прочитав - і зустрічає як рідного. Цей блокнотик і є памʼять агента. І весь фокус у тому, що і як туди писати.
Навіщо вайбкодеру розбиратися в памʼяті ШІ
Ти вайбкодер. Ганяєш агента по своєму проєкту день у день. Зрозумієш, як він запамʼятовує - і одразу кілька речей стануть на місце:
- перестаєш пояснювати те саме вдесяте по колу - агент сам накопичує твої звички;
- знаєш, куди покласти важливе правило, щоб воно пережило перезапуск;
- більше не ловиш сюрприз «у новому чаті він усе забув і зробив по-своєму»;
- розумієш, чому то агент упевнено ліпить «як ти любиш», то обережничає.
Уся різниця між «щоразу з нуля» і «агент уже знає мій проєкт» зводиться до трьох речей: де живе памʼять, у якому вигляді й наскільки агент їй довіряє. Зараз розкладемо по поличках.
Як влаштована памʼять Claude: інстинкти, впевненість і область
У розумних системах памʼяті (наприклад, у скілі continuous-learning Continuous Learning - система безперервного навчання: вона спостерігає за твоїми сесіями й сама витягує з них маленькі правила-звички. Що частіше патерн повторюється, то сильніше агент у ньому впевнений. ) агент не звалює в блокнот усе підряд. Він пише акуратні маленькі шматочки. Тримається все на трьох китах.
Інстинкт - це одна звичка, а не полотно тексту
Памʼять не пишеться абзацами на кшталт «а ось що в нас було вчора». Вона пишеться інстинктами Інстинкт - крихітне вивчене правило формату «коли X - роби Y». Атомарне: один тригер, одна дія. Наприклад: «коли пишу нову функцію - використовуй функціональний стиль». . Інстинкт - атомарна цеглинка: один тригер, одна дія. І все.
Наприклад: «коли пишу нову функцію - роби у функціональному стилі». Або: «коли зберігаю файл - спершу прочитай його». Дрібно, конкретно, без води. Такі цеглинки легко додати, легко перевірити і не шкода викинути, коли застаріли.
Впевненість - наскільки агент довіряє звичці
У кожного інстинкту є число - впевненість Впевненість (confidence) - число від 0.3 до 0.9, що показує, наскільки агент довіряє звичці. 0.3 - лише запропонує, 0.9 - зробить як само собою зрозуміле. від 0.3 до 0.9. Це і є різниця між «начебто ви без цукру?» і «капучино вівсяне, як завжди, уже наливаю».
| Впевненість | Що означає | Як поводиться агент |
|---|---|---|
| 0.3 | Боязка здогадка | Тільки запропонує, навʼязувати не стане |
| 0.5 | Серединка | Застосує, якщо доречно |
| 0.7 | Сильна | Зробить сам, не перепитуючи |
| 0.9 | Майже залізна | Базова поведінка, само собою |
Впевненість зростає, коли звичка повторюється, а ти її не правиш. І падає, коли кажеш «ні, не так» або патерн давно не зринав. Тобто памʼять не застигає в камені - вона живе й підлаштовується під тебе.
Область памʼяті - правило для проєкту чи для всього одразу
Тут штука, на якій новачки спотикаються. Памʼять живе у двох областях:
- Проєктна - діє тільки всередині цього проєкту. Сюди йдуть конвенції мови та фреймворку: «використовуй React-хуки», «тести клади в папку tests», «тут стиль такий-то».
- Загальна - діє всюди. Сюди йдуть універсальні істини: «завжди перевіряй користувацький ввід», «пиши тести», «спочатку прочитай файл, потім міняй».
Хороша памʼять проти поганої: плюси й мінуси
- Важливі правила лежать у файлах, а не в одному повідомленні чату, яке згине.
- Памʼять атомарна: одна нотатка - один факт, жодних полотен тексту.
- У фактів є впевненість - слабкі пропонуються, сильні застосовуються самі.
- Памʼять чиститься: застаріле видаляється, а не накопичується роками.
- Локальні правила лежать у своєму проєкті, універсальні - у загальній області.
- Памʼять перетворилася на звалище - агент палить контекст на читання сміття.
- Нотатки сперечаються одна з одною: в одній «роби так», в іншій «ніколи так».
- У памʼять потрапили секрети (паролі, ключі) - а файл потім витік.
- Звички з чужого проєкту лізуть не туди й ламають логіку.
- Агент вірить старій нотатці, хоча в проєкті давно все інакше.
Памʼять агента на практиці: реальний приклад
Тиждень пиляєш сайт. І щоразу заново диктуєш агентові: «відступи по 8 пікселів», «кнопки - заокруглені», «текст українською». До пʼятого дня це вже зубний біль, і ти щиро не розумієш, чому він «не запамʼятовує».
А він і не мусить запамʼятовувати сам по собі - ти йому не видав блокнот. Тямущий вайбкодер робить інакше: один раз просить агента завести памʼять і складати туди звички. Далі блокнот ведеться сам.
Заведи в проєкті файл MEMORY з моїми звичками й веди його сам.
Правила ведення:
- Пиши короткими пунктами в стилі «коли роблю X - роби Y». Один пункт - один факт.
- Що вже знаємо: відступи по 8 пікселів, кнопки заокруглені, усі тексти українською.
- Якщо я тебе виправляю - онови потрібний пункт, не плоди дублі.
- Якщо факт застарів або суперечить новому - видали старий, не тримай обидва одразу.
- Жодних паролів, ключів і секретів у цьому файлі.
- На початку кожної нової сесії спершу прочитай цей файл, потім берися за задачу.
Чому агент забув звички: чек-лист діагностики
Агент «забув» твої звички? Пробіжися по чек-листу, перш ніж психувати:
- Правило взагалі у файлі? Сказав один раз у чаті - після перезапуску його вже немає. Перенеси в памʼять.
- Чи немає дублів і суперечностей? Якщо в памʼяті «роби А» і «ніколи А» - агента тіпатиме. Почисти.
- Чи не звалище це? Файл памʼяті розрісся в суцільне полотно - розбий на короткі атомарні пункти.
- Чи не з чужого проєкту правило? Локальну звичку могло занести не туди. Перевір, де вона лежить.
- Факт не протух? Агент чесно вірить старій нотатці. Якщо в проєкті все змінилося - онови запис.
Часті помилки новачка в роботі з памʼяттю
- Вірити, що «ШІ запамʼятає сам». Без файлу памʼяті він починає кожну сесію з чистого аркуша.
- Тримати правила тільки в листуванні. Закрив чат - правил як не було. Виноси у файл.
- Писати в памʼять полотнами тексту. Агент потоне в тексті. Дроби на короткі «коли X - роби Y».
- Накопичувати й не чистити. Старі й суперечливі нотатки плутають агента сильніше, ніж узагалі порожній файл.
- Складати секрети в памʼять. Файл одного разу витече. Паролі та ключі - ніколи в памʼять.
- Дивуватися, що звичка не спрацювала в іншому проєкті. Проєктна памʼять замкнена у своєму проєкті - це фіча, а не баг.
TL;DR - если коротко
- Сама модель не памʼятає нічого між сесіями. Памʼять агента - це файли на диску, і читає він їх заново під час кожного запуску.
- Тямуща памʼять зберігає не полотна тексту, а інстинкти - крихітні правила «коли X - роби Y».
- У кожного інстинкту є впевненість від 0.3 до 0.9: слабкі просто пропонуються, сильні спрацьовують самі.
- Памʼять ділиться на проєктну і загальну: правила React сидять у React-проєкті, «завжди перевіряй ввід» - працює всюди.
- Хороша памʼять атомарна й чиститься: одна нотатка - один факт, протухле видаляємо, а не накопичуємо.
- Секретам у памʼяті не місце. Паролі та ключі туди не клади: файл рано чи пізно витече.