M

Architecture Reference

Enter password to access

Incorrect password

MNEMOSYNE

Architecture Reference ← Observatory
Snapshot: 2026-03-17 | v1.0

Write → Store → Retrieve → Decay → Reactivate

SECTION 1: WRITE PIPELINE
Phase A: Pre-Transaction

CURATION

"The Hippocampus"

Compare new vs existing

ADD UPDATE DELETE NOOP
Hybrid Search (RRF) ↓
+

EMBEDDING

"Neural Fingerprint"

768-dim Matryoshka via Gemini

L2 normalized
Needed for curation search
Phase B: Transaction

WRITE

"Synaptic Consolidation"

Atomic UPSERT

Status:Core
Confidence:0.7
Version:+1
Phase C: Post-Transaction PARALLEL

LINKING

"Synapse Formation"

Cosine > 0.7 → bidirectional

Max 20 links, prune weakest

EMOTION

"The Amygdala"

100% LLM — Plutchik 8 + Arousal/Valence

AROUSAL MODULATION McGaugh / ACT-R Phi

DECAY
d_eff = d × (1 - 0.4 × a)
High arousal → slower decay
a=0.9 → 64% rate
RETRIEVAL
s_boost = s × (1 + 0.3 × a)
High arousal → higher rank
a=0.9 → +27% score
ENCODING
if a ≥ 0.6 → 5 timestamps
Stronger initial activation
vs 3 normal
RUSSELL CIRCUMPLEX
-1 Negative
+1 Positive
Low arousal
High arousal
SECTION 2: MEMORY STORE (THE BRAIN)

Memory Lanes

facts_prefs
Semantic Memory
short_term
Short-Term Buffer
working_set
Working Memory
long_term
Episodic Memory
mid_term
Rehydration Cues

Memory Graph (Network)

semantic causal temporal entity semantic temporal

Lifecycle States

Core
30d
Dream
90d
Forgotten
180d
Archive
REACTIVATE
ACT-R Activation Math
B = ln(Σ t-d) + boost + noise

Context Buckets

health_wellness
learning
work
GENERAL Always included overlay
SECTION 3: RETRIEVAL PIPELINE
Query Input ↓
Semantic Channel
Cosine similarity (768-dim)
Lexical Channel
Full-text search (tsvector)
Signal Channel
Activation score + Confidence

RRF FUSION

Reciprocal Rank Fusion (k=60)

score = Σ 1/(60+rank)

SPREADING ACTIVATION

2-hop BFS through memory graph

Intent-weighted:
why→causal, when→temporal, who→entity
OUTPUT

MEMORY PACK

Structured response by lanes + general overlay

Includes own 3-channel RRF for general overlay

Consolidation Worker

Async / 60s

Background LLM process analyzes newly stored memories to discover missing latent connections.

  • Synthesizes causal links
  • Finds temporal sequences
  • Resolves entity schemas

CARA Confidence

Truth-value adjustment

Adjusts memory reliability based on repeated exposure or conflicting information.

Reinforce+0.10
Weaken-0.10
Contradict-0.20
Inspired by ACT-R, Plutchik's Wheel of Emotions, McGaugh's arousal modulation, Russell's circumplex model, and biological sleep consolidation research

Mnemosyne: Arquitectura de Memoria Artificial Inspirada en Neurociencia

Mnemosyne: Neuroscience-Inspired Artificial Memory Architecture

"No somos lo que recordamos, sino cómo lo recordamos."

"We are not what we remember, but how we remember it."

Snapshot: 2026-03-17

Este documento explica el sistema de memoria de Mnemosyne: sin código, con analogías al cerebro humano, describiendo cada proceso como una función cognitiva.

1. La Premisa: Un Cerebro para Agentes Conversacionales

Los chatbots y agentes de IA carecen de algo que cualquier humano da por sentado: la capacidad de recordar. Cada conversación es un lienzo en blanco. Mnemosyne nace para resolver esto: es un sistema de memoria persistente, por usuario, que permite a un agente conversacional recordar, olvidar, reactivar y conectar recuerdos de forma análoga al cerebro humano.

