OpenClaw Advanced Memory

v1.0.0

Provides persistent, searchable AI agent memory with real-time capture, vector search, and nightly LLM curation for long-term recall on local hardware.

1· 394· 1 versions· 0 current· 0 all-time· Updated 8h ago· MIT-0
byJosh@jtil4201

Install

openclaw skills install openclaw-advanced-memory

OpenClaw Advanced Memory

Three-tier AI agent memory system — real-time capture, vector search, and LLM-curated long-term recall.

What It Does

Gives your OpenClaw agent persistent, searchable memory that survives across sessions:

  • HOT tier — Redis buffer captures conversation turns in real-time (every 30s)
  • WARM tier — Qdrant vector store with chunked, embedded conversations (searchable, 7-day retention)
  • COLD tier — LLM-curated "gems" extracted nightly (decisions, lessons, milestones — stored forever)

Requirements

  • Qdrant — vector database (Docker recommended)
  • Redis — buffer queue (Docker recommended)
  • Ollama — local embeddings (snowflake-arctic-embed2) + curation LLM (qwen2.5:7b)
  • Python 3.10+ with qdrant-client, redis, requests

No cloud APIs. No subscriptions. Runs entirely on your own hardware.

Setup

# 1. Start Qdrant + Redis (Docker)
docker compose up -d

# 2. Pull Ollama models
ollama pull snowflake-arctic-embed2
ollama pull qwen2.5:7b

# 3. Run the installer
bash scripts/install.sh

The installer sets up Qdrant collections, installs a systemd capture service, and configures cron jobs.

Edit connection hosts at the top of each script if your infra isn't on localhost.

Usage

# Search your memory
./recall "what did we decide about pricing"
./recall "deployment" --project myproject --tier cold -v

# Check system status
./mem-status

# Force a warm flush or curation run
./warm-now
./curate-now 2026-03-01

Schedules

ComponentScheduleWhat It Does
mem-captureAlways running (systemd)Watches transcripts → Redis
mem-warmEvery 30 min (cron)Redis → Qdrant warm
mem-curateNightly 2 AM (cron)Warm → LLM curation → Qdrant cold

How Curation Works

Every night, a local LLM (qwen2.5:7b via Ollama) reads the day's conversations and extracts structured gems:

{
  "gem": "Chose DistilBERT over TinyBERT — 99.69% F1, zero false positives",
  "context": "A/B tested both architectures on red team suite",
  "categories": ["decision", "technical"],
  "project": "guardian",
  "importance": "high"
}

Only decisions, milestones, lessons, and people info make the cut. Casual banter and debugging noise get filtered out.

Links

Version tags

latestvk97dtg8egef0ghsnj8nmpgj485827yyememoryvk97dtg8egef0ghsnj8nmpgj485827yyeollamavk97dtg8egef0ghsnj8nmpgj485827yyeqdrantvk97dtg8egef0ghsnj8nmpgj485827yyeredisvk97dtg8egef0ghsnj8nmpgj485827yyevector-searchvk97dtg8egef0ghsnj8nmpgj485827yye