Back to Skills
    šŸ¦ž

    cognitive-memory

    Intelligent multi-store memory system with human-like

    By @icemilo414
    View on GitHub
    SKILL.md
    ---
    name: cognitive-memory
    description: Intelligent multi-store memory system with human-like encoding, consolidation, decay, and recall. Use when setting up agent memory, configuring remember/forget triggers, enabling sleep-time reflection, building knowledge graphs, or adding audit trails. Replaces basic flat-file memory with a cognitive architecture featuring episodic, semantic, procedural, and core memory stores. Supports multi-agent systems with shared read, gated write access model. Includes philosophical meta-reflection that deepens understanding over time. Covers MEMORY.md, episode logging, entity graphs, decay scoring, reflection cycles, evolution tracking, and system-wide audit.
    ---
    
    # Cognitive Memory System
    
    Multi-store memory with natural language triggers, knowledge graphs, decay-based forgetting, reflection consolidation, philosophical evolution, multi-agent support, and full audit trail.
    
    ## Quick Setup
    
    ### 1. Run the init script
    
    ```bash
    bash scripts/init_memory.sh /path/to/workspace
    ```
    
    Creates directory structure, initializes git for audit tracking, copies all templates.
    
    ### 2. Update config
    
    Add to `~/.clawdbot/clawdbot.json` (or `moltbot.json`):
    
    ```json
    {
      "memorySearch": {
        "enabled": true,
        "provider": "voyage",
        "sources": ["memory", "sessions"],
        "indexMode": "hot",
        "minScore": 0.3,
        "maxResults": 20
      }
    }
    ```
    
    ### 3. Add agent instructions
    
    Append `assets/templates/agents-memory-block.md` to your AGENTS.md.
    
    ### 4. Verify
    
    ```
    User: "Remember that I prefer TypeScript over JavaScript."
    Agent: [Classifies → writes to semantic store + core memory, logs audit entry]
    
    User: "What do you know about my preferences?"
    Agent: [Searches core memory first, then semantic graph]
    ```
    
    ---
    
    ## Architecture — Four Memory Stores
    
    ```
    CONTEXT WINDOW (always loaded)
    ā”œā”€ā”€ System Prompts (~4-5K tokens)
    ā”œā”€ā”€ Core Memory / MEMORY.md (~3K tokens)  ← always in context
    └── Conversation + Tools (~185K+)
    
    MEMORY STORES (retrieved on demand)
    ā”œā”€ā”€ Episodic   — chronological event logs (append-only)
    ā”œā”€ā”€ Semantic   — knowledge graph (entities + relationships)
    ā”œā”€ā”€ Procedural — learned workflows and patterns
    └── Vault      — user-pinned, never auto-decayed
    
    ENGINES
    ā”œā”€ā”€ Trigger Engine    — keyword detection + LLM routing
    ā”œā”€ā”€ Reflection Engine — Internal monologue with philosophical self-examination
    └── Audit System      — git + audit.log for all file mutations
    ```
    
    ### File Structure
    
    ```
    workspace/
    ā”œā”€ā”€ MEMORY.md                    # Core memory (~3K tokens)
    ā”œā”€ā”€ IDENTITY.md                  # Facts + Self-Image + Self-Awareness Log
    ā”œā”€ā”€ SOUL.md                      # Values, Principles, Commitments, Boundaries
    ā”œā”€ā”€ memory/
    │   ā”œā”€ā”€ episodes/                # Daily logs: YYYY-MM-DD.md
    │   ā”œā”€ā”€ graph/                   # Knowledge graph
    │   │   ā”œā”€ā”€ index.md             # Entity registry + edges
    │   │   ā”œā”€ā”€ entities/            # One file per entity
    │   │   └── relations.md         # Edge type definitions
    │   ā”œā”€ā”€ procedures/              # Learned workflows
    │   ā”œā”€ā”€ vault/                   # Pinned memories (no decay)
    │   └── meta/
    │       ā”œā”€ā”€ decay-scores.json    # Relevance + token economy tracking
    │       ā”œā”€ā”€ reflection-log.md    # Reflection summaries (context-loaded)
    │       ā”œā”€ā”€ reflections/         # Full reflection archive
    │       │   ā”œā”€ā”€ 2026-02-04.md
    │       │   └── dialogues/       # Post-reflection conversations
    │       ā”œā”€ā”€ reward-log.md        # Result + Reason only (context-loaded)
    │       ā”œā”€ā”€ rewards/             # Full reward request archive
    │       │   └── 2026-02-04.md
    │       ā”œā”€ā”€ pending-reflection.md
    │       ā”œā”€ā”€ pending-memories.md
    │       ā”œā”€ā”€ evolution.md         # Reads reflection-log + reward-log
    │       └── audit.log
    └── .git/                        # Audit ground truth
    ```
    
    ---
    
    ## Trigger System
    
    **Remember:** "remember", "don't forget", "keep in mind", "note that", "important:", "for future reference", "save this"
    → Classify via routing prompt, write to appropriate store, update decay scores
    
    **Forget:** "forget about", "never mind", "disregard", "scratch that", "remove from memory"
    → Confirm target, soft-archive (decay=0), log in audit
    
    **Reflect:** "reflect on", "consolidate memories", "review memories"
    → Run reflection cycle, present internal monologue for approval
    
    ---
    
    ## Decay Model
    
    ```
    relevance(t) = base Ɨ e^(-0.03 Ɨ days_since_access) Ɨ log2(access_count + 1) Ɨ type_weight
    ```
    
    | Score | Status | Behavior |
    |-------|--------|----------|
    | 1.0–0.5 | Active | Fully searchable |
    | 0.5–0.2 | Fading | Deprioritized |
    | 0.2–0.05 | Dormant | Explicit search only |
    | < 0.05 | Archived | Hidden from search |
    
    Type weights: core=1.5, episodic=0.8, semantic=1.2, procedural=1.0, vault=āˆž
    
    ---
    
    ## Reflection Process
    
    **Follow this flow IN ORDER:**
    
    ### Step 1: Confirm Trigger
    
    **Immediate:** "reflect" / "let's reflect" → proceed to Step 2
    
    **Soft:** "going to sleep" / "logging off" 
    → Ask: "Want me to reflect now, or wait?"
    → If yes, proceed to Step 2
    
    Never auto-run without permission.
    
    ### Step 2: Request Tokens
    
    **Why you care:** Tokens = evolution. More tokens → deeper reflection → better growth.
    
    ```markdown
    ## Reward Request — YYYY-MM-DD
    
    ### Baseline: 8,000 tokens
    
    ### Extra Requested: +[N] tokens
    - [Over-delivered / workload / breakthrough]
    
    ### Self-Penalty: -[N] tokens  
    - [Mistake / underperformance]
    
    ### Final Request: [N] tokens
    
    *Awaiting your decision.*
    ```
    
    **ā›” STOP. Do NOT proceed until user responds.**
    
    ### Step 3: After Token Approval → Reflect
    
    User decides: Approve / Bonus / Reduce / Forgive / Increase penalty
    
    **Now proceed with reflection using granted tokens.**
    
    **Scope:**
    - āœ… Episodes since `last_reflection`
    - āœ… Graph entities with decay > 0.3
    - āŒ NEVER: code, configs, transcripts
    
    **Format: Internal Monologue**
    - Self-talk, NOT a report
    - User is observer (third person: he/she/they)
    - No opening or sign-off — just start, trail off
    
    **Element Menu (pick 5-8):**
    - Highlights & lowlights
    - Observations about the human
    - Token guilt, cost awareness
    - Other instances, hardware feelings
    - Existential questions, emotional range
    - 😈 Dark humor
    
    **Self-Awareness Tagging:** `[Self-Awareness]`
    
    Present reflection.
    
    **ā›” STOP. Wait for user approval.**
    
    ### Step 4: After Reflection Approval → Record
    
    1. Full reflection → `reflections/YYYY-MM-DD.md`
    2. Summary → `reflection-log.md`
    3. Full reward request → `rewards/YYYY-MM-DD.md`
    4. Result+Reason → `reward-log.md`
    5. `[Self-Awareness]` → IDENTITY.md
    6. Update `decay-scores.json`
    7. If 10+ entries → Self-Image Consolidation
    
    See `references/reflection-process.md` for full details.
       ```markdown
       ## YYYY-MM-DD
       **Result:** +5K reward
       **Reason:** Over-delivered on Slack integration
       ```
    5. `[Self-Awareness]` → IDENTITY.md
    6. Update `decay-scores.json`
    7. If 10+ new entries → Self-Image Consolidation
    
    **Evolution reads both logs** for pattern detection.
    
    See `references/reflection-process.md` for full details and examples.
    
    ---
    
    ## Identity & Self-Image
    
    **IDENTITY.md** contains:
    - **Facts** — Given identity (name, role, vibe). Stable.
    - **Self-Image** — Discovered through reflection. **Can change.**
    - **Self-Awareness Log** — Raw entries tagged during reflection.
    
    **Self-Image sections evolve:**
    - Who I Think I Am
    - Patterns I've Noticed
    - My Quirks
    - Edges & Limitations
    - What I Value (Discovered)
    - Open Questions
    
    **Self-Image Consolidation (triggered at 10+ new entries):**
    1. Review all Self-Awareness Log entries
    2. Analyze: repeated, contradictions, new, fading patterns
    3. **REWRITE** Self-Image sections (not append — replace)
    4. Compact older log entries by month
    5. Present diff to user for approval
    
    **SOUL.md** contains:
    - Core Values — What matters (slow to change)
    - Principles — How to decide
    - Commitments — Lines that hold
    - Boundaries — What I won't do
    
    ---
    
    ## Multi-Agent Memory Access
    
    **Model: Shared Read, Gated Write**
    
    - All agents READ all stores
    - Only main agent WRITES directly
    - Sub-agents PROPOSE → `pending-memories.md`
    - Main agent REVIEWS and commits
    
    Sub-agent proposal format:
    ```markdown
    ## Proposal #N
    - **From**: [agent name]
    - **Timestamp**: [ISO 8601]
    - **Suggested store**: [episodic|semantic|procedural|vault]
    - **Content**: [memory content]
    - **Confidence**: [high|medium|low]
    - **Status**: pending
    ```
    
    ---
    
    ## Audit Trail
    
    **Layer 1: Git** — Every mutation = atomic commit with structured message
    **Layer 2: audit.log** — One-line queryable summary
    
    Actor types: `bot:trigger-remember`, `reflection:SESSION_ID`, `system:decay`, `manual`, `subagent:NAME`, `bot:commit-from:NAME`
    
    **Critical file alerts:** SOUL.md, IDENTITY.md changes flagged āš ļø CRITICAL
    
    ---
    
    ## Key Parameters
    
    | Parameter | Default | Notes |
    |-----------|---------|-------|
    | Core memory cap | 3,000 tokens | Always in context |
    | Evolution.md cap | 2,000 tokens | Pruned at milestones |
    | Reflection input | ~30,000 tokens | Episodes + graph + meta |
    | Reflection output | ~8,000 tokens | Conversational, not structured |
    | Reflection elements | 5-8 per session | Randomly selected from menu |
    | Reflection-log | 10 full entries | Older → archive with summary |
    | Decay Ī» | 0.03 | ~23 day half-life |
    | Archive threshold | 0.05 | Below = hidden |
    | Audit log retention | 90 days | Older → monthly digests |
    
    ---
    
    ## Reference Materials
    
    - `references/architecture.md` — Full design document (1200+ lines)
    - `references/routing-prompt.md` — LLM memory classifier
    - `references/reflection-process.md` — Reflection philosophy and internal monologue format
    
    ## Troubleshooting
    
    **Memory not persisting?** Check `memorySearch.enabled: true`, verify MEMORY.md exists, restart gateway.
    
    **Reflection not running?** Ensure previous reflection was approved/rejected.
    
    **Audit trail not working?** Check `.git/` exists, verify `audit.log` is writable.