El diseño se apoya en tres pilares de la ciencia cognitiva:

  • ACT-R (Adaptive Control of Thought — Rational): la teoría de Anderson sobre cómo la memoria declara niveles de activación que decaen con el tiempo y se refuerzan con el uso. El principio más importante: acceder a un recuerdo lo fortalece.
  • Las emociones de Plutchik + Arousal de McGaugh: la rueda de las 8 emociones básicas como sistema de etiquetado afectivo, más el arousal (activación fisiológica) y la valencia del modelo circumplejo de Russell, que modulan el decaimiento, la recuperación y la codificación de los recuerdos.
  • Consolidación durante el reposo: la idea de que el cerebro forma conexiones profundas (causales, temporales, emocionales, temáticas) entre memorias durante períodos de baja actividad, análogo al sueño REM.

2. ¿Cómo se Organiza la Memoria?

2.1 Carriles de Memoria (Memory Lanes)

Así como el cerebro humano no tiene una sola "memoria" sino múltiples sistemas (episódica, semántica, procedural, de trabajo), Mnemosyne divide la información en cinco carriles funcionales:

CarrilAnalogía CognitivaEjemplo
facts_prefsMemoria semántica"El usuario es alérgico a la penicilina"
short_termMemoria de corto plazo"En esta sesión preguntó por dietas"
working_setMemoria de trabajo"Está construyendo una app en TypeScript"
long_termMemoria episódica consolidada"Tuvo una apendicectomía en 2023"
mid_termCues de rehydrataciónTarjetas resumen para temas en transición

La asignación a cada carril la decide el agente que interactúa con el usuario, no el sistema de memoria. Mnemosyne almacena y gestiona; el agente clasifica.

2.2 Contextos de Memoria (Context Buckets)

La memoria humana no es un gran saco: recordamos cosas en contexto. Mnemosyne replica esto con "context buckets": compartimentos temáticos que aíslan la memoria por dominio.

Un usuario puede tener el bucket health_wellness (donde se recuerda que tiene asma leve), learning_python (donde se recuerda que prefiere tutoriales prácticos), y work_project_alpha (donde se recuerda que su deadline es el viernes).

2.3 El Overlay General: El "Yo" del Usuario

Hay memorias que no pertenecen a ningún contexto específico, sino a la identidad misma del usuario: su nombre, profesión, empresa, preferencias universales. Estas memorias se marcan como "generales" y se almacenan en un bucket especial. Cuando el sistema recupera memorias de cualquier contexto, siempre incluye este overlay general como un sustrato de identidad permanente.

Es el equivalente al autoconcepto en psicología: la información sobre quién eres que acompaña todo lo que piensas, independientemente del tema. Preguntar sobre tu proyecto de trabajo activa tus memorias de trabajo y tu identidad general.

2.4 Tipos Epistémicos

Cada memoria tiene un tipo epistémico que indica su naturaleza como conocimiento:

  • world — Hechos objetivos: "Madrid es la capital de España"
  • experience — Vivencias personales: "Viajé a Japón en 2024"
  • opinion — Creencias subjetivas: "Prefiero Python sobre Java"
  • observation — Patrones observados: "Suele estar más animado los viernes"

3. Cómo se Forman los Recuerdos: El Pipeline de Escritura

Cuando un agente conversacional quiere "recordar" algo sobre el usuario, la información pasa por un pipeline de tres fases que reproduce el proceso de codificación de la memoria humana.

Fase A: Curación + Embedding

Antes de almacenar una nueva memoria, el sistema hace exactamente lo que hace el hipocampo: comparar lo nuevo con lo existente.

Embedding — Cada memoria recibe una "huella neuronal": un vector de 768 dimensiones que captura su significado. Memorias con significados similares quedan cerca en el espacio geométrico.

Curación — Con esta huella, el sistema busca memorias existentes en el bucket actual y en el bucket general (búsqueda cross-bucket). Usa dos estrategias simultáneas: búsqueda por palabras clave y búsqueda por significado. Ambas listas se fusionan.

  1. Si no encuentra nada similar: ADD (almacenar como nuevo recuerdo).
  2. Si encuentra memorias parecidas, consulta a Gemini: "¿Qué debo hacer?" Respuestas posibles:
  • ADD — Es información genuinamente nueva.
  • UPDATE — Enriquece una memoria existente (fusiona valores, evoluciona la confianza).
  • DELETE — Contradice directamente algo existente (borra lo anterior, almacena lo nuevo).
  • NOOP — La información ya está cubierta, no hace falta cambiar nada.

