Sessions and memory
Dreaming
Dreaming es el sistema de consolidación de memoria en segundo plano de memory-core. Transfiere las señales sólidas de corto plazo a la memoria duradera, a la vez que mantiene el proceso explicable y revisable.
Qué escribe Dreaming
- Estado de la máquina en
memory/.dreams/(almacén de recuperación, señales de fase, puntos de control de ingesta y bloqueos). - Salida legible para humanos en
DREAMS.md(o un archivodreams.mdexistente) y archivos opcionales de informes de fase enmemory/dreaming/<phase>/YYYY-MM-DD.md.
La promoción a largo plazo sigue escribiendo únicamente en MEMORY.md.
Modelo de fases
Dreaming ejecuta tres fases cooperativas por barrido, en este orden: ligera -> REM -> profunda. Son fases internas de implementación, no modos independientes configurados por el usuario.
| Fase | Propósito | Escritura duradera |
|---|---|---|
| Ligera | Ordenar y preparar material reciente de corto plazo | No |
| REM | Reflexionar sobre temas e ideas recurrentes | No |
| Profunda | Puntuar y promover candidatos duraderos | Sí (MEMORY.md) |
Fase ligera
- Lee el estado reciente de recuperación a corto plazo, los archivos de memoria diarios y las transcripciones de sesiones con datos confidenciales ocultos cuando están disponibles.
- Elimina señales duplicadas y prepara líneas candidatas.
- Escribe un bloque administrado
## Light Sleepcuando el almacenamiento incluye salida en línea. - Registra señales de refuerzo para la clasificación profunda posterior.
- Nunca escribe en
MEMORY.md.
Fase REM
- Genera resúmenes temáticos y reflexivos a partir de rastros recientes de corto plazo.
- Escribe un bloque administrado
## REM Sleepcuando el almacenamiento incluye salida en línea. - Registra las señales de refuerzo REM utilizadas por la clasificación profunda.
- Nunca escribe en
MEMORY.md.
Fase profunda
- Clasifica los candidatos mediante una puntuación ponderada y umbrales de aceptación (
minScore,minRecallCountyminUniqueQueriesdeben superarse). - Vuelve a obtener los fragmentos de los archivos diarios activos antes de escribir, por lo que se omiten los fragmentos obsoletos o eliminados.
- Añade las entradas promovidas a
MEMORY.md. - Escribe un resumen
## Deep SleepenDREAMS.mdy, opcionalmente, enmemory/dreaming/deep/YYYY-MM-DD.md.
Ingesta de transcripciones de sesiones
Dreaming puede incorporar transcripciones de sesiones expurgadas al corpus de Dreaming. Cuando están disponibles, las transcripciones alimentan la fase ligera junto con las señales de memoria diarias y las trazas de recuperación. El contenido personal y sensible se expurga antes de la incorporación.
Diario de sueños
Dreaming mantiene un Diario de sueños narrativo en DREAMS.md. Cuando cada fase dispone de suficiente material, memory-core ejecuta en segundo plano, sin garantías, un turno de subagente y añade una breve entrada al diario, usando el modelo predeterminado del entorno de ejecución, salvo que se configure dreaming.model. Si el modelo configurado no está disponible, la ejecución del diario vuelve a intentarse una vez con el modelo predeterminado de la sesión; los fallos de confianza o de la lista de permitidos no se vuelven a intentar y permanecen visibles en los registros, en lugar de recurrir silenciosamente a una entrada de diario genérica.
También existe una vía de relleno histórico fundamentado para las tareas de revisión y recuperación:
Comandos de relleno
memory rem-harness --path ... --groundedofrece una vista previa de la salida fundamentada del diario a partir de notas históricasYYYY-MM-DD.md.memory rem-backfill --path ...escribe entradas fundamentadas y reversibles del diario enDREAMS.md.memory rem-backfill --path ... --stage-short-termprepara candidatos fundamentados y duraderos en el mismo almacén de evidencias a corto plazo que utiliza la fase profunda normal.memory rem-backfill --rollbacky--rollback-short-termeliminan esos artefactos de relleno preparados sin modificar las entradas ordinarias del diario ni la recuperación activa a corto plazo.
La interfaz de usuario de Control presenta el mismo flujo de relleno y restablecimiento del diario en la pestaña Memoria del agente (página Agentes), para poder inspeccionar los resultados en la escena de sueños antes de decidir si los candidatos fundamentados merecen ser promocionados. Una vía diferenciada de Escena fundamentada muestra qué entradas a corto plazo preparadas proceden de una reproducción histórica, qué elementos promocionados se basaron principalmente en datos fundamentados y permite borrar únicamente las entradas preparadas que son exclusivamente fundamentadas, sin modificar el estado activo a corto plazo.
Señales de clasificación profunda
La clasificación profunda utiliza seis señales base ponderadas, además del refuerzo de fase:
| Señal | Peso | Descripción |
|---|---|---|
| Relevancia | 0.30 | Calidad media de recuperación de la entrada |
| Frecuencia | 0.24 | Número de señales a corto plazo acumuladas por la entrada |
| Diversidad de consultas | 0.15 | Contextos distintos de consulta/día que la hicieron aparecer |
| Actualidad | 0.15 | Puntuación de vigencia con decaimiento temporal |
| Consolidación | 0.10 | Intensidad de recurrencia durante varios días |
| Riqueza conceptual | 0.06 | Densidad de etiquetas conceptuales del fragmento/ruta |
Las coincidencias de las fases ligera y REM añaden un pequeño refuerzo con decaimiento temporal desde memory/.dreams/phase-signals.json.
Los resultados de las pruebas paralelas pueden añadirse a la puntuación base como señal de revisión antes de cualquier escritura duradera: una prueba útil proporciona al candidato un pequeño refuerzo acotado, una prueba neutral mantiene su aplazamiento y una prueba perjudicial lo marca como rechazado para esa pasada de puntuación. Esta señal solo se incluye en los informes: puede cambiar el orden de los candidatos o los metadatos de revisión, pero nunca escribe en MEMORY.md ni promociona por sí sola a un candidato.
Cobertura de informes de pruebas paralelas de control de calidad
QA Lab incluye un escenario de solo informe para explorar cómo una futura prueba en paralelo de Dreaming podría revisar una memoria candidata antes de su promoción: un agente compara una respuesta de referencia con una respuesta que puede usar la memoria candidata y, a continuación, escribe un informe local con un veredicto, un motivo e indicadores de riesgo. Esta cobertura se limita al control de calidad: verifica que el artefacto del informe permanezca separado de MEMORY.md y que el agente nunca afirme que la candidata fue promovida. No añade comportamiento de pruebas en paralelo en producción ni cambia el motor de promoción de la fase profunda.
El ejecutor de pruebas en paralelo de memory-core mantiene el mismo contrato de solo informe para las rutas de código que necesitan un artefacto estable. Acepta la candidata, el prompt de la prueba, el resultado de referencia, el resultado de la candidata, el veredicto, el motivo, los indicadores de riesgo y las referencias de evidencia; después, escribe un informe con promotion action: report-only. Los veredictos favorables se asignan a una recomendación promote, los neutros a defer y los perjudiciales a reject; ninguno de ellos escribe en MEMORY.md ni aplica la promoción de la fase profunda.
Programación
Cuando está habilitado, memory-core administra automáticamente un trabajo Cron para una ejecución completa de Dreaming, deduplicado entre el espacio de trabajo principal del entorno de ejecución y cualquier espacio de trabajo de agente configurado, de modo que la distribución entre espacios de trabajo de subagentes no excluya el archivo DREAMS.md ni el estado de memoria del agente principal.
| Configuración | Valor predeterminado |
|---|---|
dreaming.frequency |
0 3 * * * |
dreaming.model |
modelo predeterminado |
Inicio rápido
Habilitar Dreaming
{ "plugins": { "entries": { "memory-core": { "config": { "dreaming": { "enabled": true } } } } }}Cadencia personalizada de ejecución
{ "plugins": { "entries": { "memory-core": { "config": { "dreaming": { "enabled": true, "timezone": "America/Los_Angeles", "frequency": "0 */6 * * *" } } } } }}Comando con barra diagonal
/dreaming status/dreaming on/dreaming off/dreaming help/dreaming on y /dreaming off requieren el estado de propietario para quienes invocan desde canales o operator.admin para los clientes del Gateway. /dreaming status y /dreaming help son de solo lectura.
Flujo de trabajo de la CLI
Vista previa o aplicación de la promoción
openclaw memory promoteopenclaw memory promote --applyopenclaw memory promote --limit 5openclaw memory status --deepDe forma predeterminada, la ejecución manual de memory promote usa los umbrales de la fase profunda, salvo que se reemplacen mediante indicadores de la CLI.
Explicar la promoción
Explica por qué una candidata específica se promovería o no:
openclaw memory promote-explain "router vlan"openclaw memory promote-explain "router vlan" --jsonVista previa del entorno de pruebas REM
Previsualiza las reflexiones REM, las verdades candidatas y el resultado de la promoción profunda sin escribir nada:
openclaw memory rem-harnessopenclaw memory rem-harness --jsonValores predeterminados principales
Todas las opciones se encuentran en plugins.entries.memory-core.config.dreaming.
enabledbooleandefault: falseHabilita o deshabilita la ejecución de Dreaming.
frequencystringdefault: 0 3 * * *Cadencia Cron para la ejecución completa de Dreaming.
modelstringReemplazo opcional del modelo del subagente Dream Diary. Usa un valor canónico provider/model cuando también se configure una lista de permitidos allowedModels para el subagente.
phases.deep.maxPromotedSnippetTokensnumberdefault: 160Número máximo estimado de tokens que se conserva de cada fragmento de recuperación a corto plazo promovido a MEMORY.md. La procedencia de la clasificación permanece visible.
Interfaz de Dreams
Cuando está habilitada, la pestaña Dreams del Gateway muestra:
- el estado actual de habilitación de Dreaming
- el estado de cada fase y la presencia de la ejecución administrada
- los recuentos de elementos a corto plazo, fundamentados, de señales y promovidos hoy
- la hora de la próxima ejecución programada
- una vía Scene fundamentada e independiente para las entradas preparadas de reproducción histórica
- un lector ampliable de Dream Diary respaldado por
doctor.memory.dreamDiary