/api/v1/knowledge.
Three-Tier Hierarchy
Instead of slicing every document into fixed-length chunks like classic RAG, the Wiki organizes content into three levels, from broadest to most granular. Each tier maps to its own endpoint, so an agent can navigate top-down and pull detail only when it needs it.Quick Start
Examples assume EverOS is running on the default port
8000.{"request_id": "...", "data": {...}}.
Storage Layout
Every document is a self-contained directory. Markdown is the single source of truth; SQLite and LanceDB are derived indexes the cascade daemon builds automatically. Even if the indexes are lost, they rebuild fully from the Markdown.Taxonomy
L0 categories are not produced by unsupervised clustering. They come from a predefined taxonomy in.taxonomy.md at the knowledge root, and on upload an LLM picks the best-matching category from that list, making classification predictable, auditable, and overridable. EverOS ships with 20 default categories (Technology, Science, Medical, Finance, Legal, …) plus an Others fallback.
- Editable: add, rename, or remove categories by editing
.taxonomy.md. Changes hot-reload (read on every upload and category request), so no restart or reindex is needed. - Auto or manual: omit
category_idon upload to let the LLM choose, or pass one to bypass classification. Othersfallback: anything that doesn’t match a defined category lands here.- Directory follows category: a
PATCHthat changescategory_idmoves the whole document directory (the_original/folder follows).
.taxonomy.md
Document Lifecycle
Search
Search runs a five-stage pipeline rather than a flat vector lookup:method field:
All three methods embed the query and apply cross-encoder reranking, with a small category-aware boost (
lambda, default 0.1). Results carry their L1 document context (title, summary) so no second query is needed; set include_content: true to inline full topic content (default false; drill down via GET /topics/{id} instead).
Search tuning lives in [knowledge.search] (overridable via EVEROS_KNOWLEDGE__SEARCH__*): recall_n (recall pool per channel, 200), rerank_n (candidates reranked, 50), lambda (category boost, 0.1), top_k_cap (100).
Supported Formats
Text files are accepted natively; binary formats require the multimodal extra (pip install 'everos[multimodal]', which depends on LibreOffice for document conversion).
See Multimodal Memory for parser configuration.
Cascade Sync
The cascade daemon watches the knowledge Markdown directory and keeps SQLite + LanceDB in sync: a file write is detected, dispatched by type (index.md → document metadata, N_topic.md → tokenize + embed + index), and a SHA-256 content digest skips re-embedding unchanged files. Typical latency from file write to search availability is 1–3 seconds.
Errors & Multi-Tenancy
Errors return a uniform envelope with a machine-readablecode and a human-readable message:
Every endpoint accepts
app_id and project_id (both default to "default"). Storage paths, SQLite rows, and LanceDB indexes are fully isolated per tenant pair.

