Skip to main content
An Exo knowledge graph over a grain sphere. Nodes read prefers first principles, ships small teams and turned down acquisition, with a red edge to an inferred node reading risk posture shifting. A vector store answers one question well: which passages look like this query. That is enough when the answer is a fact sitting in a document. It runs out when the answer depends on a person: what they decided, what they used to think, which of their own positions still disagree with each other, and how they would say it. Exo is built for that second case. It stores a person’s content as a graph of claims and relations, then runs a background cycle over that graph to discover structure nobody typed in: the topics their knowledge organises into, the eras their history falls into, the axes their thinking varies along, and the points where they contradict themselves. A retrieval reads that structure, so the response carries the reasoning and the conflicts alongside the passages.

What Exo stores

Five kinds of thing, in one substrate. The four discovered views are one operation, not four routes. GET /v1/recall/{recall_type} serves identity, graph, insights and temporal from the same endpoint, and every response carries a type field naming which of the four shapes you got. Contradictions and proposals live under the insights tag in the reference rather than a tag of their own. That type field is the discriminator to branch on, and each view fills in independently as the background cycle warms it:
200 application/json
Those nulls and empty arrays are what a subject looks like before the cognition cycle has run. They are the honest answer for a layer that does not exist yet, not an error, and every concept page below says what its own layer needs before it fills in.

How content becomes cognition

Ingestion is the fast path: content arrives, gets chunked, embedded and linked, and is retrievable as soon as its job succeeds. The cognition cycle is the slow path: it runs in the background and fills in the discovered layers. That split is why a freshly imported subject can retrieve immediately but gets empty collections from the recall views for a while. It is not an error, and Memory lifecycle says what to watch instead of guessing.

The seven objects

These are the objects Exo returns that a passage index has no way to express. Each one gets a page, a real payload, and a plain statement of what is not true yet.

Cognition

Why the answer, not only what: the nodes the model settled on, how strongly it settled, and whether it thought fast or slow.

Contradiction

Two positions the same person held, kept side by side with a salience score instead of quietly reconciled.

Belief and supersession

What someone used to think, what replaced it, when, and where the authority went.

ManifoldState

The axes this person’s thinking actually varies along, discovered from their content rather than chosen from a personality list.

Phase

The eras of their history, clustered from the dates inside the content.

ConditioningPack

A ready-to-inject prompt that makes your own model reason and sound like them.

AgentFailurePattern

The recurring ways a team’s coding agents go wrong, clustered from evidence and reported without naming anyone.

The model underneath

The knowledge graph

Nodes, edges, domains and authority: the substrate everything else reads.

How a memory is made

Ingest, edit, supersede, forget, undelete, purge. The full life of one node.

Brain path and hybrid path

Which engine served your call, and what degraded actually means.

Insights and proposals

Why the background cycle proposes connections instead of asserting them.

Subjects and isolation

Orgs, users and subjects: one memory per end user of your product.

ExoBrain

The per-org model, when it serves, when it goes stale, and what training costs you.

Next

Read The knowledge graph first. Every other page on this tab reads from it.