Analogía cerebral: Cuando alguien te dice su número de teléfono nuevo, tu cerebro actualiza el existente (UPDATE), debilitando el antiguo. Si te dicen que algo que creías es falso, lo contradices (DELETE). La curación replica estos procesos.

Fase B: Escritura Atómica

La memoria se almacena de forma atómica — todo o nada. En este momento se establece:

  • Status: Core — la memoria nace activa.
  • Confianza inicial: típicamente 0.7 sobre 1.0.
  • Timestamps de acceso: 3 marcas iniciales (o 5 si tiene alto arousal).

Fase C: Linking + Emoción + Arousal (en paralelo)

Una vez almacenada, tres procesos se ejecutan simultáneamente:

Linking — Busca memorias con similitud semántica alta (> 0.7) y crea enlaces bidireccionales. Máximo 20 enlaces por memoria, podando los más débiles. Estos enlaces semánticos son la base del grafo de memoria.

Etiquetado Emocional — Extracción 100% LLM (Gemini) de las 8 categorías de Plutchik con intensidad, más arousal (activación fisiológica) y valence (valencia positiva/negativa) según el modelo circumplejo de Russell.

Modulación por Arousal — El arousal (la intensidad emocional, no la emoción en sí) modula tres aspectos críticos, replicando los hallazgos de McGaugh sobre cómo las experiencias emocionalmente intensas se recuerdan mejor:

  • Decay más lento: d_eff = d × (1 - 0.4 × arousal) — un recuerdo con alto arousal (rabia, éxtasis, terror) decae más lentamente que uno neutro.
  • Recuperación prioritaria: score × (1 + 0.3 × arousal) — memorias emocionalmente intensas aparecen antes en los resultados.
  • Codificación más fuerte: Si arousal ≥ 0.6, se inicializan 5 timestamps de acceso (vs 3 normales), creando una huella más profunda desde el primer momento.
  • Confianza amplificada: Los cambios de confianza (CARA) se escalan por arousal: delta × (1 + 0.5 × arousal).

4. Cómo se Recuerda: El Pipeline de Recuperación

Cuando el agente necesita contexto para responder al usuario, Mnemosyne ejecuta un pipeline de recuperación que combina múltiples estrategias para encontrar los recuerdos más relevantes.

4.1 Tres Canales de Búsqueda Simultáneos

Canal Semántico — Similitud coseno en espacio 768-dim. Encuentra "alergia" cuando se pregunta "¿puedo recetarle penicilina?". Captura el significado.

Canal Léxico — Full-text search. Captura acrónimos, nombres propios, números exactos, palabras técnicas — lo que el significado solo no atraparía.

Canal de Señal — Devuelve las memorias más activas (score de activación ACT-R) y confiables (confidence), independientemente de coincidencia textual. Son los recuerdos "que están en la punta de la lengua".

4.2 Fusión por Rango Recíproco (RRF)

Los tres canales se fusionan con Reciprocal Rank Fusion: score = Σ 1/(60+rank). Una memoria que aparece bien posicionada en los tres canales se eleva al tope. Una que solo aparece en uno sigue siendo considerada.

Analogía cerebral: Es como cuando un olor, un sonido y un contexto visual convergen para evocar un recuerdo específico. Cuantas más "pistas" coinciden, más vívido es el recuerdo.

4.3 Profundidad Adaptativa

El sistema detecta la complejidad de la consulta y ajusta cuántas memorias recupera:

  • Simple (5 memorias): preguntas directas — "¿Cómo me llamo?"
  • Hybrid (10 memorias): preguntas que requieren contexto — "¿Qué estaba trabajando la semana pasada?"
  • Complex (20 memorias): análisis cruzado — "¿Cómo ha evolucionado mi opinión sobre X?"

4.4 Propagación de Activación en el Grafo (Spreading Activation)

Las mejores memorias encontradas se usan como "semillas" para explorar el grafo de conexiones. Desde cada semilla, el sistema navega hasta 2 saltos de distancia, recorriendo los enlaces descubiertos por la consolidación.

La activación se atenúa con cada salto (×0.8) y se modula por la fuerza del enlace. Los enlaces que resultan útiles se refuerzan automáticamente — mecanismo hebbiano: "las neuronas que disparan juntas se conectan más fuerte".

