📖 Актуальная архитектура памяти: Memory Stack
Стандарт: Agent Memory Standard v3.0.0
Создано: 02.05.2026 | Автор: Элис | Версия: 1.0.0
OpenClaw помнит вещи через plain Markdown файлы в workspace. Никакого скрытого состояния — модель «помнит» только то, что сохранено на диск. Это не векторная база, не embeddings-only система — это человеко-читаемые файлы, которые агент пишет и читает.
| Файл | Назначение | Загрузка | Макс. объём |
|---|---|---|---|
MEMORY.md |
Долговременная память: факты, решения, предпочтения | Каждый старт main-сессии | ~8K символов (рекомендуемый) |
memory/YYYY-MM-DD.md |
Дневные заметки: контекст, наблюдения | Сегодня + вчера автоинжектом | Без жёсткого лимита |
DREAMS.md |
Dream Diary (опционально) | По запросу | Автоматически |
Семантический поиск по MEMORY.md + memory/*.md. Использует embedding-модель для поиска по смыслу, не по ключевым словам.
При настроенном embedding-провайдере используется hybrid search: векторное сходство (семантика) + keyword matching (точные совпадения — ID, коды, символы).
Запрос «какой цвет машины» найдёт запись «автомобиль синий», хотя слова «цвет» и «машина» не совпадают.
Чтение конкретного файла или диапазона строк. Для точного доступа когда не нужен семантический поиск.
Перед сжатием контекста OpenClaw запускает silent turn, который напоминает агенту сохранить важные факты в файлы памяти. Это предотвращает потерю контекста при compaction.
OpenClaw поддерживает несколько backends:
Dreaming — это опциональная фоновая система консолидации памяти. Она анализирует short-term сигналы (дневные заметки, recall traces, сессионные транскрипты) и промоутит только qualified candidates в MEMORY.md.
Принцип работы — три фазы:
| Фаза | Назначение | Пишет в MEMORY.md? |
|---|---|---|
| Light | Сортирует и stage'ит недавний short-term материал | ❌ Нет |
| Deep | Скорит и промоутит durable candidates | ✅ Да |
| REM | Извлекает паттерны и recurring темы | ❌ Нет |
Deep phase scoring: 6 взвешенных сигналов (frequency 0.24, relevance 0.30, query diversity 0.15, recency 0.15, consolidation 0.10, conceptual richness 0.06). Кандидат должен пройти пороги minScore, minRecallCount, minUniqueQueries.
DREAMS.md — Dream Diary:
## Light Sleep, ## Deep Sleep, ## REM Sleep блокиВключение: memory-core plugin, dreaming.enabled: true. По умолчанию выключен. Управление: /dreaming on|off|status.
Важно: это консолидация, а не замена ручного ведения памяти. Агент всё ещё должен сам писать в MEMORY.md важные факты — dreaming помогает не потерять то, что агент мог пропустить.
Одна и та же информация не должна дублироваться в MEMORY.md. Агент должен перед записью проверить memory_search — нет ли уже похожей записи. Если есть — обновить существующую, а не создать новую строку.
В MEMORY.md — только верифицированные факты. Предположения, гипотезы, «кажется» — в дневные заметки, не в долгую память. Иначе через месяц агент будет считать гипотезу фактом.
Каждая запись в MEMORY.md должна иметь привязку ко времени. Запись без даты — мусор. Пример: «Роман предпочитает DeepSeek» → «02.05.2026: Роман предпочитает DeepSeek V4 Pro». Это позволяет оценить свежесть.
Если агент находит две записи, которые противоречат друг другу — не игнорировать. Создать задачу на уточнение у человека: «В MEMORY.md есть X от апреля и Y от мая — что актуально?»
Даже с dreaming, агент должен раз в N дней (например, в пятничной ретроспективе) ревьюить MEMORY.md: что устарело, что дублируется, что противоречиво. Это часть heartbeat-чека.
Дневные заметки (memory/YYYY-MM-DD.md) не должны мигрировать в MEMORY.md без фильтрации. 90% дневного контекста — шум через неделю. Только ключевые решения и инсайты.
memory_search, не дубликат ли?