Cosa offre
- Ricerca per parola chiave tramite indicizzazione full-text FTS5 (punteggio BM25).
- Ricerca vettoriale tramite embeddings da qualsiasi provider supportato.
- Ricerca ibrida che combina entrambe per risultati migliori.
- Supporto CJK tramite tokenizzazione trigram per cinese, giapponese e coreano.
- Accelerazione sqlite-vec per query vettoriali nel database (opzionale).
Per iniziare
Per impostazione predefinita, il motore integrato usa gli embeddings OpenAI. Se hai giàOPENAI_API_KEY o models.providers.openai.apiKey configurati, la ricerca vettoriale
funziona senza configurazione di memoria aggiuntiva.
Per impostare esplicitamente un provider:
local.modelPath a un file GGUF:
Provider di embedding supportati
| Provider | ID | Note |
|---|---|---|
| Bedrock | bedrock | Usa la catena di credenziali AWS |
| DeepInfra | deepinfra | Predefinito: BAAI/bge-m3 |
| Gemini | gemini | Supporta multimodale (immagine + audio) |
| GitHub Copilot | github-copilot | Usa l’abbonamento Copilot |
| Local | local | @openclaw/llama-cpp-provider |
| Mistral | mistral | |
| Ollama | ollama | Locale/self-hosted |
| OpenAI | openai | Predefinito: text-embedding-3-small |
| OpenAI-compatible | openai-compatible | Endpoint generico /v1/embeddings |
| Voyage | voyage |
memorySearch.provider per passare da OpenAI a un altro provider.
Come funziona l’indicizzazione
OpenClaw indicizzaMEMORY.md e memory/*.md in chunk (~400 token con
sovrapposizione di 80 token) e li archivia in un database SQLite per agente.
- Posizione dell’indice: il database dell’agente proprietario in
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite - Manutenzione dell’archiviazione: i sidecar WAL SQLite sono limitati con checkpoint periodici e all’arresto.
- Monitoraggio dei file: le modifiche ai file di memoria attivano una reindicizzazione con debounce (1,5 s).
- Reindicizzazione automatica: quando cambiano il provider di embedding, il modello o la configurazione di chunking, l’intero indice viene ricostruito automaticamente.
- Reindicizzazione su richiesta:
openclaw memory index --force
Puoi anche indicizzare file Markdown fuori dallo spazio di lavoro con
memorySearch.extraPaths. Consulta il
riferimento di configurazione.Quando usarlo
Il motore integrato è la scelta giusta per la maggior parte degli utenti:- Funziona subito senza dipendenze aggiuntive.
- Gestisce bene la ricerca per parola chiave e vettoriale.
- Supporta tutti i provider di embedding.
- La ricerca ibrida combina il meglio di entrambi gli approcci di recupero.
Risoluzione dei problemi
Ricerca in memoria disabilitata? Controllaopenclaw memory status. Se non viene
rilevato alcun provider, impostane uno esplicitamente o aggiungi una chiave API.
Provider locale non rilevato? Verifica che il percorso locale esista ed esegui:
local.
Imposta memorySearch.provider: "local" quando vuoi embeddings locali.
Risultati obsoleti? Esegui openclaw memory index --force per ricostruire. Il watcher
può non rilevare modifiche in rari casi limite.
sqlite-vec non viene caricato? OpenClaw ripiega automaticamente sulla similarità coseno
in-process. openclaw memory status --deep segnala l’archivio vettoriale locale
separatamente dal provider di embedding, quindi Vector store: unavailable indica
il caricamento di sqlite-vec mentre Embeddings: unavailable indica provider/autenticazione
o prontezza del modello. Controlla i log per l’errore di caricamento specifico.