Ajouter la recherche sémantique à la mémoire OpenClaw : retrouver par sens
Indexez vos fichiers mémoire markdown OpenClaw dans une base vectorielle et retrouvez n'importe quelle décision par sens, pas seulement par mots-clés, avec memsearch.
Quel modèle veux-tu par défaut ?
Quel canal veux-tu utiliser ?
Serveurs limités, plus que 12 disponibles
OpenClaw stocke tout sous forme de fichiers markdown. Chaque decision, chaque conversation, chaque note que votre agent a prise existe en texte brut dans un repertoire. C'est ideal pour la portabilite et la transparence : vous pouvez lire la memoire de votre agent avec n'importe quel editeur de texte, la sauvegarder avec une simple copie de fichier, et la parcourir avec grep depuis le terminal.
Mais quand la memoire grandit au fil des semaines et des mois, grep ne suffit plus. Vous cherchez "cache" mais la decision parlait de "on a choisi Redis pour le stockage de session". Vous cherchez "deploiement" mais la note disait "mise en production via Cloudflare Pages". La recherche par mots-cles rate les correspondances semantiques, et charger des fichiers entiers dans le contexte de l'IA gaspille des tokens sur du contenu non pertinent.
Ce guide montre comment ajouter une recherche vectorielle semantique a la memoire OpenClaw avec memsearch. Cherchez par sens, pas par mots, et retrouvez n'importe quelle memoire en millisecondes.
Le probleme de la recherche par mots-cles
Le systeme de memoire d'OpenClaw est simple et puissant : des fichiers markdown dans un repertoire. Mais ce stockage simple cree un probleme de recherche a grande echelle :
Limites de la recherche par mots-cles (grep) :
- "Quelle solution de cache a-t-on choisie ?" ne retourne rien parce que la note dit "Redis pour le stockage de session"
- "Quand a-t-on decide du framework front ?" rate "on est partis sur React pour la couche UI"
- Les correspondances partielles vous noient sous les resultats non pertinents
- Pas de classement : toutes les correspondances sont traitees de la meme facon
Limites du chargement du contexte complet :
- Un mois d'utilisation active genere des megaoctets de fichiers memoire
- Charger tout dans la fenetre de contexte de l'IA gaspille des tokens
- Vous payez pour du contenu non pertinent a chaque appel API
- Les fenetres de contexte ont des limites, et vous les atteignez vite
La recherche semantique resout ces deux problemes. Vous decrivez ce que vous cherchez en langage naturel, et le systeme trouve les morceaux pertinents par le sens, pas par correspondance exacte de mots.
Ce que vous allez construire
Une couche de recherche semantique par-dessus vos fichiers memoire OpenClaw existants :
- Indexation : tous les fichiers markdown sont decoupes, vectorises et stockes dans une base vectorielle
- Recherche : les requetes en langage naturel retournent les morceaux les plus pertinents classes par similarite semantique
- Synchro live : un file watcher re-indexe automatiquement quand les fichiers changent
- Recherche hybride : combine la similarite vectorielle avec la correspondance par mots-cles (BM25) pour les meilleurs resultats
Le principe cle : vos fichiers markdown restent la source de verite. L'index vectoriel n'est qu'un cache derive que vous pouvez reconstruire a tout moment. Aucun fichier n'est jamais modifie.
Pre-requis
- memsearch : CLI de recherche vectorielle pour fichiers markdown (obligatoire)
- Python 3.10+ : runtime pour memsearch (obligatoire)
- Fournisseur d'embeddings : genere les vecteurs (obligatoire, option locale disponible)
memsearch est un outil Python autonome qui ne necessite aucun skill OpenClaw depuis ClawHub.
Setup pas a pas
Etape 1 : Installer memsearch
pip install memsearch
Pour un setup entierement local sans cle API :
pip install "memsearch[local]"
Etape 2 : Lancer l'assistant de configuration
memsearch inclut un setup interactif qui vous guide dans le choix du fournisseur d'embeddings et des parametres de base :
memsearch config init
L'assistant vous demande de choisir :
- Fournisseur d'embeddings : OpenAI (meilleure qualite), Google, Voyage, Ollama ou local (pas de cle API)
- Base vectorielle : Milvus Lite (par defaut, aucun setup requis) ou instance Milvus externe
- Parametres de decoupage : taille et chevauchement pour la segmentation des documents
Pour la plupart des utilisateurs, les valeurs par defaut fonctionnent bien. Si vous voulez zero dependance externe, choisissez le fournisseur d'embeddings local.
Etape 3 : Indexer vos fichiers memoire
Pointez memsearch vers votre repertoire memoire OpenClaw :
memsearch index ~/clawd/memory/
Cette commande :
- Scanne tous les fichiers markdown du repertoire
- Decoupe chaque fichier en morceaux semantiques
- Genere des embeddings pour chaque morceau
- Stocke tout dans la base vectorielle
- Calcule des hash SHA-256 pour que la re-indexation ignore le contenu inchange
Pour un workspace OpenClaw typique avec quelques mois de memoire, l'indexation initiale prend 30 a 60 secondes.
Etape 4 : Rechercher dans vos memoires
Cherchez maintenant par sens :
memsearch search "quelle solution de cache a-t-on choisie ?"
Resultat :
[1] memory/2026-02-15.md (chunk 3, score: 0.89)
"Decide de prendre Redis pour le stockage de session. PostgreSQL gere
les donnees persistantes. On a evalue Memcached mais Redis gagne
sur les fonctionnalites (pub/sub, sorted sets) et on l'a deja deploye..."
[2] memory/2026-02-10.md (chunk 7, score: 0.72)
"Discussion performance : temps de reponse API a 200ms en moyenne.
Ajouter une couche de cache pourrait amener ca a moins de 50ms pour les
requetes repetees..."
[3] memory/dev-sessions/2026-02-14-api.md (chunk 2, score: 0.68)
"Strategie d'invalidation de cache : write-through pour les donnees
utilisateur, TTL (5min) pour les resultats de recherche..."
Notez : la requete mentionne "cache" mais le premier resultat parle de "Redis pour le stockage de session". La recherche semantique comprend qu'il s'agit du meme sujet.
Etape 5 : Activer la synchro live
Lancez le file watcher pour que les nouvelles memoires soient indexees automatiquement :
memsearch watch ~/clawd/memory/
Ca tourne en arriere-plan et re-indexe chaque fichier qui change. Grace au hash SHA-256, seul le contenu nouveau ou modifie est vectorise, donc pas d'appels API gaspilles.
Etape 6 : Integrer avec OpenClaw
Indiquez a votre agent OpenClaw d'utiliser memsearch pour la recherche en memoire :
Quand je te demande de rappeler quelque chose de nos conversations ou decisions passees :
1. Utilise memsearch pour chercher dans ton repertoire memoire
2. Retourne les resultats les plus pertinents avec le contexte
3. Si la recherche ne retourne rien de pertinent, dis-le et propose une recherche plus large
Commande : memsearch search "requete" --top-k 5
Utilise aussi memsearch proactivement quand :
- Je fais reference a une decision passee et tu veux verifier les details
- Tu as besoin du contexte d'une discussion precedente pour une tache en cours
- Je demande "on a deja parle de X ?"
Comment ca marche techniquement
Embeddings vectoriels
Chaque morceau de texte est converti en un vecteur haute dimension (typiquement 768 ou 1536 dimensions) qui capture son sens semantique. Des concepts similaires produisent des vecteurs similaires, quels que soient les mots specifiques utilises.
Par exemple :
- "Redis pour le cache de session" et "cache memoire avec Redis" produisent des vecteurs quasi identiques
- "Redis pour le cache de session" et "restaurant italien rue du Commerce" produisent des vecteurs tres differents
Recherche hybride (dense + BM25)
memsearch ne s'appuie pas uniquement sur les vecteurs. Il combine deux methodes :
- Recherche vectorielle dense : trouve le contenu semantiquement similaire (ideal pour "qu'a-t-on decide sur la performance ?")
- Recherche plein texte BM25 : trouve les correspondances exactes de mots-cles (ideal pour "trouve les mentions de Redis")
- Reciprocal Rank Fusion (RRF) : fusionne les deux ensembles de resultats en une liste classee unique
Cette approche hybride capture a la fois les requetes par sens et par mots exacts, vous offrant le meilleur des deux mondes.
Deduplication intelligente
Chaque morceau est identifie par un hash SHA-256 de son contenu. Quand vous re-indexez (ou que le file watcher se declenche), memsearch compare les hash :
- Les morceaux inchanges sont ignores (zero appel API)
- Les nouveaux morceaux sont vectorises et ajoutes
- Les morceaux supprimes sont retires de l'index
Vous pouvez donc lancer memsearch index en cron sans vous soucier des couts.
Comparaison des fournisseurs d'embeddings
- OpenAI text-embedding-3-large : excellente qualite, rapide, 0,13 $/1M tokens, donnees envoyees a l'API
- OpenAI text-embedding-3-small : tres bonne qualite, rapide, 0,02 $/1M tokens, donnees envoyees a l'API
- Google text-embedding-004 : tres bonne qualite, rapide, palier gratuit disponible, donnees envoyees a l'API
- Voyage voyage-3 : excellente qualite, rapide, 0,06 $/1M tokens, donnees envoyees a l'API
- Ollama (local) : bonne qualite, plus lent, gratuit, entierement local
- Local (integre) : bonne qualite, modere, gratuit, entierement local
Pour la plupart des utilisateurs, OpenAI text-embedding-3-small offre le meilleur equilibre qualite/cout. Pour les setups sensibles a la confidentialite, le fournisseur local garde tout sur votre machine.
Cas d'usage concrets
Retrouver des decisions passees
memsearch search "quelle strategie de deploiement a-t-on choisie ?"
memsearch search "quelle base de donnees pour le service utilisateur ?"
memsearch search "pourquoi a-t-on rejete l'approche GraphQL ?"
Localiser des details de configuration
memsearch search "credentials SSH pour le serveur de staging"
memsearch search "cle API du service meteo"
memsearch search "variables d'environnement pour la production"
Retrouver le contexte d'une reunion
memsearch search "qu'a-t-on discute sur la roadmap Q2 ?"
memsearch search "actions a faire apres la revue de design"
memsearch search "retours sur la maquette de landing page"
Construire sur le travail passe
memsearch search "prompts qui ont bien marche pour la generation de contenu"
memsearch search "lecons apprises du dernier deploiement"
memsearch search "retours utilisateurs sur la version beta"
Conseils pour de meilleurs resultats
-
Ecrivez des notes descriptives. La qualite de la recherche depend de la qualite de vos memoires. "Fait des trucs" n'est pas cherchable. "Migration du service auth de JWT vers les cookies de session a cause de risques XSS" est de l'or.
-
Utilisez des requetes en langage naturel. "C'etait quoi le truc sur la performance ?" marche mieux que "performance optimisation cache Redis". Ecrivez votre requete comme vous le demanderiez a un collegue.
-
Ajustez la taille des chunks selon votre contenu. Si vos memoires sont surtout des notes quotidiennes courtes, des chunks plus petits (200-300 tokens) fonctionnent bien. Pour des logs de session dev plus longs, des chunks plus grands (500-800 tokens) preservent plus de contexte.
-
Re-indexez periodiquement. Meme si le file watcher gere les mises a jour en temps reel, lancer
memsearch indexchaque semaine garantit que rien n'est oublie. -
Combinez avec le second cerveau. Si vous utilisez le workflow second cerveau, vos notes capturees deviennent cherchables aussi. Envoyez une idee a votre bot par message, et retrouvez-la plus tard par le sens.
Comment ClawRapid facilite tout ca
memsearch necessite Python et un peu de configuration en ligne de commande. Avec ClawRapid :
- Environnement Python pre-configure sur votre serveur OpenClaw
- Repertoire memoire deja rempli par les conversations de votre bot
- Installation facile de memsearch via le terminal
- Cron jobs disponibles pour la re-indexation programmee
Deployez avec ClawRapid et ajoutez la recherche semantique a vos memoires existantes en quelques minutes.
FAQ
Est-ce que memsearch modifie mes fichiers memoire ?
Non. Vos fichiers markdown sont en lecture seule du point de vue de memsearch. L'index vectoriel est un cache derive separe. Vous pouvez supprimer l'index entier et le reconstruire a tout moment avec memsearch index.
Combien coute l'indexation ? Pour un workspace OpenClaw typique avec 3 mois de memoire quotidienne (environ 500 Ko de texte), l'indexation initiale coute environ 0,01 $ avec OpenAI text-embedding-3-small. Les mises a jour incrementales (re-indexation quotidienne) coutent des fractions de centime car seul le contenu nouveau est vectorise.
Je peux l'utiliser sans aucune cle API ?
Oui. Installez avec pip install "memsearch[local]" et definissez le fournisseur d'embeddings sur local. La qualite est legerement inferieure aux fournisseurs cloud mais c'est completement gratuit et prive.
Ca fonctionne avec des memoires en francais ? Oui. Les modeles d'embeddings modernes gerent bien le contenu multilingue. Une memoire ecrite en francais peut etre trouvee avec une requete en anglais, et inversement. La qualite depend du modele d'embeddings : OpenAI et Google ont un excellent support multilingue.
Quelle difference avec le workflow base de connaissances ? La base de connaissances ingere du contenu externe (articles, videos, tweets). La recherche semantique en memoire indexe les propres fichiers memoire de votre agent (conversations, decisions, notes). Ils se completent : l'un cherche dans ce que vous avez lu, l'autre dans ce que vous avez fait.
Plusieurs agents peuvent-ils partager un index ? Oui. Pointez memsearch vers un repertoire partage ou plusieurs instances OpenClaw ecrivent. Tous les agents peuvent chercher dans le meme index. Attention aux ecritures concurrentes si vous utilisez le file watcher.
Et apres ?
La recherche semantique est un bloc de construction pour des workflows memoire plus puissants :
- Base de connaissances avec RAG pour la meme recherche vectorielle sur du contenu externe
- Second cerveau pour la couche de capture qui alimente votre memoire cherchable
- Maintenance automatisee de la memoire qui utilise la recherche pour identifier et fusionner les memoires en double
Explorez tous les workflows disponibles dans notre guide complet des cas d'usage.
Quel modèle veux-tu par défaut ?
Quel canal veux-tu utiliser ?
Serveurs limités, plus que 8 disponibles
Articles similaires

Créer une base de connaissances avec OpenClaw : RAG + recherche sémantique
Construisez une base de connaissances personnelle avec OpenClaw. Déposez des URLs dans Telegram, ingérez automatiquement, puis recherchez tout en langage naturel.

Créer un second cerveau avec OpenClaw : capturer vos idées par message
Transformez OpenClaw en second cerveau. Envoyez n'importe quoi par message pour le mémoriser, puis cherchez dans toutes vos mémoires via un dashboard Next.js.

Creer un Bot Discord Intelligent avec OpenClaw (Guide Complet)
Construisez un bot Discord propulse par l'IA avec OpenClaw. Setup, guild workspace, components v2, forum channels et exemples de configuration reels.