Sessions and memory
Встроенный движок памяти
Встроенный движок — это бэкенд памяти по умолчанию. Он хранит индекс памяти в 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 | Примечания |
|---|---|---|
| Bedrock | bedrock |
Использует цепочку учетных данных AWS |
| DeepInfra | deepinfra |
По умолчанию: BAAI/bge-m3 |
| Gemini | gemini |
Поддерживает мультимодальность (изображение + аудио) |
| GitHub Copilot | github-copilot |
Использует подписку Copilot |
| Локальный | local |
@openclaw/llama-cpp-provider |
| Mistral | mistral |
|
| Ollama | ollama |
Локальный/самостоятельно размещенный |
| OpenAI | openai |
По умолчанию: text-embedding-3-small |
| Совместимый с OpenAI | openai-compatible |
Универсальная конечная точка /v1/embeddings |
| Voyage | voyage |
Задайте 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
Когда использовать
Встроенный движок подходит большинству пользователей:
- Работает сразу, без дополнительных зависимостей.
- Хорошо справляется с поиском по ключевым словам и векторным поиском.
- Поддерживает всех поставщиков эмбеддингов.
- Гибридный поиск сочетает лучшее из обоих подходов к извлечению.
Рассмотрите переход на 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, дополнительных путях и всех остальных параметрах конфигурации см. в справочнике по конфигурации памяти.