Elite Longterm Memory
by @nextfrontierbuilds
Ultimate AI agent memory system for Cursor, Claude, ChatGPT & Copilot. WAL protocol + vector search + git-notes + cloud backup. Never lose context again. Vibe-coding ready.
clawhub install elite-longterm-memoryπ About This Skill
name: elite-longterm-memory version: 1.2.3 description: "Ultimate AI agent memory system for Cursor, Claude, ChatGPT & Copilot. WAL protocol + vector search + git-notes + cloud backup. Never lose context again. Vibe-coding ready." author: NextFrontierBuilds keywords: [memory, ai-agent, ai-coding, long-term-memory, vector-search, lancedb, git-notes, wal, persistent-context, claude, claude-code, gpt, chatgpt, cursor, copilot, github-copilot, openclaw, moltbot, vibe-coding, agentic, ai-tools, developer-tools, devtools, typescript, llm, automation] metadata: openclaw: emoji: "π§ " requires: env: - OPENAI_API_KEY plugins: - memory-lancedb
Elite Longterm Memory π§
The ultimate memory system for AI agents. Combines 6 proven approaches into one bulletproof architecture.
Never lose context. Never forget decisions. Never repeat mistakes.
Architecture Overview
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ELITE LONGTERM MEMORY β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β HOT RAM β β WARM STORE β β COLD STORE β β
β β β β β β β β
β β SESSION- β β LanceDB β β Git-Notes β β
β β STATE.md β β Vectors β β Knowledge β β
β β β β β β Graph β β
β β (survives β β (semantic β β (permanent β β
β β compaction)β β search) β β decisions) β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β β β β
β ββββββββββββββββββΌβββββββββββββββββ β
β βΌ β
β βββββββββββββββ β
β β MEMORY.md β β Curated long-term β
β β + daily/ β (human-readable) β
β βββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββ β
β β SuperMemory β β Cloud backup (optional) β
β β API β β
β βββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The 5 Memory Layers
Layer 1: HOT RAM (SESSION-STATE.md)
From: bulletproof-memoryActive working memory that survives compaction. Write-Ahead Log protocol.
# SESSION-STATE.md β Active Working MemoryCurrent Task
[What we're working on RIGHT NOW]Key Context
User preference: ...
Decision made: ...
Blocker: ... Pending Actions
[ ] ...
Rule: Write BEFORE responding. Triggered by user input, not agent memory.
Layer 2: WARM STORE (LanceDB Vectors)
From: lancedb-memorySemantic search across all memories. Auto-recall injects relevant context.
# Auto-recall (happens automatically)
memory_recall query="project status" limit=5Manual store
memory_store text="User prefers dark mode" category="preference" importance=0.9
Layer 3: COLD STORE (Git-Notes Knowledge Graph)
From: git-notes-memoryStructured decisions, learnings, and context. Branch-aware.
# Store a decision (SILENT - never announce)
python3 memory.py -p $DIR remember '{"type":"decision","content":"Use React for frontend"}' -t tech -i hRetrieve context
python3 memory.py -p $DIR get "frontend"
Layer 4: CURATED ARCHIVE (MEMORY.md + daily/)
From: OpenClaw nativeHuman-readable long-term memory. Daily logs + distilled wisdom.
workspace/
βββ MEMORY.md # Curated long-term (the good stuff)
βββ memory/
βββ 2026-01-30.md # Daily log
βββ 2026-01-29.md
βββ topics/ # Topic-specific files
Layer 5: CLOUD BACKUP (SuperMemory) β Optional
From: supermemoryCross-device sync. Chat with your knowledge base.
export SUPERMEMORY_API_KEY="your-key"
supermemory add "Important context"
supermemory search "what did we decide about..."
Layer 6: AUTO-EXTRACTION (Mem0) β Recommended
NEW: Automatic fact extractionMem0 automatically extracts facts from conversations. 80% token reduction.
npm install mem0ai
export MEM0_API_KEY="your-key"
const { MemoryClient } = require('mem0ai');
const client = new MemoryClient({ apiKey: process.env.MEM0_API_KEY });// Conversations auto-extract facts
await client.add(messages, { user_id: "user123" });
// Retrieve relevant memories
const memories = await client.search(query, { user_id: "user123" });
Benefits:
Quick Setup
1. Create SESSION-STATE.md (Hot RAM)
cat > SESSION-STATE.md << 'EOF'
SESSION-STATE.md β Active Working Memory
This file is the agent's "RAM" β survives compaction, restarts, distractions.
Current Task
[None]Key Context
[None yet]Pending Actions
[ ] None Recent Decisions
[None yet]
*Last updated: [timestamp]*
EOF
2. Enable LanceDB (Warm Store)
In ~/.openclaw/openclaw.json:
{
"memorySearch": {
"enabled": true,
"provider": "openai",
"sources": ["memory"],
"minScore": 0.3,
"maxResults": 10
},
"plugins": {
"entries": {
"memory-lancedb": {
"enabled": true,
"config": {
"autoCapture": false,
"autoRecall": true,
"captureCategories": ["preference", "decision", "fact"],
"minImportance": 0.7
}
}
}
}
}
3. Initialize Git-Notes (Cold Store)
cd ~/clawd
git init # if not already
python3 skills/git-notes-memory/memory.py -p . sync --start
4. Verify MEMORY.md Structure
# Ensure you have:
- MEMORY.md in workspace root
- memory/ folder for daily logs
mkdir -p memory
5. (Optional) Setup SuperMemory
export SUPERMEMORY_API_KEY="your-key"
Add to ~/.zshrc for persistence
Agent Instructions
On Session Start
1. Read SESSION-STATE.md β this is your hot context 2. Runmemory_search for relevant prior context
3. Check memory/YYYY-MM-DD.md for recent activityDuring Conversation
1. User gives concrete detail? β Write to SESSION-STATE.md BEFORE responding 2. Important decision made? β Store in Git-Notes (SILENTLY) 3. Preference expressed? βmemory_store with importance=0.9On Session End
1. Update SESSION-STATE.md with final state 2. Move significant items to MEMORY.md if worth keeping long-term 3. Create/update daily log in memory/YYYY-MM-DD.mdMemory Hygiene (Weekly)
1. Review SESSION-STATE.md β archive completed tasks 2. Check LanceDB for junk:memory_recall query="*" limit=50
3. Clear irrelevant vectors: memory_forget id=
4. Consolidate daily logs into MEMORY.mdThe WAL Protocol (Critical)
Write-Ahead Log: Write state BEFORE responding, not after.
| Trigger | Action | |---------|--------| | User states preference | Write to SESSION-STATE.md β then respond | | User makes decision | Write to SESSION-STATE.md β then respond | | User gives deadline | Write to SESSION-STATE.md β then respond | | User corrects you | Write to SESSION-STATE.md β then respond |
Why? If you respond first and crash/compact before saving, context is lost. WAL ensures durability.
Example Workflow
User: "Let's use Tailwind for this project, not vanilla CSS"Agent (internal):
1. Write to SESSION-STATE.md: "Decision: Use Tailwind, not vanilla CSS"
2. Store in Git-Notes: decision about CSS framework
3. memory_store: "User prefers Tailwind over vanilla CSS" importance=0.9
4. THEN respond: "Got it β Tailwind it is..."
Maintenance Commands
# Audit vector memory
memory_recall query="*" limit=50Clear all vectors (nuclear option)
rm -rf ~/.openclaw/memory/lancedb/
openclaw gateway restartExport Git-Notes
python3 memory.py -p . export --format json > memories.jsonCheck memory health
du -sh ~/.openclaw/memory/
wc -l MEMORY.md
ls -la memory/
Why Memory Fails
Understanding the root causes helps you fix them:
| Failure Mode | Cause | Fix |
|--------------|-------|-----|
| Forgets everything | memory_search disabled | Enable + add OpenAI key |
| Files not loaded | Agent skips reading memory | Add to AGENTS.md rules |
| Facts not captured | No auto-extraction | Use Mem0 or manual logging |
| Sub-agents isolated | Don't inherit context | Pass context in task prompt |
| Repeats mistakes | Lessons not logged | Write to memory/lessons.md |
Solutions (Ranked by Effort)
1. Quick Win: Enable memory_search
If you have an OpenAI key, enable semantic search:
openclaw configure --section web
This enables vector search over MEMORY.md + memory/*.md files.
2. Recommended: Mem0 Integration
Auto-extract facts from conversations. 80% token reduction.
npm install mem0ai
const { MemoryClient } = require('mem0ai');const client = new MemoryClient({ apiKey: process.env.MEM0_API_KEY });
// Auto-extract and store
await client.add([
{ role: "user", content: "I prefer Tailwind over vanilla CSS" }
], { user_id: "ty" });
// Retrieve relevant memories
const memories = await client.search("CSS preferences", { user_id: "ty" });
3. Better File Structure (No Dependencies)
memory/
βββ projects/
β βββ strykr.md
β βββ taska.md
βββ people/
β βββ contacts.md
βββ decisions/
β βββ 2026-01.md
βββ lessons/
β βββ mistakes.md
βββ preferences.md
Keep MEMORY.md as a summary (<5KB), link to detailed files.
Immediate Fixes Checklist
| Problem | Fix |
|---------|-----|
| Forgets preferences | Add ## Preferences section to MEMORY.md |
| Repeats mistakes | Log every mistake to memory/lessons.md |
| Sub-agents lack context | Include key context in spawn task prompt |
| Forgets recent work | Strict daily file discipline |
| Memory search not working | Check OPENAI_API_KEY is set |
Troubleshooting
Agent keeps forgetting mid-conversation: β SESSION-STATE.md not being updated. Check WAL protocol.
Irrelevant memories injected: β Disable autoCapture, increase minImportance threshold.
Memory too large, slow recall: β Run hygiene: clear old vectors, archive daily logs.
Git-Notes not persisting:
β Run git notes push to sync with remote.
memory_search returns nothing:
β Check OpenAI API key: echo $OPENAI_API_KEY
β Verify memorySearch enabled in openclaw.json
Links
*Built by @NextXFrontier β Part of the Next Frontier AI toolkit*
π Tips & Best Practices
Agent keeps forgetting mid-conversation: β SESSION-STATE.md not being updated. Check WAL protocol.
Irrelevant memories injected: β Disable autoCapture, increase minImportance threshold.
Memory too large, slow recall: β Run hygiene: clear old vectors, archive daily logs.
Git-Notes not persisting:
β Run git notes push to sync with remote.
memory_search returns nothing:
β Check OpenAI API key: echo $OPENAI_API_KEY
β Verify memorySearch enabled in openclaw.json