Architecture
The lineage-first fabric and the engine underneath it
Two things carry the Mycelic name. The fabric is how independent memory holders exchange bounded, lineage-carrying artifacts and questions without a shared store.1 The engine, NeuralGraph, is the local memory graph each holder owns.2
Part 1 · The fabric
System model
Each agent owns a local memory graph. There are no raw cross-graph edges; exchange occurs only through typed artifacts validated at the boundary (ClaimEnvelope, RetrievalTrace, EvidenceExport), never through raw graph reads or a global merged store.13 A claim is supported by authorized derivations, and knowledge need not be stored as a literal sentence: independent holders can jointly reconstruct an answer no single one of them holds.4 An artifact carries owner, scope, temporal validity, lineage and authorization; a derivation records support, not a guarantee of truth.5 Reconstruction is demonstrated in the deterministic fixture and the Gate-1 tests, not in a deployment.6
Formally, agent i owns Gi = (Vi, Ei, ψi); a materialized artifact is a = (id, owner, z, Σ, τ, λ, p, refs): semantic state, scope, temporal validity, lineage, authorization and opaque evidence pointers; it is an optimisation and policy boundary.7
The formal definitions of the local graph and of a materialized artifact are held in the manuscript under review and will be added here after the review decision.
The QuestionArtifact
A question is a first-class, bounded, routable request rather than control flow: it carries an asker, a trigger, a scope, a budget, target units and a status, and it may travel when private memory cannot.8 Responses preserve contributors, evidence roots and unresolved disagreement; disclosure still requires authorization, because even a question can expose sensitive intent.9 In the organisational benchmark the artifact is implemented as a request for order-(k+1) cell counts answered by one-cell sketches.9
Formally, Q = (id, asker, q, trigger, Σ, τ, u, λctx, D, π, B, status): an uncertainty, a motivating lineage, candidate domains, a policy and a budget.10
The formal tuple definition of the QuestionArtifact is held in the manuscript under review and will be added here after the review decision.
Three axes
A horizontal plane coordinates peers; a vertical axis forms higher-level representations (in the benchmark, worker → team → department → region → executive; in the engine, MESSAGE → EPISODE → TOPIC → PERSONA); lineage threads preserve the evidence and transformations supporting each artifact and form a derivation DAG.11 Cross-functional projects remain overlapping scopes rather than forced branches of an organisation tree. Hierarchy is prior art; what is specific here is that the vertical axis never severs the lineage thread.12
Independent support versus copies
Support is counted by distinct independent evidence roots after a correlation discount, not by replica count: exact copies count 0; the same worker counts 0 beyond the first; same team 0.5; same department 0.8; otherwise 1.0.13 A verifier is not shown the current answer where that would contaminate independence; disagreement becomes a conflict object, never an automatic merge.14 Typed lineage retains the difference between a shared database and a shared human source; active lineage diversification chooses the acquisition action with the largest expected gain in survivability margin per cost.15 Two further design points, a lineage typing that keeps a shared database distinct from a shared human source and an active choice of which evidence to acquire next, are described in the manuscript under review.
The continual-discovery loop
- External question
- QuestionArtifact (bounded, policy, scope, budget)
- Policy-aware router
- Distributed evidence holders (bounded evidence only; no raw memory leaves)
- Lineage and provenance comparison
- Verification
- Contradiction, detected and localised into a conflict object
- Revision
- Epistemic state
- The next, internally generated question
The five epistemic functions are verification, contradiction, relation discovery, hypothesis generation and prediction/falsification; they are architectural functions, not all measured natural-language capabilities.they are roles the architecture defines, and not every one of them has been measured as a natural-language capability.18
Layer stack, with what exists today
| Layer | What it holds | What exists today | Status |
|---|---|---|---|
| Local evidence holders | agents with a small local model and tools; local data and memory; raw memory never leaves; bounded evidence returns | NeuralGraph engine with SQLite or in-memory storage and a local model endpoint19 | implemented |
| Lineage-bound context | team or department, region or scope, cross-cutting scopes | scopes and failure domains as modelled in the coordinator fixture and the benchmark20 | tested / benchmark simulator |
| Durable transport | bounded claims, evidence envelopes, causally ordered, audit-ready | typed contracts validated at the boundary; no deployed network transport exists3 | implemented (in-process) / design (network) |
| Lineage knowledge fabric | semantic index, scope graph, time intervals, lineage roots and failure domains | lineage analyser and repair planner in the coordinator; LineageRecord and SupportRecord in the benchmark35 | implemented / benchmark simulator |
Transport remains distinct from memory. Elements marked design are hatched in the diagram. | |||
Part 2 · The engine: NeuralGraph
What it is
A graph-native memory and retrieval system for long-running AI agents.2 It turns conversations and events into structured, searchable memory; instead of a flat vector store it combines semantic retrieval, graph relationships, speaker identity, temporal reasoning, reranking and evidence attribution to recover the right context for an answer.21 Most agent-memory systems are good at finding text that looks similar to a query and weaker at questions that require identity, chronology, aggregation or multi-step reasoning (a positioning statement, not a measured comparison).22 Six question classes the engine targets: who said what; when did it happen; what changed over time; what facts belong together; why was this answer produced; what should happen when memory is insufficient.23
Graph-native memory
Memories are nodes with metadata and relationships rather than isolated text chunks, preserving identity, sequence, provenance and semantic connections.24 Nodes live in a MESSAGE → EPISODE → TOPIC → PERSONA hierarchy with a TEMPORAL anchor layer and are linked by six typed, weighted, signed edge types: TEMPORAL, SEMANTIC, ENTITY, CAUSAL, HIERARCHY and CO_ACTIVATION.25 Time and speaker identity are first-class metadata; relative expressions such as “yesterday” and “last week” are resolved against the original message timestamp.26
Retrieval
There is an index. Stage 1 is hybrid recall over vector similarity (a per-session LSH index with brute-force fallback for small sessions) and keyword search; later stages expand by entity edges, temporal chains, hierarchy traversal and co-activation; a final reranking stage scores candidates with several signals: semantic similarity, keyword match, entity overlap, temporal relevance, speaker-aware boosts, specificity bonuses and reranking deltas (signal names only; the design document’s weights are boost multipliers, not a normalised split, and are not shown).27 One reranking pass is an interference-style sweep over time × hierarchy, the mechanism the previous site called “wave-based resonance retrieval”; it is one signal in a hybrid pipeline, not the retrieval method, no isolated measurement attributes gains to it, and the measured gains on LoCoMo came from per-agent routing and dialogue-pair back-fill.28 Queries are routed into strict fact extraction, temporal, list, aggregation, memory-grounded inference or open-domain fallback modes.29
The retrieval Tesseract, and its patent figure
The router just described (query-type detection, per-store retrieval, weighted fusion) is the code artefact the company also describes in a patent filing, reproduced below as supplied.70 This is the retrieval Tesseract, not the coordination Tesseract of Part 1 (see “Two disambiguations” below); the two share a name for historical reasons only.68
| Figure element | In the source | Status |
|---|---|---|
| Specialized memory stores (episodic, semantic, temporal, external) | four store classes exist, differently named and scoped: TemporalStore, EntityStore, ReasoningStore, AdversarialStore.72 Same four-way fan-out shape; the figure’s store names do not match the code’s. | implemented (renamed) |
| Routing process (analyze → determine type → compute weights → traverse → retrieve and fuse, with feedback) | detect_query_type() scores a QueryType (including ADVERSARIAL); per-store .retrieve() calls run; per-query weights (temporal_weight, entity_weight, multihop_weight, adversarial_weight, open_weight) are normalised to sum to 1 and fuse the four stores’ scored results.73 | implemented |
| Tesseract Router / Inner Memory Cube / Outer Routing Layer (cube geometry) | no cube, hypercube or literal multi-dimensional data structure in the file; routing is four scored lists combined by scalar weights. | conceptual framing (patent claim language) |
| Multi-dimensional view (3D / temporal / semantic / relational / adversarial planes) | an illustration of the same four-plus-one signal set as separated planes; not a rendering of a runtime object. | conceptual framing |
| System layer integration (application / intelligence / memory / storage) | a generic four-layer split; corresponds loosely to the D1 layer stack in Part 1, drawn independently from repository descriptions. | consistent, not verified line-for-line |
Attribution: why was this answer produced
The engine records what happened at each retrieval stage, including candidate counts, latency, score components, reranking effects and the evidence supplied to the final answer, so every retrieval failure is measurable.30 This is the engine-level counterpart of lineage in the fabric.
Memory changes as it is used
Retrieval writes back: co-activation edges strengthen when nodes are retrieved together (capped at 3×) and timing-dependent plasticity adjusts temporal edges.31 A consolidation cycle decays activation, prunes weak edges, merges near-duplicates above a similarity threshold, creates hub summaries, promotes hot nodes up the hierarchy and evicts cold ones.32 Stated plainly so that operators know: retention is automatic unless configured, and there is no user-facing purge-on-demand feature today.33
Local models Configuration
The answering and embedding pipeline runs against a local model server: any OpenAI-compatible endpoint such as LM Studio, or Ollama, chosen from the configured base URL.34 The September 2026 campaign used gemma-4-e4b with nomic-embed-text v1.5.35 Model names are configuration, not product facts, and this site states no default model because the README and the code differ.36 Disclosure: the engine includes an optional open-domain fallback retriever for questions memory cannot answer; whether it is enabled is a configuration decision a deployment must make explicitly.37
Storage and isolation
Persistent SQLite or in-memory storage with indexes partitioned by session key and one LSH index per session.38 Session isolation is data scoping inside one storage layer; it is not encryption, tenancy or a security boundary, and this site does not present it as one. Multi-agent namespaces and permissions are a roadmap item.39
Status and roadmap
Under active development; current work focuses on single-hop extraction, temporal questions, list and aggregation queries, query routing, latency tracking and benchmark attribution.40
Planned, not done.39
- planned publish reproducible benchmark results
- planned a minimal quick-start
- planned a documented API for the memory graph
- planned graph visualisation tools
- planned additional local and hosted model providers
- planned multi-agent memory namespaces and permissions
- planned a packaged library
Consequently there is no pip package, Docker image, SDK or REST API today. The source repository is public to read at github.com/anovruzov/NeuralGraph, but the licence has not been selected, so all rights are reserved until one is and nothing in it is offered for use or redistribution.4169
Intended use cases (not deployments): persistent memory for autonomous agents; personal assistants that remember conversations accurately; multi-agent shared memory; timeline and event reconstruction; long-horizon research assistants; benchmarkable retrieval-augmented generation; explainable memory retrieval.42
Evaluate the engine on your hardware
Implemented, demonstrated, proposed
| Status | Items | Source |
|---|---|---|
| Implemented and tested implemented tested |
the NeuralGraph engine; coordination contracts, policy filter, rule-based synthesiser, lineage analyser, reversible failure injection, repair planner; the organisational benchmark’s structural mechanisms (sketch pooling, lineage, support discount, dedup, contradiction handling, revision, compression, routing, failure recovery, hypothesis test) | 43 |
| Demonstrated in a deterministic fixture, tests or symbolic simulation only demonstrated |
lineage-aware repair (7 of 9); Gate-1 reconstruction across two real SQLite holders; lineage-aware placement and continual questioning at population scale population-scale simulation results, under review | 4445 |
| Proposed and unvalidated (hatched everywhere) proposed |
the sparse question-priority formula; the stopping rule; federated public discovery in which regions keep raw records local and federate scoped abstractions; a deployed population of reasoning agents | 46manuscript under review |
| Not claimed as novel | graph memory; persistent memory; reconstruction; hierarchy | 47stated in the lab’s own words |
Every term, resolved
Rule: a word without a mechanism behind it is not used on this site. Spores, resonance and waves are out; the table says what each remaining word means in code or in the benchmark.48
| Word on this site | Mechanism | Source |
|---|---|---|
| fabric | the coordinated set of independent memory holders plus typed artifacts and lineage threads; no global merged store | 1 |
| threads / lineage | lineage edges; LineageRecord.parent_claim_ids and derivation_operator; lineage_root_ids on every coordinated claim | 49 |
| roots | hashed root_worker_ids (benchmark) and lineage_root_ids (coordinator) | 50 |
| the soil stays put / local-first | local evidence holders; raw memory never leaves; DLP: no text leaves a device | 51 |
| rising / abstraction | the vertical axis: worker → team → department → region → executive; MESSAGE → EPISODE → TOPIC → PERSONA | 52 |
| a question that travels | QuestionArtifact | 8 |
| cutting a strand | a failure domain; a lineage-root failure intervention | 53 |
| regrowth | lineage-aware repair: route to an independently rooted holder rather than adding replicas of the failed root | 54 |
| bounded abstraction | a scoped, byte-metered sketch or claim promoted upward instead of raw records | 55 |
| independent support | support after the correlation discount (copies 0; same worker 0; same team 0.5; same department 0.8; else 1.0) | 13 |
| conflict object | a first-class record of disagreement, resolved by independent-support ratio, freshness or region split, else kept unresolved | 14 |
| capability survival | fraction of nine capabilities still answerable after an intervention | 56 |
| per-agent (owner) routing | route a question naming one speaker to that speaker’s own store | 57 |
| pair nodes / dialogue-pair back-fill | embed each reply with the message before it; use as back-fill behind the routed search | 58 |
| leakage-free harness | the harness after removing the gold-answer acceptance gate and gold-category routing | 35 |
| recall@k | presence of a gold-answer fragment in the top-k retrieved messages; a substring proxy | 59 |
| judge sensitivity | identical answers score 13.5 to 64.9% depending only on the grader | 60 |
| wavefront propagation | an interference-style reranking pass over time × hierarchy; one signal, formerly marketed as wave-based resonance | 61 |
| session isolation | index partitioning by session key inside one storage layer; not a security boundary | 62 |
| minimum discovery layer | the lowest hierarchy layer at which some unit holds at least 1.25 × nmin matching evidence | 63 |
| DLP / k-anonymity / canary token | no text leaves a device; cells with n < k suppressed; planted tokens that measure leakage exactly | 64 |
| false association rate | fraction of accepted claims that are false in the noise-free population truth | 65 |
| evidence classes A, B, C, D, T | measured retrieval; deterministic repair fixture; synthetic acquisition simulation; population-scale symbolic simulation; deterministic coordination tests | 66 |
Two disambiguations
- Two ladders. manuscript-B0 to B7, B3Q, B6C (Class D) versus bench-B0 to B9 plus ORACLE. “B7” means lineage fabric plus questioning in the manuscript and lineage-aware hierarchy without questioning in the benchmark; the site always prefixes.67
- Two Tesseracts. Tesseract (coordination) is the cross-node coordinator with typed contracts; Tesseract (retrieval) is an older single-node query-routing module with temporal, entity, reasoning and adversarial stores; they share a name for historical reasons only, and this site means the coordinator unless it says otherwise.68
Site vocabulary (chips and pills)
Evidence chips.
- A measured retrieval
- B deterministic fixture
- C synthetic acquisition simulation
- D population-scale symbolic simulation
- T deterministic coordination tests
- IP in progress, no results
- W withdrawn
Status pills.
- measured
- simulated
- implemented
- tested
- configuration
- design
- proposed (hatched)
- in progress
- superseded
- planned
Sources
Paths are relative to the root of the NeuralGraph repository, which is public to read at github.com/anovruzov/NeuralGraph with no licence selected (all rights reserved); they are given as text, with line numbers checked against main on 2026-09-17, and files under mycelic-org-benchmark/ are on branch claude/mycelic-org-benchmark-9cnf35, not yet merged into main. “Manuscript” is the Mycelic research manuscript under review, cited by section and printed margin line number; entries marked gated are stripped from the deployed page until the authors clear publication. “website/” is the previous site, cited only for a withdrawn claim.
- NeuralGraph/state.md — Non-negotiable invariants, ll.19-30
- NeuralGraph/README.md — l.3
- NeuralGraph/state.md — contracts.py, ll.43-71
- NeuralGraph/state.md — Mission, ll.11-17; Gate 1, ll.171-200
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §4, ll.160-192
- NeuralGraph/state.md — Gate 1, ll.171-209
- Manuscript — §2, ll.34-43 (gated)
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §4 QuestionArtifact, ll.186-187
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §6 step 7, ll.269-276
- Manuscript — §2.1, ll.44-49 (gated)
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §3.1, ll.80-86; §4 LineageRecord, ll.183-190; NeuralGraph/NeuralGraph_System_Architecture.md — §3.4.1
- Manuscript — §3, ll.50-54; §6.2, ll.244-257 (gated)
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §6 step 3, ll.238-242
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §6 step 5, ll.249-255
- Manuscript — §3.1, ll.55-61; §4, ll.67-68 (gated)
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §6, ll.217-291 (steps 3 to 8 as implemented in the benchmark)
- Manuscript — §4, ll.62-69 (gated)
- Manuscript — §4, ll.62-66
- NeuralGraph/NeuralGraph_System_Architecture.md — §3.2; NeuralGraph/NeuralGraph/llm_backend.py — ll.1-14
- NeuralGraph/state.md — Gate 1, ll.171-200; NeuralGraph/mycelic-org-benchmark/DESIGN.md — §3.1, ll.80-86
- NeuralGraph/README.md — l.5
- NeuralGraph/README.md — l.9
- NeuralGraph/README.md — ll.11-18
- NeuralGraph/README.md — ll.22-23
- NeuralGraph/NeuralGraph_System_Architecture.md — §3.1.3
- NeuralGraph/README.md — ll.36-37, 118-125
- NeuralGraph/NeuralGraph_System_Architecture.md — §3.2.1, §3.3.1; NeuralGraph/README.md — ll.25-34
- NeuralGraph/NeuralGraph_System_Architecture.md — §5.2; NeuralGraph/NeuralGraph/wavefront.py — ll.1-33; NeuralGraph/docs/BENCHMARKS.md — ll.88-99
- NeuralGraph/README.md — ll.39-47
- NeuralGraph/README.md — ll.49-50, 125
- NeuralGraph/NeuralGraph_System_Architecture.md — §2.3, §4.2; NeuralGraph/NeuralGraph/temporal.py — l.61
- NeuralGraph/NeuralGraph_System_Architecture.md — §3.4.3; NeuralGraph/NeuralGraph/consolidation.py — ll.66-82
- website/index.html — l.148 (withdrawn claim)
- NeuralGraph/NeuralGraph/llm_backend.py — ll.1-14, 22-24
- NeuralGraph/docs/BENCHMARKS.md — Track B header, ll.70-72
- NeuralGraph/README.md — ll.90-98; NeuralGraph/NeuralGraph/llm_backend.py — ll.22-24
- NeuralGraph/README.md — ll.39-47; NeuralGraph/NeuralGraph/external_retriever.py — l.249
- NeuralGraph/NeuralGraph_System_Architecture.md — §3.2.1, §4.3
- NeuralGraph/README.md — Roadmap, ll.131-139
- NeuralGraph/README.md — Current Status, ll.127-129
- NeuralGraph/README.md — License, ll.145-147
- NeuralGraph/README.md — Example Use Cases, ll.108-116
- NeuralGraph/state.md — ll.43-71; NeuralGraph/mycelic-org-benchmark/README.md — ll.44-49
- NeuralGraph/docs/BENCHMARKS.md — ll.16-62; NeuralGraph/state.md — ll.171-209
- Manuscript — §5.3-5.6 (gated)
- Manuscript — §4.1, ll.70-74; §6.3, ll.258-264; §6.1, ll.231-232 (gated)
- Manuscript — §6.2, ll.244-257 (gated)
- NeuralGraph/docs/BENCHMARKS.md — ll.88-99 (measured gains are not wave-based)
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §4, ll.183-190; NeuralGraph/state.md — ll.171-200
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §4, ll.183-190; NeuralGraph/state.md — ll.195-197
- NeuralGraph/state.md — ll.19-30; NeuralGraph/mycelic-org-benchmark/DESIGN.md — §3.6, ll.145-153
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §3.1, ll.80-86; NeuralGraph/NeuralGraph_System_Architecture.md — §3.4.1
- NeuralGraph/docs/BENCHMARKS.md — ll.27-36
- NeuralGraph/docs/BENCHMARKS.md — ll.16-62; NeuralGraph/state.md — ll.72-84
- NeuralGraph/mycelic-org-benchmark/README.md — ll.3-6
- NeuralGraph/docs/BENCHMARKS.md — ll.16-62
- NeuralGraph/docs/research/REPORT.md — §2, l.30
- NeuralGraph/docs/research/REPORT.md — §2, l.31
- NeuralGraph/docs/BENCHMARKS.md — ll.70-99
- NeuralGraph/docs/BENCHMARKS.md — ll.121-131
- NeuralGraph/NeuralGraph_System_Architecture.md — §5.2; NeuralGraph/NeuralGraph/wavefront.py — ll.1-33
- NeuralGraph/NeuralGraph_System_Architecture.md — §4.3
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §3.5, ll.128-143
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §3.6, ll.145-153; §5, ll.199-202
- NeuralGraph/mycelic-org-benchmark/docs/REPORT.md — ll.130-135
- Manuscript — §5.1, ll.76-80; NeuralGraph/state.md — ll.145-154
- Manuscript — Table 2, p.5; NeuralGraph/mycelic-org-benchmark/README.md — ll.139-153
- NeuralGraph/state.md — Current Architecture, ll.32-44; NeuralGraph/NeuralGraph/tesseract.py — ll.1-36
- Repository check, 2026-09-17: GET api.github.com/repos/anovruzov/NeuralGraph returned private: false, visibility: public, default branch main, license: null; git merge-base --is-ancestor on a fresh fetch puts commit e054178 on main and commit 13a1729 and branch claude/mycelic-org-benchmark-9cnf35 off it
- Image supplied by the research team, titled “Tesseract Router Architecture”, FIG. 1–4; no filing number, jurisdiction or date is printed on the supplied figure and none is asserted here
- This site’s own reading of the supplied figure against NeuralGraph/NeuralGraph/tesseract.py, ll.1-2208, 2026-09-17; not a legal or patent-office verification
- NeuralGraph/NeuralGraph/tesseract.py — store classes TemporalStore l.525, EntityStore l.1305, ReasoningStore l.1512, AdversarialStore l.1683, under the section comment “SPECIALIZED MEMORY STORES” l.509
- NeuralGraph/NeuralGraph/tesseract.py — QueryType l.304 and detect_query_type() l.313; class Tesseract l.1942 constructing the four stores ll.1956-1959; per-store retrieval calls ll.2007-2035; weight normalisation and fusion ll.2126-2167
Source ledger for this page: NeuralGraph/state.md; NeuralGraph/README.md; NeuralGraph/NeuralGraph_System_Architecture.md; NeuralGraph/NeuralGraph/llm_backend.py, wavefront.py, external_retriever.py, consolidation.py, temporal.py, tesseract.py; NeuralGraph/docs/BENCHMARKS.md; NeuralGraph/docs/research/REPORT.md; NeuralGraph/mycelic-org-benchmark/README.md, DESIGN.md, docs/REPORT.md; website/index.html (withdrawn); manuscript (gated).