Память — одна из ключевых особенностей OpenClaw. В отличие от обычных чатботов, которые «забывают» всё после каждого разговора, OpenClaw сохраняет контекст между сессиями. В этом руководстве разберём, как работает память, как её настраивать и использовать эффективно.
Как устроена память
Память OpenClaw — это обычные Markdown-файлы в директории workspace. Никакой магии: агент записывает важное в текстовые файлы и перечитывает их при старте новой сессии.
MEMORY.md — долгосрочная память
Файл MEMORY.md в корне workspace (~/.openclaw/workspace/MEMORY.md) — это куратированная долгосрочная память. Здесь хранятся:
- Факты о пользователе (имя, предпочтения, проекты)
- Решения и договорённости
- Выученные паттерны поведения
- Всё, что агент считает важным для будущих сессий
Важно: MEMORY.md загружается только в приватных (main) сессиях — не в групповых чатах.
Дневные логи — memory/YYYY-MM-DD.md
Директория memory/ содержит дневные лог-файлы в формате YYYY-MM-DD.md. Это append-only логи — агент дописывает в них по ходу сессии.
При старте новой сессии агент загружает лог за сегодня и вчера — чтобы помнить недавний контекст.
~/.openclaw/workspace/
├── MEMORY.md ← долгосрочная память
├── memory/
│ ├── 2026-02-17.md ← лог позавчера
│ ├── 2026-02-18.md ← лог вчера (загружается)
│ └── 2026-02-19.md ← лог сегодня (загружается)
├── SOUL.md
├── AGENTS.md
└── ...
Принцип работы
Агент помнит только то, что записано на диск. Модель не имеет собственной памяти между сессиями — при каждом старте она заново читает файлы. Это значит:
- Если факт не записан в
MEMORY.mdили дневной лог — он забыт - Пользователь может явно попросить агента запомнить что-то: «Запомни, что я работаю в компании X»
- Агент может и сам записывать важное, если это указано в инструкциях (SOUL.md, AGENTS.md)
Автоматическое сохранение памяти
Когда сессия приближается к лимиту контекстного окна, OpenClaw запускает auto-compaction — сжатие контекста. Перед сжатием срабатывает memory flush — агент получает специальный промпт с просьбой записать важные факты из текущей сессии в файлы памяти.
Конфигурация в ~/.openclaw/openclaw.json:
{
agents: {
defaults: {
compaction: {
mode: "safeguard", // режим сжатия (по умолчанию)
reserveTokensFloor: 24000, // резерв токенов
memoryFlush: {
enabled: true, // включён по умолчанию
softThresholdTokens: 6000, // порог для записи памяти
},
},
},
},
}
Memory flush запускается один раз за цикл сжатия. Пропускается, если workspace доступен только для чтения.
Векторный поиск по памяти
Для больших объёмов памяти OpenClaw поддерживает семантический поиск — инструмент memory_search. Он позволяет агенту искать релевантные факты, даже если они записаны давно.
Как работает
- Индекс хранится в SQLite:
~/.openclaw/memory/<agentId>.sqlite - Файлы разбиваются на чанки (~400 токенов, 80 токенов перекрытие)
- Используется гибридный поиск: BM25 (текстовый) + векторный
- Веса по умолчанию: 70% вектор, 30% текст
Провайдеры эмбеддингов
OpenClaw автоматически выбирает провайдер в порядке приоритета:
- Локальный — если доступна локальная модель эмбеддингов
- OpenAI — если задан
OPENAI_API_KEY - Gemini — если задан ключ Gemini
- Voyage — если задан ключ Voyage
- Отключён — если ни один провайдер не доступен
Настройка
// ~/.openclaw/openclaw.json
{
agents: {
defaults: {
memorySearch: {
// Дополнительные директории для индексации (.md файлы)
extraPaths: ["~/notes"],
},
},
},
}
Инструменты памяти
Агент использует два встроенных инструмента:
| Инструмент | Что делает |
|---|---|
memory_search | Семантический поиск по всем файлам памяти. Возвращает релевантные фрагменты со score и путём к файлу |
memory_get | Чтение конкретного файла памяти по имени (путь относительно workspace) |
Управление памятью
Через естественный язык
| Что сказать агенту | Что произойдёт |
|---|---|
| «Запомни, что я работаю в компании X» | Агент добавит факт в MEMORY.md или дневной лог |
| «Что ты знаешь обо мне?» | Агент прочитает MEMORY.md и покажет сохранённые факты |
| «Забудь про проект Y» | Агент отредактирует MEMORY.md, удалив упоминание |
Ручное редактирование
Файлы памяти — обычный Markdown. Можно редактировать напрямую:
# Посмотреть долгосрочную память:
cat ~/.openclaw/workspace/MEMORY.md
# Посмотреть лог за сегодня:
cat ~/.openclaw/workspace/memory/$(date +%Y-%m-%d).md
# Отредактировать:
nano ~/.openclaw/workspace/MEMORY.md
Пример MEMORY.md
# Память
## Обо мне
- Имя: Алексей
- Город: Москва (UTC+3)
- Профессия: веб-разработчик
## Предпочтения
- Предпочитаю краткие ответы
- Язык: русский
- Тема: тёмная
## Проекты
- OpenClaw сайт (Astro + TypeScript) — активный
- Мобильное приложение для клиента — на паузе
## Важное
- Не отправлять email без подтверждения
- Дедлайн по проекту сайта — 1 марта
Инструкции в SOUL.md
Добавьте секцию про память в SOUL.md, чтобы агент знал, как вести записи:
# Работа с памятью
- Запоминай важные факты обо мне автоматически
- Если я исправляю тебя — обнови информацию в MEMORY.md
- Не спрашивай повторно то, что уже знаешь
- Если информация устарела — уточни, актуальна ли она
- В конце дня записывай ключевые решения в дневной лог
Конфиденциальность и безопасность
Что хранится локально
Вся память хранится на вашем устройстве в директории workspace. Ничего не отправляется на внешние серверы — кроме запросов к LLM (текст сообщений) и, если используется, к провайдеру эмбеддингов (фрагменты текста для векторизации).
Если нужна полная приватность — используйте локальный провайдер эмбеддингов или отключите memory_search.
Что не стоит хранить
Несмотря на локальное хранение, избегайте записи в файлы памяти:
- Паролей и API-ключей
- Номеров банковских карт
- Персональных данных третьих лиц
Аудит памяти
Периодически проверяйте, что агент сохранил:
# Посмотреть все файлы памяти:
ls -la ~/.openclaw/workspace/memory/
# Посмотреть долгосрочную память:
cat ~/.openclaw/workspace/MEMORY.md
Типичные проблемы
Агент забывает информацию между сессиями
- Проверьте, что
MEMORY.mdсуществует и содержит нужные факты - Убедитесь, что
memoryFlush.enabled: true(по умолчанию включён) - Попросите агента явно: «Запиши это в MEMORY.md»
Агент не находит старые факты
- Если факт записан давно (не сегодня/вчера) — он не загружается автоматически
- Агент может найти его через
memory_search, если векторный поиск настроен - Или перенесите важные факты из старых дневных логов в
MEMORY.md
Слишком много старой информации
- Удалите устаревшие дневные логи:
rm ~/.openclaw/workspace/memory/2026-01-*.md - Отредактируйте
MEMORY.md, убрав неактуальное
Агент «галлюцинирует» факты
- Проверьте
MEMORY.md— возможно, там записан неверный факт - Исправьте или удалите его вручную
Что дальше
- Настройка SOUL.md — как инструктировать агента по работе с памятью
- Скиллы OpenClaw — расширения могут использовать память
- Безопасность — защита сохранённых данных