Sueño
Dreaming es el sistema de consolidación de memoria en segundo plano en memory-core. Ayuda a OpenClaw a mover señales a corto plazo fuertes a una memoria duradera manteniendo el proceso explicable y revisable.
Lo que escribe soñar
Sección titulada «Lo que escribe soñar»Soñar mantiene dos tipos de resultados:
- Estado de la máquina en
memory/.dreams/(almacén de recuerdo, señales de fase, puntos de control de ingesta, bloqueos). - Salida legible por humanos en
DREAMS.md(odreams.mdexistente) y archivos de reporte de fase opcionales bajomemory/dreaming/<phase>/YYYY-MM-DD.md.
La promoción a largo plazo todavía solo escribe en MEMORY.md.
Modelo de fases
Sección titulada «Modelo de fases»Soñar utiliza tres fases cooperativas:
| Fase | Propósito | Escritura duradera |
|---|---|---|
| Ligera | Clasificar y preparar material a corto plazo reciente | No |
| Profunda | Puntuar y promover candidatos duraderos | Sí (MEMORY.md) |
| REM | Reflexionar sobre temas e ideas recurrentes | No |
Estas fases son detalles de implementación internos, no “modos” configurados por el usuario por separado.
Fase ligera
La fase ligera ingiere señales de memoria diaria reciente y trazas de recuerdo, las deduplica y prepara las líneas candidatas.
- Lee del estado de recuerdo a corto plazo, archivos de memoria diaria reciente y transcripciones de sesión redactadas cuando están disponibles.
- Escribe un bloque
## Light Sleepgestionado 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 profunda
La fase profunda decide qué se convierte en memoria a largo plazo.
- Clasifica los candidatos usando puntuación ponderada y puertas de umbral.
- Requiere que
minScore,minRecallCountyminUniqueQueriesse apropien. - Rehidrata fragmentos de archivos diarios en vivo antes de escribir, por lo que se omiten los fragmentos obsoletos/eliminados.
- Agrega las entradas promovidas a
MEMORY.md. - Escribe un resumen
## Deep SleepenDREAMS.mdy opcionalmente escribememory/dreaming/deep/YYYY-MM-DD.md.
Fase REM
La fase REM extrae patrones y señales reflexivas.
- Construye resúmenes de temas y reflexiones a partir de trazas a corto plazo recientes.
- Escribe un bloque
## REM Sleepgestionado cuando el almacenamiento incluye salida en línea. - Registra señales de refuerzo REM utilizadas por la clasificación profunda.
- Nunca escribe en
MEMORY.md.
Ingestión de la transcripción de la sesión
Sección titulada «Ingestión de la transcripción de la sesión»Dreaming puede ingerir transcripciones de sesión redactadas en el corpus de dreaming. Cuando las transcripciones están disponibles, se introducen en la fase ligera junto con las señales de memoria diaria y las trazas de recuerdo. El contenido personal y sensible se redacta antes de la ingestión.
Diario de sueños
Sección titulada «Diario de sueños»Dreaming también mantiene un Diario de Sueños narrativo en DREAMS.md. Después de que cada fase tenga suficiente material, memory-core ejecuta un mejor intento de turno de subagente en segundo plano y añade una breve entrada de diario. Usa el modelo de tiempo de ejecución predeterminado a menos que se configure dreaming.model. Si el modelo configurado no está disponible, el Diario de Sueños reintenta una vez con el modelo predeterminado de la sesión.
También existe un carril de relleno histórico fundamentado para el trabajo de revisión y recuperación:
Comandos de relleno retrospectivo
memory rem-harness --path ... --groundedprevisualiza la salida del diario fundamentado a partir de notas históricas deYYYY-MM-DD.md.memory rem-backfill --path ...escribe entradas de diario fundamentadas reversibles enDREAMS.md.memory rem-backfill --path ... --stage-short-termprepara candidatos duraderos fundamentados en el mismo almacén de evidencias a corto plazo que la fase profunda normal ya utiliza.memory rem-backfill --rollbacky--rollback-short-termeliminan esos artefactos de relleno retrospectivo preparados sin tocar las entradas de diary ordinarias ni la recuperación a corto plazo en vivo.
La Interfaz de Usuario de Control expone el mismo flujo de relleno/restablecimiento del diario para que puedas inspeccionar los resultados en la escena Dreams antes de decidir si los candidatos fundamentados merecen ser promovidos. La Escena también muestra un carril fundamentado distinto para que puedas ver qué entradas a corto plazo ensayadas provinieron de la repetición histórica, qué elementos promovidos fueron dirigidos por fundamentación, y borrar solo las entradas ensayadas exclusivamente fundamentadas sin tocar el estado ordinario a corto plazo en vivo.
Señales de clasificación profunda
Sección titulada «Señales de clasificación profunda»La clasificación profunda utiliza seis señales base ponderadas más el refuerzo de fase:
| Señal | Peso | Descripción |
|---|---|---|
| Frecuencia | 0.24 | Cuántas señales a corto plazo acumuló la entrada |
| Relevancia | 0.30 | Calidad promedio de recuperación para la entrada |
| Diversidad de consultas | 0.15 | Contextos distintos de consulta/día que la mostraron |
| Recencia | 0.15 | Puntuación de frescura con decaimiento temporal |
| Consolidación | 0.10 | Fuerza de recurrencia multidiaria |
| Riqueza conceptual | 0.06 | Densidad de etiquetas conceptuales del fragmento/ruta |
Los aciertos de las fases Ligera y REM añaden un pequeño impulso de decadencia por recencia de memory/.dreams/phase-signals.json.
Los resultados de las pruebas de sombra (shadow-trial) pueden superponerse a esa puntuación base como una señal de revisión antes de cualquier escritura duradera. Una prueba útil otorga al candidato un pequeño aumento limitado, una prueba neutra mantiene su aplazamiento y una prueba dañina lo marca como rechazado para ese pase de puntuación. Esta señal sigue siendo solo de informe: puede cambiar el orden de los candidatos o los metadatos de revisión, pero no escribe en MEMORY.md ni promueve al candidato por sí sola.
Cobertura del informe de la prueba de sombra de QA
Sección titulada «Cobertura del informe de la prueba de sombra de QA»QA Lab incluye un escenario solo de informe para explorar cómo una futura prueba de sombra de “dreaming” podría revisar una memoria candidata antes de la promoción. El escenario solicita a un agente que compare una respuesta base con una respuesta que puede usar la memoria candidata, y luego escriba un informe local con un veredicto, una razón y banderas de riesgo.
Esta cobertura tiene un alcance intencionalmente limitado a QA. Verifica que el artefacto del informe permanezca separado de MEMORY.md y que el agente no afirme que el candidato fue promovido. No añade comportamiento de prueba de sombra en producción ni cambia el motor de promoción de fase profunda.
El ejecutor de pruebas de sombra memory-core mantiene ese mismo contrato de solo informe para las rutas de código que necesitan un artefacto estable. Acepta el candidato, el mensaje de prueba, el resultado base, el resultado del candidato, el veredicto, la razón, las banderas de riesgo y las referencias de evidencia, y luego escribe un informe con promotion action: report-only. Los veredictos útiles se asignan a una recomendación promote, los veredictos neutrales a defer y los veredictos dañinos a reject; ninguna de esas recomendaciones escribe en MEMORY.md ni aplica la promoción de fase profunda.
Programación
Sección titulada «Programación»Cuando está habilitado, memory-core gestiona automáticamente un trabajo cron para un barrido completo de “dreaming”. Cada barrido ejecuta las fases en orden: ligera → REM → profunda.
El barrido incluye el espacio de trabajo de ejecución principal y cualquier espacio de trabajo de agente configurado, deduplicado por ruta, por lo que la expansión del espacio de trabajo del subagente no excluye el DREAMS.md y el estado de memoria del agente principal.
Comportamiento de cadencia predeterminado:
| Configuración | Predeterminado |
|---|---|
dreaming.frequency | 0 3 * * * |
dreaming.model | modelo predeterminado |
Inicio rápido
Sección titulada «Inicio rápido»{ "plugins": { "entries": { "memory-core": { "config": { "dreaming": { "enabled": true } } } } }}{ "plugins": { "entries": { "memory-core": { "config": { "dreaming": { "enabled": true, "timezone": "America/Los_Angeles", "frequency": "0 */6 * * *" } } } } }}Comando de barra diagonal
Sección titulada «Comando de barra diagonal»/dreaming status/dreaming on/dreaming off/dreaming helpFlujo de trabajo de CLI
Sección titulada «Flujo de trabajo de CLI»openclaw memory promoteopenclaw memory promote --applyopenclaw memory promote --limit 5openclaw memory status --deepEl memory promote manual utiliza umbrales de fase profunda de forma predeterminada a menos que se anule con indicadores de CLI.
Explique por qué un candidato específico promovería o no:
openclaw memory promote-explain "router vlan"openclaw memory promote-explain "router vlan" --jsonVista previa de reflexiones REM, verdades candidatas y salida de promoción profunda sin escribir nada:
openclaw memory rem-harnessopenclaw memory rem-harness --jsonValores predeterminados clave
Sección titulada «Valores predeterminados clave»Todas las configuraciones se encuentran en plugins.entries.memory-core.config.dreaming.
Interfaz de usuario de Dreams
Sección titulada «Interfaz de usuario de Dreams»Cuando está habilitado, la pestaña Dreams de Gateway muestra:
- estado actual de habilitación de dreaming
- estado a nivel de fase y presencia de barrido gestionado
- recuentos de corto plazo, con base, señal y promovidos hoy
- momento de la próxima ejecución programada
- un carril de Escena (Scene) distinto con base para entradas de repetición histórica preparadas
- un lector del Diario de Sueños (Dream Diary) ampliable respaldado por
doctor.memory.dreamDiary
Dreaming nunca se ejecuta: el estado muestra bloqueado
Sección titulada «Dreaming nunca se ejecuta: el estado muestra bloqueado»Si openclaw memory status informa Dreaming status: blocked, el cron gestionado existe, pero el latido del agente predeterminado no se está activando. Verifique que el latido esté habilitado para el agente predeterminado y que su objetivo no sea none, luego ejecute openclaw memory status --deep nuevamente después del siguiente intervalo de latido.