Возможности
- Поиск по ключевым словам с помощью полнотекстового индексирования FTS5 (ранжирование BM25).
- Векторный поиск с помощью эмбеддингов от любого поддерживаемого провайдера.
- Гибридный поиск, объединяющий оба подхода для получения наилучших результатов.
- Поддержка CJK с помощью триграммной токенизации для китайского, японского и корейского языков.
- Ускорение sqlite-vec для векторных запросов внутри базы данных (необязательно).
Начало работы
По умолчанию встроенный движок использует эмбеддинги OpenAI. ЕслиOPENAI_API_KEY или
models.providers.openai.apiKey уже настроен, векторный поиск работает
без дополнительной настройки памяти.
Чтобы явно указать провайдера:
local.modelPath файл GGUF:
Поддерживаемые провайдеры эмбеддингов
Чтобы отказаться от OpenAI, задайте
memorySearch.provider.
Как работает индексирование
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. См.
справочник по конфигурации.Когда использовать
Встроенный движок подходит большинству пользователей:- Работает сразу после установки без дополнительных зависимостей.
- Хорошо справляется с поиском по ключевым словам и векторным поиском.
- Поддерживает всех провайдеров эмбеддингов.
- Гибридный поиск сочетает преимущества обоих подходов к извлечению данных.
Устранение неполадок
Поиск по памяти отключен? Проверьтеopenclaw memory status. Если провайдер
не обнаружен, укажите его явно или добавьте ключ API.
Локальный провайдер не обнаружен? Убедитесь, что локальный путь существует, и выполните:
local.
Задайте memorySearch.provider: "local", если хотите использовать локальные эмбеддинги.
Устаревшие результаты? Выполните openclaw memory index --force для перестроения индекса. В редких
пограничных случаях средство отслеживания может пропустить изменения.
sqlite-vec не загружается? OpenClaw автоматически переключается на вычисление косинусного
сходства внутри процесса. openclaw memory status --deep сообщает о локальном
векторном хранилище отдельно от провайдера эмбеддингов, поэтому Vector store: unavailable указывает на загрузку sqlite-vec, а Embeddings: unavailable
— на готовность провайдера, аутентификации или модели. Найдите конкретную ошибку
загрузки в журналах.