ARCANADA
Все записи
Блог 10 апреля 2026

Claude Code: оптимизируем память агента — Auto Memory, Auto Dream и баги, о которых молчит документация

Claude Code: оптимизируем память агента — Auto Memory, Auto Dream и баги, о которых молчит документация

У 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 фазы:

  1. Ориентация — читает текущую структуру memory-директории
  2. Сбор сигналов — поиск по транскриптам сессий: коррекции, решения, паттерны
  3. Консолидация — мерж данных, конвертация относительных дат в абсолютные, удаление противоречий
  4. Индексация — 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).

Источники