diff --git a/CHANGELOG.md b/CHANGELOG.md index 28871cc0837..f4e2984c76c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ Docs: https://docs.openclaw.ai - Tests/secrets runtime: restore split secrets suite cache and env isolation cleanup so broader runs do not leak stale plugin or provider snapshot state. (#60395) Thanks @shakkernerd. - Memory/dreaming (experimental): add opt-in weighted short-term recall promotion to `MEMORY.md`, managed dreaming modes (`off|core|rem|deep`), and a `/dreaming` command plus Dreams UI so durable memory promotion can run on background cadence without manual scheduling. (#60569) Thanks @vignesh07. - Agents/system prompts: add an internal cache-prefix boundary across Anthropic-family, OpenAI-family, Google, and CLI transport shaping so stable system-prompt prefixes stay reusable without leaking internal cache markers to provider payloads. (#59054) Thanks @coletebou and @vincentkoc. +- Docs/memory: add a dedicated Dreaming concept page, expand Memory overview with the Dreaming model, and link Dreaming from further reading to document the experimental opt-in consolidation workflow. Thanks @vignesh07. ### Fixes diff --git a/docs/concepts/memory-dreaming.md b/docs/concepts/memory-dreaming.md new file mode 100644 index 00000000000..47a4fdb7d2a --- /dev/null +++ b/docs/concepts/memory-dreaming.md @@ -0,0 +1,103 @@ +--- +title: "Dreaming (experimental)" +summary: "Background promotion from short-term recall into long-term memory" +read_when: + - You want memory promotion to run automatically + - You want to understand dreaming modes and thresholds + - You want to tune consolidation without polluting MEMORY.md +--- + +# Dreaming (experimental) + +Dreaming is the background memory consolidation pass in `memory-core`. + +It is called "dreaming" because the system revisits what came up during the day +and decides what is worth keeping as durable context. + +Dreaming is **experimental**, **opt-in**, and **off by default**. + +## What dreaming does + +1. Tracks short-term recall events from `memory_search` hits in + `memory/YYYY-MM-DD.md`. +2. Scores those recall candidates with weighted signals. +3. Promotes only qualified candidates into `MEMORY.md`. + +This keeps long-term memory focused on durable, repeated context instead of +one-off details. + +## Promotion signals + +Dreaming combines four signals: + +- **Frequency**: how often the same candidate was recalled. +- **Relevance**: how strong recall scores were when it was retrieved. +- **Query diversity**: how many distinct query intents surfaced it. +- **Recency**: temporal weighting over recent recalls. + +Promotion requires all configured threshold gates to pass, not just one signal. + +## Modes + +`dreaming.mode` controls cadence and default thresholds: + +- `off`: dreaming disabled. +- `core`: nightly cadence with balanced thresholds. +- `rem`: more frequent cadence for active consolidation. +- `deep`: stricter promotion gating with slower cadence. + +Default presets: + +- `core`: `0 3 * * *`, `minScore=0.75`, `minRecallCount=3`, + `minUniqueQueries=2` +- `rem`: `0 */6 * * *`, `minScore=0.85`, `minRecallCount=4`, + `minUniqueQueries=3` +- `deep`: `0 */12 * * *`, `minScore=0.8`, `minRecallCount=3`, + `minUniqueQueries=3` + +## Scheduling model + +When dreaming is enabled, `memory-core` manages the recurring schedule +automatically. You do not need to manually create a cron job for this feature. + +You can still tune behavior with explicit overrides such as: + +- `dreaming.frequency` (cron expression) +- `dreaming.timezone` +- `dreaming.limit` +- `dreaming.minScore` +- `dreaming.minRecallCount` +- `dreaming.minUniqueQueries` + +## Configure + +```json +{ + "plugins": { + "entries": { + "memory-core": { + "config": { + "dreaming": { + "mode": "core" + } + } + } + } + } +} +``` + +## Operational notes + +- Use `/dreaming off|core|rem|deep` to switch modes from chat. +- Use `openclaw memory promote` to preview candidates and + `openclaw memory promote --apply` for manual promotion. +- Use `openclaw memory status --deep` to inspect current memory and dreaming + status. + +## Further reading + +- [Memory](/concepts/memory) +- [Memory Search](/concepts/memory-search) +- [memory CLI](/cli/memory) +- [Memory configuration reference](/reference/memory-config) diff --git a/docs/concepts/memory.md b/docs/concepts/memory.md index 78f12900450..9969cc3001c 100644 --- a/docs/concepts/memory.md +++ b/docs/concepts/memory.md @@ -83,6 +83,23 @@ important facts in the conversation that are not yet written to a file, they will be saved automatically before the summary happens. +## Dreaming (experimental) + +Dreaming is an optional background consolidation pass for memory. It revisits +short-term recalls from daily files (`memory/YYYY-MM-DD.md`), scores them, and +promotes only qualified items into long-term memory (`MEMORY.md`). + +It is designed to keep long-term memory high signal: + +- **Opt-in**: disabled by default. +- **Scheduled**: when enabled, `memory-core` manages the recurring task + automatically. +- **Thresholded**: promotions must pass score, recall frequency, and query + diversity gates. + +For mode behavior (`off`, `core`, `rem`, `deep`), scoring signals, and tuning +knobs, see [Dreaming (experimental)](/concepts/memory-dreaming). + ## CLI ```bash @@ -98,5 +115,7 @@ openclaw memory index --force # Rebuild the index - [Honcho Memory](/concepts/memory-honcho) -- AI-native cross-session memory - [Memory Search](/concepts/memory-search) -- search pipeline, providers, and tuning +- [Dreaming (experimental)](/concepts/memory-dreaming) -- background promotion + from short-term recall to long-term memory - [Memory configuration reference](/reference/memory-config) -- all config knobs - [Compaction](/concepts/compaction) -- how compaction interacts with memory diff --git a/docs/docs.json b/docs/docs.json index aca3b7f2ed5..d04f5f90cf2 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -1068,7 +1068,8 @@ "concepts/memory-builtin", "concepts/memory-qmd", "concepts/memory-honcho", - "concepts/memory-search" + "concepts/memory-search", + "concepts/memory-dreaming" ] }, "concepts/compaction"