Configuration
Required and optional constructor options for Wolbarg — organization, storage, embedding, and providers.
What is it?
The constructor API for new Wolbarg(options). Three options are required; everything else is optional and enables a specific capability.
Why does it exist?
Wolbarg uses constructor dependency injection so you compose only the backends you need — no global config files, no hidden services.
Required
| Option | Type | Description |
|---|---|---|
organization | string | Namespace isolating memories in a shared database |
storage | StorageProvider | StorageConfig | sqlite(...) or postgres(...) |
embedding | EmbeddingProvider | EmbeddingConfig | Any OpenAI-compatible embedding factory or custom provider |
Optional
| Option | Enables |
|---|---|
llm | compress() (typed at compile time) |
keywordSearch | Hybrid recall |
reranker | recall({ rerank: true }) |
ocr / vision | Image ingest enrichment |
chunking | Default ingest chunking strategy |
compression | Custom compression provider (overrides llm default) |
retrieval | Default hybrid / MMR / over-fetch settings |
Full example
import {
Wolbarg, sqlite, openaiEmbedding, openaiLlm,
bm25, jinaReranker, tesseract, geminiVision,
} from "wolbarg";
const ctx = new Wolbarg({
organization: "my-org",
storage: sqlite("./memory.db"),
embedding: openaiEmbedding({
apiKey: process.env.OPENAI_API_KEY!,
model: "text-embedding-3-small",
}),
llm: openaiLlm({
apiKey: process.env.OPENAI_API_KEY!,
model: "gpt-4.1-mini",
}),
keywordSearch: bm25(),
reranker: jinaReranker({ apiKey: process.env.JINA_API_KEY! }),
ocr: tesseract(),
vision: geminiVision({ apiKey: process.env.GEMINI_API_KEY! }),
retrieval: {
overFetchFactor: 4,
hybrid: { semanticWeight: 0.7, keywordWeight: 0.3 },
},
});Lazy initialization
Storage opens and embedding dimensions are probed on the first API call, or when you call await ctx.ready(). Optional providers are not probed until used.