У Claude Code есть проблема, о которой вы узнаете только после 20-30 сессий: его память деградирует.
Auto Memory: как это устроено
Auto Memory появилась в версии 2.1.59 (март 2026). Claude сам записывает заметки о проекте: команды сборки, архитектурные решения, предпочтения, отладочные паттерны. Всё хранится в markdown-файлах в ~/.claude/projects/ваш-проект/memory/. Индексный файл MEMORY.md подгружается в каждую новую сессию (первые 200 строк или 25KB).
Звучит отлично. На практике через 20+ сессий в памяти копится хаос: дубли, устаревшие факты ("API на Express" когда вы давно на Fastify), относительные даты ("вчера"), ссылки на удалённые файлы. До 30% записей превращаются в мусор.
Auto Dream: починка, которая выкатилась сломанной
Auto Dream — то, что Anthropic тихо добавила в v2.1.81. Фоновый суб-агент, который консолидирует память между сессиями. Работает в 4 фазы:
- Ориентация — читает текущую структуру memory-директории
- Сбор сигналов — поиск по транскриптам сессий: коррекции, решения, паттерны
- Консолидация — мерж данных, конвертация относительных дат в абсолютные, удаление противоречий
- Индексация — MEMORY.md обновляется, остаётся в пределах 200 строк
Триггер: 24 часа + 5 сессий с последней консолидации. Время выполнения: 8-10 минут. Пишет только в memory-файлы, исходный код не трогает.
Название отсылает к REM-фазе сна. Консолидация памяти во время "отдыха".
Баг
UI в /memory показывает: "Auto-dream: on — last ran 13h ago — /dream to run". Вводишь /dream — получаешь Unknown skill: dream.
Баг (GitHub Issue #38461) зафиксирован 24 марта 2026. Воспроизводится от v2.1.81 до v2.1.92+. Ни одного ответа от Anthropic. В официальной документации Auto Dream не упоминается вообще.
Также есть связанные issue: #38426 и #39135 — все описывают одну и ту же проблему: UI обещает, а команда не работает.
Как настроить (то, что реально работает)
Проверьте версию: claude --version (нужна 2.1.59+). Откройте /memory и убедитесь, что Auto memory включена.
В settings.json:
{
"autoMemoryEnabled": true,
"autoDreamEnabled": true
}
Отключить через переменную: CLAUDE_CODE_DISABLE_AUTO_MEMORY=1
Workaround для /dream: просто напишите Claude в чате "dream" или "консолидируй мою память". Он выполнит 4-фазную консолидацию вручную. Проверено, работает.
Стоит ли реализовывать подобное в своих агентных системах?
Однозначно да. Memory decay — это не проблема конкретно Claude Code. Это проблема любого stateful-агента. Если ваш агент копит контекст между сессиями, через 50 итераций у вас будет каша из противоречий. Консолидация памяти — не приятный бонус, а необходимость.
Но реализация Anthropic показывает, как делать НЕ надо: UI обещает функцию, которая не работает; changelog молчит; документации нет. Если делаете свою систему — выкатывайте MVP без UI-промисов, или доводите до конца.
Для своих систем: 4-фазная архитектура (orient, gather, consolidate, prune) — хороший шаблон. Главное правило — консолидатор пишет ТОЛЬКО в memory-файлы, никогда в код проекта. Lock-файл для конкурентности. И обязательно логируйте, что именно изменилось — у Auto Dream с этим тоже проблемы (Issue #38493).