Перейти до основного вмісту
Вбудований рушій є типовим бекендом пам’яті. Він зберігає індекс пам’яті в 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Примітки
BedrockbedrockВикористовує ланцюг облікових даних AWS
DeepInfradeepinfraТипово: BAAI/bge-m3
GeminigeminiПідтримує мультимодальність (зображення + аудіо)
GitHub Copilotgithub-copilotВикористовує передплату Copilot
Локальнийlocal@openclaw/llama-cpp-provider
Mistralmistral
OllamaollamaЛокальний/самостійно розгорнутий
OpenAIopenaiТипово: text-embedding-3-small
OpenAI-суміснийopenai-compatibleУніверсальний endpoint /v1/embeddings
Voyagevoyage
Задайте 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
Ви також можете індексувати Markdown-файли поза робочою областю за допомогою memorySearch.extraPaths. Див. довідник із конфігурації.

Коли використовувати

Вбудований рушій є правильним вибором для більшості користувачів:
  • Працює одразу без додаткових залежностей.
  • Добре обробляє пошук за ключовими словами та векторний пошук.
  • Підтримує всіх постачальників embeddings.
  • Гібридний пошук поєднує найкраще з обох підходів до пошуку.
Розгляньте перехід на QMD, якщо вам потрібні reranking, розширення запиту або індексування каталогів поза робочою областю. Розгляньте Honcho, якщо вам потрібна пам’ять між сеансами з автоматичним моделюванням користувача.

Усунення несправностей

Пошук у пам’яті вимкнено? Перевірте openclaw memory status. Якщо постачальника не виявлено, задайте його явно або додайте ключ API. Локального постачальника не виявлено? Переконайтеся, що локальний шлях існує, і виконайте:
openclaw memory status --deep --agent main
openclaw 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, додаткові шляхи та всі інші параметри конфігурації, див. довідник із конфігурації пам’яті.

Пов’язане