Память в OpenClaw: как ИИ-агент запоминает контекст между сессиями

Что такое память в OpenClaw

Память в OpenClaw — это механизм, который позволяет ИИ-агенту сохранять контекст разговора между сессиями и вести несколько параллельных бесед. Без памяти агент каждый раз начинал бы разговор с нуля — как человек с амнезией. С памятью он помнит ваши предпочтения, имена, проекты и договорённости.

OpenClaw реализует память через три уровня: сессии (краткосрочный контекст), файлы workspace (долгосрочная память) и систему компактации (оптимизация токенов).

Как работают сессии

Сессия — это контекст конкретного разговора. Каждый чат с агентом имеет свою сессию с историей сообщений. OpenClaw поддерживает три режима управления сессиями:

  • main — все личные сообщения объединены в одну сессию
  • per-peer — отдельная сессия на каждого отправителя
  • per-channel-peer — отдельная сессия на каждый канал плюс отправитель
  • Режим per-channel-peer подходит для большинства: каждый чат в Telegram, Discord или другом мессенджере получает свою историю, и агент не путает контексты разных разговоров.

    Настройка в конфиге:

    {
      "session": {
        "dmScope": "per-channel-peer"
      }
    }
    

    Сброс сессий

    Сессии можно сбрасывать автоматически — например, раз в день, чтобы агент не накапливал устаревший контекст:

    {
      "session": {
        "reset": {
          "mode": "daily",
          "atHour": 4,
          "idleMinutes": 120
        }
      }
    }
    

    Здесь сессия сбрасывается каждый день в 4:00, но только если агент был неактивен более 2 часов.

    Файлы долгосрочной памяти

    Главная сила OpenClaw — не только история сообщений, а файлы workspace, которые агент обновляет сам:

  • MEMORY.md — долгосрочная память. Записи, которые агент помнит между сессиями. Это его «блокнот», куда он записывает важные факты: имена, предпочтения, договорённости
  • USER.md — информация о пользователе. Агент заполняет её по ходу общения
  • TOOLS.md — заметки об окружении: какие камеры подключены, SSH-хосты, голосовые настройки
  • Агент может читать и обновлять эти файлы через инструмент memory. Это значит, что через неделю общения агент уже знает ваше имя, часовой пояс, стиль общения и текущие проекты — без того, чтобы вы каждый раз напоминали.

    Какие файлы видит агент

    OpenClaw автоматически инжектирует определённые файлы в контекст агента при каждом ходе:

    Файл Назначение
    AGENTS.md Правила работы, память, безопасность, поведение в группах
    SOUL.md Голос, характер, стиль общения
    USER.md Информация о пользователе
    IDENTITY.md Имя, сущность, эмодзи агента
    TOOLS.md Заметки об окружении
    MEMORY.md Долгосрочная память

    Файл MEMORY.md загружается только в main-сессии. Это сделано для экономии токенов — в коротких сессиях агент работает без балласта.

    Компактация: сжатие старых сообщений

    Длинные разговоры потребляют много токенов. Компактация автоматически сжимает старые сообщения, сохраняя суть, но убирая детали:

    {
      "session": {
        "compaction": {
          "enabled": true,
          "threshold": 80000
        }
      }
    }
    

    Порог threshold задаётся в символах. Когда сессия превышает этот размер, OpenClaw сжимает старые сообщения в краткое саммари. Агент продолжает помнить контекст, но не тратит токены на перечитывание всего разговора.

    Dreaming: консолидация памяти во сне

    Dreaming — это система фоновой консолидации памяти. Она работает аналогично тому, как человеческий мозг обрабатывает информацию во сне: выделяет важное, отбрасывает мусор, укрепляет связи.

    Dreaming отключён по умолчанию — это opt-in функция.

    Три фазы консолидации

    Фаза Назначение Пишет в MEMORY.md?
    Light Сортировка недавнего материала Нет
    Deep Оценка и продвижение долговечных кандидатов Да
    REM Рефлексия по темам и идеям Нет

    Каждый свип запускает фазы по порядку: light → REM → deep.

    Как включить

    {
      "plugins": {
        "entries": {
          "memory-core": {
            "config": {
              "dreaming": { "enabled": true }
            }
          }
        }
      }
    }
    

    По умолчанию dreaming запускается каждый день в 3:00. Расписание настраивается через dreaming.frequency.

    Как агент решает, что запомнить

    OpenClaw использует систему весов для ранжирования записей памяти:

    Сигнал Вес Описание
    Frequency 0.24 Сколько сигналов накопила запись
    Relevance 0.30 Среднее качество извлечения
    Query diversity 0.15 Уникальные контексты запросов
    Recency 0.15 Скоринг свежести
    Consolidation 0.10 Многодневная повторяемость
    Conceptual richness 0.06 Плотность концептуальных тегов

    Записи, которые всплывают в разных контекстах и остаются актуальными несколько дней, получают высокий вес и продвигаются в долгосрочную память. Одноразовые заметки постепенно забываются.

    Управление dreaming

    # Slash-команды в чате
    /dreaming status
    /dreaming on
    /dreaming off
    
    # CLI на сервере
    openclaw memory promote --apply    # применить продвижение
    openclaw memory status --deep      # глубокий статус
    

    Memory Wiki: память как база знаний

    Плагин memory-wiki превращает долгосрочную память в структурированное хранилище знаний. Это не замена MEMORY.md, а дополнительный слой сверху.

    Что добавляет memory-wiki:

  • Выделенное хранилище wiki с детерминированной структурой страниц
  • Структурированные утверждения (claims) с доказательствами и уровнем уверенности
  • Провенанс — откуда пришла каждая информация
  • Дашборды: открытые вопросы, противоречия, устаревшие данные
  • Нативные инструменты: wiki_search, wiki_get, wiki_apply, wiki_lint
  • Режимы работы

  • isolated — самостоятельное хранилище, без зависимости от memory-core
  • bridge — читает артефакты из активного плагина памяти (dream-отчёты, ежедневные заметки)
  • unsafe-local — экспериментальный режим для локальных приватных путей
  • Структура хранилища

    /
      AGENTS.md
      WIKI.md
      index.md
      inbox.md
      entities/      — люди, системы, проекты
      concepts/      — идеи, паттерны, политики
      syntheses/     — скомпилированные саммари
      sources/       — импортированный сырой материал
      reports/       — генерируемые дашборды
    

    Memory Wiki полезна, когда агент работает с большими объёмами знаний и нужна не просто память, а управляемая база с провенансом и актуальностью.

    Настройка для реального использования

    Базовая конфигурация

    Для большинства пользователей достаточно настроить режим сессий и включить компактацию:

    {
      "session": {
        "dmScope": "per-channel-peer",
        "compaction": {
          "enabled": true,
          "threshold": 80000
        }
      }
    }
    

    Продвинутая конфигурация

    Для агентов, которые работают с большими проектами, добавьте dreaming и memory-wiki:

    {
      "session": {
        "dmScope": "per-channel-peer",
        "compaction": { "enabled": true, "threshold": 80000 }
      },
      "plugins": {
        "entries": {
          "memory-core": {
            "config": { "dreaming": { "enabled": true } }
          },
          "memory-wiki": {
            "enabled": true,
            "config": {
              "vaultMode": "bridge",
              "render": { "createDashboards": true }
            }
          }
        }
      }
    }
    

    Практические советы

  • Не перегружайте MEMORY.md. Агент обновляет его сам — доверьте ему это. Если записать туда слишком много, контекст раздувается и токены тратятся впустую.
  • Используйте /compact вручную, если чувствуете, что агент «забывает» ранний контекст. Компактация сожмёт старые сообщения и освободит место.
  • Проверяйте dreaming статус через /dreaming status. Если dreaming включён, но записи не продвигаются — возможно, порог слишком высокий.
  • Для бизнес-задач включите memory-wiki в режиме bridge — это даст агенту структурированный доступ к знаниям с отслеживанием источников.
  • На платформах вроде Neirohost память работает так же, как на собственном сервере — файлы MEMORY.md и USER.md хранятся в workspace агента и доступны между сессиями.
  • FAQ

    Что происходит с памятью при перезапуске агента?

    Сессии сбрасываются (если настроен сброс), но файлы MEMORY.md и USER.md сохраняются на диске. Агент загружает их при каждом старте и продолжает помнить всё, что записано в этих файлах.

    Можно ли экспортировать память агента?

    Да. Все файлы памяти — это обычные Markdown-файлы в workspace агента. Скопируйте папку workspace, и вся память сохранится. Это работает и при миграции между серверами.

    Сколько токенов потребляет память?

    MEMORY.md и USER.md инжектируются в каждый ход агента. Файл на 2000 символов потребляет примерно 500-700 токенов за ход. Компактация помогает контролировать общий размер контекста.

    Помнит ли агент содержимое старых сессий?

    Не напрямую. После сброса сессии история сообщений теряется. Но если важная информация была записана в MEMORY.md — агент продолжит её помнить. Поэтому dreaming так полезен: он автоматически извлекает важное из сессий в долгосрочную память.

    Чем memory-wiki отличается от обычной памяти?

    Обычная память (MEMORY.md) — это текстовый файл, который агент читает целиком. Memory-wiki — это структурированная база с поиском, провенансом и дашбордами. Wiki подходит для больших объёмов знаний, где важно отслеживать актуальность и источники.

    Ссылки

  • Сессии и память — документация openclawiki.ru
  • Персонализация агента: SOUL.md, AGENTS.md
  • Навыки (skills) в OpenClaw
  • Кроны в OpenClaw: автоматизация задач по расписанию