Co zapewnia
- Wyszukiwanie po słowach kluczowych przez pełnotekstowe indeksowanie FTS5 (punktacja BM25).
- Wyszukiwanie wektorowe przez osadzenia z dowolnego obsługiwanego dostawcy.
- Wyszukiwanie hybrydowe, które łączy oba podejścia dla najlepszych wyników.
- Obsługa CJK przez tokenizację trigramową dla języka chińskiego, japońskiego i koreańskiego.
- Przyspieszenie sqlite-vec dla zapytań wektorowych w bazie danych (opcjonalnie).
Pierwsze kroki
Domyślnie wbudowany silnik używa osadzeń OpenAI. Jeśli masz już skonfigurowaneOPENAI_API_KEY albo models.providers.openai.apiKey, wyszukiwanie wektorowe
działa bez dodatkowej konfiguracji pamięci.
Aby jawnie ustawić dostawcę:
local.modelPath plik GGUF:
Obsługiwani dostawcy osadzeń
| Dostawca | ID | Uwagi |
|---|---|---|
| Bedrock | bedrock | Używa łańcucha poświadczeń AWS |
| DeepInfra | deepinfra | Domyślnie: BAAI/bge-m3 |
| Gemini | gemini | Obsługuje multimodalność (obraz + audio) |
| GitHub Copilot | github-copilot | Używa subskrypcji Copilot |
| Lokalny | local | @openclaw/llama-cpp-provider |
| Mistral | mistral | |
| Ollama | ollama | Lokalny/samodzielnie hostowany |
| OpenAI | openai | Domyślnie: text-embedding-3-small |
| Zgodny z OpenAI | openai-compatible | Ogólny punkt końcowy /v1/embeddings |
| Voyage | voyage |
memorySearch.provider, aby przełączyć się z OpenAI na innego dostawcę.
Jak działa indeksowanie
OpenClaw indeksujeMEMORY.md i memory/*.md jako fragmenty (~400 tokenów z
nakładaniem 80 tokenów) i przechowuje je w bazie danych SQLite osobnej dla każdego agenta.
- Lokalizacja indeksu: baza danych agenta właściciela pod adresem
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite - Utrzymanie magazynu: pliki poboczne SQLite WAL są ograniczane przez okresowe punkty kontrolne oraz punkty kontrolne przy zamykaniu.
- Obserwowanie plików: zmiany w plikach pamięci wyzwalają reindeksowanie z opóźnieniem antydrganiowym (1,5 s).
- Automatyczne reindeksowanie: gdy dostawca osadzeń, model lub konfiguracja dzielenia na fragmenty się zmieni, cały indeks jest automatycznie odbudowywany.
- Reindeksowanie na żądanie:
openclaw memory index --force
Możesz także indeksować pliki Markdown spoza obszaru roboczego za pomocą
memorySearch.extraPaths. Zobacz
odniesienie konfiguracji.Kiedy używać
Wbudowany silnik jest właściwym wyborem dla większości użytkowników:- Działa od razu bez dodatkowych zależności.
- Dobrze obsługuje wyszukiwanie po słowach kluczowych i wektorowe.
- Obsługuje wszystkich dostawców osadzeń.
- Wyszukiwanie hybrydowe łączy najlepsze cechy obu podejść do pobierania.
Rozwiązywanie problemów
Wyszukiwanie w pamięci jest wyłączone? Sprawdźopenclaw memory status. Jeśli żaden dostawca nie jest
wykryty, ustaw go jawnie albo dodaj klucz API.
Lokalny dostawca nie został wykryty? Potwierdź, że lokalna ścieżka istnieje, i uruchom:
local.
Ustaw memorySearch.provider: "local", gdy chcesz używać lokalnych osadzeń.
Nieaktualne wyniki? Uruchom openclaw memory index --force, aby odbudować indeks. Obserwator
może pominąć zmiany w rzadkich przypadkach brzegowych.
sqlite-vec się nie ładuje? OpenClaw automatycznie przełącza się na podobieństwo cosinusowe
w procesie. openclaw memory status --deep raportuje lokalny magazyn wektorowy
oddzielnie od dostawcy osadzeń, więc Vector store: unavailable wskazuje
na ładowanie sqlite-vec, natomiast Embeddings: unavailable wskazuje na dostawcę/uwierzytelnianie
albo gotowość modelu. Sprawdź w logach konkretny błąd ładowania.