Set up semantic memory search
An embedding model turns memories and questions into vectors, so memory search can find a matching note even when it is worded differently.
Before you start
The embedding setup is empty by default, so Chetty falls back to keyword and recency matching. A usable setup needs a model name and a provider that can serve it:
- an API-key provider, or
- a connected account whose model list marks the model as producing embeddings, such as an OpenRouter account whose list includes an embedding model.
Claude and ChatGPT accounts do not offer this kind of search.
Configure the embedding model
- Open Settings → Models → Model roles.
- Set Embedding provider to the provider that serves the model.
- Set Embedding model to its exact model name.
- Fill Dimensions only when you need a specific vector width; leave it empty to use the model's own size.
The row shows Configured or Not configured, and Test sends one request to confirm the model answers.
The utility model in the same settings group is separate: it writes titles, sorts new memories into categories and runs Reorganize memories under Memory maintenance.
Run the setup wizard
During installation, or at any later time:
elowen setup --memory reuse --embedding-model text-embedding-3-small
Other memory choices are --memory openrouter to connect an OpenRouter account and --memory skip to leave memory search by keyword for now. --memory-key supplies the OpenRouter key, and --skip-test skips the agent smoke test.
Check that it worked
- Run
elowen doctorand read the memory readiness lines. - Open Memory and click Memory maintenance. Rebuild the memory index should no longer ask you to configure a provider first.
- Ask about something you stored earlier, worded differently than the memory itself. A meaning-based hit shows that the vectors are in use.
Rebuild the index after a model change
Vectors from one model cannot be compared with vectors from another, so a new embedding model needs a new index:
- Open Memory and click Memory maintenance.
- Click Rebuild the memory index. The job needs an embedding model.
- Leave the page if you like. The job runs in the background and reports progress and failure counts.
Until the rebuild finishes, search keeps matching by keyword. Every user runs their own rebuild, so a model change is not complete until each account that relies on memory has done it.