Memory & Context Retrieval

WEAVE

Every session. Nothing overwritten. Just ask.

A graph-native memory layer for agents. It keeps the conversation, consolidates the facts, and tells you when it doesn't know.

Live graph NO DATA
Nodes
Edges
Sessions
Current facts
Superseded
Open conflicts

Load the demo memory to populate all three layers.

HydraDB· OpenCypher· Immutable episodic· Deterministic resolution· Pre-LLM abstention
The three layers

One graph. Three jobs.

Each layer owns a colour, and that mapping holds everywhere — in the cards, the evidence list, and the graph.

Episodic

What happened

Store the turn. Keep it forever.

SessionTurnUtterance
Semantic

What is true

Merge the facts. Supersede, never overwrite.

EntityFactConflict
Procedural

How to find it

Learn the path. Route the next question.

QueryTypeRetrievalPathOutcome
Abstention

When it doesn't know

Score the coverage. Refuse before the model runs.

CoverageTopical overlap0 tokens
The thesis

Three layers, one answer.

A question enters, the router picks a traversal, and the layers converge. If they don't cover it, nothing is generated at all.

EPISODIC SEMANTIC PROCEDURAL ANSWER
How it works

Architecture

Why keep superseded facts at all?

Because "what do I prefer now" and "what did I prefer in March" are different questions, and a flat key-value store can only answer the first. Weave marks the old fact is_current = false, stamps valid_until, and links the winner to it with a SUPERSEDES edge. Both stay answerable, and either answer traces back to the sentence that caused it.

What decides a conflict?

Ingestion never decides. It records that two facts share a subject and predicate but disagree, and opens a Conflict. Consolidation resolves it under a stated policy — recency, frequency, confidence or trust — and writes that policy onto the node. Genuinely multi-valued predicates, like the tools you use, never conflict at all.

How does abstention avoid guessing?

Entity coverage and result counts are not enough on their own: a user always has some stored facts, so those signals stay high for a question the graph has never heard of. The decisive signal is topical overlap between the question and the retrieved subgraph. On a miss it returns "I don't know" with zero context tokens spent.

What does a graph give you that a vector store doesn't?

Edges you can walk deliberately. "What did I use before Go?" is not a similarity problem — it is one hop along a SUPERSEDES edge from the fact the question names.

What runs without an API key?

All of it. Extraction falls back to a deterministic rule-based pass and answers are composed from the retrieved facts, cited. Adding a key switches both to an LLM — and the badge in the nav always says which mode produced what you are looking at.

Agents already have the storage. Weave gives them a past.

WEAVE

Open workspace