Sessions and memory
Вбудований рушій пам’яті
Вбудований рушій є типовим бекендом пам’яті. Він зберігає індекс пам’яті в SQLite-базі даних для кожного агента й не потребує додаткових залежностей для початку роботи.
Що він надає
- Пошук за ключовими словами через повнотекстове індексування FTS5 (оцінювання BM25).
- Векторний пошук через embeddings від будь-якого підтримуваного постачальника.
- Гібридний пошук, що поєднує обидва підходи для найкращих результатів.
- Підтримку CJK через триграмну токенізацію для китайської, японської та корейської мов.
- Прискорення sqlite-vec для векторних запитів у базі даних (необов’язково).
Початок роботи
Типово вбудований рушій використовує OpenAI embeddings. Якщо у вас уже налаштовано
OPENAI_API_KEY або models.providers.openai.apiKey, векторний пошук
працює без додаткової конфігурації пам’яті.
Щоб явно задати постачальника:
{ agents: { defaults: { memorySearch: { provider: "openai", }, }, },}Без постачальника embeddings доступний лише пошук за ключовими словами.
Щоб примусово використовувати локальні GGUF embeddings, установіть офіційний 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", }, }, }, },}Підтримувані постачальники embeddings
| Постачальник | 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 |
Універсальний endpoint /v1/embeddings |
| Voyage | voyage |
Задайте memorySearch.provider, щоб перейти з OpenAI на іншого постачальника.
Як працює індексування
OpenClaw індексує MEMORY.md і memory/*.md у фрагменти (~400 токенів із
перекриттям 80 токенів) і зберігає їх у SQLite-базі даних для кожного агента.
- Розташування індексу: база даних відповідного агента за адресою
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite - Обслуговування сховища: побічні файли SQLite WAL обмежуються періодичними checkpoint і checkpoint під час завершення роботи.
- Відстеження файлів: зміни у файлах пам’яті запускають повторне індексування з debounce (1,5 с).
- Автоматичне повторне індексування: коли змінюється постачальник embeddings, модель або конфігурація фрагментації, весь індекс автоматично перебудовується.
- Повторне індексування на вимогу:
openclaw memory index --force
Коли використовувати
Вбудований рушій є правильним вибором для більшості користувачів:
- Працює одразу без додаткових залежностей.
- Добре обробляє пошук за ключовими словами та векторний пошук.
- Підтримує всіх постачальників embeddings.
- Гібридний пошук поєднує найкраще з обох підходів до пошуку.
Розгляньте перехід на QMD, якщо вам потрібні reranking, розширення запиту або індексування каталогів поза робочою областю.
Розгляньте Honcho, якщо вам потрібна пам’ять між сеансами з автоматичним моделюванням користувача.
Усунення несправностей
Пошук у пам’яті вимкнено? Перевірте openclaw memory status. Якщо постачальника
не виявлено, задайте його явно або додайте ключ API.
Локального постачальника не виявлено? Переконайтеся, що локальний шлях існує, і виконайте:
openclaw memory status --deep --agent mainopenclaw memory index --force --agent mainІ автономні команди CLI, і Gateway використовують той самий ID постачальника local.
Задайте memorySearch.provider: "local", коли хочете використовувати локальні embeddings.
Застарілі результати? Виконайте openclaw memory index --force, щоб перебудувати індекс. Watcher
може пропустити зміни в рідкісних крайових випадках.
sqlite-vec не завантажується? OpenClaw автоматично повертається до in-process cosine similarity.
openclaw memory status --deep повідомляє про локальне векторне сховище
окремо від постачальника embeddings, тож Vector store: unavailable вказує
на завантаження sqlite-vec, тоді як Embeddings: unavailable вказує на постачальника/auth
або готовність моделі. Перевірте журнали на конкретну помилку завантаження.
Конфігурація
Щоб налаштувати постачальника embeddings, тонко налаштувати гібридний пошук (ваги, MMR, temporal decay), пакетне індексування, мультимодальну пам’ять, sqlite-vec, додаткові шляхи та всі інші параметри конфігурації, див. довідник із конфігурації пам’яті.