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.
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.
- Every write is audited — not just appended
- Contradictions are resolved at write time, not recalled ambiguously
- Old truths are archived, never deleted — full audit trail maintained via
audn_log - Duplicate facts boost existing nodes rather than creating noise
- Graph stays high-signal indefinitely — no degradation over time