Sessions and memory
Wbudowany silnik pamięci
Wbudowany silnik jest domyślnym backendem pamięci. Przechowuje indeks pamięci w bazie danych SQLite osobnej dla każdego agenta i nie wymaga dodatkowych zależności, aby rozpocząć.
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ż skonfigurowane
OPENAI_API_KEY albo models.providers.openai.apiKey, wyszukiwanie wektorowe
działa bez dodatkowej konfiguracji pamięci.
Aby jawnie ustawić dostawcę:
{ agents: { defaults: { memorySearch: { provider: "openai", }, }, },}Bez dostawcy osadzeń dostępne jest tylko wyszukiwanie po słowach kluczowych.
Aby wymusić lokalne osadzenia GGUF, zainstaluj oficjalny plugin dostawcy llama.cpp,
a następnie wskaż w local.modelPath plik 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", }, }, }, },}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 |
Ustaw memorySearch.provider, aby przełączyć się z OpenAI na innego dostawcę.
Jak działa indeksowanie
OpenClaw indeksuje MEMORY.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
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.
Rozważ przełączenie na QMD, jeśli potrzebujesz rerankingu, rozszerzania zapytań albo chcesz indeksować katalogi poza obszarem roboczym.
Rozważ Honcho, jeśli chcesz pamięć między sesjami z automatycznym modelowaniem użytkownika.
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:
openclaw memory status --deep --agent mainopenclaw memory index --force --agent mainZarówno samodzielne polecenia CLI, jak i Gateway używają tego samego identyfikatora dostawcy 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.
Konfiguracja
Informacje o konfiguracji dostawcy osadzeń, dostrajaniu wyszukiwania hybrydowego (wagi, MMR, zanikanie czasowe), indeksowaniu wsadowym, pamięci multimodalnej, sqlite-vec, dodatkowych ścieżkach i wszystkich innych opcjach konfiguracji znajdziesz w odniesieniu konfiguracji pamięci.