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

Что он предоставляет

  • Поиск по ключевым словам через полнотекстовое индексирование FTS5 (оценка BM25).
  • Векторный поиск через эмбеддинги от любого поддерживаемого поставщика.
  • Гибридный поиск, который сочетает оба подхода для лучших результатов.
  • Поддержка CJK через триграммную токенизацию для китайского, японского и корейского языков.
  • Ускорение sqlite-vec для векторных запросов внутри базы данных (необязательно).

Начало работы

По умолчанию встроенный движок использует эмбеддинги OpenAI. Если у вас уже настроен OPENAI_API_KEY или models.providers.openai.apiKey, векторный поиск работает без дополнительной конфигурации памяти. Чтобы явно задать поставщика:
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai",
      },
    },
  },
}
Без поставщика эмбеддингов доступен только поиск по ключевым словам. Чтобы принудительно использовать локальные эмбеддинги GGUF, установите официальный Plugin поставщика llama.cpp, затем укажите в local.modelPath путь к файлу GGUF:
openclaw plugins install @openclaw/llama-cpp-provider
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "local",
        fallback: "none",
        local: {
          modelPath: "~/.node-llama-cpp/models/embeddinggemma-300m-qat-Q8_0.gguf",
        },
      },
    },
  },
}

Поддерживаемые поставщики эмбеддингов

ПоставщикIDПримечания
BedrockbedrockИспользует цепочку учетных данных AWS
DeepInfradeepinfraПо умолчанию: BAAI/bge-m3
GeminigeminiПоддерживает мультимодальность (изображение + аудио)
GitHub Copilotgithub-copilotИспользует подписку Copilot
Локальныйlocal@openclaw/llama-cpp-provider
Mistralmistral
OllamaollamaЛокальный/самостоятельно размещенный
OpenAIopenaiПо умолчанию: text-embedding-3-small
Совместимый с OpenAIopenai-compatibleУниверсальная конечная точка /v1/embeddings
Voyagevoyage
Задайте memorySearch.provider, чтобы переключиться с OpenAI.

Как работает индексирование

OpenClaw индексирует MEMORY.md и memory/*.md в фрагменты (~400 токенов с перекрытием 80 токенов) и сохраняет их в SQLite-базе данных отдельного агента.
  • Расположение индекса: база данных агента-владельца по адресу ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite
  • Обслуживание хранилища: служебные файлы SQLite WAL ограничиваются периодическими контрольными точками и контрольными точками при завершении работы.
  • Отслеживание файлов: изменения файлов памяти запускают переиндексацию с задержкой подавления дребезга (1,5 с).
  • Автоматическая переиндексация: когда меняется поставщик эмбеддингов, модель или конфигурация разбиения на фрагменты, весь индекс автоматически перестраивается.
  • Переиндексация по запросу: openclaw memory index --force
Вы также можете индексировать Markdown-файлы вне рабочей области с помощью memorySearch.extraPaths. См. справочник по конфигурации.

Когда использовать

Встроенный движок подходит большинству пользователей:
  • Работает сразу, без дополнительных зависимостей.
  • Хорошо справляется с поиском по ключевым словам и векторным поиском.
  • Поддерживает всех поставщиков эмбеддингов.
  • Гибридный поиск сочетает лучшее из обоих подходов к извлечению.
Рассмотрите переход на QMD, если вам нужны переранжирование, расширение запросов или индексирование каталогов вне рабочей области. Рассмотрите Honcho, если вам нужна память между сеансами с автоматическим моделированием пользователя.

Устранение неполадок

Поиск по памяти отключен? Проверьте openclaw memory status. Если поставщик не обнаружен, задайте его явно или добавьте ключ API. Локальный поставщик не обнаружен? Убедитесь, что локальный путь существует, и выполните:
openclaw memory status --deep --agent main
openclaw memory index --force --agent main
И автономные команды CLI, и Gateway используют один и тот же идентификатор поставщика local. Задайте memorySearch.provider: "local", если хотите использовать локальные эмбеддинги. Устаревшие результаты? Выполните openclaw memory index --force, чтобы перестроить индекс. Средство отслеживания может пропускать изменения в редких пограничных случаях. sqlite-vec не загружается? OpenClaw автоматически переключается на косинусное сходство в процессе. openclaw memory status --deep сообщает о локальном векторном хранилище отдельно от поставщика эмбеддингов, поэтому Vector store: unavailable указывает на загрузку sqlite-vec, а Embeddings: unavailable указывает на готовность поставщика/авторизации или модели. Проверьте журналы на наличие конкретной ошибки загрузки.

Конфигурация

Сведения о настройке поставщика эмбеддингов, параметрах гибридного поиска (веса, MMR, временное затухание), пакетном индексировании, мультимодальной памяти, sqlite-vec, дополнительных путях и всех остальных параметрах конфигурации см. в справочнике по конфигурации памяти.

Связанные материалы