Sessions and memory

Вбудований рушій пам’яті

Вбудований рушій є типовим бекендом пам’яті. Він зберігає індекс пам’яті в SQLite-базі даних для кожного агента й не потребує додаткових залежностей для початку роботи.

Що він надає

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

Початок роботи

Типово вбудований рушій використовує OpenAI embeddings. Якщо у вас уже налаштовано OPENAI_API_KEY або models.providers.openai.apiKey, векторний пошук працює без додаткової конфігурації пам’яті.

Щоб явно задати постачальника:

json5
{  agents: {    defaults: {      memorySearch: {        provider: "openai",      },    },  },}

Без постачальника embeddings доступний лише пошук за ключовими словами.

Щоб примусово використовувати локальні GGUF embeddings, установіть офіційний Plugin постачальника llama.cpp, а потім спрямуйте local.modelPath на файл GGUF:

bash
openclaw plugins install @openclaw/llama-cpp-provider
json5
{  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.

Локального постачальника не виявлено? Переконайтеся, що локальний шлях існує, і виконайте:

bash
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, додаткові шляхи та всі інші параметри конфігурації, див. довідник із конфігурації пам’яті.

Пов’язане

Was this useful?
On this page

On this page