Technical reference
Referencia de configuración de la memoria
Esta página enumera todas las opciones de configuración para la búsqueda en la memoria de OpenClaw. Para obtener descripciones conceptuales generales, consulte:
Cómo funciona la memoria.
Backend SQLite predeterminado.
Proceso auxiliar con prioridad local.
Pipeline de búsqueda y ajuste.
Subagente de memoria para sesiones interactivas.
Toda la configuración compartida de la memoria se encuentra en el nivel superior memory de openclaw.json. Los valores predeterminados de búsqueda usan memory.search; las anulaciones de búsqueda por agente usan agents.entries.*.memory.search.
Recordar entre conversaciones
| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
rememberAcrossConversations |
boolean |
Activado para instalaciones personales; desactivado si se configura el aislamiento de mensajes directos | Usar contexto relevante de otras conversaciones privadas reconocidas de este agente. |
Configúrelo por agente cuando solo un agente personal de confianza deba usar la recuperación de transcripciones entre conversaciones:
{ agents: { entries: { personal: { memory: { search: { rememberAcrossConversations: true, }, }, }, }, },}El valor sigue la herencia normal de memory.search con una
anulación por agente. Cuando no se establece, se activa de forma predeterminada solo si la opción global
session.dmScope no está establecida o es "main" y ningún enlace tiene una anulación
session.dmScope. Cualquier aislamiento de mensajes directos configurado lo desactiva de forma predeterminada. Un valor explícito true o
false siempre prevalece. Al activarlo, se habilita la indexación de las transcripciones de sesión y
se añade sessions a las fuentes de memoria resueltas del agente. Con QMD, también
se habilita la exportación de sesiones de ese agente; no se requiere una configuración
memory.qmd.sessions.enabled independiente para este modo.
El proveedor de memoria integrado de OpenClaw admite esta ruta protegida tanto con el
backend integrado como con QMD. Los proveedores de memoria alternativos pueden seguir usando sus propios
hooks de recuperación y las herramientas avanzadas de Active Memory, pero esta configuración se omite
a menos que el proveedor actual admita la recuperación protegida de transcripciones privadas.
openclaw doctor informa de un proveedor no compatible o de una lista explícita
toolsAllow de Active Memory que omita memory_search.
El límite de recuperación es más estricto que el de la búsqueda general de sesiones:
- solo son aptas las conversaciones privadas reconocidas del mismo agente
- se excluye la conversación que se está respondiendo
- los grupos y canales se excluyen como fuentes y destinos
- los tipos de conversación desconocidos se rechazan de forma segura
- la recuperación en un entorno aislado no puede usar la autorización especial entre conversaciones
La configuración no modifica tools.sessions.visibility, las claves de sesión,
el almacenamiento de transcripciones, el enrutamiento de entrega ni los permisos de sessions_list,
sessions_history y sessions_send. Active Memory realiza una fase de recuperación acotada
y de solo lectura; si la recuperación no está disponible o agota el tiempo de espera, no se bloquea la
respuesta.
Selección del proveedor
| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
enabled |
boolean |
true |
Activar o desactivar la búsqueda en la memoria |
provider |
string |
"openai" |
ID del adaptador de embeddings, como bedrock, deepinfra, gemini, github-copilot, local, mistral, ollama, openai, openai-compatible o voyage; también puede ser un models.providers.<id> configurado cuyo api apunte a un adaptador de embeddings de memoria o a una API de modelo compatible con OpenAI |
model |
string |
valor predeterminado del proveedor | Nombre del modelo de embeddings |
fallback |
string |
"none" |
ID del adaptador de reserva cuando falla el principal |
Cuando no se establece provider, OpenClaw usa embeddings de OpenAI. Establezca provider
explícitamente para usar Bedrock, DeepInfra, Gemini, GitHub Copilot, Mistral, Ollama,
Voyage, un modelo GGUF local o un endpoint /v1/embeddings compatible con OpenAI.
Las configuraciones heredadas que aún indican provider: "auto" se resuelven como openai.
Cuando provider no está establecido, existe el valor heredado provider: "auto" o
provider: "none" selecciona intencionadamente el modo exclusivo de FTS, la recuperación de memoria puede seguir
usando la clasificación léxica de FTS cuando los embeddings no estén disponibles.
Los proveedores explícitos no locales rechazan de forma segura. Si establece memory.search.provider como
un proveedor concreto con backend remoto, como Bedrock, DeepInfra, Gemini, GitHub
Copilot, LM Studio, Mistral, Ollama, OpenAI, Voyage o un proveedor personalizado
compatible con OpenAI, y dicho proveedor no está disponible durante la ejecución, memory_search
devuelve un resultado de no disponibilidad en lugar de usar silenciosamente una recuperación exclusiva mediante FTS. Corrija la
configuración del proveedor o de la autenticación, cambie a un proveedor accesible o establezca
provider: "none" si desea usar deliberadamente una recuperación exclusiva mediante FTS.
ID de proveedores personalizados
memory.search.provider puede apuntar a una entrada models.providers.<id> personalizada para adaptadores de proveedores específicos de memoria, como ollama, o para API de modelos compatibles con OpenAI, como openai-responses / openai-completions. OpenClaw resuelve el propietario api de ese proveedor para el adaptador de embeddings y conserva el ID del proveedor personalizado para gestionar el endpoint, la autenticación y el prefijo del modelo. Esto permite que las configuraciones con varias GPU o varios hosts dediquen los embeddings de memoria a un endpoint local específico:
{ models: { providers: { "ollama-5080": { api: "ollama", baseUrl: "http://gpu-box.local:11435", apiKey: "ollama-local", models: [{ id: "qwen3-embedding:0.6b", name: "Qwen3 Embedding 0.6B" }], }, }, }, memory: { search: { provider: "ollama-5080", model: "qwen3-embedding:0.6b", }, },}Resolución de la clave de API
Los embeddings remotos requieren una clave de API. Bedrock usa en su lugar la cadena predeterminada de credenciales del SDK de AWS (roles de instancia, SSO, claves de acceso o una clave de API de Bedrock).
| Proveedor | Variable de entorno | Clave de configuración |
|---|---|---|
| Bedrock | Cadena de credenciales de AWS o AWS_BEARER_TOKEN_BEDROCK |
No se necesita una clave de API |
| DeepInfra | DEEPINFRA_API_KEY |
models.providers.deepinfra.apiKey |
| Gemini | GEMINI_API_KEY |
models.providers.google.apiKey |
| GitHub Copilot | COPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKEN |
Perfil de autenticación mediante inicio de sesión en el dispositivo |
| Mistral | MISTRAL_API_KEY |
models.providers.mistral.apiKey |
| Ollama | OLLAMA_API_KEY (marcador de posición) |
-- |
| OpenAI | OPENAI_API_KEY |
models.providers.openai.apiKey |
| Voyage | VOYAGE_API_KEY |
models.providers.voyage.apiKey |
Configuración del endpoint remoto
Use provider: "openai-compatible" para un servidor genérico
/v1/embeddings compatible con OpenAI que no deba heredar las credenciales globales de chat de OpenAI.
remote.baseUrlstringURL base personalizada de la API.
remote.apiKeystringAnulación de la clave de API.
remote.headersobjectEncabezados HTTP adicionales (combinados con los valores predeterminados del proveedor).
{ memory: { search: { provider: "openai-compatible", model: "text-embedding-3-small", remote: { baseUrl: "https://api.example.com/v1/", apiKey: "YOUR_KEY", }, }, },}Configuración específica del proveedor
Gemini
| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
model |
string |
gemini-embedding-001 |
También admite gemini-embedding-2-preview |
outputDimensionality |
number |
3072 |
Para Embedding 2: 768, 1536 o 3072 |
Tipos de entrada compatibles con OpenAI
Los endpoints de embeddings compatibles con OpenAI pueden habilitar campos de solicitud input_type específicos del proveedor. Esto resulta útil para modelos de embeddings asimétricos que requieren etiquetas diferentes para los embeddings de consultas y documentos.
| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
inputType |
string |
no establecido | input_type compartido para los embeddings de consultas y documentos |
queryInputType |
string |
no establecido | input_type durante la consulta; anula inputType |
documentInputType |
string |
no establecido | input_type del índice o documento; anula inputType |
{ memory: { search: { provider: "openai-compatible", remote: { baseUrl: "https://embeddings.example/v1", apiKey: "${EMBEDDINGS_API_KEY}", }, model: "asymmetric-embedder", queryInputType: "query", documentInputType: "passage", }, },}Cambiar estos valores afecta a la identidad de la caché de embeddings para la indexación por lotes del proveedor y debe ir seguido de una reindexación de la memoria cuando el modelo de origen trate las etiquetas de forma diferente.
Bedrock
Configuración de embeddings de Bedrock
Bedrock utiliza la cadena de credenciales predeterminada del SDK de AWS junto con un token de portador comprobado por OpenClaw, por lo que no se almacenan claves de API en la configuración. Si OpenClaw se ejecuta en EC2 con un rol de instancia habilitado para Bedrock, basta con establecer el proveedor y el modelo:
{ memory: { search: { provider: "bedrock", model: "amazon.titan-embed-text-v2:0", }, },}| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
model |
string |
amazon.titan-embed-text-v2:0 |
Cualquier ID de modelo de embeddings de Bedrock |
outputDimensionality |
number |
valor predeterminado del modelo | Para Titan V2: 256, 512 o 1024 |
Modelos compatibles (con detección de familia y dimensiones predeterminadas):
| ID del modelo | Proveedor | Dimensiones predeterminadas | Dimensiones configurables |
|---|---|---|---|
amazon.titan-embed-text-v2:0 |
Amazon | 1024 | 256, 512, 1024 |
amazon.titan-embed-text-v1 |
Amazon | 1536 | -- |
amazon.titan-embed-g1-text-02 |
Amazon | 1536 | -- |
amazon.titan-embed-image-v1 |
Amazon | 1024 | -- |
amazon.nova-2-multimodal-embeddings-v1:0 |
Amazon | 1024 | 256, 384, 1024, 3072 |
cohere.embed-english-v3 |
Cohere | 1024 | -- |
cohere.embed-multilingual-v3 |
Cohere | 1024 | -- |
cohere.embed-v4:0 |
Cohere | 1536 | 256, 384, 512, 768, 1024, 1536 |
twelvelabs.marengo-embed-3-0-v1:0 |
TwelveLabs | 512 | -- |
twelvelabs.marengo-embed-2-7-v1:0 |
TwelveLabs | 1024 | -- |
Las variantes con sufijo de rendimiento (por ejemplo, amazon.titan-embed-text-v1:2:8k) y los ID de perfiles de inferencia con prefijo de región (por ejemplo, us.amazon.titan-embed-text-v2:0) heredan la configuración del modelo base.
Región: se resuelve en este orden: la anulación memory.search.remote.baseUrl, la configuración models.providers.amazon-bedrock.baseUrl, AWS_REGION, AWS_DEFAULT_REGION y, finalmente, el valor predeterminado us-east-1.
Autenticación: OpenClaw comprueba primero AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY o AWS_BEARER_TOKEN_BEDROCK y, a continuación, recurre a la cadena estándar de proveedores de credenciales predeterminada del SDK de AWS:
- Variables de entorno (
AWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY), salvo que también se haya establecidoAWS_PROFILE - SSO (solo cuando están configurados los campos de SSO)
- Archivos compartidos de credenciales y configuración (
fromIni, incluyeAWS_PROFILE) - Proceso de credenciales (
credential_processen el archivo de configuración de AWS) - Credenciales de token de identidad web
- Credenciales de metadatos de instancias de ECS o EC2
Permisos de IAM: el rol o usuario de IAM necesita:
{ "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": "*"}Para aplicar el principio de privilegio mínimo, limite InvokeModel al modelo específico:
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0Local (GGUF + llama.cpp)
| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
local.modelPath |
string |
descarga automática | Ruta al archivo del modelo GGUF |
local.modelCacheDir |
string |
valor predeterminado de node-llama-cpp | Directorio de caché para los modelos descargados |
local.contextSize |
number | "auto" |
4096 |
Tamaño de la ventana de contexto para el contexto de embeddings. 4096 cubre fragmentos habituales (128-512 tokens) y limita la VRAM no utilizada por los pesos. Redúzcalo a 1024-2048 en hosts con recursos limitados. "auto" utiliza el máximo con el que se entrenó el modelo; no se recomienda para modelos de 8B o más (Qwen3-Embedding-8B: hasta 40 960 tokens pueden elevar la VRAM a ~32 GB). |
Instale primero el proveedor oficial de llama.cpp: openclaw plugins install @openclaw/llama-cpp-provider.
Modelo predeterminado: embeddinggemma-300m-qat-Q8_0.gguf (~0.6 GB, descarga automática). Los checkouts del código fuente siguen requiriendo la aprobación de la compilación nativa: pnpm approve-builds y después pnpm rebuild node-llama-cpp.
Utilice la CLI independiente para verificar la misma ruta del proveedor que utiliza el Gateway:
openclaw memory status --deep --agent mainopenclaw memory index --force --agent mainLos valores numéricos de local.contextSize también sirven para determinar la asignación automática de capas de GPU de node-llama-cpp, de modo que los pesos del modelo y el contexto de embeddings solicitado se ajusten conjuntamente. openclaw memory status --deep informa del último backend conocido de llama.cpp, el dispositivo, la descarga de cómputo, el contexto solicitado y los datos de memoria con marca de tiempo después de que el entorno de ejecución se haya cargado; el estado pasivo no carga ningún modelo.
Establezca provider: "local" explícitamente para los embeddings GGUF locales. Se admiten hf: y referencias de modelos HTTP(S) en configuraciones locales explícitas (mediante la resolución de modelos de node-llama-cpp), pero no cambian el proveedor predeterminado.
Comportamiento de la indexación
Los motores de memoria controlan la sincronización, el procesamiento por lotes, la supervisión y las heurísticas de indexación posteriores a Compaction. OpenClaw mantiene habilitados estos comportamientos con valores predeterminados mantenidos, en lugar de exponer controles de temporización para cada instalación.
Configuración de la búsqueda híbrida
Todo bajo memory.search.query:
| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
maxResults |
number |
6 |
Número máximo de resultados de memoria devueltos antes de la inyección |
minScore |
number |
0.35 |
Puntuación mínima de relevancia para incluir un resultado |
La recuperación híbrida permanece habilitada; MMR y la disminución temporal permanecen deshabilitadas por la política integrada del motor.
Ejemplo completo
{ memory: { search: { query: { maxResults: 6, minScore: 0.35, }, }, },}Rutas de memoria adicionales
| Clave | Tipo | Descripción |
|---|---|---|
extraPaths |
string[] |
Directorios o archivos adicionales que indexar |
{ memory: { search: { extraPaths: ["../team-docs", "/srv/shared-notes"], }, },}Las rutas pueden ser absolutas o relativas al espacio de trabajo. Los directorios se examinan recursivamente en busca de archivos .md. La gestión de enlaces simbólicos depende del backend activo: el motor integrado omite los enlaces simbólicos, mientras que QMD sigue el comportamiento del escáner QMD subyacente.
Para la búsqueda de transcripciones entre agentes con ámbito de agente, utilice agents.entries.*.memory.search.qmd.extraCollections en lugar de memory.qmd.paths. Esas colecciones adicionales siguen la misma estructura { path, name, pattern? }, pero se combinan por agente y pueden conservar nombres compartidos explícitos cuando la ruta apunta fuera del espacio de trabajo actual. Si la misma ruta resuelta aparece tanto en memory.qmd.paths como en memory.search.qmd.extraCollections, QMD conserva la primera entrada y omite el duplicado.
Memoria multimodal (Gemini)
Indexe imágenes y audio junto con Markdown mediante Gemini Embedding 2:
| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
multimodal.enabled |
boolean |
false |
Habilitar la indexación multimodal |
multimodal.modalities |
string[] |
-- | ["image"], ["audio"] o ["all"] |
multimodal.maxFileBytes |
number |
10485760 |
Tamaño máximo de archivo para la indexación (10 MiB) |
Formatos compatibles: .jpg, .jpeg, .png, .webp, .gif, .heic, .heif (imágenes); .mp3, .wav, .ogg, .opus, .m4a, .aac, .flac (audio).
Caché de embeddings
| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
cache.enabled |
boolean |
true |
Almacenar en caché los embeddings de fragmentos en SQLite |
Evita volver a generar los embeddings del texto que no ha cambiado durante la reindexación o las actualizaciones de transcripciones.
Indexación por lotes
| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
remote.nonBatchConcurrency |
number |
4 |
Embeddings en línea paralelos |
remote.batch.enabled |
boolean |
false |
Habilitar la API de embeddings por lotes |
Disponible para gemini, openai y voyage. El procesamiento por lotes de OpenAI suele ser la opción más rápida y económica para grandes cargas históricas.
El proveedor controla la concurrencia, el sondeo y el comportamiento de los tiempos de espera.
Búsqueda en la memoria de sesiones
Indexe las transcripciones de las sesiones y expóngalas mediante memory_search:
| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
rememberAcrossConversations |
boolean |
false |
Permitir la recuperación privada entre conversaciones |
sources |
string[] |
["memory"] |
Añadir "sessions" para incluir transcripciones |
La búsqueda ordinaria de transcripciones de sesiones invocada por el modelo respeta
tools.sessions.visibility. La visibilidad predeterminada
tree expone la sesión actual, las sesiones que esta generó y las
sesiones de grupo del mismo agente observadas mediante el conocimiento ambiental del grupo. Las demás
sesiones no relacionadas requieren la visibilidad agent (o all solo cuando también
se requiere la recuperación entre agentes y la política entre agentes lo permite).
rememberAcrossConversations no amplía esa configuración. Proporciona una
autorización independiente, exclusiva del entorno de ejecución y limitada a las
transcripciones privadas del mismo agente durante la ejecución acotada de Active Memory.
Los ejemplos siguientes colocan estas opciones en el nivel superior de memory.search. También se pueden
aplicar opciones equivalentes en una sobrescritura de memory.search por agente cuando solo un
agente deba indexar y buscar transcripciones de sesiones.
Para la recuperación del Gateway a mensajes directos del mismo agente:
Backend integrado
{ memory: { search: { experimental: { sessionMemory: true }, sources: ["memory", "sessions"], }, }, tools: { sessions: { visibility: "agent" }, },}Backend QMD
{ memory: { backend: "qmd", search: { experimental: { sessionMemory: true }, sources: ["memory", "sessions"], }, qmd: { sessions: { enabled: true }, }, }, tools: { sessions: { visibility: "agent" }, },}Al usar QMD, sources: ["sessions"] no exporta por sí solo las transcripciones a QMD. Configure
también memory.qmd.sessions.enabled: true. La opción de nivel superior
rememberAcrossConversations: true es la excepción: implica la
exportación de sesiones de QMD necesaria para ese agente. Las exportaciones implícitas permanecen privadas:
siempre usan la ubicación interna de exportación predeterminada (un
sessions.exportDir configurado solo se aplica a las exportaciones explícitas), solo se buscan
durante la recuperación entre conversaciones de ese agente y el memory_get
ordinario no puede leerlas. La opción explícita
memory.qmd.sessions.enabled: true conserva su comportamiento existente y hace que
las transcripciones exportadas formen parte del corpus de memoria ordinario.
Aceleración vectorial de SQLite (sqlite-vec)
| Clave | Tipo | Predeterminado | Descripción |
|---|---|---|---|
store.vector.enabled |
boolean |
true |
Usar sqlite-vec para consultas vectoriales |
store.vector.extensionPath |
string |
incluido | Sobrescribir la ruta de sqlite-vec |
Cuando sqlite-vec no está disponible, OpenClaw recurre automáticamente a la similitud de coseno dentro del proceso.
Almacenamiento de índices
Los índices de memoria integrados se almacenan en la base de datos SQLite de OpenClaw de cada agente en
agents/<agentId>/agent/openclaw-agent.sqlite.
| Clave | Tipo | Predeterminado | Descripción |
|---|---|---|---|
store.fts.tokenizer |
string |
unicode61 |
Tokenizador FTS5 (unicode61 o trigram) |
Configuración del backend QMD
Establezca memory.backend = "qmd" para habilitarlo. Todas las opciones de QMD se encuentran en memory.qmd:
| Clave | Tipo | Predeterminado | Descripción |
|---|---|---|---|
command |
string |
qmd |
Ruta del ejecutable de QMD; establezca una ruta absoluta cuando el PATH del servicio difiera del de su shell |
searchMode |
string |
search |
Comando de búsqueda: search, vsearch, query |
rerank |
boolean |
-- | Establezca false con searchMode: "query" y QMD 2.1+ para omitir la reclasificación de QMD |
includeDefaultMemory |
boolean |
true |
Indexar automáticamente MEMORY.md + memory/**/*.md |
paths[] |
array |
-- | Rutas adicionales: { name, path, pattern? } |
sessions.enabled |
boolean |
false |
Exportar transcripciones de sesiones a QMD |
sessions.retentionDays |
number |
-- | Retención de transcripciones |
sessions.exportDir |
string |
-- | Directorio de exportación |
searchMode: "search" es exclusivamente léxico/BM25. OpenClaw no ejecuta sondeos de disponibilidad de vectores semánticos ni mantenimiento de embeddings de QMD para ese modo, ni siquiera durante memory status --deep; vsearch y query siguen requiriendo que los vectores y embeddings de QMD estén disponibles.
rerank: false solo cambia el modo query de QMD y requiere QMD 2.1 o una versión posterior. En el modo de CLI directa, OpenClaw pasa --no-rerank; en el modo MCP respaldado por mcporter, pasa rerank: false a la herramienta de consulta unificada de QMD. Déjelo sin configurar para usar el comportamiento predeterminado de reclasificación de consultas de QMD.
OpenClaw prefiere las estructuras actuales de colecciones y consultas MCP de QMD, pero mantiene la compatibilidad con versiones anteriores de QMD probando indicadores compatibles de patrones de colecciones y nombres anteriores de herramientas MCP cuando es necesario. Cuando QMD anuncia compatibilidad con varios filtros de colecciones, las colecciones de la misma fuente se buscan mediante un único proceso de QMD; las compilaciones anteriores de QMD conservan la ruta de compatibilidad por colección. «Misma fuente» significa que las colecciones de memoria duradera (los archivos de memoria predeterminados más las rutas personalizadas) se agrupan, mientras que las colecciones de transcripciones de sesiones permanecen como un grupo independiente, de modo que la diversificación de fuentes siga disponiendo de ambas entradas.
Límites
| Clave | Tipo | Predeterminado | Descripción |
|---|---|---|---|
limits.maxResults |
number |
4 |
Número máximo de resultados de búsqueda |
limits.maxSnippetChars |
number |
450 |
Limitar la longitud del fragmento |
limits.maxInjectedChars |
number |
2200 |
Limitar el total de caracteres inyectados |
limits.timeoutMs |
number |
4000 |
Tiempo de espera del comando de QMD durante búsquedas respaldadas por QMD, incluido memory_search; la configuración, la sincronización, el recurso alternativo integrado y el trabajo complementario mantienen el plazo predeterminado de la herramienta |
Ámbito
Controla qué sesiones pueden recibir resultados de búsqueda de QMD. Usa el mismo esquema que session.sendPolicy:
{ memory: { qmd: { scope: { default: "deny", rules: [{ action: "allow", match: { chatType: "direct" } }], }, }, },}El valor predeterminado distribuido permite solo mensajes directos/conversaciones directas y deniega grupos y otros tipos de canal. match.keyPrefix coincide con la clave de sesión normalizada; match.rawKeyPrefix coincide con la clave sin procesar, incluido agent:<id>:.
Citas
memory.citations se aplica a todos los backends:
| Valor | Comportamiento |
|---|---|
auto (predeterminado) |
Incluir el pie Source: <path#line> en los fragmentos |
on |
Incluir siempre el pie |
off |
Omitir el pie (la ruta se sigue pasando internamente al agente) |
QMD se inicializa de forma diferida cuando se usa la memoria por primera vez; su adaptador gestiona las programaciones de actualización y embeddings.
Ejemplo completo de QMD
{ memory: { backend: "qmd", citations: "auto", qmd: { includeDefaultMemory: true, update: { interval: "5m", debounceMs: 15000 }, limits: { maxResults: 4, timeoutMs: 4000 }, scope: { default: "deny", rules: [{ action: "allow", match: { chatType: "direct" } }], }, paths: [{ name: "docs", path: "~/notes", pattern: "**/*.md" }], }, },}Dreaming
Dreaming se configura en plugins.entries.memory-core.config.dreaming, no en memory.search.
Dreaming se ejecuta como un único barrido programado y usa fases internas ligera/profunda/REM como detalle de implementación.
Para consultar el comportamiento conceptual y los comandos de barra diagonal, véase Dreaming.
Opciones de usuario
| Clave | Tipo | Predeterminado | Descripción |
|---|---|---|---|
enabled |
boolean |
false |
Habilitar o deshabilitar Dreaming por completo |
frequency |
string |
0 3 * * * |
Cadencia Cron opcional para el barrido completo de Dreaming |
model |
string |
modelo predeterminado | Sobrescritura opcional del modelo del subagente Dream Diary |
phases.deep.maxPromotedSnippetTokens |
number |
160 |
Número máximo estimado de tokens conservados de cada fragmento de recuperación a corto plazo promovido a MEMORY.md; los metadatos de procedencia permanecen visibles |
Ejemplo
{ plugins: { entries: { "memory-core": { subagent: { allowModelOverride: true, allowedModels: ["anthropic/claude-sonnet-4-6"], }, config: { dreaming: { enabled: true, frequency: "0 3 * * *", model: "anthropic/claude-sonnet-4-6", }, }, }, }, },}