How Providers Are Selected
Both providers are set at container startup time via environment variables. Changing a provider requires restarting the container because the embedding model also determines the vector dimension, and all stored vectors must be consistent within a single deployment. If you need to change the embedding provider for an existing database, you will need to re-embed your stored memories.The embedding provider and its dimension setting (
EMBEDDING_DIMENSIONS) must remain constant for a given database. Mixing providers across restarts will cause search to return incorrect results.Embedding Providers
SetEMBEDDING_PROVIDER to one of the values in the table below.
| Name | EMBEDDING_PROVIDER value | Required env var | Notes |
|---|---|---|---|
| Transformers (local WASM) | transformers | None | Runs fully offline, no API key. Higher first-request latency while the model initialises. |
| OpenAI | openai | OPENAI_API_KEY | Default. Uses text-embedding-3-small at 1536 dims. Best hosted retrieval quality. |
| OpenAI-compatible | openai-compatible | OPENAI_COMPATIBLE_BASE_URL, OPENAI_COMPATIBLE_API_KEY | Any server implementing the OpenAI embeddings API — LM Studio, vLLM, LocalAI, etc. |
| Ollama | ollama | OLLAMA_BASE_URL | Connects to a running local Ollama server. Pull the model in Ollama before starting Core. |
| Voyage AI | voyage | VOYAGE_API_KEY | High-quality retrieval-optimised embeddings. Separate document and query models. |
Example configurations
- OpenAI (default)
- Local WASM (no API key)
- Ollama
- Voyage AI
- OpenAI-compatible
LLM Providers
The LLM provider is invoked during full ingest to extract structured facts from conversation messages and to make AUDN-SC mutation decisions (Add, Update, Delete, No-op, Supersede, Clarify). It is not used during quick ingest or search — only during the extraction step. SetLLM_PROVIDER to one of the values in the table below.
| Name | LLM_PROVIDER value | Required env var |
|---|---|---|
| OpenAI | openai | OPENAI_API_KEY |
| Anthropic | anthropic | ANTHROPIC_API_KEY |
| Ollama (local) | ollama | OLLAMA_BASE_URL |
| Groq | groq | GROQ_API_KEY |
| Google Gemini | google-genai | GOOGLE_GENAI_API_KEY |
| OpenAI-compatible | openai-compatible | OPENAI_COMPATIBLE_BASE_URL |
| Claude Code (personal dev) | claude-code | Logged-in claude CLI session |
| Codex (personal dev) | codex | Logged-in codex CLI session |
Example configurations
- OpenAI (default)
- Anthropic
- Ollama
- Groq
- Google Gemini
Fully Local, Private Operation
For deployments where no data should leave your infrastructure — air-gapped servers, on-premises enterprise environments, or privacy-sensitive use cases — you can run AtomicMemory Core with zero external API calls by combining thetransformers embedding provider with a local Ollama LLM.
Personal Development Shortcuts
For individual developers who already have the Anthropic Claude CLI or OpenAI Codex CLI installed and authenticated, two special LLM provider values let you reuse your existing session without a separate API key:claude-code
Uses the logged-in
claude CLI session via the Claude Agent SDK. Run claude login once, then set LLM_PROVIDER=claude-code.codex
Uses the logged-in
codex CLI session. Run codex login once, then set LLM_PROVIDER=codex.