Sessions and memory
Встроенный механизм памяти
Встроенный движок — это бэкенд памяти по умолчанию. Он хранит индекс памяти в отдельной для каждого агента базе данных SQLite и не требует дополнительных зависимостей для начала работы.
Возможности
- Поиск по ключевым словам с помощью полнотекстового индексирования FTS5 (ранжирование BM25).
- Векторный поиск с помощью эмбеддингов от любого поддерживаемого провайдера.
- Гибридный поиск, объединяющий оба подхода для получения наилучших результатов.
- Поддержка CJK с помощью триграммной токенизации для китайского, японского и корейского языков.
- Ускорение sqlite-vec для векторных запросов внутри базы данных (необязательно).
Начало работы
По умолчанию встроенный движок использует эмбеддинги OpenAI. Если OPENAI_API_KEY или
models.providers.openai.apiKey уже настроен, векторный поиск работает
без дополнительной настройки памяти.
Чтобы явно указать провайдера:
{ agents: { defaults: { memorySearch: { provider: "openai", }, }, },}Без провайдера эмбеддингов доступен только поиск по ключевым словам.
Чтобы принудительно использовать локальные эмбеддинги GGUF, установите официальный
плагин провайдера 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", }, }, }, },}Поддерживаемые провайдеры эмбеддингов
| Провайдер | Идентификатор | Примечания |
|---|---|---|
| Bedrock | bedrock |
Использует цепочку учетных данных AWS |
| DeepInfra | deepinfra |
По умолчанию: BAAI/bge-m3 |
| Gemini | gemini |
Поддерживает мультимодальность (изображения и аудио) |
| GitHub Copilot | github-copilot |
Использует вашу подписку Copilot |
| LM Studio | lmstudio |
Локальный или самостоятельно размещенный |
| Локальный | local |
@openclaw/llama-cpp-provider |
| Mistral | mistral |
|
| Ollama | ollama |
Локальный или самостоятельно размещенный |
| OpenAI | openai |
По умолчанию: text-embedding-3-small |
| Совместимый с OpenAI | openai-compatible |
Универсальная конечная точка /v1/embeddings |
| Voyage | voyage |
Чтобы отказаться от 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
Когда использовать
Встроенный движок подходит большинству пользователей:
- Работает сразу после установки без дополнительных зависимостей.
- Хорошо справляется с поиском по ключевым словам и векторным поиском.
- Поддерживает всех провайдеров эмбеддингов.
- Гибридный поиск сочетает преимущества обоих подходов к извлечению данных.
Рассмотрите переход на QMD, если вам нужны повторное ранжирование, расширение запросов или индексирование каталогов за пределами рабочего пространства.
Рассмотрите Honcho, если вам нужна память между сеансами с автоматическим моделированием пользователя.
Устранение неполадок
Поиск по памяти отключен? Проверьте openclaw memory status. Если провайдер
не обнаружен, укажите его явно или добавьте ключ API.
Локальный провайдер не обнаружен? Убедитесь, что локальный путь существует, и выполните:
openclaw memory status --deep --agent mainopenclaw 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, дополнительных путей и всех остальных параметров конфигурации см. в справочнике по конфигурации памяти.