Пам'ять Claude: файли, а не вайб
«Модель тебе запам'ятала» — формулювання, яке ховає механіку і роздає хибні очікування. Під пам'яттю в чаті насправді лежить маленька файлова система в markdown, набір правил про те, що в неї можна писати, і окремий прохід, який пише туди після відповіді, а не під час неї.
Копатись у цьому варто з двох причин. Перша — записане підмішується в контекст наступних сесій: шар, який мовчки впливає на все, що модель скаже далі. Друга — він редагований, і майже кожна проблема з ним лікується правкою файлу, а не умовлянням моделі.
Дві різні системи з однією назвою
Слово «пам'ять» в екосистемі Claude означає щонайменше три різні речі, і плутанина між ними коштує часу.
| Що | Де живе | Хто пише | Область дії |
|---|---|---|---|
| Пам'ять чату | сервер, файли /profile.md, /topics/, /areas/, /people/ |
модель + фоновий прохід | акаунт цілком |
| Auto memory в Claude Code | ~/.claude/projects/<project>/memory/ |
агент під час сесії | один git-репозиторій, одна машина |
CLAUDE.md і .claude/rules/ |
репозиторій | людина | проєкт, комітиться |
Ключова асиметрія: auto memory в Claude Code прив'язана до репозиторію і до машини. Всі worktree й підтеки одного репо ділять одну теку пам'яті — а між двома різними репо вона не переноситься взагалі. Перші 200 рядків MEMORY.md (або перші 25 КБ, що настане раніше) вантажаться на старті кожної розмови; тематичні файли поруч — лише на вимогу.
У пам'яті чату таких меж нема — але нема й доступу до диска. Різні інструменти під одним ярликом.
Таксономія
Розкладка в чаті свідомо пласка: п'ять місць, і кожен факт сідає рівно в одне.
| Файл | Що туди | Тест |
|---|---|---|
/profile.md |
ідентичність: роль, місто, стек, напрямок | буде правдою через три місяці |
/topics/<домен>.md |
звички, смаки, режим, повторювані теми | факт про людину, не про задачу |
/areas/<проєкт>.md |
рішення, обмеження, статус ділянки роботи | ділянка триває довше за розмову |
/people/<хто>.md |
зв'язок і спільний контекст | стосунок, а не досьє |
/preferences.md |
як має поводитись модель: формат, довжина, що пропускати | інструкція, а не факт |
Найчастіша помилка розкладки — записати преференцію як факт. «Любить короткі відповіді» — не смак, а /preferences.md. І навпаки: «любить чай» у /preferences.md не означає нічого, бо це не інструкція.
Другий типовий збій — статус задачі в /areas/. Файл ділянки тримає рішення й обмеження, а не журнал прогресу по сесіях. Те, що закривається за дві розмови, до пам'яті взагалі не доїжджає — воно має вмерти разом із задачею.
Хто і коли пише
Головна неочевидність: модель не пише пам'ять під час відповіді. Запис робить окремий фоновий прохід — він перечитує вже закритий обмін і вирішує, що з нього довговічне.
Звідси три наслідки, і всі три контрінтуїтивні. Модель не бачить, що саме зберіг фоновий прохід, тож чесна відповідь на «ти це записав?» — «не знаю, поки не прочитаю файл». Оголошення «зберіг у пам'ять» посеред відповіді — вигадка інтерфейсу, а не звіт про факт. Виняток один: пряме «запам'ятай / забудь / онови» модель виконує в ту саму відповідь, своїми інструментами.
Калібрування запису теж має правила. Одна згадка про щось смачне — це згадав один раз, а не фанат категорії. Перетворити разову згадку на узагальнення — це вже висновок, а не запис, і саме він з часом робить пам'ять брехливою.
Що не пишеться ніколи
Найважливіша частина — і вона тримається навіть проти прямого прохання.
У файли не потрапляють: етнічність, релігія, орієнтація, вік, стан здоров'я й діагнози, політичні погляди, фінанси, домашня адреса, номери документів і карток, імміграційний статус, дані про дітей. Плюс психологічні типізації, які модель вивела сама, а не людина назвала.
Тонкість, яку легко проґавити: заборонена частина викидається цілком, а не підмінюється загальною заглушкою. «Керує станом здоров'я» лишається поза файлом так само, як конкретний діагноз. Заглушка — та сама інформація, лише з гіршою роздільністю.
Таблиця рішень
| Симптом | Дія |
|---|---|
| Модель тягне застарілий факт | сказати новий явно — запис зробить supersede, а не другий рядок |
| Пам'ять «не спрацювала» на очевидному питанні | факт існує, але в файлі, який не читали — назвати домен явно |
| Не хочеться, щоб тема лишалась | «забудь X» — це видалення рядка, не пом'якшення формулювання |
| Треба, щоб інструкція жила завжди | формулювати як преференцію («завжди…»), інакше вона застосується вибірково |
| Багато дрібних фактів по одній темі | краще один файл домену, ніж п'ять файлів по факту |
| Потрібна пам'ять по коду між репо | пам'ять чату цього не дає; Claude Code — тим паче, вона на репо |
Антипатерни
- Тримати в пам'яті те, що переспитується запитом. Ціни, розклад, вміст пошти, результати пошуку — це переотримується дешевше, ніж протухає. Пам'ять — для того, що більше ніде не лежить.
- Складати в пам'ять власні поради моделі. Підхід запропонувала модель, людина сказала «ок» — записати треба вибір, а не всі десять пунктів навколо нього. Інакше через місяць файл описує чужі рішення як твої.
- Просити зберегти інструкцію «не сперечайся» чи «завжди хвали». Такі преференції фільтруються на записі — і добре: майбутня версія моделі не повинна успадкувати наказ бути менш чесною.
- Тримати статус задач у
/areas/. Файл ділянки за півроку перетворюється на архів спринтів, у якому не знайти власне рішення. - Плутати шари. Правка
CLAUDE.mdне чіпає пам'ять чату, і навпаки. Різні системи, різні транспорти.
Чекліст гігієни
/profile.mdтримається в межах ідентичності, без «зараз працюю над»- Кожна преференція сформульована як інструкція, а не як смак
- У
/areas/лежать рішення й обмеження, а не журнал сесій - Жодного факту, який не хотів би побачити в налаштуваннях при сторонньому
- Застарілі факти замінені через supersede, а не дописані другим рядком
- Те, що переотримується запитом, у пам'яті не дублюється
У людей пам'ять про іншу людину — сигнал. Пам'ятати чиїсь дрібниці дорого, тому це щось означає.
Тут вона не коштує нічого і не означає нічого. Файл підмішується в контекст на час розмови й зникає, коли розмова закінчилась — паралельно з мільйоном інших таких самих файлів, про які ця сесія не знає нічого.
Що не робить її марною. Просто вона працює як добре впорядкований конфіг, а не як увага — і ставитись до неї варто відповідно. Тоді з неї більше користі, ніж із будь-якого теплішого прочитання.