Bring Your Own Vector

BYO vector search

Semantic retrieval in Mycel is bring-your-own: the built-in embedder, vector index, and semantic terrain were removed. The vault is plain Markdown — use your own agent or vector tooling.

What changed

  • Removed: the built-in embedding engine (fastembed / ONNX Runtime), the embed-worker sidecar, model downloads and the model-management UI, vector indexing jobs, the semantic terrain view, and related settings.
  • Kept: Tantivy BM25 keyword search — the floor for in-app search and MCP search_notes — and the structural galaxy.
  • Automatic cleanup on upgrade: old vector artifacts (vectors_v*.bin and friends) and downloaded model weights are deleted for you, reclaiming disk space.

Why

Mycel's value is governance, memory, and agent interfaces — not yet another bundled embedding stack. The vault is plain Markdown, so any vector tooling can read it directly; there is no need for the app to pick a model for you.

How to bring your own

  1. Use your agent: Claude Code, Codex, and friends read and write the vault through chunfeng-mcp. When you need semantic recall, let the agent run its own retrieval or vector tooling over the Markdown files.
  2. Run your own vector pipeline: point your embedding stack (a local embedder, a vector store such as Qdrant, LanceDB, sqlite-vec, etc.) at the vault directory. Markdown plus frontmatter is all you need to index — no export step.
  3. MCP keyword search: search_notes returns BM25 keyword hits (with a recall: "fts" | "scan" source marker) — a solid literal anchor or fallback inside your own pipeline.

Boundaries

  • Mycel does not manage models, vector stores, or index lifecycles for you — where those files live and when they rebuild is your tooling's call. Keep them out of .mycel/ retention layers (anything outside the regenerable derived layer is not yours to claim).
  • Writes still follow the proposal contract: agents change note content only via propose_edit → diff approval → write.