Every append-only memory system has a silent failure mode: Context Schizophrenia. A user says "I am in London" on Monday. On Tuesday: "I moved to Paris." Standard vector databases now hold two conflicting truths. When the agent recalls context on Wednesday, it retrieves both. The result is hallucination, stalling, or confident lies — because the agent has no mechanism to arbitrate which fact is current.

This is not a fringe case. It is the default behaviour of every system that treats memory as a log rather than a state machine. The longer an agent runs, the worse the noise floor becomes. After three months of operation, most agents are running on data that is 40–60% stale or contradictory.

Inspired by memory curation research in Mem0 (arXiv:2504.19413), which demonstrated that an LLM-arbitrated curation gate at the write layer reduces context contradiction rates by over 80% compared to append-only storage.

Every write is a decision, not just a save

VEKTOR solves this at the write layer — before anything touches the graph. Every new piece of information passes through the AUDN logic gate: a four-way decision that audits the incoming fact against the existing knowledge graph before committing it.

ADD
New fact with no conflict. Committed as a fresh node.
UPDATE
Contradicts an existing fact. Old truth archived, new truth promoted.
DELETE
Explicit invalidation. Old fact archived with full lineage preserved.
NO-OP
Duplicate of an existing fact. Boosts signal weight, no new node.

Why this matters at scale

A typical developer session generates 50–200 memory writes. Without curation, a three-month agent accumulates 15,000–60,000 nodes. Statistically, 30–40% of those will contain soft contradictions — evolving facts that were never reconciled. When retrieval hits this noise floor, the agent starts confabulating: stitching together plausible-sounding answers from incompatible fragments.

The AUDN gate runs synchronously on every write. It uses a small LLM call to compare the incoming statement against the top-k most semantically similar existing nodes. The decision is deterministic: if a conflict is found, the gate classifies it as UPDATE or DELETE. If not, it is ADD or NO-OP. The result is a graph that stays high-signal indefinitely, regardless of session count.

// AUDN gate in action — automatic at every write
await memory.remember("User is based in London");
// Graph state: { "location": "London" }

await memory.remember("User moved to Paris last week");
// AUDN detects conflict with "location: London"
// Decision: UPDATE — archives London, writes Paris
// Graph state: { "location": "Paris", "_prev": "London" }

const location = await memory.recall("Where does the user live?");
// Returns: "Paris" — clean, unambiguous, correct

What happens without AUDN

Without a curation gate, both "London" and "Paris" exist in the graph with similar importance scores. A similarity search returns both. The agent must now decide which is true — and with no temporal or causal metadata to disambiguate, it guesses. Sometimes right. Often wrong. Always unpredictably.

This is why long-running agents degrade. It is not a model problem. It is a memory architecture problem. The model is only as good as the context it receives. VEKTOR's job is to make sure that context is always the truth — curated, current, and contradiction-free.

→ Read about the full MAGMA graph architecture    → AUDN FAQ