memory-compactor
Temporal conversational memory compactor for your custom mem0-python-server.
What it does
- pulls conversational memories for one
user_id
- clusters by time windows
- extracts a compact summary + structured facts per segment (Groq)
- writes summaries verbatim to
POST /memories/raw
- appends extracted facts into the summary text (non-empty only)
- preserves full extracted facts in metadata alongside the summary
- injects
metadata.created_at so summaries sort correctly without date prefixes
- optionally deletes older intermediate entries (safe budget + dry-run first)
Safety defaults
- dry-run by default (no writes/deletes)
- keeps recent memories (
--min-age-days)
- delete cap per run (
--max-deletes)
Run
cd /home/lucky/.openclaw/workspace/memory-compactor
python3 compactor.py --user-id main
Apply changes:
python3 compactor.py --user-id main --apply
Environment
The compactor auto-loads .env from this directory (useful for cron). At minimum set:
GROQ_API_KEY=your_key_here
Useful options
--base-url http://192.168.0.200:8420
--gap-minutes 45
--min-age-days 2
--max-deletes 50
--segment-max-items 15
--max-summaries 1 (limit created summaries for testing)
--skip-ephemeral (skip obvious weather-like chatter)
Next improvements
- semantic clustering (embeddings) beyond time windows
- better resolution detection (state machine)
- reversible snapshots before apply
- cron wrapper + run history logging
- future milestone: capture a pre-change snapshot + restore option before deleting memories