Канал

Память OpenClaw: как агент запоминает информацию

Память — одна из ключевых особенностей 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 автоматически выбирает провайдер в порядке приоритета:

  1. Локальный — если доступна локальная модель эмбеддингов
  2. OpenAI — если задан OPENAI_API_KEY
  3. Gemini — если задан ключ Gemini
  4. Voyage — если задан ключ Voyage
  5. Отключён — если ни один провайдер не доступен

Настройка

// ~/.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 — возможно, там записан неверный факт
  • Исправьте или удалите его вручную

Что дальше

Следите за OpenClaw на русском

Разбираем обновления, пишем гайды, делимся кейсами

Подписаться на канал Задать вопрос в чате
Присоединяйтесь к сообществу