Architecture · Memory IntegrityMarch 2026

Why Your Agent Is a Liar:
Fixing Memory Contradictions
with the AUDN Loop

Most developers treat memory as append-only. Every message gets saved. Every fact stacks up. Until your agent confidently tells a user they live in two cities at once — because it genuinely can't tell which truth is real.

7 min read AUDN Gate Contradiction Resolution Graph Integrity

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 isn't a fringe case. It's 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 3 months of operation, most agents are operating on data that's 40–60% stale or contradictory.

Inspired by the 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. Read the paper →
The AUDN Gate
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.

NEW AUDN GATE ADD NEW NODE UPDATE REPLACE DELETE ARCHIVE NO-OP CLEAN GRAPH
ADD
The information is genuinely new. No conflicting or related nodes exist. A fresh node is written to the graph with full importance weight.
UPDATE
The fact evolves an existing node. "Project is 50% complete" replaces "20% complete." The old value is versioned and archived — never truly deleted.
DELETE
New information directly contradicts a stale truth. The old node is archived, flagged as superseded, and the new truth takes its place in active recall.
NO-OP
The information is already known. VEKTOR ignores the write entirely. Zero graph bloat. Zero duplicate nodes. The importance score of the existing node gets a minor boost.
Why This Matters at Scale
The compound effect of uncurated memory

A typical developer session generates 50–200 memory writes. Without curation, a 3-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, your 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's 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
The Alternative: What Happens Without AUDN
Context schizophrenia is a feature, not a bug — of naive systems

Without a curation gate, both "London" and "Paris" exist in the graph with similar importance scores. A similarity search for "where does the user live?" returns both. Your 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's not a model problem. It's a memory architecture problem. The model is 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.

The AUDN Guarantee
  • 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
  • Duplicate facts boost existing nodes rather than creating noise
  • Graph stays high-signal indefinitely — no degradation over time