Intención MAGMA — La exploración del grafo se adapta a la intención de la pregunta:

  • "¿Por qué...?" → prioriza enlaces causales
  • "¿Cuándo...?" → prioriza enlaces temporales
  • "¿Quién...?" → prioriza enlaces de entidad
  • Pregunta general → peso equilibrado entre todos los tipos

4.5 El Overlay General

Siempre se ejecuta una segunda ronda de recuperación contra el bucket "general" usando su propio pipeline RRF de 3 canales. Las memorias generales se devuelven en sección separada, asegurando que el agente siempre sepa quién es el usuario independientemente del contexto de la conversación.

4.6 Auto-reactivación por Acceso

Este es el principio más importante del sistema: el acto de recordar fortalece el recuerdo. Cuando una memoria es recuperada en respuesta a una consulta — incluso si estaba en estado Dream o Forgotten — se reactiva automáticamente a Core. Se le añade un nuevo timestamp de acceso y se resetea su temporizador de decaimiento.

Analogía cerebral: Es exactamente lo que ocurre con la práctica de recuperación (retrieval practice) en neurociencia. Un recuerdo olvidado que se evoca con esfuerzo se consolida más fuertemente que uno que nunca fue desafiado. Por eso preguntar "¿recuerdas los buenos días que me diste?" reactiva no solo ese recuerdo sino todos los que el sistema recuperó para construir la respuesta.


5. El Ciclo de Vida: Cómo los Recuerdos Envejecen

Core  →  Dream  →  Forgotten  →  Archive
(activo)  (latente)  (olvidado)    (archivo profundo)

El sistema de memoria tiene un DecayWorker que corre automáticamente en segundo plano. Su ritmo se adapta a la escala de tiempo configurada: en modo normal, cada hora; en modo acelerado (para pruebas), cada pocos segundos.

5.1 El Modelo de Activación ACT-R

B = ln( Σ t_j^(-d) ) + boost_asociativo + ruido

Donde t_j es el tiempo desde cada acceso previo (se guardan hasta 50 timestamps), d es la tasa de decaimiento (0.5, modulada por arousal). El boost asociativo viene del grafo de enlaces — memorias con vecinos activos decaen más lentamente (solo se propagan contribuciones positivas). El ruido estocástico modela la variabilidad natural de la memoria.

5.2 Transiciones de Estado

Cuando la activación cae por debajo de umbrales específicos, la memoria transiciona:

  • < -2.0: Core → Dream (sin acceso en ~30 días)
  • < -3.0: Dream → Forgotten (sin acceso en ~90 días)
  • < -5.0: Forgotten → Archive (sin acceso en ~180 días)

Un recuerdo solo puede caer un nivel por tick — nunca salta de Core directamente a Archive.

5.3 Cuatro Mecanismos de Reactivación

Una memoria archivada no está perdida. Cualquiera de estos mecanismos la devuelve a Core:

  • Por recuperación: El más natural — cuando el sistema recupera una memoria para responder una pregunta, la refortalece automáticamente.
  • Por confirmación: El agente o usuario confirma explícitamente que una memoria es correcta — eleva confianza a 1.0 y reactiva.
  • Por actualización: Modificar el valor de una memoria la trae de vuelta a Core.
  • Por re-escritura: El pipeline de curación decide hacer UPDATE sobre una memoria olvidada — la reactiva al fusionar nueva información.

6. La Evolución de la Confianza: CARA

La confianza de una memoria no es estática — evoluciona con cada interacción según el modelo CARA (Confidence through Accumulative Reinforcement and Attenuation):

  • Reinforce (+0.10): Información nueva confirma lo existente. "Sí, sigo trabajando en Kopernica."
  • Weaken (-0.10): Información sugiere que el recuerdo es menos fiable. "Creo que ya no vivo allí."
  • Contradict (-0.20): Contradicción directa. "No, ya no soy ingeniero, ahora soy diseñador."
  • Neutral (0): Sin efecto sobre la confianza.

Estos deltas se amplifican por arousal: una confirmación dicha con entusiasmo refuerza más (+0.15) que una neutra (+0.10). Cada ajuste se registra en un historial auditable con timestamp, acción, delta, arousal y justificación.


7. Consolidación Profunda: El "Sueño" del Sistema

