Fonctionnalités
- Recherche par mots-clés via l’indexation de texte intégral FTS5 (score BM25).
- Recherche vectorielle via les embeddings de tout fournisseur pris en charge.
- Recherche hybride combinant les deux approches pour obtenir les meilleurs résultats.
- Prise en charge du CJK via la tokenisation par trigrammes pour le chinois, le japonais et le coréen.
- Accélération sqlite-vec pour les requêtes vectorielles dans la base de données (facultative).
Prise en main
Par défaut, le moteur intégré utilise les embeddings OpenAI. SiOPENAI_API_KEY ou
models.providers.openai.apiKey est déjà configuré, la recherche vectorielle fonctionne
sans configuration supplémentaire de la mémoire.
Pour définir explicitement un fournisseur :
local.modelPath vers un fichier GGUF :
Fournisseurs d’embeddings pris en charge
Définissez
memorySearch.provider pour ne plus utiliser OpenAI.
Fonctionnement de l’indexation
OpenClaw indexeMEMORY.md et memory/*.md sous forme de fragments (400 tokens avec
un chevauchement de 80 tokens par défaut) et les stocke dans une base de données SQLite
propre à chaque agent.
- Emplacement de l’index : la base de données de l’agent propriétaire à l’emplacement
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite - Maintenance du stockage : la taille des fichiers annexes WAL de SQLite est limitée au moyen de points de contrôle périodiques et exécutés lors de l’arrêt.
- Surveillance des fichiers : les modifications apportées aux fichiers de mémoire déclenchent une réindexation temporisée (1,5 s par défaut).
- Réindexation automatique : l’index est reconstruit automatiquement lorsque le fournisseur d’embeddings, le modèle, la configuration du découpage, les sources configurées ou la portée changent.
- Réindexation à la demande :
openclaw memory index --force
Vous pouvez également indexer des fichiers Markdown situés hors de l’espace de travail avec
memorySearch.extraPaths. Consultez la
référence de configuration.Cas d’utilisation
Le moteur intégré convient à la plupart des utilisateurs :- Fonctionne immédiatement sans dépendances supplémentaires.
- Gère efficacement la recherche par mots-clés et la recherche vectorielle.
- Prend en charge tous les fournisseurs d’embeddings.
- La recherche hybride combine les avantages des deux approches de récupération.
Dépannage
La recherche en mémoire est désactivée ? Vérifiezopenclaw memory status. Si aucun fournisseur n’est
détecté, définissez-en un explicitement ou ajoutez une clé d’API.
Le fournisseur local n’est pas détecté ? Vérifiez que le chemin local existe et exécutez :
local.
Définissez memorySearch.provider: "local" lorsque vous souhaitez utiliser des embeddings locaux.
Résultats obsolètes ? Exécutez openclaw memory index --force pour reconstruire l’index. Le mécanisme de surveillance
peut manquer certaines modifications dans de rares cas limites.
sqlite-vec ne se charge pas ? OpenClaw utilise automatiquement en remplacement la similarité
cosinus calculée dans le processus. openclaw memory status --deep indique le magasin
vectoriel local séparément du fournisseur d’embeddings : Vector store: unavailable signale donc un problème de chargement de sqlite-vec, tandis que Embeddings: unavailable
signale un problème lié au fournisseur, à l’authentification ou à la disponibilité du modèle. Consultez les journaux pour connaître l’erreur
de chargement précise.