← Vayl

Positioning · GraphRAG & agent memory

GraphRAG answers what your corpus says. Vayl answers what’s true now.

They are different jobs, and most enterprise agents need both. Vayl is not a GraphRAG system and doesn’t try to be — it’s the layer a GraphRAG stack has no answer for: facts that change.

Two different questions

A document doesn’t stop being true. A customer’s plan does.

A corpus store has no reason to implement supersession — a PDF doesn’t become false when a later PDF disagrees; both are simply in the corpus. Agent memory is the opposite: when a customer downgrades, the old plan must stop being returned.

GraphRAGVayl
QuestionWhat does the corpus say?What is true right now?
InputDocuments — contracts, wikis, ticketsStatements — “we moved off Redux”, “Alice left”
CorpusLargely staticChurns — today replaces yesterday
Core operationRetrieve + summariseReconcile: supersede · retract · flag
Scale shape10⁴–10⁶ nodes, one shared corpushundreds of facts, per user/tenant
Failure that mattersMissing a relevant passageReturning a stale value as current

Stated plainly

What Vayl does not do.

So an evaluation doesn’t waste your time.

If those are your requirements, the honest recommendation is Microsoft GraphRAG, temporal-graph stores, or a a property-graph system. Vayl sits beside them, not against them.

The gap GraphRAG leaves

Point a corpus stack at changing facts and it goes stale.

Under sustained churn — 50 users × 4 facts × 4 revisions = 800 interleaved writes, then 200 current-value queries, with an identical model, embedder and answer synthesizer for every system:

SystemReturns a stale valueFacts stored / actually current
Vayl0.0% (0/200)199 / 199
Additive store32.5% (65/200)800 / 800

An additive store appended a new memory on every update instead of retiring the old one — 800 memories for 200 facts. For one user’s primary database it held five contradictory values, all timestamped the same day. The reader sees several equally-current answers and can’t choose. That ambiguity compounds with every revision; a reconciling store stays flat at one value per fact.

On removal without replacement — “we dropped Sentry”, “Alice left” — across 14 cases including two controls that must not delete:

SystemStale value returnedRemovals handledOver-deletion controls kept
Vayl0/1412/122/2
Additive store1/1411/122/2
Temporal graph3/1410/120/2

A temporal graph retracts well — 10 of 12. An earlier claim of ours that it couldn’t retract at all did not survive a proper benchmark, and we corrected it. Where it struggled was the opposite direction: it deleted a still-true fact on a hedged “considering dropping Redis”, and returned a superseded value on a replacement. Deleting too eagerly is a failure too — which is why the controls are in the suite.

How they compose

Two questions, same turn, neither layer needs to know about the other.

┌──────────────────────────────┐ "What do our → │ GraphRAG / vector store │ documents, policies, contracts say?" │ (corpus knowledge) │ contracts, wikis └──────────────────────────────┘ agent ┌──────────────────────────────┐ "What plan is → │ Vayl (reconciling memory) │ per-customer state this customer │ supersede · retract · flag │ that changes on now?" └──────────────────────────────┘
# corpus knowledge — your existing GraphRAG stack, unchanged policy = graphrag.query("What is our refund policy for annual plans?") # current state — Vayl vayl.remember("Customer moved from Pro to the Free plan", user_id="cust_5521") plan = vayl.recall("what plan is the customer on?", user_id="cust_5521") # -> "Free"

The refund policy comes from the corpus; the customer’s current plan comes from memory that reconciled the downgrade. Ask a GraphRAG index that second question after three plan changes and you get whichever chunk ranks highest.

Which do you need

Usually both — and that’s the point.

Only GraphRAG

Your facts live in documents and rarely change — policy Q&A, contract search, research over a fixed corpus.

Only Vayl

Your agent tracks state per user, account or project and there’s no document corpus — support bots, assistants, ops copilots, sales agents.

Both

An agent that answers from company knowledge and remembers each customer’s evolving situation. Using one tool for both is where state answers go stale.