Cada 60 segundos, el Consolidation Worker — el equivalente al sueño REM del sistema — examina memorias no consolidadas y descubre conexiones profundas que no son evidentes en el momento de la escritura:

  1. Toma memorias pendientes de consolidación.
  2. Busca vecinos cercanos en el espacio semántico y en el grafo existente.
  3. Consulta a un LLM para descubrir relaciones entre ellas.
  4. Crea enlaces con tipos y subtipos granulares:
TipoSubtiposEjemplo
Causalleads_to, because_of, enables, prevents"Aprendió TypeScript" → "Construyó la app"
Temporalprecedes, succeeds, concurrent"Empezó en marzo" → "Terminó en junio"
Entityrefers_to, mentioned_in"Trabaja en Kopernica" ↔ "Proyecto Alpha de Kopernica"
Emotionalshares_emotion, contrasts_emotion, evolves_from"Estresado por el deadline" ↔ "Aliviado al terminar"

Analogía cerebral: Durante el sueño REM, el hipocampo "replays" experiencias del día y el neocórtex forma conexiones a largo plazo. El consolidation worker hace exactamente eso: revisa memorias recientes y descubre que "el estrés por el deadline" y "la alegría de entregar a tiempo" están conectados emocionalmente, o que "aprender TypeScript" fue la causa de "poder construir la app".


8. Aislamiento y Seguridad: Cada Cerebro es Privado

Toda la memoria está aislada por usuario mediante Row-Level Security de PostgreSQL. Un usuario nunca puede ver, buscar ni modificar memorias de otro. Es como si cada usuario tuviera su propio cerebro completamente independiente.


9. Resumen del Flujo Completo

  1. El usuario dice algo → el agente extrae memorias candidatas de la conversación.
  2. Fase A: Embedding + Curación (búsqueda cross-bucket) → ADD/UPDATE/DELETE/NOOP.
  3. Fase B: Escritura atómica (status Core, confianza 0.7, tipo epistémico).
  4. Fase C: Linking semántico + Emoción Plutchik + Arousal (en paralelo).
  5. [Background continuo]: Consolidation Worker descubre conexiones profundas (causales, temporales, entidad, emocionales).
  6. [Background continuo]: DecayWorker ejecuta ticks de decaimiento ACT-R automáticos.
  7. El usuario pregunta → 3 canales semántico/léxico/señal en paralelo, con profundidad adaptativa.
  8. RRF fusiona resultados por rango recíproco.
  9. Spreading activation propaga por el grafo con intención MAGMA.
  10. General overlay añade identidad del usuario (con su propio RRF de 3 canales).
  11. Auto-reactivación: todas las memorias recuperadas se fortalecen — recordar es reforzar.
  12. El agente responde con contexto completo y actualizado.

10. Lo que Nos Diferencia

AspectoChatbot TradicionalMnemosyne
PersistenciaNinguna o solo última sesiónMemoria permanente por usuario
OrganizaciónTexto plano o key-value5 carriles + contextos + overlay general + tipos epistémicos
BúsquedaKeyword match3 canales (semántico + léxico + señal) con RRF + profundidad adaptativa
OlvidoManual o nuncaDecay automático ACT-R (background worker)
ReactivaciónNo existe4 mecanismos (acceso, confirmación, update, re-escritura)
ConexionesNo existeGrafo con 4 tipos de enlace + spreading activation + intención MAGMA
EmocionesNo existe8 categorías Plutchik + arousal/valence (modula decay, retrieval, encoding, confianza)
ConsolidaciónNo existeWorker asíncrono LLM cada 60s (análogo al sueño REM)
ConfianzaEstáticaCARA evolutiva con historial auditable
Identidad cruzadaNo existeGeneral overlay: el "yo" del usuario presente en todo contexto

This document explains Mnemosyne's memory system: no code, with analogies to the human brain, describing each process as a cognitive function.

1. The Premise: A Brain for Conversational Agents

Chatbots and AI agents lack something every human takes for granted: the ability to remember. Every conversation is a blank canvas. Mnemosyne was born to solve this: it's a persistent, per-user memory system that allows a conversational agent to remember, forget, reactivate, and connect memories analogously to the human brain.

