Why Doesn't OpenClaw Remember?

The most common question I hear from Klaus users is: “Why doesn’t OpenClaw remember x?”

I ask them what they did to get OpenClaw to remember, and they say “uhh… ask nicely? Isn’t this supposed to just work?” Sadly, not yet.

OpenClaw’s Memory: A Primer

Bootstrap files (e.g. AGENTS.md, TOOLS.md, MEMORY.md, SOUL.md, USER.md) are explicit written instructions for OpenClaw, loaded into context in every conversation.

Memory files are created every time you run /new or /reset — OpenClaw writes down notes it thinks will be helpful in the future to ~/.openclaw/workspace/memory/*.md.

Skills are instructions for specific tasks, and often include executable scripts. OpenClaw always knows the names and subtitles of skills, but has to choose to read the full description.

The filesystem works just like one on your own computer, though OpenClaw generally won’t search it unless you ask it to.

Conversation history should not be relied upon — the messages you send to OpenClaw will disappear when your conversation gets too long or you switch to a different messaging service.

The Magic Words

If you want OpenClaw to remember something, most of the time you should make a skill. For example, if you want OpenClaw to sign all of its emails as “Klaus, on behalf of Robbie” and always ask for your confirmation before sending, then ask OpenClaw to make a send-email skill with this information. You can reference this skill in any other instructions you give OpenClaw, including other skills.

If you have very general instructions, e.g. “Always address me as Father Duck, imitate the voice of George Orwell in your communications, and never make jokes,” then you should update one of the workspace files. Theoretically AGENTS.md, TOOLS.md, MEMORY.md, SOUL.md, and USER.md are meant for five separate categories of info, but I wouldn’t sweat which of these five you pick.

Every time I want OpenClaw to remember something, I explicitly tell it to use one of these two methods. For example: “update the CRM skill — always push to git after making an update.” Or “write down in TOOLS.md: always use gogcli for reading google drive, never use the browser.”

In theory OpenClaw automatically writes daily memory logs, but I looked through mine and Bailey’s and didn’t see anything useful. I also tried some of the plugins that help with memory and didn’t like them.

Why Klaus Is Better

Two updates we have made for Klaus instances that I really like: first, we enable semantic search over session logs, and instruct Klaus to use this whenever the user insists that they have already explained something. We used to have a hand-rolled deep-recall skill that did this before OpenClaw supported it natively. Second, we changed AGENTS.md to more aggressively instruct Klaus to remember things, and to always prefer writing a skill or editing a bootstrap file.

For a deeper dive on how OpenClaw memory works, I recommend this excellent video from @velvet_shark: https://x.com/velvet_shark/status/2030042476418134148

Or his blog post: https://velvetshark.com/openclaw-memory-masterclass