๐ŸŽ Get the FREE AI Skills Starter Guide โ€” Subscribe โ†’
BytesAgainBytesAgain
๐Ÿฆ€ ClawHub

Long-Term Memory Manager

by @shenmeng

Long-term memory management system for maintaining MEMORY.md, consolidating daily memories, and extracting key insights. Use when: (1) Consolidating daily me...

Versionv1.0.0
Downloads613
TERMINAL
clawhub install longterm-memory-manager

๐Ÿ“– About This Skill


name: longterm-memory description: "Long-term memory management system for maintaining MEMORY.md, consolidating daily memories, and extracting key insights. Use when: (1) Consolidating daily memories into MEMORY.md, (2) Archiving old daily memories, (3) Extracting key facts from conversations, (4) Searching through memory history, (5) Setting up memory maintenance automation. Triggers on '้•ฟๆœŸ่ฎฐๅฟ†', 'memory consolidate', '่ฎฐๅฟ†็ฎก็†', 'ๅฝ’ๆกฃ', 'MEMORY.md', '่ฎฐๅฟ†ๅŽ‹็ผฉ'."

Long-Term Memory Management

Systematic management of MEMORY.md and daily memory files for persistent knowledge retention.

Memory Architecture

~/.openclaw/workspace/
โ”œโ”€โ”€ MEMORY.md              # Long-term curated memory (main)
โ”œโ”€โ”€ memory/                # Daily memory files
โ”‚   โ”œโ”€โ”€ 2025-01-20.md
โ”‚   โ”œโ”€โ”€ 2025-01-21.md
โ”‚   โ””โ”€โ”€ ...
โ””โ”€โ”€ .memory-archive/       # Archived memories
    โ””โ”€โ”€ 2025-01/
        โ”œโ”€โ”€ consolidated.md
        โ””โ”€โ”€ raw/

Quick Commands

# Consolidate recent daily memories
python3 {baseDir}/scripts/memory_manager.py --consolidate --days 7

Archive old memories

python3 {baseDir}/scripts/memory_manager.py --archive --older-than 30

Extract key facts from MEMORY.md

python3 {baseDir}/scripts/memory_manager.py --extract-facts

Search memory history

python3 {baseDir}/scripts/memory_manager.py --search "ๅ…ณ้”ฎ่ฏ"

Generate memory summary

python3 {baseDir}/scripts/memory_manager.py --summary --output memory-summary.md

Health check

python3 {baseDir}/scripts/memory_manager.py --health

MEMORY.md Management

Structure

MEMORY.md should contain distilled, long-term knowledge:

# MEMORY.md - Long-Term Memory