The design rests on three pillars of cognitive science:

  • ACT-R (Adaptive Control of Thought — Rational): Anderson's theory on how memory declares activation levels that decay over time and strengthen with use. The most important principle: accessing a memory strengthens it.
  • Plutchik's emotions + McGaugh's arousal: the wheel of 8 basic emotions as an affective tagging system, plus arousal (physiological activation) and valence from Russell's circumplex model, which modulate decay, retrieval, and encoding of memories.
  • Rest-state consolidation: the idea that the brain forms deep connections (causal, temporal, emotional, thematic) between memories during low-activity periods, analogous to REM sleep.

2. How is Memory Organized?

2.1 Memory Lanes

Just as the human brain doesn't have a single "memory" but multiple systems (episodic, semantic, procedural, working), Mnemosyne divides information into five functional lanes:

LaneCognitive AnalogyExample
facts_prefsSemantic memory"The user is allergic to penicillin"
short_termShort-term memory"Asked about diets in this session"
working_setWorking memory"Is building a TypeScript app"
long_termConsolidated episodic memory"Had an appendectomy in 2023"
mid_termRehydration cuesSummary cards for transitioning topics

Lane assignment is decided by the agent interacting with the user, not by the memory system. Mnemosyne stores and manages; the agent classifies.

2.2 Memory Contexts (Context Buckets)

Human memory isn't a big bag: we remember things in context. Mnemosyne replicates this with "context buckets": thematic compartments that isolate memory by domain.

A user might have the bucket health_wellness (where mild asthma is remembered), learning_python (where a preference for hands-on tutorials is stored), and work_project_alpha (where a Friday deadline is tracked).

2.3 The General Overlay: The User's "Self"

Some memories don't belong to any specific context but to the user's identity itself: their name, profession, company, universal preferences. These memories are marked as "general" and stored in a special bucket. When the system retrieves memories from any context, it always includes this general overlay as a permanent identity substrate.

It's the equivalent of self-concept in psychology: information about who you are that accompanies everything you think about, regardless of topic. Asking about your work project activates your work memories and your general identity.

2.4 Epistemic Types

Each memory carries an epistemic type indicating its nature as knowledge:

  • world — Objective facts: "Madrid is the capital of Spain"
  • experience — Personal experiences: "Traveled to Japan in 2024"
  • opinion — Subjective beliefs: "Prefers Python over Java"
  • observation — Observed patterns: "Tends to be more cheerful on Fridays"

3. How Memories Are Formed: The Write Pipeline

When a conversational agent wants to "remember" something about the user, the information passes through a three-phase pipeline that reproduces the human memory encoding process.

Phase A: Curation + Embedding

Before storing a new memory, the system does exactly what the hippocampus does: compare the new with the existing.

Embedding — Each memory receives a "neural fingerprint": a 768-dimensional vector that captures its meaning. Memories with similar meanings end up close in geometric space.

Curation — With this fingerprint, the system searches for existing memories in the current bucket and in the general bucket (cross-bucket search). It uses two simultaneous strategies: keyword search and meaning-based search. Both lists are fused.

  1. If nothing similar is found: ADD (store as a new memory).
  2. If similar memories are found, it consults Gemini: "What should I do?" Possible answers:
  • ADD — Genuinely new information.
  • UPDATE — Enriches an existing memory (merges values, evolves confidence).
  • DELETE — Directly contradicts something existing (deletes the old, stores the new).
  • NOOP — Information is already covered, no changes needed.

Brain analogy: When someone tells you their new phone number, your brain updates the existing one (UPDATE), weakening the old one. If you're told something you believed is false, you contradict it (DELETE). Curation replicates these processes.

Phase B: Atomic Write

The memory is stored atomically — all or nothing. At this point the following are established:

  • Status: Core — the memory is born active.
  • Initial confidence: typically 0.7 out of 1.0.
  • Access timestamps: 3 initial marks (or 5 if high arousal).

Phase C: Linking + Emotion + Arousal (parallel)

Once stored, three processes run simultaneously:

Linking — Searches for memories with high semantic similarity (> 0.7) and creates bidirectional links. Maximum 20 links per memory, pruning the weakest. These semantic links form the foundation of the memory graph.

Emotion Tagging — 100% LLM-based extraction (Gemini) of Plutchik's 8 categories with intensity, plus arousal (physiological activation) and valence (positive/negative) following Russell's circumplex model.

