OpenClaw Agent's Plain MEMORY.md Setup Beats Memory Startup's Runtime in Temporal Test
A developer on r/openclaw was DM'd by a memory startup and asked to break their product. The test: feed an agent three versions of the same decision and check whether it returns the current one. The startup's runtime failed; the developer's OpenClaw agent, whose memory is just markdown in a git repo, passed.
The test
Three decisions were fed into the startup's runtime in order:
- REST — January
- GraphQL — April
- tRPC — August
The runtime returned GraphQL. All three came back tied at 1.000 relevance, because nothing in the retrieval path actually reads the temporal fields in the schema.
The OpenClaw agent, by contrast, returned tRPC — dated, with the old versions struck through above it. The author's framing: nothing to rank, that's just what the file says.
What the setup looks like
The agent has been the same one for 7 months across three models and two vendors. Storage was never the hard part — the write rules are:
MEMORY.mdis only an index, no facts. OpenClaw truncates big bootstrap files, so a fat one quietly loses its tail.- Every fact gets tagged
stated,observed,inferred, orsuggested. - An inferred lesson needs 3 signals across 2 sessions before it becomes a rule.
- A changed decision gets struck through, never appended.
The author is upfront: n=1, and it only works if your agent actually follows the rules. A sloppy writer rots a markdown folder too.
Why the temporal fields matter
Most memory systems built for agents treat retrieval as a relevance-ranking problem. If the schema has valid_from / valid_to fields but the retriever ignores them, a superseded fact scores identically to the current one. That's exactly what the startup's runtime showed: three ties at 1.000. A git-backed markdown file sidesteps the ranking problem entirely — the current version is the unstruck line, and the history is inline above it.
The author open sourced the full test and setup; links are in the comments of the original thread. They're also asking what everyone else is running for memory: stock MEMORY.md, a plugin, or something custom.
📖 Read the full source: r/openclaw
👀 See Also

Automating Recruiting Workflows with Claude Desktop: A Case Study
A developer automated the first layer of recruiting using Claude Desktop, Chrome with browser extension, and Google Calendar integration, handling resume screening and interview scheduling every two hours on a Windows workstation.

Claude Code's Underrated Strength: Codebase Navigation Over Code Generation
A developer reports that after months of using Claude Code as their primary dev tool, the biggest productivity gain comes from its ability to read and cross-reference entire codebases faster than grep, enabling rapid understanding of data flows and debugging.

OpenClaw setup for college baseball score updates with Telegram alerts
A developer built an OpenClaw flow that checks ASU and GT baseball games every ~8 minutes using ESPN's college baseball scoreboard API, sending Telegram alerts only when scores, innings, or final results change to avoid spam.

Custom OpenClaw Skills for CRM and CMS Integration
A developer built custom OpenClaw skills to interface with their own CRM and CMS systems, enabling automated lead generation and content drafting with human oversight. The setup took one day to implement.