
Looking for Community help testing/breaking/improving a memory integrated Ai hub
I was going to use Ai to write this post but I thought would be best to write it myself, so forgive my spelling and grammar mistakes 😬.
I’ve been fixated on Ai memory for the past few years, after countless failed attempts and rag reskins I finally designed something new “Viidnessmem and Mimir” (you may have seen my post about Mimir a few weeks ago).
I wanted to make somewhere that’s simple to use, completely free and local for anyone to use without the hassle of figuring out how to set up my system, this lead to Mimirs Memory Hub, a open sourced fully local ai agent hub designed to work with any existing framework you may already use (Ollama, Vllm, APIs, local gguf with llama.cpp, and more), the aim of this hub is to bring opensource ai to everyone with a community driven project “built for the community, by the community”. I'm currently looking for anyone who’d be interested in testing/breaking/improving this hub.
Now, for anyone still reading that's interested in the technical side, here's a brief overview of what makes Mimir's Memory Hub different:
The Memory System (Mimir)
Memory isn't a vector database dump. Every memory has 34 fields including emotion, importance, stability, encoding mood, novelty score, narrative arc position, drift history, and more.
Memory lifecycle:
- Encoding: new memories are scored for novelty (compared to last 20 memories), deduplicated (Jaccard ≥ 0.55 = merge), checked for flashbulb conditions, and indexed in both a BM25 inverted index and a semantic embedding index
- Consolidation: Huginn (pattern detection) runs every ~15 memories, Muninn (merge/prune/strengthen) runs periodically, gist compression kicks in after 90 days
- Recall: 5-stage hybrid retrieval: BM25 keyword → semantic search → spreading activation through the memory graph → mood-congruent filtering → composite reranking
- Decay: exponential decay based on spaced-repetition stability. Each time a memory is accessed with sufficient spacing (≥12 hours), stability grows by ×1.8 with diminishing returns. Cap at 180 days
- Death: memories below 0.01 vividness are archived to the "attic" (recoverable, not deleted)
Special memory types:
- Flashbulb: high arousal (≥0.6) + high importance (≥8) = locked in with 120-day stability floor and 85% minimum vividness. Like how you remember exactly where you were on 9/11
- Anchored: identity-level foundational memories. 90-day stability floor, 30% vividness floor. Never fully fade
- Cherished: sentimental favourites, decay-resistant
- Gist: after 90 days, non-protected memories compress to first 15 words
Retrieval scoring weights:
- 30% BM25 keyword match
- 30% semantic similarity (all-MiniLM-L6-v2, 384-dim vectors)
- 20% vividness (decayed importance)
- 10% mood congruence (you recall happy memories when happy)
- 10% recency (5-day half-life)
- Plus bonuses for cherished (×1.1), temporal relevance, visual memories, primed memories, spreading activation discoveries
Other systems like Rag/Letta/Mem0 ect are planned to be added as standalone systems or additional memory, but currently Mimir is the default.
Neurochemistry Engine (5 Neurotransmitters)
Real-time simulation of 5 chemicals that actually affect behaviour:
| Chemical | Baseline | Decay Rate | What It Controls |
|---|---|---|---|
| Dopamine | 0.50 | Fast (20min) | Memory encoding strength (±30% importance) |
| Cortisol | 0.30 | Slow (46min) | Attention width, flashbulb triggering (>0.70), Yerkes-Dodson performance curve |
| Serotonin | 0.60 | Very slow (69min) | Mood stability — low serotonin = moods stick, high = moods pass quickly |
| Oxytocin | 0.40 | Moderate (35min) | Social memory encoding boost (up to +40%) |
| Norepinephrine | 0.50 | Fastest (17min) | Alert attention — high NE = more focused, low NE = better consolidation |
10 event types trigger specific chemical profiles: surprise_positive, surprise_negative, conflict, warmth, novelty, resolution, achievement, loss, humor, stress.
Mood System (PAD Model)
42 emotion labels mapped to 3D vectors: Pleasure-Arousal-Dominance. Mood updates via exponential moving average (α = 0.3 × serotonin-adjusted decay). Real-time tracking with persistent mood history and trajectory analysis (improving/declining/stable, variability detection, breakthrough patterns).
Mood-reactive UI: 46 emotions mapped to HSL accent colors. The entire UI shifts color smoothly in real-time as the AI's mood changes.
Presets & How They Use Memory
Mimir's Memory Hub comes with 6 preset modes, each designed to get the most out of Mimir for those use cases.
| Preset | Memory Focus | Chemistry | Key Tags |
|---|---|---|---|
| Companion | Emotional bonds, social impressions, cherished moments | ✅ On | <remember>, <cherish>, <social>, <remind> |
| Agent | Tasks, solutions, lessons learned, artifacts | Off | <task>, <solution>, <remind> |
| Character | Full emotional range, narrative arcs, dreaming | ✅ On | <remember>, <cherish>, all emotion tags |
| Writer | Story tracking, chapters, characters, world rules | ✅ On | <remember>, <task>, creative memory |
| Assistant | Appointments, notes, files, daily planning | Off | <task>, <remind>, <solution> |
| Custom | User-configured | ✅ On | All available |
Companion uses high emotion weight (0.8), social priority, and neurochemistry to build genuine relationships. Tracks people you mention, remembers feelings, cherishes meaningful moments.
Agent uses low emotion weight (0.2), task priority, 21 tools (file r/W, shell, code execution, web search, HTTP requests, screenshots, clipboard, etc.), and solution pattern matching. Learns from past failures via the Zeigarnik-boosted lesson system.
Character maxes emotion weight (1.0) for full immersive roleplay. The AI's mood genuinely influences responses, chemistry creates real emotional dynamics, and the rage quit mechanic means sustained negativity causes the AI to walk out.
Writer balances creativity (0.5 emotion) with project tracking. Remembers your story's characters, plot threads, chapters completed, world rules, and writing style.
Assistant is pure utility (0.15 emotion) with full tool access for appointments, reminders, file management, and daily planning.
Platform Features
10 LLM backends: Ollama, OpenAI, Anthropic, Google, OpenRouter, vLLM, OpenAI-Compatible, Custom, Local GGUF (llama-cpp-python), HuggingFace Transformers (SafeTensors GPU)
21 tools for Agent/Assistant: file read/write/search/grep, web search (DuckDuckGo or SearXNG), fetch pages, HTTP requests, shell exec, Python code execution, screenshot, clipboard, system info, diff, PDF read, CSV query, regex replace, weather, date/time, JSON parse, open apps
MCP support: Model Context Protocol with stdio and SSE transports. Auto-discovers tools from connected servers.
Vision: VL model detection (llava, moondream, qwen-vl, etc.), mmproj/CLIP for GGUF models, BLIP fallback text description for non-vision models
TTS: Edge TTS (free, many voices), HuggingFace Maya1 (GPU local), llama-server GGUF. Per-agent voice override. Browser SpeechSynthesis fallback.
STT: faster-whisper with push-to-hold mic button. Model sizes from tiny to large-v3.
Multi-agent chat: Multiple agents in one conversation. Three turn modes (address by name, sequential, all respond). Three view modes (combined, tabs, columns).
Character/Agent editor: Full creation interface + SillyTavern character card import (single or bulk). Per-agent model, backend, voice, and preset override. Isolated memory per agent.
8 visualizations: Yggdrasil graph, memory landscape, mood timeline, cherished wall, neurochemistry chart, relationships graph, topic clusters, memory attic.
See repo: Kronic90/Mimirs-Memory-Hub: Mimir's Memory Hub - multi-agent AI chat with persistent memory and SillyTavern compatibility for more info.