How OpenCLAW Memory Actually Works: Fixing Agent 'Forgetting'

How OpenCLAW Memory Actually Works
OpenCLAW agents don't have persistent memory between conversations. Every time you send a message, the agent reads several files (SOUL.md, USER.md, MEMORY.md, and recent session history) and constructs its "memory" from scratch. It's not remembering - it's reading its notes.
Why Your Agent Forgets Things
Reason 1: Your session is too old
Every message in your current session gets included in each new API call. After 2-3 weeks, this becomes thousands of tokens. The model either hits its context limit (old conversations get silently truncated) or OpenCLAW runs compaction which summarizes everything but loses detail.
Fix: Use /new regularly - daily at minimum, and before any big task. This clears the conversation buffer while keeping all files intact.
Reason 2: Important info is in chat history, not in files
If you told your agent something in a conversation 3 weeks ago, that info lives in session history which gets truncated. Anything your agent should ALWAYS know needs to be in a file, not in chat.
Fix: Put permanent information in USER.md:
# About me
- Name: [your name]
- Partner: [name]
- Location: [city]
- Job: [role]
- Timezone: [timezone]
Preferences
- Communication: direct, no filler
- Morning routine: briefing at 8am
- Never schedule meetings before 10am
- Coffee order: [whatever it is, seriously]
This file gets loaded every session and never gets truncated or compacted.
Reason 3: MEMORY.md is a bloated mess
Most people never structure MEMORY.md, so after a month it becomes a giant wall of text that the model skims instead of reads. Important facts get buried under irrelevant details.
Fix: Structure your MEMORY.md into clear sections:
# People
Sarah (wife): works at [company], birthday June 12
Mike (coworker): handles the frontend, prefers slack over email
Active Projects
- Kitchen renovation: contractor is Dave, budget $15K, starts April
- Q2 presentation: due March 28, needs sales data from Mike
Decisions Made
- Switched from opus to sonnet on March 5 (cost reasons)
- Using brave search API instead of google (free tier sufficient)
Recurring Tasks
- Daily briefing at 8am (calendar + email + weather)
- Weekly grocery list every Sunday at 6pm
Organized memory gets retrieved accurately. The agent reads structured text better than a wall of paragraphs.
Reason 4: You don't have a memory maintenance routine
Memory files grow forever without cleaning. After 2 months, MEMORY.md has 300 lines with half being outdated or irrelevant, wasting tokens on finished projects.
Fix: Set up a nightly memory cron. Add this to your agent's instructions:
every night at 11pm:
- review today's conversations
- extract any new facts, decisions, or commitments
- add them to the correct section in MEMORY.md
- remove anything that's no longer relevant
- start a fresh session
Reason 5: You're confusing session memory with long-term memory
Understand the hierarchy:
- SOUL.md: Identity and personality. Loaded every time. Never changes unless you change it.
- USER.md: Facts about you. Loaded every time. Update when your life changes.
- MEMORY.md: Ongoing context. Loaded every time. Grows and gets pruned.
📖 Read the full source: r/clawdbot
👀 See Also

Accessing USB Webcams in WSL2 for Local Motion Detection
A developer shares how to use usbipd-win to pass USB webcams from Windows to WSL2, enabling local motion detection with OpenCV without cloud dependencies.

Optimizing OpenClaw Setup: Practical Patterns and Insights
OpenClaw users share effective setup patterns, such as using cron for scheduled tasks and creating specialized sub-agents, to enhance functionality and cost-efficiency.

How to safely run llama.cpp native tools (exec_shell_command) with multi-sandboxing on Linux
A practical guide to enabling llama.cpp native tools, especially exec_shell_command, and running them inside multiple sandboxes (Firejail + tiny Alpine VM) for safe web fetching and command execution via the llama-server web UI.

OpenClaw Failure Patterns: 42 Real Incidents in 28 Days
A developer running OpenClaw daily documented 42 specific failures across eight categories, including AI hallucinations, authentication breakdowns, and automation that costs more time than it saves. The source provides concrete examples like Google OAuth 7-day token expiration and Opus 4.6 adding unwanted metadata to files.