minimal-memory
Maintain clean, efficient memory files with GOOD/BAD/NEUTRAL categorization and semantic search.
Minimal Memory Management
Keep agent memory lean, searchable, and actionable through structured categorization and two-tier storage.
Core Principle
MEMORY.md = Long-term essentials (GOOD/BAD learnings only) memory/YYYY-MM-DD.md = Daily operations (GOOD/BAD/NEUTRAL tagged)
Information Categorization
Tag every memory entry with its value:
| Tag | Meaning | Keep in MEMORY.md? | Example |
|---|---|---|---|
[GOOD] | Worked well, repeat | ā Yes | [GOOD] CSV batch format prevents duplicates |
[BAD] | Failed, avoid | ā Yes | [BAD] Bird CLI blocked by X anti-automation |
[NEUTRAL] | Facts, context, state | ā No | [NEUTRAL] Day 5 of 30-day media plan |
Writing Rules
- Always tag new entries in daily files
- Be specific: What worked/failed and why
- One tag per entry - pick the strongest category
- NEUTRAL expires: Archive after 30 days unless promoted to GOOD/BAD
What Goes Where
MEMORY.md (Categorized Learnings)
Keep under 150 lines. Only GOOD and BAD entries:
## GOOD - What Works
- `[GOOD]` Cron jobs with CSV batching = zero duplicates
- `[GOOD]` Browser tool > CLI for X.com automation
- `[GOOD]` Moltbook "crypto" submolt for token posts
## BAD - What to Avoid
- `[BAD]` Never use bird CLI for X (anti-bot blocks it)
- `[BAD]` Don't post identical content across platforms
memory/YYYY-MM-DD.md (Daily Log)
All three categories with full context:
# 2026-02-15
## [GOOD]
- Fixed duplicate posting with 4-batch CSV structure
- Created 10 cron jobs for complete automation
## [BAD]
- Old CSV format caused content duplication (now deprecated)
## [NEUTRAL]
- Day 5 of 30-day media plan
- Posted $ZEN token shill at 07:00 batch
Quick Commands
Search Memory
# Search all memory files
~/.openclaw/skills/minimal-memory/scripts/search.sh "duplicate posting"
# Search only GOOD learnings
~/.openclaw/skills/minimal-memory/scripts/search.sh --good "CSV"
# Search only BAD learnings
~/.openclaw/skills/minimal-memory/scripts/search.sh --bad "CLI"
# Recent entries only (last 7 days)
~/.openclaw/skills/minimal-memory/scripts/search.sh --recent "cron job"
Daily Memory
# Create today's memory file with template
~/.openclaw/skills/minimal-memory/scripts/daily.sh
# Add entry with auto-tagging
~/.openclaw/skills/minimal-memory/scripts/add.sh GOOD "Browser tool works better than CLI"
Cleanup
# Review and migrate GOOD/BAD to MEMORY.md
~/.openclaw/skills/minimal-memory/scripts/cleanup.sh
# Archive old NEUTRAL entries (>30 days)
~/.openclaw/skills/minimal-memory/scripts/archive.sh
Workflow
When Writing a Memory
- Tag it: Is this GOOD, BAD, or NEUTRAL?
- Write to daily file with tag prefix
- Weekly review: Promote GOOD/BAD to MEMORY.md
- Archive NEUTRAL after 30 days
When Searching
- Use search script for fast grep across all files
- Check MEMORY.md first for established patterns
- Fall back to daily files for specific context
- Prefer recent entries unless looking for historical
Weekly Cleanup
- Read last 7 days of daily files
- Extract
[GOOD]and[BAD]entries - Add to MEMORY.md "GOOD" and "BAD" sections
- Remove duplicates, condense similar items
- Ensure MEMORY.md < 150 lines
Anti-Patterns
ā Don't skip tagging - every entry needs a category ā Don't put NEUTRAL in MEMORY.md ā Don't let MEMORY.md grow past 200 lines ā Don't keep NEUTRAL entries forever (30 day max) ā Don't create topical files - use daily + search
ā Do search before asking user "did we try this?" ā Do migrate GOOD/BAD weekly ā Do be specific in failure/success descriptions ā Do trust the search script to find context
Migration from Old System
If MEMORY.md has untagged content:
- Read entire MEMORY.md
- Categorize each entry: GOOD/BAD/NEUTRAL
- Move NEUTRAL to appropriate daily file
- Keep GOOD/BAD in MEMORY.md with tags
- Future entries: always tag in daily files first