Skill: yezhaowang888-stack/sharpagent-memory-system (version 1.0.0)

--- name: sharpagent-memory-system version: 1.0.0 description: "SharpAgent Layered Memory System — 6-layer memory hierarchy from ephemeral to long-term archive. Features dream processing (consolidation/archiving/forgetting/merging), TF-IDF semantic search, Chinese tokenization support. Solves the three memory problems: forgetting what matters, never forgetting, and poor retrieval." metadata: openclaw: emoji: "🧠" tags: - memory - learning - persistence - retrieval - chinese-nlp - sharpagent --- # SharpAgent Layered Memory System v1.0.0 > **Memory like a human — remembers what matters, forgets the rest, and searches accurately.** > Based on Layered Memory Sys (ClawHub, +324% in 24 days) 6-layer architecture + dream processing + Mem0 persistence. ## Core Problem Current agent memory problems: | Problem | Symptom | Consequence | |---------|---------|-------------| | Forgets | Every session starts fresh | Repeats mistakes, no accumulation | | Never forgets | All history flat | High retrieval noise, key info drowned | | Poor search | Keyword only, no semantics | "five-factor" doesn't find "trust verification" | SharpAgent memory solves all three with 6 layers + dream processing. ## Memory Layers ``` [User interaction] │ ┌────────┴────────┐ │ L1: Ephemeral │ ← Current session context └────────┬────────┘ │ Session ends ┌────────┴────────┐ │ L2: Short-Term│ ← Recent sessions (rolling window) └────────┬────────┘ │ Periodic migration ┌────────┴────────┐ │ L3: Working │ ← Active task state └────────┬────────┘ │ Task complete ┌────────┴────────┐ │ L4: Contextual│ ← Task-level context └────────┬────────┘ │ Dream processing ┌────────┴────────┐ │ L5: Long-Term │ ← Preferences & lessons └────────┬────────┘ │ Archive expired ┌────────┴────────┐ │ L6: Archive │ ← Historical archive └─────────────────┘ ``` ### L1: Ephemeral **Storage**: Current session all messages **Capacity**: Model context window **Lifespan**: Session end = gone **Index**: None, linear **Use**: In-context understanding ### L2: Short-Term **Storage**: Last N sessions (default N=5) **Medium**: In-memory (Redis optional) **Capacity**: 5 session summaries, ≤2KB each **Lifespan**: 7 days → auto-migrate to L4 **Index**: Session ID + timestamp + tags **Use**: Quick cross-session reference ### L3: Working **Storage**: Active task state **Medium**: JSON files (`memory/working/`) **Capacity**: ≤10KB per task **Lifespan**: Task complete → L4; task interrupted → kept **Index**: Task ID + status + last update **Use**: Resume interrupted tasks, multitasking ### L4: Contextual **Storage**: Completed task full context **Medium**: JSON files (`memory/contextual/`) + optional SQLite **Capacity**: Unlimited, but retrieval Top 5 **Lifespan**: Until dream processing (30d no reference → L5) **Index**: TF-IDF full-text **Use**: Look back at past tasks, reuse solutions ### L5: Long-Term **Storage**: Persistent cross-session knowledge **Medium**: SQLite (`memory/long_term.db`) + Chinese tokenizer index **Capacity**: Unlimited **Lifespan**: Permanent unless explicitly forgotten **Index**: TF-IDF + jieba Chinese tokenization **Use**: User preferences, lessons, best practices, key decisions ### L6: Archive **Storage**: Expired or low-referenced L4/L5 entries **Medium**: SQLite (`memory/archive.db`), read-only **Capacity**: Theoretically infinite **Lifespan**: Permanent read-only **Index**: None (time + category) **Use**: Legal compliance retention, audit trail ## Dream Processing Dreams aren't just for humans. Agents need low-load memory maintenance too. **Trigger**: Heartbeat (low load, every 30 min), user says "clean up", or scheduled 04:00 daily. **Four Dream Operations:** ### 1. Consolidation Combine scattered memory fragments into coherent knowledge. ``` Input: Multiple fragments → "Use 150-char abstracts" (verified multiple times) → "User prefers shorter versions" → "Briefing read rate improved 30%" → Consolidate to: "Best practice: 150-char abstract in briefings (3x verified, +30% read rate)" ``` **Trigger**: Same pattern appears ≥3 times ### 2. Archiving Move low-reference items out of working cache. ``` → L4 entries with 0 references in 30 days → Move to L6 archive → Remove from L4 tag index ``` **Trigger**: 30-day reference count = 0 ### 3. Forgetting Actively delete low-value, duplicate, or outdated content. ``` → "User once preferred Python 3.9" (3 months ago, now 3.13) → Outdated, delete → Keep space for valuable info ``` **Trigger**: - Newer version available - Explicitly contradicted - >90 days with <2 references - User says "forget this" ### 4. Merging Combine multiple related L5 entries into higher-level patterns. ``` → "Prefers 150-char abstract" (confidence=8) → "Prefers bullet points" (confidence=7) → "Dislikes tables" (confidence=6) → Merge: "User prefers briefings in bullet points + 150-char abstract, avoid tables" ``` **Trigger**: High confidence (≥7) + same category ## Search ### Standard Search ```python def search(query, layers=["L4", "L5"]): tokens = jieba.cut(query) # Chinese tokenization vec = tfidf_vectorizer.transform(tokens) scores = cosine_similarity(vec, layer_index) return top_k(scores, k=5) ``` ### Chinese Tokenization ```python jieba.load_userdict("memory/custom_dict.txt") # "五元组审查" → ["五元组", "审查"] not mis-split # "惠迈校准框架" → ["惠迈", "校准", "框架"] ``` ### Search Priority | Scenario | Search layers | K | |----------|--------------|---| | Real-time reply | L5 → L4 → L2 | 3 | | Deep analysis | L5 → L4 → L6 | 5 | | User asks "earlier..." | L4 → L5 | 3 | | User asks "I remember..." | L5 → L4 | 3 | ## Storage Architecture ``` memory/ ├── working/ # L3: Task working area (JSON) ├── contextual/ # L4: Contextual memory (JSON) ├── long_term.db # L5: SQLite + FTS5 index ├── archive.db # L6: Archive storage ├── custom_dict.txt # Domain Chinese word dictionary └── dream_log.json # Dream processing log ``` ## Edge Cases | Situation | Action | |-----------|--------| | Chinese + English mixed input | jieba auto-detects Chinese, English space-tokenized | | No search results | Fallback to simple keyword matching | | L5 exceeds 1000 entries | Trigger dream (archive + forget + merge) | | Dream active, new interaction | Dream pauses immediately, interaction wins | | User says "forget xxx" | Soft delete in L5, L6 retains for audit | | Bulk history import | Write directly to L6, skip layer traversal | ## Quality Gates | Check | What | Fail action | |-------|------|-------------| | Layers separated | Ephemeral/Short/Working/Contextual/Long/Archive distinct | Restructure | | Search recall | "five-factor" retrieves "trust verification" | Check tokenization | | Dream non-blocking | Normals interaction during dreams | Async flag | | Forget traceable | Forgotten entries auditable | Soft delete | | Chinese tokenization | Domain words preserved | Update custom_dict.txt | ## Integration Points ### Five-Factor Review - Important memory entries verified before writing - L5 entries carry FiveFactorResult ### Self-Evolving Loop - Reflections → L4 contextual, verified lessons → L5 long-term - Dream consolidation output = new "best-practice" L5 entries ### Engineering Lifecycle - Working L3 supports task checkpoint/resume - L4 stores engineering decision traces ## Version History - **v1.0.0** — Initial release. 6-layer memory architecture with dream processing, TF-IDF search, Chinese tokenization. --- *SharpAgent · MIT-0 · 2026-05-11*


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)