The short version
Use a vector store when you need the right passage. Use Exo when you need the right person. If you can state your requirement as “find the documents most similar to this query”, a vector database answers it with less machinery than Exo. If your requirement contains the words they, their, changed, decided, or usually, you are asking about a subject rather than a corpus, and that is where Exo starts to pay.A plain vector store is enough when
- Your corpus is shared, not personal. Product documentation, a help centre, a legal library.
- Every document is equally authoritative and nothing supersedes anything else.
- You never need to know that the answer changed, only what the answer is now.
- Recency is a filter, not a meaning. A
created_atsort covers you. - One retrieval quality bar fits every user, because the users are interchangeable.
A thin memory layer is enough when
Memory products that store facts about a user and replay them into a prompt solve a real problem. They are sufficient when:- The facts are flat and independent: a name, a plan tier, a stated preference.
- Nothing contradicts anything. The latest write is the true one.
- You want the model to remember, not to reason about how the user reasons.
- You are happy for the memory to be a list rather than a structure you can query.
Exo earns its place when
Beliefs change and the change matters
Exo never overwrites. It supersedes, transfers authority to the new belief, and keeps the chain queryable, so “what did they think before” is a request rather than an archaeology project.
A user disagrees with themselves
Contradictions come back with the retrieval instead of one side being silently picked. An agent can refuse to act on a belief that is currently in tension.
You need the reasoning, not only the result
The
cognition block reports confidence, the reasoning tier, whether the model escalated to slow deliberate reasoning, and which nodes it settled on.Every end user needs their own layer
Provision a subject per end user of your product. Each one gets an isolated partition, and one header selects it.
You are conditioning someone else's model
Exo returns a prompt artifact, not raw facts, so your own LLM reasons and sounds like the subject. It works with Claude, GPT or a local model.
Degraded answers must announce themselves
Every retrieval reports
path and degradationReason. There is no silent quality drop when the model is missing or stale.How the surfaces compare
Exo ships both primitives, so the comparison below is also a choice you make per call.
If all you ever call is
/v1/search, you are using Exo as a vector store, and you should ask whether you need the rest of it.
POST /v1/retrieve accepts a scope field for request-body compatibility, but retrieval is always scoped to the effective subject. Sending scope: "org" does not widen it. When you genuinely want an org-wide read, use POST /v1/search with scope: "org".What Exo does not do
Stated plainly, because a comparison page that lists only strengths is an advertisement.- It is not a document store. Ingest is asynchronous by design. You get a job id, then poll. If your product needs write-then-read-immediately, put a cache in front.
- It does not decide who is right. Contradictions are surfaced, not resolved. Every one comes back with
status: "open", because v1 stores no resolution lifecycle. You close one by superseding the side that lost. - A new org has no model. Until the org’s ExoBrain is trained, every retrieval runs on the hybrid path with
degraded: trueanddegradationReason: "no_brain". Cognition isnullthere. - Connectors are
githubonly in v1. Everything else comes in through ingest or import. - Export is JSON only. The
formatfield is pinned to a single value in the contract. - The event stream does not replay.
Last-Event-IDis accepted for compatibility with resuming clients but is not replayed in v1, and an org may hold five concurrent streams before the sixth is refused withtoo_many_streams.
Running Exo alongside what you already have
The common shape is not a migration. Keep your vector store for the shared corpus and add Exo for the person: query your index for the documents, query Exo for who is asking and what they already concluded, then hand both to the model.POST /v1/condition/session exists exactly for that seam, because it returns a system prompt rather than more text for you to rank.
Next
How Exo works
Content in, knowledge graph out, conditioned responses. The mental model in one page.
Quickstart
From a key to a retrieve response in five steps.