mandrock-files / ai

claude-memory-system

Пам'ять Claude — це не «він тебе запам'ятав», а файлова система з таксономією і фоновим записом після ходу. Що туди їде, що не їде ніколи, і чим це відрізняється від auto memory в Claude Code.

Пам'ять 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 — тим паче, вона на репо

Антипатерни


Чекліст гігієни

P.S. — асиметрія, про яку легко забути

У людей пам'ять про іншу людину — сигнал. Пам'ятати чиїсь дрібниці дорого, тому це щось означає.

Тут вона не коштує нічого і не означає нічого. Файл підмішується в контекст на час розмови й зникає, коли розмова закінчилась — паралельно з мільйоном інших таких самих файлів, про які ця сесія не знає нічого.

Що не робить її марною. Просто вона працює як добре впорядкований конфіг, а не як увага — і ставитись до неї варто відповідно. Тоді з неї більше користі, ніж із будь-якого теплішого прочитання.