User Profile

  • Name: ...
  • Preferences: ...
  • Work patterns: ...
  • Key Decisions

  • [Date] Decision: Reasoning...
  • Important Facts

  • Account: location...
  • Credentials: stored in...
  • Recurring tasks: ...
  • Lessons Learned

  • Pattern: Insight...
  • Active Projects

  • Project A: Status, next steps...
  • Recurring Context

  • Weekly meetings: ...
  • Regular reports: ...
  • Consolidation Workflow

    1. Review daily memories (last 7 days) 2. Extract significant items: - User preferences mentioned - Important decisions made - New facts discovered - Lessons learned - Active project updates 3. Update MEMORY.md with distilled content 4. Archive processed daily files

    # Full consolidation workflow
    python3 {baseDir}/scripts/memory_manager.py --consolidate --auto-archive
    

    What to Keep in MEMORY.md

    | Keep | Don't Keep | |------|------------| | User preferences | Temporary states | | Key decisions | Daily trivia | | Important facts | Transient data | | Lessons learned | Detailed logs | | Active projects | Heartbeat checks | | Recurring patterns | One-time events | | Credentials locations | OAuth URLs |

    Daily Memory Files

    Purpose

    memory/YYYY-MM-DD.md files capture:

  • What happened today
  • Important conversations
  • Decisions made
  • Tasks completed
  • Context for future reference
  • Best Practices

    DO:

    # 2025-01-20

    Key Events

  • User asked about X, decided Y
  • Set up new integration Z
  • Discovered preference for concise responses
  • Decisions

  • Use tool X instead of Y for Z task (user preference)
  • Pending

  • Follow up on ...
  • DON'T:

    # 2025-01-20

    Got message. Replied HEARTBEAT_OK. User said hi. Said hi back. Time is 3pm.

    Automatic Extraction

    The system can extract valuable content:

    # Extract what matters from daily files
    python3 {baseDir}/scripts/memory_manager.py --extract --from "2025-01-20.md"

    Output: List of extractable facts

    Archival System

    Archive Threshold

    Default: Archive daily memories older than 30 days

    # Archive old memories
    python3 {baseDir}/scripts/memory_manager.py --archive --older-than 30

    Archive with consolidation

    python3 {baseDir}/scripts/memory_manager.py --archive --older-than 30 --consolidate-first

    Archive Structure

    .memory-archive/
    โ”œโ”€โ”€ 2025-01/
    โ”‚   โ”œโ”€โ”€ consolidated.md    # Summary of the month
    โ”‚   โ””โ”€โ”€ raw/               # Original daily files
    โ”‚       โ”œโ”€โ”€ 2025-01-01.md
    โ”‚       โ””โ”€โ”€ ...
    โ””โ”€โ”€ 2025-02/
        โ””โ”€โ”€ ...
    

    Retrieval from Archive

    # Search archived memories
    python3 {baseDir}/scripts/memory_manager.py --search "keyword" --include-archive

    Retrieve specific archived content

    python3 {baseDir}/scripts/memory_manager.py --retrieve "2025-01-15"

    Memory Compression

    What Gets Compressed

    Daily memories contain repetition and noise. Compression extracts:

    1. Unique events - Things that happened once 2. Recurring patterns - Things that repeat 3. Key decisions - Choices made 4. Important facts - Persistent information

    Compression Rules

    # Compress with custom rules
    python3 {baseDir}/scripts/memory_manager.py --compress \
      --rules keep-decisions,keep-preferences,keep-facts \
      --remove heartbeets,trivial,transient
    

    Example Compression

    Before (daily files, 5000 words):

    # 2025-01-20
    User asked about API. Looked up docs. Found answer.
    User preferred concise response. Noted preference.
    ...

    2025-01-21

    User asked about API again. Provided concise answer. User appreciated brevity. ...

    After (MEMORY.md, 100 words):

    ## User Preferences
    
  • Prefers concise responses over detailed explanations
  • Knowledge

  • API documentation location: ...
  • Lessons

  • Concise answers are preferred for API questions
  • Memory Search

    Search Commands

    # Search all memories
    python3 {baseDir}/scripts/memory_manager.py --search "ๅ…ณ้”ฎ่ฏ"

    Search specific range

    python3 {baseDir}/scripts/memory_manager.py --search "..." --from 2025-01-01 --to 2025-01-31

    Search with context

    python3 {baseDir}/scripts/memory_manager.py --search "..." --context 3

    Search archives too

    python3 {baseDir}/scripts/memory_manager.py --search "..." --include-archive

    Search Output

    {
      "query": "ๅ…ณ้”ฎ่ฏ",
      "results": [
        {
          "date": "2025-01-20",
          "file": "memory/2025-01-20.md",
          "line": 15,
          "context": "...",
          "relevance": "high"
        }
      ],
      "total": 3
    }
    

    Integration with Vector Memory

    This skill works alongside vector memory (LanceDB):

    | System | Purpose | Retention | |--------|---------|-----------| | MEMORY.md | Curated long-term memory | Permanent | | memory/YYYY-MM-DD.md | Daily logs | 30 days โ†’ archive | | Vector memory (LanceDB) | Semantic search | Variable |

    Coordination

    # Consolidate both systems
    python3 {baseDir}/scripts/memory_manager.py --consolidate --sync-vector

    The script will:

    1. Update MEMORY.md

    2. Archive old daily files

    3. Sync key facts to vector memory

    Automation

    Periodic Consolidation

    Add to heartbeat or cron:

    # HEARTBEAT.md
    
  • Run memory consolidation weekly
  • Archive memories older than 30 days
  • Sync to vector memory
  • Or via cron:

    # Weekly consolidation (Sunday 4am)
    cron action=add job='{
      "name": "memory-consolidation",
      "schedule": "0 4 * * 0",
      "text": "Consolidate weekly memories: 1) Review memory/ files 2) Update MEMORY.md 3) Archive old files 4) Sync to vector memory"
    }'
    

    Automated Extraction

    During heartbeats, automatically extract:

    python3 {baseDir}/scripts/memory_manager.py --auto-extract --days 1
    

    Memory Health

    Health Metrics

    | Metric | Healthy | Warning | Critical | |--------|---------|---------|----------| | Daily files count | <30 | 30-60 | >60 | | MEMORY.md size | <50KB | 50-100KB | >100KB | | Archive coverage | >90% | 50-90% | <50% | | Last consolidation | <7 days | 7-14 days | >14 days |

    Health Check

    python3 {baseDir}/scripts/memory_manager.py --health

    Output

    {
      "status": "healthy",
      "metrics": {
        "daily_files": 15,
        "memory_md_size": "12KB",
        "last_consolidation": "2025-01-18",
        "archive_coverage": "95%"
      },
      "recommendations": []
    }
    

    Cleanup

    # Clean up stale content
    python3 {baseDir}/scripts/memory_manager.py --cleanup

    Remove duplicates

    python3 {baseDir}/scripts/memory_manager.py --dedupe

    Reorganize structure

    python3 {baseDir}/scripts/memory_manager.py --reorganize

    Best Practices

    Writing to MEMORY.md

    1. Be concise - Distill, don't copy 2. Use structure - Consistent sections 3. Date important items - When did this become true? 4. Review periodically - Remove outdated info 5. One concept per line - Easy to search

    Managing Daily Files

    1. Write daily - Capture what matters 2. Skip trivial - No heartbeat logs 3. Link related - Reference other files 4. Mark important - Use clear headings 5. Archive promptly - Don't accumulate

    Integration with Other Skills

    # Use with self-evolution
    python3 {baseDir}/scripts/memory_manager.py --consolidate
    python3 ../self-evolution/scripts/evolution.py --analyze --with-memory

    Use with self-improvement

    Log a learning, then consolidate

    python3 {baseDir}/scripts/memory_manager.py --extract-from .learnings/LEARNINGS.md

    Workflow Examples

    Weekly Maintenance

    # 1. Check health
    python3 {baseDir}/scripts/memory_manager.py --health

    2. Consolidate recent memories

    python3 {baseDir}/scripts/memory_manager.py --consolidate --days 7

    3. Archive old files

    python3 {baseDir}/scripts/memory_manager.py --archive --older-than 30

    4. Sync to vector memory

    python3 {baseDir}/scripts/memory_manager.py --sync-vector

    5. Generate report

    python3 {baseDir}/scripts/memory_manager.py --summary

    After Important Session

    # Extract key facts immediately
    python3 {baseDir}/scripts/memory_manager.py --extract --today

    Update MEMORY.md

    python3 {baseDir}/scripts/memory_manager.py --update --section "Key Decisions" --add "..."

    Research Task

    # Search all memories for context
    python3 {baseDir}/scripts/memory_manager.py --search "้กน็›ฎๅ" --include-archive --context 5

    Export relevant memories

    python3 {baseDir}/scripts/memory_manager.py --export "้กน็›ฎๅ" --output project-context.md

    Notes

  • MEMORY.md is for main sessions only (not group chats)
  • Daily files should be raw logs, not polished documents
  • Archiving preserves data, just moves it out of active view
  • Consolidation is distillation, not summarization
  • The goal: quick recall of important information
  • ๐Ÿ“‹ Tips & Best Practices

    DO: ```markdown

    2025-01-20