"CLAUDE_CODE_DISABLE_AUTO_MEMORY": "0"
структура
~/.claude/projects/<project>/memory/
├── MEMORY.md # Индекс, грузится каждую сессию
├── name.md # имена соответствуют контексту
└── ... # Топик-файлы (Claude создаёт по необходимости)
Что он туда пишет: команды сборки, паттерны проекта, решения дебаггинга, ваши предпочтения.
Один раз сказал
"Запомни, не нужно удалять мою базу данных"
- зафиксировал, переживёт рестарт. В следующей сессии сразу помнит.
После каждого "твой вопрос-ответ агента", Claude запускает агента в фоне с инжектом всех memory и текущего turn(твой вопрос-его ответ).
Агент решает есть тут что-то ценное для будущих сессий? Если да - видишь плашку "Saved N memories"
Если ты сам попросил запомнить или записать в память, то итерация агента пропускается.
Второй нюанс: MEMORY.md - это индекс. Он грузится при старте, но только первые 200 строк / 25 КБ. Сами тематические файлы (debugging.md, api-conventions.md) при старте не грузятся.
Sonnet читает описания файлов из индекса и решает, какие из них подходят под вашу задачу (выбирает до 5 релевантных файлов).
__
Не семантика, а суждение LLM. Два файла с похожими description, но только один релевантен задаче Sonnet обычно различает по контексту запроса лучше, чем cosine similarity на эмбеддингах.
Такое же форматирование yml, уже как стандарт для md файлов.
---
name: Контракт управления системой
description: Основной набор правил работы Claude с Ubuntu-системой Nikita — пакеты, обновления, сервисы, файлы, сеть, безопасность
type: feedback
---
P.S. Если memory-файлы разрослись и начали противоречить друг другу - для этого есть Auto Dream. Но это тема для отдельного поста.