Oreag turns your own documents into a dedicated, queryable RAG API — and a persistent memory layer for coding agents. Upload files, tune chunking and embeddings, and get a private endpoint and API key your apps can call. Bring your own provider keys; a memory graph and an MCP server expose the same knowledge to Claude Code, Codex and Claude.
Most teams want answers from their own documents — and a place for their agents to remember — not another vector database to operate. Oreag turns a folder of files into a production retrieval API and a memory layer: conversion, chunking, embeddings, retrieval and grounded generation are handled, so any app gets cited answers from a single call — and any coding agent can save, recall and search the same knowledge over MCP.
Spin up a project from the dashboard, upload documents, and Oreag indexes them in the background. Query the endpoint for answers grounded in your sources — filename, page and similarity for every citation — or connect an agent over MCP to save and recall what it learns.
From an uploaded document to a grounded, cited answer — the stages that turn raw files into a retrieval API.
Drop files into a project — 29 formats, from PDF, DOCX and PPTX to spreadsheets, images and audio. Each file is stored in a private Supabase bucket, written as a pending row, and queued as a background task.
MarkItDown turns every file into clean Markdown — PyMuPDF counts the pages — preserving headings and structure so retrieval and the memory graph stay context-aware.
A recursive splitter breaks the Markdown into overlapping chunks — 1000 characters with 200 overlap by default, tunable per project or overridden per file.
Each chunk is vectorised through your chosen provider — from OpenAI, Gemini and Azure to local Ollama and sentence-transformers — in provider-tuned batches. Matryoshka-capable models expose several vector sizes: shrinking to a smaller one truncates the stored vectors in place, instantly, with no re-embedding. Re-runs are idempotent: prior vectors are deleted first, so re-indexing never duplicates.
Vectors land in Postgres via pgvector; each file flips to indexed and the project status recomputes — empty → indexing → ready, or error if a file fails.
On a cache miss, retrieval runs hybrid: a semantic pgvector search — ORDER BY embedding <=> qvec — for meaning, and a Postgres full-text search for exact terms like error codes, names and IDs, fused by Reciprocal Rank Fusion. The top-k results (capped at 20) each carry filename, page and similarity. Broad questions trigger an agentic loop — focused sub-queries, a second pass when the first is thin — and any saved agent memories that clear a similarity bar are blended in as extra sources.
An LLM composes an answer strictly from that context, cited [1] [2] back to filename and page — and every query is logged with its latency. A two-layer cache sits in front: an exact-match layer (L1, Redis) serves identical repeats instantly, and a semantic layer (L2, pgvector) serves questions that merely mean the same — a cosine match above 0.75 — so a rephrase never pays the model twice. One call in, a grounded answer out.
Everything between a pile of documents and a production answer endpoint — self-serve, from a web dashboard.
Upload 29 file types and get a dedicated REST endpoint plus an oreag_sk_ API key to query them from any app or agent.
Thirteen bring-your-own-key cloud providers — OpenAI, Gemini, Azure, Anthropic, Mistral, Cohere, Groq, xAI and more — plus three keyless local ones: Ollama, LM Studio and sentence-transformers. Keys are Fernet-encrypted at rest, per-account or per-project.
Every response returns the answer plus its source chunks — filename, page and similarity — the model used, and the query latency.
A /memory-graph endpoint returns the project as project → file → section → chunk and memory nodes, joined by auto-detected cross-document related links to traverse.
Pick the embedding provider, model and LLM; set chunk size, overlap and top-k globally or per file — with one-click re-index.
Files, Memory, Playground, API, Visualize and Settings tabs — upload documents, test queries live, copy code snippets, explore the knowledge graph and manage keys.
Broad questions are decomposed into several targeted sub-queries, retrieved over a couple of rounds, and answered with the right depth — or returned with clarifying questions when the evidence is too thin.
Pass a conversation_id and follow-ups like “summarise that” are rewritten into standalone questions against the running thread — multi-turn dialogue, server-side, with an optional Redis store.
The Visualize tab renders the whole project — files, chunks and memories as nodes joined by similarity edges — as an interactive WebGL graph. Rotate, zoom, hover for a tooltip, click a node to read its text and jump straight to the source file.
Repeats never re-run the model: an exact-match layer in Redis (L1) and a semantic layer in pgvector (L2) serve identical and reworded questions from cache — the serving layer and its similarity are surfaced right in the playground.
Connect Claude Code, Codex or Claude to one project with its API key. The Oreag MCP server (FastMCP) gives an agent persistent memory and document recall across sessions — running locally over stdio, or as a remote multi-tenant connector at /projects/<id>/mcp. These six are the documented core; three more — add_document, get_memory_graph and explore_brain — complete a set of nine.
Pull recent and pinned memories at the start of a session to orient the agent — pinned entries always surface first.
Persist a decision, fact or note — with tags and an optional pin — embedded on save so it can be recalled later.
Recall the most relevant saved memories for the current task by cosine similarity over the project's memory store.
Search the project's uploaded documents for relevant passages — retrieval only, no LLM call.
Ask a question and get a grounded, cited answer straight from the project's documents — the same pipeline as the public API.
Remove a memory entry by id when it's stale or wrong, keeping the agent's recall clean over time.
A multi-tenant, bring-your-own-key platform across five tiers — and the engineering decisions behind a retrieval API you don't have to babysit.
/explore walks those related edges outward from the best matches — a guided traversal rather than a flat top-k.