true-recall-out

star 2

Smart memory curation system for OpenClaw. Stages all conversations in Redis, then uses AI to evaluate and only persist "things of note" to Qdrant long-term memory. Use when: User wants intelligent memory filtering, not indiscriminate storage. Trigger phrases: "smart memory", "curate memories", "filter what to remember", "true recall", "tr-out", "review today's memories".

speedyfoxai By speedyfoxai schedule Updated 2/22/2026

name: true-recall-out description: | Smart memory curation system for OpenClaw. Stages all conversations in Redis, then uses AI to evaluate and only persist "things of note" to Qdrant long-term memory.

Use when: User wants intelligent memory filtering, not indiscriminate storage. Trigger phrases: "smart memory", "curate memories", "filter what to remember", "true recall", "tr-out", "review today's memories". metadata: openclaw: os: ["linux"]


True-Recall-Out: Smart Memory Curation

Philosophy

Don't remember everything. Remember what matters.

Instead of dumping every exchange into permanent storage, this system:

  1. Stages everything in Redis (24-48 hour buffer)
  2. Curates using AI judgment — only "things of note" graduate to Qdrant
  3. Preserves full context for what does matter

Architecture

Conversation Flow:
┌─────────────┐     ┌──────────────┐     ┌─────────────────┐
│   Rob asks  │────▶│ Redis Buffer │────▶│ AI Curation Job │
│  AI_NAME replies│     │  (24-48hrs)  │     │  (Daily/On-demand)│
└─────────────┘     └──────────────┘     └─────────────────┘
                                                  │
                    ┌─────────────────┐          │
                    │  Qdrant Long-term │◀─────────┘
                    │    Memory         │
                    │  (Things of Note) │
                    └─────────────────┘

Curation Criteria

The AI curator evaluates each conversation against these criteria:

STORE (High Value):

  • Decisions made or conclusions reached
  • Technical solutions that worked
  • Preferences stated ("I like...", "I prefer...", "Always...")
  • Project plans, architecture decisions
  • Important context about people, relationships
  • Rules or constraints established
  • Things you explicitly said to remember

DISCARD (Low Value):

  • Casual banter, greetings, goodbyes
  • Debugging back-and-forth that didn't resolve
  • Repetitive questions with same answers
  • Transient status checks ("what's in redis?")
  • Test messages, experiments
  • "Thanks", "Got it", "Cool" exchanges

Scripts

1. stage_to_redis.py — Automatic Staging

Stages every conversation turn to Redis buffer.

# Auto-called after each exchange
python3 scripts/stage_to_redis.py \
  --user-id "USER_ID" \
  --user-msg "What about the server?" \
  --ai-response "The server is at localhost" \
  --turn 1

2. curate_memories.py — AI Curation

Reviews staged conversations and promotes "things of note" to Qdrant.

# Review last 24 hours
python3 scripts/curate_memories.py --user-id "USER_ID" --hours 24

# Dry run (see what would be stored without storing)
python3 scripts/curate_memories.py --user-id "USER_ID" --hours 24 --dry-run

# Review specific date range
python3 scripts/curate_memories.py --user-id "USER_ID" --date 2026-02-21

3. search_memories.py — Retrieval

Search curated memories (replaces generic qdrant-memory search).

# Quick search
python3 scripts/search_memories.py "server IP"

# With context
python3 scripts/search_memories.py "server" --with-context

# Filter by importance
python3 scripts/search_memories.py "project" --importance high

Usage Flow

Daily Workflow

1. Chat normally throughout the day
   ↓ (auto-stage to Redis)
   
2. End of day / Morning review
   "curate my memories" or cron runs
   ↓ (AI reviews, judges, stores "things of note")
   
3. Qdrant now has only valuable memories
   ↓
   
4. Future conversations retrieve quality context

Manual Commands

What you want What to say
Stage current exchange "stage this" (or auto-stages)
Review and curate now "curate my memories" / "review today"
See what would be stored "curate dry run"
Search curated memories "search memories for X"
Check Redis buffer "what's in my buffer?"
Flush Redis to Qdrant "curate and store"

Configuration

Edit config.yaml:

curation:
  # Model for judging importance
  model: "qwen3:4b-instruct"
  ollama_url: "http://localhost:11434"
  
  # Criteria weights
  weights:
    decision_made: 1.0
    technical_solution: 0.9
    preference_stated: 0.9
    project_plan: 0.8
    personal_context: 0.7
    rule_established: 0.9
    explicit_remember: 1.0
    
  # Threshold for storage
  store_threshold: 0.6
  
  # Auto-curation schedule
  auto_curation:
    enabled: true
    cron: "0 3 * * *"  # 3 AM daily
    
redis:
  host: "localhost"
  port: 6379
  buffer_key: "tr-out:buffer:{user_id}"
  retention_hours: 48
  
qdrant:
  url: "http://localhost:6333"
  collection: "AI_NAME_memories"

Integration with OpenClaw

Option 1: Auto-stage all exchanges (Recommended)

Add to OpenClaw config to auto-call stage_to_redis.py after each exchange:

{
  "memory": {
    "mode": "true-recall-out",
    "stage_script": "/path/to/true-recall/tr-out/true-recall-out/scripts/stage_to_redis.py",
    "auto_stage": true
  }
}

Option 2: Manual staging

Don't auto-stage. User says "stage this" when they want something buffered.

Option 3: Hybrid (Smart Auto)

Auto-stage, but use lightweight classifier to skip obvious low-value exchanges (greetings, "thanks", etc.) before hitting Redis.

Comparison: Old vs True-Recall-Out

Aspect Old (auto_store.py) True-Recall-Out
Storage trigger Manual "save q" Auto-stage to Redis
What gets stored Everything verbatim AI-curated "things of note"
Storage location Direct to Qdrant Redis buffer → Qdrant
Judgment None (keyword-based importance) AI evaluates value
Memory quality High volume, mixed quality Lower volume, high quality
Retrieval May hit irrelevant banter Retrieves meaningful context

Status

  • ✅ Concept & architecture
  • ✅ SKILL.md
  • ✅ Config spec
  • ⏳ Scripts (stage_to_redis.py, curate_memories.py, search_memories.py)
  • ⏳ Testing
  • ⏳ OpenClaw integration

Created: 2026-02-21 Purpose: Remember what matters, forget the noise.

Install via CLI
npx skills add https://github.com/speedyfoxai/openclaw-true-recall --skill true-recall-out
Repository Details
star Stars 2
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator