Funzionalità offerte
- Ricerca per parole chiave tramite indicizzazione full-text FTS5 (punteggio BM25).
- Ricerca vettoriale tramite incorporamenti forniti da qualsiasi provider supportato.
- Ricerca ibrida che combina entrambe per ottenere i risultati migliori.
- Supporto CJK tramite tokenizzazione a trigrammi per cinese, giapponese e coreano.
- Accelerazione sqlite-vec per le query vettoriali nel database (facoltativa).
Per iniziare
Per impostazione predefinita, il motore integrato utilizza gli incorporamenti di OpenAI. SeOPENAI_API_KEY o
models.providers.openai.apiKey è già configurato, la ricerca vettoriale funziona
senza configurazioni aggiuntive della memoria.
Per impostare esplicitamente un provider:
local.modelPath su un file GGUF:
Provider di incorporamenti supportati
Imposta
memorySearch.provider per non utilizzare OpenAI.
Funzionamento dell’indicizzazione
OpenClaw indicizzaMEMORY.md e memory/*.md in segmenti (400 token con
una sovrapposizione di 80 token per impostazione predefinita) 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 file collaterali WAL di SQLite sono mantenuti entro limiti definiti mediante checkpoint periodici e all’arresto.
- Monitoraggio dei file: le modifiche ai file di memoria attivano una reindicizzazione con debounce (valore predefinito: 1,5 s).
- Reindicizzazione automatica: l’indice viene ricostruito automaticamente quando cambiano il provider di incorporamenti, il modello, la configurazione della segmentazione, le sorgenti configurate o l’ambito.
- Reindicizzazione su richiesta:
openclaw memory index --force
Puoi indicizzare anche file Markdown esterni allo spazio di lavoro con
memorySearch.extraPaths. Consulta il
riferimento della configurazione.Quando utilizzarlo
Il motore integrato è la scelta giusta per la maggior parte degli utenti:- Funziona immediatamente senza dipendenze aggiuntive.
- Gestisce bene la ricerca per parole chiave e quella vettoriale.
- Supporta tutti i provider di incorporamenti.
- La ricerca ibrida combina gli aspetti migliori di entrambi gli approcci di recupero.
Risoluzione dei problemi
Ricerca nella 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 utilizzare incorporamenti locali.
Risultati obsoleti? Esegui openclaw memory index --force per ricostruire l’indice. Il sistema di monitoraggio
potrebbe non rilevare modifiche in rari casi limite.
sqlite-vec non viene caricato? OpenClaw ricorre automaticamente alla similarità del coseno
calcolata nel processo. openclaw memory status --deep segnala l’archivio vettoriale
locale separatamente dal provider di incorporamenti, quindi Vector store: unavailable indica un problema di caricamento di sqlite-vec, mentre Embeddings: unavailable
indica un problema del provider o dell’autenticazione oppure che il modello non è pronto. Controlla i log per l’errore
di caricamento specifico.