Búsqueda de memoria
memory_search encuentra notas relevantes de tus archivos de memoria, incluso cuando la redacción difiere del texto original. Funciona indexando la memoria en fragmentos pequeños y buscándolos mediante embeddings, palabras clave o ambos.
Inicio rápido
Si tienes configurada una clave de API de OpenAI, Gemini, Voyage o Mistral, la búsqueda de memoria funciona automáticamente. Para establecer un proveedor de forma explícita:
{
agents: {
defaults: {
memorySearch: {
provider: "openai", // o "gemini", "local", "ollama", etc.
},
},
},
}
Para embeddings locales sin clave de API, usa provider: "local" (requiere node-llama-cpp).
Proveedores compatibles
| Proveedor | ID | Necesita clave de API | Notas |
|---|
| OpenAI | openai | Sí | Detectado automáticamente, rápido |
| Gemini | gemini | Sí | Admite indexación de imágenes/audio |
| Voyage | voyage | Sí | Detectado automáticamente |
| Mistral | mistral | Sí | Detectado automáticamente |
| Bedrock | bedrock | No | Detectado automáticamente cuando se resuelve la cadena de credenciales de AWS |
| Ollama | ollama | No | Local, debe establecerse explícitamente |
| Local | local | No | Modelo GGUF, descarga de ~0.6 GB |
Cómo funciona la búsqueda
OpenClaw ejecuta dos rutas de recuperación en paralelo y combina los resultados:
- La búsqueda vectorial encuentra notas con significado similar (“gateway host” coincide con “la máquina que ejecuta OpenClaw”).
- La búsqueda de palabras clave BM25 encuentra coincidencias exactas (ID, cadenas de error, claves de configuración).
Si solo una ruta está disponible (sin embeddings o sin FTS), la otra se ejecuta sola.
Mejorar la calidad de la búsqueda
Dos funciones opcionales ayudan cuando tienes un historial amplio de notas:
Decaimiento temporal
Las notas antiguas pierden gradualmente peso en la clasificación para que la información reciente aparezca primero. Con la vida media predeterminada de 30 días, una nota del mes pasado obtiene el 50% de su peso original. Los archivos permanentes como MEMORY.md nunca se degradan.
Activa el decaimiento temporal si tu agente tiene meses de notas diarias y la información obsoleta sigue superando al contexto reciente.
MMR (diversidad)
Reduce los resultados redundantes. Si cinco notas mencionan la misma configuración del router, MMR garantiza que los resultados principales cubran temas diferentes en lugar de repetirse.
Activa MMR si memory_search sigue devolviendo fragmentos casi duplicados de distintas notas diarias.
Activar ambos
{
agents: {
defaults: {
memorySearch: {
query: {
hybrid: {
mmr: { enabled: true },
temporalDecay: { enabled: true },
},
},
},
},
},
}
Memoria multimodal
Con Gemini Embedding 2, puedes indexar imágenes y archivos de audio junto con Markdown. Las consultas de búsqueda siguen siendo texto, pero coinciden con contenido visual y de audio. Consulta la referencia de configuración de memoria para la configuración.
Búsqueda en la memoria de sesión
Opcionalmente, puedes indexar transcripciones de sesiones para que memory_search pueda recuperar conversaciones anteriores. Esto es opcional mediante memorySearch.experimental.sessionMemory. Consulta la referencia de configuración para más detalles.
Solución de problemas
¿No hay resultados? Ejecuta openclaw memory status para comprobar el índice. Si está vacío, ejecuta openclaw memory index --force.
¿Solo coincidencias por palabras clave? Puede que tu proveedor de embeddings no esté configurado. Comprueba openclaw memory status --deep.
¿No se encuentra texto CJK? Reconstruye el índice FTS con openclaw memory index --force.
Lecturas adicionales