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, bloqueos). - Salida legible por humanos en
DREAMS.md(o en undreams.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 cada 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 a 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 diarios de memoria y las transcripciones de sesiones censuradas cuando están disponibles.
- Elimina señales duplicadas y prepara líneas candidatas.
- Escribe un bloque
## Light Sleepadministrado cuando 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 de temas y reflexiones a partir de trazas recientes a corto plazo.
- Escribe un bloque
## REM Sleepadministrado cuando 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 candidatos mediante puntuación ponderada y umbrales de validación (
minScore,minRecallCountyminUniqueQueriesdeben superarse). - Rehidrata fragmentos desde 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 ingerir transcripciones de sesiones censuradas en el corpus de Dreaming. Cuando están disponibles, las transcripciones alimentan la fase ligera junto con las señales de memoria diaria y las trazas de recuperación. El contenido personal y confidencial se censura antes de la ingesta.
Diario de sueños
Dreaming mantiene un Diario de sueños narrativo en DREAMS.md. Cuando cada fase dispone de material suficiente, memory-core ejecuta en segundo plano, según el mejor esfuerzo posible, un turno de subagente y añade una breve entrada al diario mediante 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 errores de confianza o de lista de permitidos no se vuelven a intentar y permanecen visibles en los registros, en lugar de recurrir silenciosamente a una entrada genérica del diario.
También existe una vía de relleno histórico fundamentado para tareas de revisión y recuperación:
Comandos de relleno
memory rem-harness --path ... --groundedmuestra una vista previa de la salida fundamentada del diario a partir de notas históricas deYYYY-MM-DD.md.memory rem-backfill --path ...escribe entradas fundamentadas y reversibles del diario enDREAMS.md.memory rem-backfill --path ... --stage-short-termprepara candidatos duraderos fundamentados 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 normales del diario ni la recuperación activa a corto plazo.
La interfaz de control presenta el mismo flujo de relleno y restablecimiento del diario en la pestaña Memory del agente (página Agents), para que sea posible inspeccionar los resultados en la escena de sueños antes de decidir si los candidatos fundamentados merecen ser promovidos. Una vía diferenciada de escenas fundamentadas muestra qué entradas preparadas a corto plazo proceden de la reproducción histórica y qué elementos promovidos fueron impulsados por contenido fundamentado, 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 | Cantidad de señales a corto plazo acumuladas por la entrada |
| Diversidad de consultas | 0.15 | Contextos distintos de consulta/día en los que apareció |
| Actualidad | 0.15 | Puntuación de vigencia con decaimiento temporal |
| Consolidación | 0.10 | Intensidad de la recurrencia durante varios días |
| Riqueza conceptual | 0.06 | Densidad de etiquetas conceptuales del fragmento o la ruta |
Las coincidencias de las fases ligera y REM añaden un pequeño refuerzo con decaimiento temporal procedente de memory/.dreams/phase-signals.json.
Los resultados de pruebas paralelas pueden superponerse 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 neutra mantiene su aplazamiento y una prueba perjudicial lo marca como rechazado para esa pasada de puntuación. Esta señal es solo informativa: puede cambiar el orden de los candidatos o los metadatos de revisión, pero nunca escribe en MEMORY.md ni promueve por sí sola a un candidato.
Cobertura del informe de pruebas paralelas de QA
QA Lab incluye un escenario solo informativo para explorar cómo una futura prueba paralela de Dreaming podría revisar una memoria candidata antes de su promoción: un agente compara una respuesta de referencia con otra respuesta que puede utilizar la memoria candidata y, a continuación, escribe un informe local con un veredicto, un motivo e indicadores de riesgo. Esta cobertura se limita a QA: verifica que el artefacto del informe permanezca separado de MEMORY.md y que el agente nunca afirme que el candidato fue promovido. No añade un comportamiento de pruebas paralelas en producción ni modifica el motor de promoción de la fase profunda.
El ejecutor de pruebas paralelas memory-core mantiene el mismo contrato solo informativo para las rutas de código que necesitan un artefacto estable. Acepta el candidato, la instrucción de prueba, el resultado de referencia, el resultado del candidato, el veredicto, el motivo, los indicadores de riesgo y las referencias de evidencia, y después escribe un informe con promotion action: report-only. Los veredictos útiles se asignan a una recomendación promote, los veredictos neutros se asignan a defer y los veredictos perjudiciales se asignan a reject; ninguno de ellos escribe en MEMORY.md ni aplica la promoción de la fase profunda.
Programación
Cuando está activado, memory-core administra automáticamente una tarea Cron para un barrido completo de Dreaming, sin duplicados entre el espacio de trabajo principal del entorno de ejecución y cualquier espacio de trabajo de agente configurado, de modo que la expansión de espacios de trabajo de subagentes no excluya el DREAMS.md ni el estado de memoria del agente principal.
| Ajuste | Valor predeterminado |
|---|---|
dreaming.frequency |
0 3 * * * |
dreaming.model |
modelo predeterminado |
Inicio rápido
Activar Dreaming
{ "plugins": { "entries": { "memory-core": { "config": { "dreaming": { "enabled": true } } } } }}Cadencia de barrido personalizada
{ "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 las llamadas 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 --deepLa operación manual memory promote utiliza de forma predeterminada los umbrales de la fase profunda, salvo que se sobrescriban mediante indicadores de la CLI.
Explicar la promoción
Explica por qué un candidato específico se promovería o no:
openclaw memory promote-explain "router vlan"openclaw memory promote-explain "router vlan" --jsonVista previa del entorno de pruebas REM
Muestra una vista previa de las reflexiones REM, las verdades candidatas y la salida de promoción profunda sin escribir nada:
openclaw memory rem-harnessopenclaw memory rem-harness --jsonValores predeterminados clave
Todos los ajustes se encuentran en plugins.entries.memory-core.config.dreaming.
enabledbooleandefault: falseActiva o desactiva el barrido de Dreaming.
frequencystringdefault: 0 3 * * *Cadencia Cron del barrido completo de Dreaming.
modelstringSustitución opcional del modelo del subagente del Diario de sueños. Utilice un valor canónico de provider/model cuando también configure una lista de permitidos allowedModels para subagentes.
phases.deep.maxPromotedSnippetTokensnumberdefault: 160Cantidad máxima estimada 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á activada, la pestaña Dreams del Gateway muestra:
- el estado actual de activación de Dreaming
- el estado de cada fase y la presencia del barrido administrado
- los recuentos a corto plazo, fundamentados, de señales y de elementos promovidos hoy
- la hora de la próxima ejecución programada
- una vía diferenciada de escenas fundamentadas para las entradas preparadas de reproducción histórica
- un lector ampliable del Diario de sueños respaldado por
doctor.memory.dreamDiary