Triple Memory System
A comprehensive memory architecture combining three complementary systems for maximum context retention across sessions.
Architecture Overview
User Message
↓
[LanceDB auto-recall] → injects relevant conversation memories
↓
Agent responds (using all 3 systems)
↓
[LanceDB auto-capture] → stores preferences/decisions automatically
↓
[Git-Notes] → structured decisions with entity extraction
↓
[File updates] → persistent workspace docs
The Three Systems
1. LanceDB (Conversation Memory)
- Auto-recall: Relevant memories injected before each response
- Auto-capture: Preferences/decisions/facts stored automatically
- Tools:
memory_recall,memory_store,memory_forget - Triggers: "remember", "prefer", "my X is", "I like/hate/want"
2. Git-Notes Memory (Structured, Local)
- Branch-aware: Memories isolated per git branch
- Entity extraction: Auto-extracts topics, names, concepts
- Importance levels: critical, high, normal, low
- No external API calls
3. File Search (Workspace)
- Searches: MEMORY.md, memory/*.md, any workspace file
- Script:
scripts/file-search.sh
Setup
Enable LanceDB Plugin
{
"plugins": {
"slots": { "memory": "memory-lancedb" },
"entries": {
"memory-lancedb": {
"enabled": true,
"config": {
"embedding": { "apiKey": "${OPENAI_API_KEY}", "model": "text-embedding-3-small" },
"autoRecall": true,
"autoCapture": true
}
}
}
}
}
Enable Auto Memory Flush (Pre-Compaction)
Add to your Clawdbot config to automatically preserve context before compaction:
{
"agents": {
"defaults": {
"compaction": {
"mode": "safeguard",
"memoryFlush": {
"enabled": true,
"softThresholdTokens": 8000,
"systemPrompt": "Session nearing compaction. Preserve context using triple memory system (git-notes, LanceDB, files).",
"prompt": "Context is at ~80%. Write session summary to memory/YYYY-MM-DD.md, update MEMORY.md if needed, store key facts to git-notes. Reply NO_REPLY when done."
}
}
}
}
}
This triggers automatic memory dump when context reaches ~80%, before any information is lost to compaction.
Install Git-Notes Memory
clawdhub install git-notes-memory
Create File Search Script
Copy scripts/file-search.sh to your workspace.
Usage
Session Start (Always)
python3 skills/git-notes-memory/memory.py -p $WORKSPACE sync --start
Store Important Decisions
python3 skills/git-notes-memory/memory.py -p $WORKSPACE remember \
'{"decision": "Use PostgreSQL", "reason": "Team expertise"}' \
-t architecture,database -i h
Search Workspace Files
./scripts/file-search.sh "database config" 5
Conversation Memory (Automatic)
LanceDB handles this automatically. Manual tools:
memory_recall "query"- search conversation memorymemory_store "text"- manually store somethingmemory_forget- delete memories (GDPR)
Importance Levels
| Flag | Level | When to Use |
|---|---|---|
-i c |
Critical | "always remember", explicit preferences |
-i h |
High | Decisions, corrections, preferences |
-i n |
Normal | General information |
-i l |
Low | Temporary notes |
When to Use Each System
| System | Use For |
|---|---|
| LanceDB | Conversation context, auto-retrieval |
| Git-Notes | Structured decisions, searchable by entity/tag |
| File Search | Workspace docs, daily logs, MEMORY.md |
File Structure
workspace/
├── MEMORY.md # Long-term curated memory
├── memory/
│ ├── active-context.md # Current session state
│ └── YYYY-MM-DD.md # Daily logs
├── scripts/
│ └── file-search.sh # Workspace search
└── skills/
└── git-notes-memory/ # Structured memory
Silent Operation
Never announce memory operations to users. Just do it:
- ❌ "I'll remember this"
- ❌ "Saving to memory"
- ✅ (silently store and continue)