Context Graph

Your working life as a queryable graph — documents, events, money, and the links between them.

The context graph is why a Y0 run never starts from zero. Everything you connect — documents, calendar, mail, finance feeds, transcripts, prior run results — is ingested into a single typed graph: items as nodes, relationships as edges. The invoice links to the client, the client to the meeting, the meeting to the brief that came out of it. Ingestion does the expensive work once: items are parsed, embedded with y0-embed, entity-resolved (the 'Meridian' in your inbox and the 'Meridian Pvt Ltd' in your ledger become one node), and timestamped so that 'the current contract' is a resolvable query rather than a guess. Runs then read the graph through scoped fetches — a run holding documents:read sees documents and nothing else, and every fetch lands in the trace with the scope that authorized it. The graph is also writable: agent runs file their outputs back as new nodes, which is how the system compounds — this week's brief becomes next week's context. Deletion is real and propagates: removing a source removes its nodes, its edges, and its embeddings within the published SLA, with the audit log retaining only the fact that an access once happened.

[ 01 ]Key features

Typed nodes and edges

Documents, events, transactions, people, and runs are first-class types with real relationships — not chunks in a vector soup.

Entity resolution

The same client across mail, calendar, and ledger resolves to one node, so a run asking about 'Meridian' sees the whole picture.

Scoped fetches

Every read is authorized by a key scope and recorded in the trace — the graph is queryable, never ambient.

Deletion that propagates

Removing a source removes nodes, edges, and embeddings on a published SLA. The audit log keeps the access record, not the data.

[ 02 ][ graph query ]

{
  "query": "match",
  "type": "document",
  "related_to": { "entity": "client:meridian" },
  "where": { "topic": "renewal terms" },
  "as_of": "2026-06-11",
  "limit": 5
}
→ 3 nodes, 7 edges — scope documents:read