---
title: Embedding Provider
summary: Turn on true semantic search for memory and skills by connecting an embedding provider, or skip it and rely on free text-only matching.
date: 2026-09-17
---

# Embedding Provider

Turn on true semantic search for memory and skills by connecting an embedding provider, or skip it and rely on free text-only matching.

## Vector search vs. text-only

Configure this from **Settings → Embedding**. By default, memory and skill lookups use text-only (keyword) matching, at no extra cost. Connecting an embedding provider turns on vector search instead, so a lookup matches by meaning rather than exact words. A toggle at the top of the page switches between **Vector Search** and **Text-Only Search**.

## Supported providers

Seven providers, each with its own embedding model:

- **OpenAI**
- **Voyage AI**
- **Cohere**
- **Mistral**
- **Google Gemini**
- **Hugging Face**
- **Ollama (Local)**: the only option that needs no API key. Point it at a local Ollama install and use **Discover** to pull in whatever models you already have there.

Most providers show a model dropdown with each option's dimensions and per-token cost; Ollama and Hugging Face take a free-text model name instead.

## Test before you save

Use **Test Connection** before saving a new or changed provider. It reports back the resulting vector's dimensions and latency, so you know the connection actually works before memory and skill search come to depend on it.

## Changing providers later

Skill embeddings are rebuilt automatically in the background if you switch providers or models; existing skills keep working off their old vectors until the rebuild finishes, so search doesn't go dark in the meantime. Memory doesn't rebuild the same way: switching providers changes what new memories are compared against without retroactively rebuilding older ones. Treat a provider change as a decision to make early, not something to switch casually once an agent has built up meaningful memory.

## If it's unset or fails

No embedding provider configured, or a provider that's unreachable, doesn't break memory or skill search: HeartBeatAgents falls back to text-only matching for that lookup instead of erroring out. See [An Agent Isn't Recalling Memory Correctly](/en/docs/troubleshooting/memory-recall-degraded) if you're seeing that fallback happen unexpectedly.

## Related

- [Memory](/en/docs/features/memory): what semantic search actually improves
- [An Agent Isn't Recalling Memory Correctly](/en/docs/troubleshooting/memory-recall-degraded): diagnosing a silent fallback to text-only search
