Память OpenClaw: как агент запоминает контекст

Одна из самых удивительных особенностей OpenClaw — способность агента запоминать информацию между сессиями. В отличие от обычных чат-ботов, которые забывают всё после перезагрузки, OpenClaw использует файловую систему как долговременную память. В этой статье разберём, как устроена память OpenClaw и как её настроить.

Основной принцип: файлы — это память

Память OpenClaw — это обычные Markdown-файлы в рабочем пространстве. Модель «помнит» только то, что записано на диск. Это простой и прозрачный подход: вы можете открыть файлы памяти в любом редакторе и увидеть, что именно запомнил агент.

Два слоя памяти

1. Дневные логи: memory/YYYY-MM-DD.md

Ежедневные заметки в режиме append-only (только добавление). Агент читает файлы за сегодня и вчера при каждом старте сессии. Сюда попадают текущие события, заметки и рабочий контекст.

2. Долгосрочная память: MEMORY.md

Куратированные, важные воспоминания. Этот файл загружается только в приватной сессии (никогда в групповых чатах — для безопасности). Сюда записываются решения, предпочтения и устойчивые факты.

Все файлы памяти находятся в workspace (по умолчанию ~/.openclaw/workspace).

Когда записывать в память

💡 Совет: Явно просите агента «запомни это в MEMORY.md» — так вы контролируете, что попадёт в долгосрочную память.

Автоматический сброс памяти перед компакцией

Когда контекстное окно сессии близко к переполнению, OpenClaw запускает тихий агентный ход — напоминает модели записать важные данные на диск, прежде чем контекст будет сжат. Пользователь этого не видит.

Настройка:

{
  agents: {
    defaults: {
      compaction: {
        reserveTokensFloor: 20000,
        memoryFlush: {
          enabled: true,
          softThresholdTokens: 4000,
        },
      },
    },
  },
}

Векторный поиск по памяти

OpenClaw умеет строить векторный индекс по файлам памяти. Это значит, что семантический поиск найдёт релевантные заметки, даже если формулировки отличаются.

Как работает

Провайдеры эмбеддингов

OpenClaw автоматически выбирает провайдер:

  1. Local — если настроена локальная модель
  2. OpenAI — если есть API-ключ
  3. Gemini — если есть ключ Gemini
  4. Voyage — если есть ключ Voyage

Настройка Gemini-эмбеддингов

{
  agents: {
    defaults: {
      memorySearch: {
        provider: "gemini",
        model: "gemini-embedding-001",
        remote: {
          apiKey: "YOUR_GEMINI_API_KEY"
        }
      }
    }
  }
}

QMD-бэкенд (экспериментальный)

QMD — это локальный поисковый сайдкар, комбинирующий BM25 + векторы + ранжирование. Он работает полностью локально через Bun + node-llama-cpp.

{
  memory: {
    backend: "qmd",
    citations: "auto",
    qmd: {
      includeDefaultMemory: true,
      update: { interval: "5m" },
      limits: { maxResults: 6, timeoutMs: 4000 },
    }
  }
}

QMD автоматически скачивает GGUF-модели при первом запуске. Поддерживает индексацию Markdown-файлов из произвольных директорий и даже транскриптов сессий.

Дополнительные пути для индексации

Можно добавить Markdown-файлы из других директорий:

{
  agents: {
    defaults: {
      memorySearch: {
        extraPaths: ["../team-docs", "/srv/shared-notes/overview.md"]
      }
    }
  }
}

Цитирование источников

При memory.citations = "auto" или "on" результаты поиска включают указание на источник (Source: path#line). Установите "off", чтобы скрыть пути от пользователя.

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

Больше о сессиях и безопасности — в соответствующих статьях. А для установки OpenClaw читайте пошаговую инструкцию.

AI-агент с настоящей памятью

Скачайте AI Magic Hub и получите агента, который запоминает ваши предпочтения и задачи.

Скачать AI Magic Hub