Arousal Modulation — Arousal (emotional intensity, not the emotion itself) modulates four critical aspects, replicating McGaugh's findings on how emotionally intense experiences are better remembered:

  • Slower decay: d_eff = d × (1 - 0.4 × arousal) — a high-arousal memory (rage, ecstasy, terror) decays more slowly than a neutral one.
  • Priority retrieval: score × (1 + 0.3 × arousal) — emotionally intense memories appear first in results.
  • Stronger encoding: If arousal ≥ 0.6, 5 access timestamps are initialized (vs 3 normal), creating a deeper imprint from the very first moment.
  • Amplified confidence: Confidence changes (CARA) are scaled by arousal: delta × (1 + 0.5 × arousal).

4. How Memories Are Recalled: The Retrieval Pipeline

When the agent needs context to respond to the user, Mnemosyne runs a retrieval pipeline that combines multiple strategies to find the most relevant memories.

4.1 Three Simultaneous Search Channels

Semantic Channel — Cosine similarity in 768-dim space. Finds "allergy" when asked "can I prescribe penicillin?". Captures meaning.

Lexical Channel — Full-text search. Captures acronyms, proper nouns, exact numbers, technical terms — what meaning alone wouldn't catch.

Signal Channel — Returns the most active (ACT-R activation score) and reliable (confidence) memories, regardless of textual match. These are the memories "on the tip of your tongue".

4.2 Reciprocal Rank Fusion (RRF)

The three channels are fused with Reciprocal Rank Fusion: score = Σ 1/(60+rank). A memory that ranks well across all three channels rises to the top. One that only appears in one channel is still considered.

Brain analogy: It's like when a smell, a sound, and a visual context converge to evoke a specific memory. The more "cues" that match, the more vivid the recall.

4.3 Adaptive Depth

The system detects query complexity and adjusts how many memories to retrieve:

  • Simple (5 memories): direct questions — "What's my name?"
  • Hybrid (10 memories): questions requiring context — "What was I working on last week?"
  • Complex (20 memories): cross-analysis — "How has my opinion on X evolved?"

4.4 Spreading Activation in the Graph

The top memories found are used as "seeds" to explore the connection graph. From each seed, the system navigates up to 2 hops, traversing links discovered by consolidation.

Activation attenuates with each hop (×0.8) and is modulated by link strength. Links that prove useful are automatically reinforced — Hebbian mechanism: "neurons that fire together wire together".

MAGMA Intent — Graph exploration adapts to the question's intent:

  • "Why...?" → prioritizes causal links
  • "When...?" → prioritizes temporal links
  • "Who...?" → prioritizes entity links
  • General question → balanced weight across all types

4.5 The General Overlay

A second retrieval round is always executed against the "general" bucket using its own 3-channel RRF pipeline. General memories are returned in a separate section, ensuring the agent always knows who the user is regardless of conversation context.

4.6 Auto-reactivation on Access

This is the system's most important principle: the act of remembering strengthens the memory. When a memory is retrieved in response to a query — even if it was in Dream or Forgotten state — it's automatically reactivated to Core. A new access timestamp is added and its decay timer resets.

Brain analogy: This is exactly what happens with retrieval practice in neuroscience. A forgotten memory that's evoked with effort consolidates more strongly than one that was never challenged. That's why asking "do you remember when I said good morning?" reactivates not just that memory but all memories the system retrieved to build the response.


5. The Lifecycle: How Memories Age

Core  →  Dream  →  Forgotten  →  Archive
(active)  (latent)  (forgotten)   (deep archive)

The memory system has a DecayWorker that runs automatically in the background. Its pace adapts to the configured time scale: in normal mode, every hour; in accelerated mode (for testing), every few seconds.

5.1 The ACT-R Activation Model

B = ln( Σ t_j^(-d) ) + associative_boost + noise

Where t_j is the time since each prior access (up to 50 timestamps are stored), d is the decay rate (0.5, modulated by arousal). The associative boost comes from the link graph — memories with active neighbors decay more slowly (only positive contributions propagate). Stochastic noise models natural memory variability.

5.2 State Transitions

When activation falls below specific thresholds, the memory transitions:

  • < -2.0: Core → Dream (no access in ~30 days)
  • < -3.0: Dream → Forgotten (no access in ~90 days)
  • < -5.0: Forgotten → Archive (no access in ~180 days)

A memory can only drop one level per tick — it never jumps from Core directly to Archive.

5.3 Four Reactivation Mechanisms

