Memory System with Salience Decay

  • SQLite-backed memory with two sectors: semantic (long-term facts) and episodic (conversation context)
  • FTS5 full-text search for relevant memory retrieval per message
  • Salience scoring: frequently accessed memories get reinforced (+0.1), unused ones decay daily (×0.98)
  • Auto-delete when salience drops below 0.1 — system self-cleans
  • Semantic signals detected via patterns (“my”, “I am”, “I prefer”, “remember”, “always”, “never”)
  • Memory context injected above each user message before sending to Claude
  • Different from vault-based memory: this is runtime memory for conversational AI, not document storage

Implementation Details

SQLite Schema

  • memories table: chat_id, topic_key, content, sector (semantic/episodic), salience (default 1.0), created_at, accessed_at
  • FTS5 virtual table memories_fts mirroring content, with INSERT/UPDATE/DELETE triggers to stay in sync
  • WAL mode for concurrent access

Memory Retrieval (buildMemoryContext)

  1. FTS5 search on user message → top 3 results
  2. Recent fetch by accessed_at → top 5
  3. Deduplicate by id
  4. Touch accessed memories: salience += 0.1 (capped at 5.0), update accessed_at
  5. Return as [Memory context]\n- {content} ({sector})\n...

Memory Storage (saveConversationTurn)

  • Skip if message ≤20 chars or starts with /
  • Detect semantic signals: words like “my”, “I am”, “I’m”, “I prefer”, “remember”, “always”, “never” (case-insensitive)
  • Semantic match → sector: semantic, otherwise → sector: episodic
  • Initial salience: 1.0

Decay Sweep (runDecaySweep)

  • Daily: salience *= 0.98 for memories older than 24h
  • Auto-delete: DELETE WHERE salience < 0.1
  • Run on startup + every 24h interval

Simple Memory Alternative

  • Store last N conversation turns in a turns table (role, content, created_at)
  • Prepend as conversation history, no decay logic
  • Prune beyond 50 turns

Reference

  • ClaudeClaw Rebuild Prompt — full implementation spec including SQLite schema, FTS5 triggers, decay sweep logic, and dual-sector classification
  • See vault/00_system/external/Internet/REBUILD_PROMPT.md for detailed specs

When to build

  • Relevant when Opus has a messaging interface (FR-027, FR-028)
  • Could also enhance session-to-session continuity within Claude Code itself

Open Questions

References