Memory that keeps time.
Every fact gets two clocks: when it was true, and when Brain found out. Ask what's true now, or replay exactly what the graph knew last March. Conflicts get scored, not silently overwritten. Forget means deleted, not hidden. REST or MCP — self-hosted or managed.
Replay what Brain knew, not what's true now.
Acme moved from the starter plan to growth on Mar 10. Brain only recorded the switch on Mar 12. Drag both clocks — history gets replayed, never rewritten.
Both clocks are current — the switch happened and Brain knows it. Growth is the live answer.
Seven stages — and only the first two are about vectors.
The unit of retrieval is a typed fact on the knowledge graph, never a text chunk. Vector + BM25 are just the doors in — they map free text onto candidate facts. Everything after is graph-native: ontology router, per-entity buckets, edge walks, PPR, rerank. Each stage is a feature flag with its own per-tenant metrics.
- S01Entry legs: vector + BM25The doors into the graph — seed candidate FACTS (not chunks) from free text, convex-combined at w=0.5
- S02HyPE alt-embeddingsA second door: hypothetical-prompt vectors; max(cos_main, cos_alt)
- S03Predicate + type routerThe ontology takes over — a joint LLM router boosts the right predicate class
- S04Edge expansionA literal graph walk: 1-hop neighbours of top entities join the candidates
- S05Tier-aware PPRHippoRAG-style personalized PageRank over the candidate subgraph
- S06Cross-encoder rerankCohere reranks a wide window
- S07Listwise LLM rerankPermutation self-consistency, Borda-aggregated
What a vector store can't tell you.
Embeddings find text that looks similar. A memory layer has to do more than that.
More than a retriever.
Everything between an ingest and an answer you can trust.
Conflict resolution
Two ingests for one fact go through a scored ladder — confidence × source-trust × recency × authority. Close calls land as COMPETING, never a silent overwrite.
Source-aware trust
A fact is claimed, not true. Every source earns a learned, domain-scoped agreement rate; declared authority and cross-document corroboration feed ranking. Inspect it all via GET /v1/sources.
Identity resolution
Cross-vertical merges collapse duplicates into one entity via identity_of edges; re-attribution follows mergedInto. The nightly Dreams pass proposes merges for near-duplicates on its own.
Multi-hop
A planner LLM splits a question into up to four anchored sub-queries. Supporting facts carry through for HotpotQA-style joint-F1 scoring.
Faithful answers
/v1/synthesize runs corrective-RAG with strict / lenient / off guardrails and a claim-level faithfulness scorer. Pass-rate gates at 1.0.
Domain Packs
Versioned ontology plugins: typed predicates, extraction tuning, seed documents, MCP tools. Ed25519-signed manifests, a global registry with verified publishers — and a marketplace with featured and paid packs.
Document pipeline
Source → Indexer → Candidates → Brain. Extraction proposes, one resolver disposes. Stored documents re-index when a new pack lands; external indexers join over a pull work API.
Pack MCP tools
Installed packs extend the MCP surface — declarative query tools over their own predicates, HMAC-signed proxies to publisher endpoints. Operator consent required; no third-party code in-process.
ABAC policies
Named policy sets per API key: allow / deny over REST + MCP actions, row-level read filters by PII class, trust thresholds, and provenance. Report-only mode makes the rollout safe.
PII fence
PII is gated at the database layer with PERMISSIONS and caller scopes. Every predicate declares its PII class up front.
GDPR forget
A forget is a synchronous hard delete — facts, edges, and embeddings gone. Only an HMAC tombstone stays, so you can prove it happened.
Per-tenant isolation
Each company gets its own database (co_<id>). One REMOVE DATABASE forgets a whole tenant. Nothing leaks across the wall.
Two ways to run it. Same graph.
Self-host
Clone the repo, bring up SurrealDB, point it at your keys. AGPL-3.0 — every line is yours to read, fork, and ship back.
- Docker Compose — SurrealDB + service in minutes
- Nothing leaves your network
- BGE-M3 embeds locally — no calls out to OpenAI
- Admin cockpit and the eval suite ship in the repo
brain.inite.ai
The same build, none of the babysitting. A hosted endpoint that redeploys on every push to main.
- No servers, no database to keep alive
- Per-tenant isolation, scoped API keys
- Health and Prometheus metrics built in
- Identical REST + MCP surface
How well it actually retrieves.
Brain ships with its own eval suite. These are the latest scores on the retrieval and memory-lifecycle benchmarks — measured, not asserted.
From the eval report, n=262 (multi-vertical suite + wikidata). Temporal queries hit recall@1 1.000 (n=21), current 0.959 (n=241). Every push re-runs it; the build fails below the gate.
Three ways to talk to brain.
Pick the one that matches your runtime.
# Ingest a fact
curl -X POST https://brain.inite.ai/v1/ingest/fact \
-H "Authorization: Bearer $BRAIN_KEY" \
-H "Content-Type: application/json" \
-d '{
"entityRef": { "vertical": "rent", "id": "cust_42" },
"predicate": "complained_about",
"object": "late maintenance",
"validFrom": "2026-05-05T10:00:00Z",
"source": { "vertical": "rent", "messageId": "msg_1" }
}'
# Search
curl -X POST https://brain.inite.ai/v1/search \
-H "Authorization: Bearer $BRAIN_KEY" \
-H "Content-Type: application/json" \
-d '{ "query": "maintenance issues", "limit": 5 }'One config block. The full tool surface. Any client.
A per-tenant MCP URL, scope-aware. Drop it into Claude Desktop, Cursor, Goose, or n8n — the agent gets 28 built-in tools, and installed Domain Packs can add more.
{
"mcpServers": {
"brain": {
"url": "https://brain.inite.ai/mcp/<companyId>",
"transport": "http",
"headers": { "Authorization": "Bearer <api-key>" }
}
}
}Same URL, same auth header, no glue code — whatever speaks MCP.
MCP setup guideSkills that teach the agent to use Brain.
Six Anthropic-format skills — search, recall, bitemporal queries, writes, conflict adjudication, and the setup walkthrough. One curl installs them into ~/.claude/skills.
$ curl -fsSL https://brain.inite.ai/install.sh | shBuilt in the open, licensed AGPL-3.0.
Read the code, run your own, send a PR. Everything that runs brain.inite.ai lives in the repo.
Star the repo
Watch releases, open issues, send patches. The roadmap is public.