Saltar al contenido principal

Dreaming

Dreaming es el sistema de consolidación de memoria en segundo plano de memory-core. Ayuda a OpenClaw a mover señales sólidas de corto plazo a una memoria duradera, al tiempo que mantiene el proceso explicable y revisable. Dreaming es opcional y está deshabilitado de forma predeterminada.

Qué escribe Dreaming

Dreaming mantiene dos tipos de salida:
  • Estado de máquina en memory/.dreams/ (almacén de recuperación, señales de fase, puntos de control de ingestión, bloqueos).
  • Salida legible por humanos en DREAMS.md (o el archivo dreams.md existente) y archivos opcionales de informe por fase en memory/dreaming/<phase>/YYYY-MM-DD.md.
La promoción a largo plazo sigue escribiendo solo en MEMORY.md.

Modelo de fases

Dreaming usa tres fases cooperativas:
FasePropósitoEscritura duradera
LigeraOrdenar y preparar material reciente de corto plazoNo
ProfundaPuntuar y promover candidatos duraderosSí (MEMORY.md)
REMReflexionar sobre temas e ideas recurrentesNo
Estas fases son detalles internos de implementación, no “modos” separados configurables por el usuario.

Fase ligera

La fase ligera ingiere señales recientes de memoria diaria y trazas de recuperación, las deduplica y prepara líneas candidatas.
  • Lee del estado de recuperación de corto plazo, archivos recientes de memoria diaria y transcripciones de sesiones redactadas cuando están disponibles.
  • Escribe un bloque administrado ## Light Sleep 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 candidatos usando puntuación ponderada y umbrales de control.
  • Requiere que minScore, minRecallCount y minUniqueQueries se cumplan.
  • Rehidrata fragmentos desde archivos diarios activos antes de escribir, por lo que los fragmentos obsoletos o eliminados se omiten.
  • Agrega las entradas promovidas a MEMORY.md.
  • Escribe un resumen ## Deep Sleep en DREAMS.md y opcionalmente escribe memory/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 recientes de corto plazo.
  • Escribe un bloque administrado ## REM Sleep cuando el almacenamiento incluye salida en línea.
  • Registra señales de refuerzo REM usadas por la clasificación profunda.
  • Nunca escribe en MEMORY.md.

Ingestión de transcripciones de sesión

Dreaming puede ingerir transcripciones de sesiones redactadas en el corpus de Dreaming. Cuando las transcripciones están disponibles, se incorporan a la fase ligera junto con señales de memoria diaria y trazas de recuperación. El contenido personal y sensible se redacta antes de la ingestión.

Diario de Sueños

Dreaming también mantiene un Diario de Sueños narrativo en DREAMS.md. Después de que cada fase tiene suficiente material, memory-core ejecuta un turno en segundo plano de un subagente con el mejor esfuerzo (usando el modelo de ejecución predeterminado) y agrega una entrada breve al diario. Este diario es para lectura humana en la IU de Dreams, no una fuente de promoción. Los artefactos de diario/informe generados por Dreaming se excluyen de la promoción de corto plazo. Solo los fragmentos de memoria fundamentados pueden promoverse a MEMORY.md. También hay un flujo fundamentado de relleno histórico para trabajo de revisión y recuperación:
  • memory rem-harness --path ... --grounded previsualiza la salida fundamentada del diario a partir de notas históricas YYYY-MM-DD.md.
  • memory rem-backfill --path ... escribe entradas fundamentadas y reversibles del diario en DREAMS.md.
  • memory rem-backfill --path ... --stage-short-term prepara candidatos duraderos fundamentados en el mismo almacén de evidencias de corto plazo que ya usa la fase profunda normal.
  • memory rem-backfill --rollback y --rollback-short-term eliminan esos artefactos preparados del relleno sin tocar las entradas normales del diario ni la recuperación activa ordinaria de corto plazo.
La IU 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 promoción. La escena también muestra un carril fundamentado distinto para que puedas ver qué entradas preparadas de corto plazo provienen de la reproducción histórica, qué elementos promovidos fueron guiados por lo fundamentado, y limpiar solo las entradas preparadas exclusivamente fundamentadas sin tocar el estado ordinario activo de corto plazo.

Señales de clasificación profunda

La clasificación profunda usa seis señales base ponderadas más refuerzo por fase:
SeñalPesoDescripción
Frecuencia0.24Cuántas señales de corto plazo acumuló la entrada
Relevancia0.30Calidad promedio de recuperación de la entrada
Diversidad de consultas0.15Contextos distintos de consulta/día en los que apareció
Recencia0.15Puntuación de frescura con decaimiento temporal
Consolidación0.10Fuerza de recurrencia en varios días
Riqueza conceptual0.06Densidad de etiquetas conceptuales del fragmento/ruta
Los impactos de las fases ligera y REM agregan un pequeño refuerzo con decaimiento por recencia desde memory/.dreams/phase-signals.json.

Programación

Cuando está habilitado, memory-core administra automáticamente un trabajo de Cron para un barrido completo de Dreaming. Cada barrido ejecuta las fases en orden: ligera -> REM -> profunda. Comportamiento predeterminado de la cadencia:
ConfiguraciónPredeterminado
dreaming.frequency0 3 * * *

Inicio rápido

Habilitar Dreaming:
{
  "plugins": {
    "entries": {
      "memory-core": {
        "config": {
          "dreaming": {
            "enabled": true
          }
        }
      }
    }
  }
}
Habilitar Dreaming con una cadencia de barrido personalizada:
{
  "plugins": {
    "entries": {
      "memory-core": {
        "config": {
          "dreaming": {
            "enabled": true,
            "timezone": "America/Los_Angeles",
            "frequency": "0 */6 * * *"
          }
        }
      }
    }
  }
}

Comando de barra

/dreaming status
/dreaming on
/dreaming off
/dreaming help

Flujo de trabajo de la CLI

Usa la promoción por CLI para previsualizar o aplicar manualmente:
openclaw memory promote
openclaw memory promote --apply
openclaw memory promote --limit 5
openclaw memory status --deep
La instrucción manual memory promote usa los umbrales de la fase profunda de forma predeterminada, a menos que se reemplacen con indicadores de la CLI. Explica por qué un candidato específico se promovería o no:
openclaw memory promote-explain "router vlan"
openclaw memory promote-explain "router vlan" --json
Previsualiza reflexiones REM, verdades candidatas y la salida de promoción profunda sin escribir nada:
openclaw memory rem-harness
openclaw memory rem-harness --json

Valores predeterminados clave

Todas las configuraciones viven en plugins.entries.memory-core.config.dreaming.
ClavePredeterminado
enabledfalse
frequency0 3 * * *
La política de fases, los umbrales y el comportamiento de almacenamiento son detalles internos de implementación (no son configuración orientada al usuario). Consulta la referencia de configuración de Memory para ver la lista completa de claves.

IU de Dreams

Cuando está habilitada, la pestaña Dreams de Gateway muestra:
  • estado actual de habilitación de Dreaming
  • estado por fase y presencia de barrido administrado
  • recuentos de corto plazo, fundamentados, de señales y promovidos hoy
  • horario de la próxima ejecución programada
  • un carril de escena fundamentado distinto para entradas preparadas de reproducción histórica
  • un lector expandible del Diario de Sueños respaldado por doctor.memory.dreamDiary

Relacionado