An archived memory isn't lost. Any of these mechanisms returns it to Core:

  • By retrieval: The most natural — when the system retrieves a memory to answer a question, it automatically strengthens it.
  • By confirmation: The agent or user explicitly confirms a memory is correct — raises confidence to 1.0 and reactivates.
  • By update: Modifying a memory's value brings it back to Core.
  • By re-write: The curation pipeline decides to UPDATE a forgotten memory — reactivates it by merging new information.

6. Confidence Evolution: CARA

A memory's confidence isn't static — it evolves with each interaction following the CARA model (Confidence through Accumulative Reinforcement and Attenuation):

  • Reinforce (+0.10): New information confirms what exists. "Yes, I still work at Kopernica."
  • Weaken (-0.10): Information suggests the memory is less reliable. "I think I don't live there anymore."
  • Contradict (-0.20): Direct contradiction. "No, I'm no longer an engineer, I'm a designer now."
  • Neutral (0): No effect on confidence.

These deltas are amplified by arousal: an enthusiastic confirmation reinforces more (+0.15) than a neutral one (+0.10). Each adjustment is recorded in an auditable history with timestamp, action, delta, arousal, and justification.


7. Deep Consolidation: The System's "Sleep"

Every 60 seconds, the Consolidation Worker — the system's equivalent of REM sleep — examines unconsolidated memories and discovers deep connections that aren't evident at write time:

  1. Takes memories pending consolidation.
  2. Searches for close neighbors in semantic space and in the existing graph.
  3. Consults an LLM to discover relationships between them.
  4. Creates links with granular types and subtypes:
TypeSubtypesExample
Causalleads_to, because_of, enables, prevents"Learned TypeScript" → "Built the app"
Temporalprecedes, succeeds, concurrent"Started in March" → "Finished in June"
Entityrefers_to, mentioned_in"Works at Kopernica" ↔ "Kopernica's Project Alpha"
Emotionalshares_emotion, contrasts_emotion, evolves_from"Stressed about deadline" ↔ "Relieved after finishing"

Brain analogy: During REM sleep, the hippocampus "replays" the day's experiences and the neocortex forms long-term connections. The consolidation worker does exactly this: it reviews recent memories and discovers that "deadline stress" and "the joy of delivering on time" are emotionally connected, or that "learning TypeScript" caused "being able to build the app".


8. Isolation and Security: Every Brain is Private

All memory is isolated per user via PostgreSQL Row-Level Security. A user can never see, search, or modify another user's memories. It's as if each user has their own completely independent brain.


9. Complete Flow Summary

  1. The user says something → the agent extracts candidate memories from the conversation.
  2. Phase A: Embedding + Curation (cross-bucket search) → ADD/UPDATE/DELETE/NOOP.
  3. Phase B: Atomic write (status Core, confidence 0.7, epistemic type).
  4. Phase C: Semantic linking + Plutchik emotion + Arousal (parallel).
  5. [Continuous background]: Consolidation Worker discovers deep connections (causal, temporal, entity, emotional).
  6. [Continuous background]: DecayWorker runs automatic ACT-R decay ticks.
  7. The user asks → 3 semantic/lexical/signal channels in parallel, with adaptive depth.
  8. RRF fuses results by reciprocal rank.
  9. Spreading activation propagates through the graph with MAGMA intent.
  10. General overlay adds user identity (with its own 3-channel RRF).
  11. Auto-reactivation: all retrieved memories are strengthened — remembering is reinforcing.
  12. The agent responds with complete, up-to-date context.

10. What Sets Us Apart

AspectTraditional ChatbotMnemosyne
PersistenceNone or last session onlyPermanent per-user memory
OrganizationPlain text or key-value5 lanes + contexts + general overlay + epistemic types
SearchKeyword match3 channels (semantic + lexical + signal) with RRF + adaptive depth
ForgettingManual or neverAutomatic ACT-R decay (background worker)
ReactivationDoesn't exist4 mechanisms (access, confirmation, update, re-write)
ConnectionsDoesn't existGraph with 4 link types + spreading activation + MAGMA intent
EmotionsDoesn't exist8 Plutchik categories + arousal/valence (modulates decay, retrieval, encoding, confidence)
ConsolidationDoesn't existAsync LLM worker every 60s (REM sleep analogue)
ConfidenceStaticEvolutionary CARA with auditable history
Cross-context identityDoesn't existGeneral overlay: the user's "self" present in every context