Sessions and memory
Motor de memoria integrado
El motor integrado es el backend de memoria predeterminado. Almacena el índice de memoria en una base de datos SQLite por agente y no requiere dependencias adicionales para comenzar.
Qué ofrece
- Búsqueda por palabras clave mediante indexación de texto completo FTS5 (puntuación BM25).
- Búsqueda vectorial mediante embeddings de cualquier proveedor compatible.
- Búsqueda híbrida que combina ambas para obtener los mejores resultados.
- Compatibilidad con CJK mediante tokenización por trigramas para chino, japonés y coreano.
- Aceleración con sqlite-vec para consultas vectoriales dentro de la base de datos (opcional).
Primeros pasos
De forma predeterminada, el motor integrado utiliza embeddings de OpenAI. Si OPENAI_API_KEY o
models.providers.openai.apiKey ya está configurado, la búsqueda vectorial funciona
sin configuración adicional de memoria.
Para establecer un proveedor explícitamente:
{ memory: { search: { provider: "openai", }, },}Sin un proveedor de embeddings, solo está disponible la búsqueda por palabras clave.
Para forzar embeddings GGUF locales, instale el plugin oficial del proveedor llama.cpp
y, a continuación, apunte local.modelPath a un archivo GGUF:
openclaw plugins install @openclaw/llama-cpp-provider{ memory: { search: { provider: "local", fallback: "none", local: { modelPath: "~/.node-llama-cpp/models/embeddinggemma-300m-qat-Q8_0.gguf", }, }, },}Proveedores de embeddings compatibles
| Proveedor | ID | Notas |
|---|---|---|
| Bedrock | bedrock |
Utiliza la cadena de credenciales de AWS |
| DeepInfra | deepinfra |
Valor predeterminado: BAAI/bge-m3 |
| Gemini | gemini |
Admite contenido multimodal (imagen + audio) |
| GitHub Copilot | github-copilot |
Utiliza su suscripción a Copilot |
| LM Studio | lmstudio |
Local/alojado por el usuario |
| Local | local |
@openclaw/llama-cpp-provider |
| Mistral | mistral |
|
| Ollama | ollama |
Local/alojado por el usuario |
| OpenAI | openai |
Valor predeterminado: text-embedding-3-small |
| Compatible con OpenAI | openai-compatible |
Endpoint genérico /v1/embeddings |
| Voyage | voyage |
Establezca memory.search.provider para dejar de utilizar OpenAI.
Cómo funciona la indexación
OpenClaw divide MEMORY.md y memory/*.md en fragmentos (400 tokens con
una superposición de 80 tokens de forma predeterminada) y los almacena en una base de datos SQLite por agente.
- Ubicación del índice: la base de datos del agente propietario en
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite - Mantenimiento del almacenamiento: los archivos auxiliares WAL de SQLite se mantienen dentro de límites mediante puntos de control periódicos y durante el cierre.
- Supervisión de archivos: los cambios en los archivos de memoria activan una reindexación con antirrebote (valor predeterminado de 1.5s).
- Reindexación automática: el índice se reconstruye automáticamente cuando cambian el proveedor de embeddings, el modelo, la configuración de fragmentación, las fuentes configuradas o el ámbito.
- Reindexación bajo demanda:
openclaw memory index --force
Cuándo utilizarlo
El motor integrado es la opción adecuada para la mayoría de los usuarios:
- Funciona de inmediato sin dependencias adicionales.
- Gestiona eficazmente las búsquedas por palabras clave y vectoriales.
- Es compatible con todos los proveedores de embeddings.
- La búsqueda híbrida combina lo mejor de ambos enfoques de recuperación.
Considere cambiar a QMD si necesita reclasificación, expansión de consultas o desea indexar directorios externos al espacio de trabajo.
Considere Honcho si desea memoria entre sesiones con modelado automático del usuario.
Solución de problemas
¿Está deshabilitada la búsqueda en memoria? Compruebe openclaw memory status. Si no se
detecta ningún proveedor, establezca uno explícitamente o añada una clave de API.
¿No se detecta el proveedor local? Confirme que la ruta local existe y ejecute:
openclaw memory status --deep --agent mainopenclaw memory index --force --agent mainTanto los comandos independientes de la CLI como el Gateway utilizan el mismo id. de proveedor local.
Establezca memory.search.provider: "local" cuando desee utilizar embeddings locales.
¿Resultados obsoletos? Ejecute openclaw memory index --force para reconstruir el índice. El supervisor
puede omitir cambios en casos excepcionales.
¿No se carga sqlite-vec? OpenClaw recurre automáticamente a la similitud coseno
en el proceso. openclaw memory status --deep informa del almacén vectorial local
por separado del proveedor de embeddings, por lo que Vector store: unavailable hace referencia a la carga de sqlite-vec, mientras que Embeddings: unavailable
hace referencia a la disponibilidad del proveedor, la autenticación o el modelo. Consulte los registros para identificar el error específico
de carga.
Configuración
Para configurar el proveedor de embeddings, ajustar la búsqueda híbrida (pesos, MMR, decaimiento temporal), la indexación por lotes, la memoria multimodal, sqlite-vec, las rutas adicionales y todas las demás opciones de configuración, consulte la referencia de configuración de memoria.