How to configure Vector Embeddings & Intelligence Drivers
Enable vector embeddings, semantic search, and entity graph consolidation in MemoFS.
MemoFS is built with a deterministic, zero-key fallback (BM25 lexical search + rule-based entity parsing). When you're ready for semantic retrieval and automated knowledge graph extraction, you can plug in vector embedding and LLM intelligence drivers.
Available Intelligence Drivers
| Driver | Package | Execution | Best For |
|---|---|---|---|
| BM25 Default | Built-in | 100% Local / Zero Keys | Offline development, instant startup |
| Transformers.js | @memofs/adapter-transformers | 100% Local / ONNX | Local semantic search with zero API costs |
| Voyage AI | @memofs/adapter-voyage | Cloud API | State-of-the-art code & technical recall |
| OpenAI | @memofs/adapter-openai | Cloud API | text-embedding-3-small / text-embedding-3-large |
| Cloudflare Workers AI | @memofs/adapter-workers-ai | Edge / Serverless | Serverless edge deployment with Cloudflare Workers |
Option 1: Local Semantic Search with Transformers.js
Run vector embeddings completely on-device without sending data across the network:
-
Install the adapter:
npm install @memofs/adapter-transformers -
Configure in
.memofs/config.json:{ "recall": { "localEmbeddings": true, "embeddingModel": "Xenova/bge-small-en-v1.5" } }
Option 2: Voyage AI Code Embeddings
Voyage AI offers domain-specific models tailored for code and technical repositories:
-
Install the adapter:
npm install @memofs/adapter-voyage -
In your TypeScript setup:
import { MemoFS } from "@memofs/core"; import { createNodeFsMemoryStore } from "@memofs/core/node-fs"; import { createVoyageEmbedder } from "@memofs/adapter-voyage"; const memo = new MemoFS({ store: createNodeFsMemoryStore({ rootDir: "." }), embedder: createVoyageEmbedder({ apiKey: process.env.VOYAGE_API_KEY!, model: "voyage-code-3", }), });
Option 3: OpenAI Embeddings
Use OpenAI's text-embedding-3-small or text-embedding-3-large:
-
Install the adapter:
npm install @memofs/adapter-openai -
Initialize in code:
import { MemoFS } from "@memofs/core"; import { createNodeFsMemoryStore } from "@memofs/core/node-fs"; import { createOpenAIEmbedder } from "@memofs/adapter-openai"; const memo = new MemoFS({ store: createNodeFsMemoryStore({ rootDir: "." }), embedder: createOpenAIEmbedder({ apiKey: process.env.OPENAI_API_KEY!, model: "text-embedding-3-small", }), });
Reindexing Memory
Whenever you switch embedding models, regenerate the vector indexes:
npx @memofs/cli index --rebuild