Przejdź do głównej treści

Wbudowany silnik pamięci

Wbudowany silnik jest domyślnym backendem pamięci. Przechowuje indeks pamięci w bazie danych SQLite przypisanej do agenta i nie wymaga żadnych dodatkowych zależności na start.

Co zapewnia

  • Wyszukiwanie słów kluczowych przez indeksowanie pełnotekstowe FTS5 (ocenianie BM25).
  • Wyszukiwanie wektorowe przez embeddingi od dowolnego obsługiwanego dostawcy.
  • Wyszukiwanie hybrydowe łączące oba podejścia dla najlepszych wyników.
  • Obsługa CJK przez tokenizację trigramową dla języków chińskiego, japońskiego i koreańskiego.
  • Przyspieszenie sqlite-vec dla zapytań wektorowych w bazie danych (opcjonalne).

Pierwsze kroki

Jeśli masz klucz API do OpenAI, Gemini, Voyage lub Mistral, wbudowany silnik automatycznie go wykrywa i włącza wyszukiwanie wektorowe. Konfiguracja nie jest potrzebna. Aby jawnie ustawić dostawcę:
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai",
      },
    },
  },
}
Bez dostawcy embeddingów dostępne jest tylko wyszukiwanie słów kluczowych.

Obsługiwani dostawcy embeddingów

DostawcaIDWykrywany automatycznieUwagi
OpenAIopenaiTakDomyślnie: text-embedding-3-small
GeminigeminiTakObsługuje multimodalność (obraz + audio)
VoyagevoyageTak
MistralmistralTak
OllamaollamaNieLokalny, ustaw jawnie
LocallocalTak (jako pierwszy)Model GGUF, pobieranie ~0.6 GB
Automatyczne wykrywanie wybiera pierwszego dostawcę, którego klucz API można rozwiązać, w pokazanej kolejności. Ustaw memorySearch.provider, aby to nadpisać.

Jak działa indeksowanie

OpenClaw indeksuje MEMORY.md oraz memory/*.md do fragmentów (~400 tokenów z nakładaniem 80 tokenów) i przechowuje je w bazie danych SQLite przypisanej do agenta.
  • Lokalizacja indeksu: ~/.openclaw/memory/<agentId>.sqlite
  • Obserwowanie plików: zmiany w plikach pamięci wyzwalają opóźnione ponowne indeksowanie (1.5s).
  • Automatyczne ponowne indeksowanie: gdy zmieni się dostawca embeddingów, model lub konfiguracja dzielenia na fragmenty, cały indeks jest automatycznie przebudowywany.
  • Ponowne indeksowanie na żądanie: openclaw memory index --force
Możesz także indeksować pliki Markdown spoza workspace za pomocą memorySearch.extraPaths. Zobacz dokumentację konfiguracji.

Kiedy używać

Wbudowany silnik to właściwy wybór dla większości użytkowników:
  • Działa od razu, bez dodatkowych zależności.
  • Dobrze obsługuje wyszukiwanie słów kluczowych i wektorowe.
  • Obsługuje wszystkich dostawców embeddingów.
  • Wyszukiwanie hybrydowe łączy zalety obu podejść do wyszukiwania.
Rozważ przejście na QMD, jeśli potrzebujesz rerankingu, rozwijania zapytań albo chcesz indeksować katalogi spoza workspace. Rozważ Honcho, jeśli chcesz pamięć między sesjami z automatycznym modelowaniem użytkownika.

Rozwiązywanie problemów

Wyszukiwanie pamięci jest wyłączone? Sprawdź openclaw memory status. Jeśli nie wykryto dostawcy, ustaw go jawnie lub dodaj klucz API. Nieaktualne wyniki? Uruchom openclaw memory index --force, aby przebudować indeks. Obserwator może w rzadkich przypadkach nie wychwycić zmian. sqlite-vec się nie ładuje? OpenClaw automatycznie przełącza się na obliczanie podobieństwa cosinusowego w procesie. Sprawdź logi, aby zobaczyć konkretny błąd ładowania.

Konfiguracja

Informacje o konfiguracji dostawcy embeddingów, strojeniu wyszukiwania hybrydowego (wagi, MMR, czasowy zanik), indeksowaniu wsadowym, pamięci multimodalnej, sqlite-vec, dodatkowych ścieżkach i wszystkich pozostałych opcjach konfiguracji znajdziesz w dokumentacji konfiguracji pamięci.