openclaw - 💡(How to fix) Fix Memory appears inert by default when dreaming is disabled and compaction is not reached

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

With the current default memory setup, users can run OpenClaw for a long time and observe that:

  • MEMORY.md remains empty
  • no recent memory/YYYY-MM-DD.md daily note is created
  • no DREAMS.md diary exists

From source inspection this can be expected behavior, but it presents as "memory is broken" to users because the write paths are split across opt-in dreaming and thresholded pre-compaction flushes.

Error Message

A user can have the default memory-core slot active and still see no visible memory artifacts for ordinary usage:

Root Cause

The user-facing expectation from "memory" is that OpenClaw will form some durable state during normal use. The current behavior is defensible internally, but the product gives little feedback when all visible memory files remain empty because:

  1. dreaming is disabled by default, and
  2. the pre-compaction flush threshold has not been reached, especially on large-context models.

This makes memory look silently non-functional even when the plugin is installed and selected.

RAW_BUFFERClick to expand / collapse

Summary

With the current default memory setup, users can run OpenClaw for a long time and observe that:

  • MEMORY.md remains empty
  • no recent memory/YYYY-MM-DD.md daily note is created
  • no DREAMS.md diary exists

From source inspection this can be expected behavior, but it presents as "memory is broken" to users because the write paths are split across opt-in dreaming and thresholded pre-compaction flushes.

Observed behavior

A user can have the default memory-core slot active and still see no visible memory artifacts for ordinary usage:

  • MEMORY.md stays empty because the pre-compaction memory flush treats it as read-only and only targets memory/YYYY-MM-DD.md.
  • memory/YYYY-MM-DD.md is not created daily; it is only targeted by the silent flush path when compaction/threshold conditions are met.
  • DREAMS.md is not created unless memory dreaming is enabled and runs.

Source-backed root cause

Relevant code paths:

  • extensions/memory-core/src/flush-plan.ts sets the flush target to memory/YYYY-MM-DD.md and marks MEMORY.md / DREAMS.md as read-only during flush.
  • src/auto-reply/reply/agent-runner-memory.ts only runs the flush when the memory flush gate decides it is needed, and skips heartbeat / CLI-provider / non-writable cases.
  • src/auto-reply/reply/memory-flush.ts gates flushing on context-token threshold or the forced transcript-size threshold; it is not a daily cron.
  • src/memory-host-sdk/dreaming.ts defaults memory dreaming to disabled.
  • docs/concepts/dreaming.md documents that dreaming is opt-in and that the deep phase is the path that promotes durable memory into MEMORY.md.

In one local investigation, the configured model had a 256k context window. With the default reserve/soft-threshold values, normal sessions around ~40k-140k tokens did not reach the flush threshold, so no memory/YYYY-MM-DD.md write occurred. Dreaming was not enabled, so no DREAMS.md or MEMORY.md promotion path existed either.

Why this matters

The user-facing expectation from "memory" is that OpenClaw will form some durable state during normal use. The current behavior is defensible internally, but the product gives little feedback when all visible memory files remain empty because:

  1. dreaming is disabled by default, and
  2. the pre-compaction flush threshold has not been reached, especially on large-context models.

This makes memory look silently non-functional even when the plugin is installed and selected.

Expected behavior

OpenClaw should make this state explicit or produce useful memory artifacts sooner. Possible acceptable outcomes:

  • openclaw status, doctor, or the Control UI explains that memory writing is currently idle because dreaming is disabled and compaction thresholds have not been reached.
  • The default memory onboarding nudges users to enable dreaming if they expect MEMORY.md / DREAMS.md to populate.
  • Daily reset / /new paths perform an agentic memory flush before discarding the session.
  • Flush thresholds scale better for large-context models or expose a clearer default for users who want regular short-term memory files.

Related issues

  • #45608 covers extending the agentic memory flush to /new, /reset, and daily reset.
  • #17034 covers memory flush thresholds not scaling well with large context windows.
  • This issue tracks the combined user-facing failure mode: memory appears inert by default even though the underlying code paths are working as designed.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

OpenClaw should make this state explicit or produce useful memory artifacts sooner. Possible acceptable outcomes:

  • openclaw status, doctor, or the Control UI explains that memory writing is currently idle because dreaming is disabled and compaction thresholds have not been reached.
  • The default memory onboarding nudges users to enable dreaming if they expect MEMORY.md / DREAMS.md to populate.
  • Daily reset / /new paths perform an agentic memory flush before discarding the session.
  • Flush thresholds scale better for large-context models or expose a clearer default for users who want regular short-term memory files.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Memory appears inert by default when dreaming is disabled and compaction is not reached