An original relational-memory design by Kuaapy's founder: separating topics within a conversation, reconnecting them across conversations and retrieving an area of activated relationships.

A conversation can contain many conversations. We discuss memory, move on to the Dreamer—the memory-consolidation component—return to a runtime's architecture and, a few hours later, approach the Dreamer through another path. Dividing messages into sessions records when each one arrived. By itself, it does not explain which passages develop the same topic or what changed between them.
The problem appears when the agent needs to continue its work. Retrieving a paragraph containing the right word may help, but the context still needs to be reconstructed: which Dreamer was being discussed, why it was proposed, which decisions depended on it and what was corrected afterward.
The design presented here starts from that difficulty. Its unit of retrieval is an area of activated relationships. A region of the graph brings together concepts, passages and links that jointly support an answer. Thinking in areas organizes the architecture; it does not mean that a map drawn on a screen reproduces the human brain.
This article documents the mechanism conceived in Kuaapy's research, with clarifications from its author and references that place it in context. The documents contain proposals, formalizations and code examples. They help explain the design, but do not amount to independent validation of the entire system.
The path from memory to an answer
The memory layer operates outside the main model. When activated, it retrieves an area relevant to the question and prepares the content to be presented to the model. This content always comes before the user's message, before the Transformer processes the input to generate an answer.
The position is fixed; the activation frequency is configurable. A separate interception layer receives the message and can activate memory according to the chosen policy. A new retrieval is not required for every message. Interception belongs to the architecture surrounding the memory and is not detailed in this article.
Mensagem recebida
↓
Camada de interceptação → acionamento conforme a política configurada
↓ quando a memória é acionada
Seleção de uma área → reconstrução do contexto de memória
↓
Entrada do modelo: [contexto de memória] [mensagem do usuário]
↓
Processamento pelo Transformer → respostaTo understand the whole system, distinguish three operations: forming relationships from conversations, retrieving an area for an answer and consolidating memory during sleep. Each operation has its own role and timing.
One conversation, several contexts
Memory formation begins by separating topics. In the division of responsibilities described by the author, Ministral works in the conversation's language: a Portuguese conversation can be segmented into contexts in Portuguese. Each segment must preserve the issue being developed and recognize when a sentence depends on an earlier passage.
Consider a session mixing memory consolidation, model training and article publication. The Dreamer may appear in the first topic as an architectural component and in the third as the subject of an explanation. Those passages are linked, although they serve different purposes within the conversation.
A passage can participate in more than one context. A training decision may affect the feasibility of the consolidation component; separating topics should not erase that dependency.
The design adopts English as the canonical language of the textual representation stored in memory. The intention is to translate and normalize content before entity recognition and linking, preserving its meaning. This internal choice does not require the person to converse in English.
The components identified by the author are:
• Ministral 3 3B Instruct: segmenting a conversation into contexts or topics. The checkpoint is mistralai/Ministral-3-3B-Instruct-2512 [1], selected on the basis of local tests reported by the author.
• BERT-NER: named-entity recognition with dslim/bert-large-NER [2]. This checkpoint was fine-tuned on English CoNLL-2003 and recognizes people, organizations, locations and a miscellaneous entity category.
• Multilingual BERT (mBERT): contextual representations for processing mentions, with google-bert/bert-base-multilingual-uncased [3]. The identified variant is bidirectional, was pretrained in 102 languages and does not distinguish uppercase from lowercase.
In the author's explanation, the mBERT stage also participates in normalization into English and reconstruction of coherent text. The translation and output mechanism associated with this component still needs to be specified in this documentation: the base checkpoint provides representations and masked-token prediction, rather than a ready-made interface for translation or autoregressive conversational generation. The intended pipeline role and the base model's documented capabilities are distinguished here. BERT [4], original multilingual BERT documentation [5].
Recognizing a mention and deciding which entity it refers to are different operations. “Dreamer” may name this component, another project or a metaphor. Linking contexts needs to consider passages and candidates as well as the label. The English NER model does not automatically become multilingual by working alongside mBERT, and its category list does not guarantee coverage of every technical concept.
The heavy work lies in the links
The graph should record more than the fact that two words appeared close together. It needs to represent relationships that preserve the material's meaning: a component performs a function, a decision depends on a constraint, a correction changes an earlier proposal.
A teaching example, not a measured execution:
Trecho da conversa A ──descreve──────────> Dreamer
Trecho da conversa B ──corrige função───> Dreamer
Dreamer ───────────────atua sobre───────> Consolidação
Consolidação ─────────preserva─────────> Histórico de relações
Correção ─────────────limita───────────> Proposta anteriorThe area relevant to a question about the Dreamer's function may span both passages and their relationships. Selecting only the component's name would leave out the correction. Selecting only the most recent sentence could lose what it was correcting.
The example's arrows represent the direction of relationships. That alone does not determine retrieval direction: passages point to Dreamer, but a query starting at Dreamer needs to be able to reach those passages. The traversal rule must specify how incoming edges, outgoing edges or inverse relationships participate in that access. This decision is not yet settled in the documentation presented here.
Relevance must also be distinguished from truth. A conflicting statement may be retrieved precisely because it explains a disagreement; being in the activated area does not mean the system should adopt it as correct.
This is one reason rebuilding links is a demanding part of the design. With each input, the system must distinguish new knowledge, reaffirmation, change and conflict. A structurally valid transaction can still store a semantically incorrect relationship.
The supplied materials describe subject, predicate and object extraction, schema validation and persistence in SQLite. This separation is useful: model output must meet a contract before it is stored. However, validating types and fields does not prove that the predicate was interpreted correctly. Fidelity to the source passage remains a separate check.
To make that fidelity inspectable, a link needs to carry its origin: which passage supports it, in which context and under which version of the interpretation. Provenance makes it possible to return from the abstraction to the material that gave it meaning.
Thinking in areas
Embeddings can help identify candidates, and numerical arrays can represent activation. The proposed retrieval unit, however, is a region of relationships: their organization needs to remain visible in the computation.
The mechanism described by the author works with areas of the graph: related sets of nodes and edges that receive activation from the question's focal points. The interest lies in how that activation is organized and converges within the region.
Imagine a question with three focal points: Dreamer, preservation of history and correction of relationships. One region may receive signals from all three because it contains the consolidation discussion. Another may receive considerable activation from just one generic term appearing in much of the documentation. The aim is to distinguish the region that connects the question's parts from one that merely has many connections.
An area does not have to be a circle on an embedding map. A visualization can help inspect topology, but distances between points on a screen do not, by themselves, define relevance. Paths, relationship types, sources and the contributions of the query's different focal points matter.
The selected area must also be distinguished from its representative. A convergence center can serve as a reference for a region; the answer still depends on the relationships around it. Reducing everything to the node with the highest peak would discard some of the structure the mechanism seeks to preserve.
From a pulse to the retrieved region
In the proposal, query terms are linked to entry points in the graph. These points receive an activation pulse, which travels through existing connections. The simplest local rule presented in the documents is:
ΔAᵤ→ᵥ = Aᵤ wᵤᵥ γThis notation identifies the contribution transmitted along the edge from u to v: Aᵤ is the source activation, wᵤᵥ the connection's weight and γ the decay factor. Contributions arriving along different paths add together. Activation is a transient query state, distinct from persistent relationship weights.
The expression describes one passage along an edge, without assigning the destination's entire state to a single source. The complete operator still needs to define updates between steps, handling of revisits and cycles, normalization, the expansion limit and the stopping criterion.
Measuring how much a node was activated over time is different from evaluating a set of relationships. The instantaneous peak, temporal accumulation at a vertex and a regional measure are different objects. A historical formalization explores temporal accumulation of the combined wave intensity at a vertex:
C(v) = ∫₀ᵀ |Σᵢ αᵢ ωᵢ(v,t)|² dtIn this expression, waves ωᵢ are weighted by αᵢ, and the result depends on the window T. It measures intensity accumulated over time at a vertex; by itself, it does not define a region's measure.
Strong activation also differs from convergence between distinct focal points. As an algebraic example, three units from a single focal point and one unit from each of three focal points produce the same total. A score that observes only that sum cannot distinguish the cases. If the total is equal at every observed point and instant, integrating that total does not recover the contributions' origins either.
The sum establishes the activation field. Distinguishing concentration caused by one focal point from convergence between focal points requires an additional criterion that has not yet been specified in this documentation. Retaining information about the contributions' origins is a possibility to investigate, rather than an implementation rule defined here.
To arrive at the area, it is necessary to state which nodes and edges make up the candidate region, how their contributions are aggregated and which penalties or normalizations apply. A raw sum favors large regions; a peak may favor a hub. Discounting generic connections also requires care, so as not to penalize concepts that are central for legitimate reasons.
The design seeks to select a region where relevant paths meet with little noise. The selection formula needs to make that objective verifiable. The heatmap image helps explain the intention; the mathematical contract establishes exactly what is being computed.
Decay, waves and stability
The language of energy describes activation dynamics. It does not require treating nodes as real physical bodies.
The author also proposes a repulsion intuition, described as inverted gravity, to discuss concentration and dispersion. This intuition must be distinguished from a fully specified equation: moving positions in a visualization, redistributing activation and changing relationship weights are different operations.
Even in simple linear propagation, multiplying each passage by a number smaller than one does not, by itself, guarantee decay of the whole system. Many paths can add contributions, and cycles can feed them back. Stability depends on the complete operator, its weights and its update rules.
The documents also explore a wave formulation. In that variant, the Laplacian convention matters: for the positive-semidefinite Laplacian L=D-W of an undirected graph with nonnegative weights, where D collects the sums of incident weights, the usual vertex-wave form uses ψ̈ = −c²Lψ. Damping and numerical stability require additional definitions; they do not follow from the analogy alone. Friedman and Tillich, wave equations on graphs [6].
The initial text reports a stabilization trial with ten thousand nodes. That record is preserved as the author's report; this documentation review neither reproduced the trial nor received its complete protocol. Turning it into a comparable result would require identifying topology, parameters, initial conditions, convergence criteria and behavior across repeated runs.
Flattening the graph for computation
The persistent graph and its working representation serve different purposes. The documents propose SQLite for storing nodes and relationships. A linear in-memory structure can support propagation computation.
The expression “infinite pointers,” used in the source documents, communicates the intention not to impose a small fixed number of links per node. A materialized execution contains a finite number of edges. Cycles allow repeated traversals, but do not make the set of stored connections infinite.
Flattening replaces scattered references with identifiers and array positions. In CSR format, also called CRS, connections are grouped by row; indices delimit intervals and point to destinations. Storage becomes proportional to the vertices and entries actually represented, rather than reserving a dense matrix for every pair. This benefits certain sparse operations without making every traversal constant-time. Netlib, Compressed Row Storage [7].
This transformation must preserve edge semantics. If two references connect the same nodes but have different sources or types, adding them into a single cell loses information. A numerical matrix can support computation while identifiers and metadata keep relationships distinguishable. The canonical form of a CSR matrix does not automatically preserve independent parallel edges. SciPy CSR documentation [8].
Updates are another issue. The documents explore a CSR base and a delta of new relationships, with periodic rebuilds. Queries need to know which version they are reading. Switching a pointer to the new structure is not enough if another query still depends on the old block, and working memory must remain consistent with persistent storage.
These issues belong to graph implementation. They do not determine what thinking in areas means, but they do determine whether the machine performs the intended computation safely and faithfully.
Consolidating without erasing change
Retrieval serves a question. Consolidation changes memory's organization for future questions.
In the design, the Dreamer is the consolidation role: examining accumulated material, identifying reinforcement, creating relationships and recording changes or conflicts. Choosing Ministral to separate contexts does not, by itself, establish that it is also the model performing this role.
A new statement can confirm an earlier one, replace a decision or contradict it without resolution. These situations deserve different records. The objective is to preserve the ability to reconstruct how knowledge changed, without converting every disagreement into a single truth selected by the consolidator.
Memory is versioned in snapshots. At each sleep cycle, processing accumulated material produces a new snapshot of the memory state. The previous snapshot remains available: if the new consolidation introduces incorrect links or another error, the system can roll back to an earlier version.
The Dreamer performs the semantic consolidation work; the snapshot records the state resulting from that cycle. A reorganization decision can therefore be examined and reversed. Instead of overwriting memory's only copy, the design retains states to which it is possible to return.
Snapshot anterior → ciclo de sono e consolidação → novo snapshot
Snapshot anterior ←──────── rollback ──────────── novo snapshot com erroThe snapshot sequence provides an ordering of versions. It does not automatically state when an event occurred or how long a statement was valid; that temporal information must be represented when the question depends on it. In implementation, rollback also needs to maintain consistency between persisted state, relationships and the cached working representation.
In the design, the Dreamer is described as a component specialized through fine-tuning. This description is distinct from choosing Ministral to separate contexts and does not establish that they are the same model. Reliability needs to be examined on the task: preserving identity, distinguishing conflict from evolution, retaining sources and allowing an incorrect mutation to be undone. Specialization does not guarantee that every write decision is correct.
Reconstructing text without inventing relationships
After selecting an area, the system needs to transform nodes, edges and sources into context the agent can use. This post-retrieval reconstruction is a different operation from the linguistic translation and normalization performed during memory formation. It produces the content that, when injected, precedes the user's message in the model's input.
The risk is producing a narrative more definite than the graph. “Is related to” does not authorize writing “causes”; two conflicting statements do not authorize silently choosing one; an undated correction should not acquire an invented chronology.
Reconstruction should preserve the distinction between retrieved content and added inference. References to passages make the path inspectable. Preserving the graph is necessary, but the graph must also retain enough references to support returning to the source.
The historical documents explore different allocations of models to extraction, arbitration and synthesis. The functions are distinguished here without assigning a generator or hardware division that has not been confirmed for the current design.
External memory and context cost
External memory allows retrieval of a relevant area without requiring the entire conversation to be presented to the model again. The selected content occupies part of the context window; its quantity and selection criteria need mathematical calibration and also depend on the consolidation component's training.
This allows a budget to be established for retrieved context. It does not demonstrate a fixed total cost: locating the region depends on the topology visited; updating the graph requires work; reconstructing and processing context also have costs.
It does not eliminate the model's context window either. In ordinary autoregressive Transformer inference with caching, the presented text still produces keys and values during generation. The distinction is between using this temporary state and depending on retaining a KV cache of the entire history between sessions. The attention mechanism continues to operate on the supplied input. Attention Is All You Need [9], how the KV cache works [10].
A long conversation may yield a small region for a specific question. That does not mean dozens of nodes preserve every detail of a million tokens without loss. Some questions require more sources, and some information may have been lost during extraction itself.
Related work and differences in mechanism
Public research exists on retrieval through relationships and memory evolution. It helps identify comparable questions without establishing equivalence between architectures.
HippoRAG combines a knowledge graph, language models and Personalized PageRank. It is a reference for associative retrieval and questions requiring multiple hops. PPR, however, has its own dynamics; it does not automatically define the area integral or consolidation described here. HippoRAG [11].
GraphRAG explores entities and community summaries to answer questions about document collections. Community organization is a point of comparison for related regions, but does not, by itself, constitute this design's pulse mechanism or mutation history. GraphRAG [12].
Zep/Graphiti addresses information integration and historical relationships in a temporal graph. A-MEM explores connected notes and updates to representations of earlier memories. They are references for temporality and evolution, with contracts different from those that need to be specified in Kuaapy's proposal. Zep [13], A-MEM [14].
The contribution this article seeks to make inspectable is the author's combination: contexts spanning sessions, mention linking, retrieval of areas through activation, a flattened representation and consolidation that preserves history. The existence of related work does not decide whether this combination works better; that is an experimental question.
Evaluating the whole system
An appropriate test must observe the complete path: conversation, context separation, linguistic normalization, extraction, linking, mutation, retrieval and reconstruction. A correct final answer can hide an incorrect relationship, just as a well-formed graph can produce a poor answer.
LongMemEval provides tasks for extraction, cross-session reasoning, temporality, knowledge updating and abstention. It is a useful reference for part of conversational-memory evaluation. LongMemEval [15].
For this design, we also propose examining:
• Context separation: mixed topics, dependencies between passages and a passage's participation in more than one topic.
• Identity and links: homonyms, aliases, mentions in different languages and relationships supported by their source.
• Area retrieval: coverage of necessary paths, contributions from distinct focal points, traversal direction, hub noise and preservation of sources.
• History: reconstruction of earlier versions, preserved conflicts and the distinction between correction and replacement.
• Text reconstruction: statements supported by the subgraph and the ability to indicate insufficient information.
• Cost: time per stage, nodes and edges visited, memory, context tokens and behavior under concurrency.
Comparisons should use equivalent questions and histories, separate calibration from evaluation and include simple alternatives such as lexical, vector and hybrid retrieval. Where variability exists, repetitions and dispersion matter. These trials are an evaluation proposal, rather than results presented in this article.
The intended value lies in continuity: returning to a topic together with the relationships that explain it and the changes it underwent. The agent does not need to reread everything for every question. It needs to find the relevant area, preserve its meaning and recognize when that area does not yet contain a sufficient answer.
Sources and further reading
- [1] mistralai/Ministral-3-3B-Instruct-2512
- [2] dslim/bert-large-NER
- [3] google-bert/bert-base-multilingual-uncased
- [4] BERT
- [5] original multilingual BERT documentation
- [6] Friedman and Tillich, wave equations on graphs
- [7] Netlib, Compressed Row Storage
- [8] SciPy CSR documentation
- [9] Attention Is All You Need
- [10] how the KV cache works
- [11] HippoRAG
- [12] GraphRAG
- [13] Zep
- [14] A-MEM
- [15] LongMemEval