Unbekannter Memory-Embedding-Provider: ollama — Regression in v2026.4.x
OpenClaw kann keine Memory-Embeddings initialisieren, wenn es mit dem ollama-Provider konfiguriert ist, und wirft den Fehler 'Unknown memory embedding provider: ollama' aufgrund einer Regression im Provider-Registry.
🔍 Symptome
Das OpenClaw-Speichersubsystem kann nicht initialisiert werden, wenn ollama als Embedding-Anbieter verwendet wird. Der Fehler manifestiert sich identisch sowohl im CLI- als auch im Gateway-Laufzeitkontext.
- CLI-Ausführungsfehler:
$ openclaw memory status
🦞 OpenClaw 2026.4.8 (9ece252) — iMessage green bubble energy, but for everyone.
[openclaw] Failed to start CLI: Error: Unknown memory embedding provider: ollama
at getAdapter (file:///home/openclaw/.npm-global/lib/node_modules/openclaw/dist/manager-BRmgtjii.js:317:22)
at createEmbeddingProvider (file:///home/openclaw/.npm-global/lib/node_modules/openclaw/dist/manager-BRmgtjii.js:369:25)
at MemoryIndexManager.loadProviderResult (file:///home/openclaw/.npm-global/lib/node_modules/openclaw/dist/manager-BRmgtjii.js:2706:16)
at file:///home/openclaw/.npm-global/lib/node_modules/openclaw/dist/manager-BRmgtjii.js:2811:52)
at MemoryIndexManager.ensureProviderInitialized (file:///home/openclaw/.npm-global/lib/node_modules/openclaw/dist/manager-BRmgtjii.js:2819:5)
at MemoryIndexManager.probeVectorAvailability (file:///home/openclaw/.npm-global/lib/node_modules/openclaw/dist/manager-BRmgtjii.js:3168:14)
at Object.run (file:///home/openclaw/.npm-global/lib/node_modules/openclaw/dist/cli.runtime-CN0Ckcb_.js:325:25)- Gateway-Prozessfehler:
23:28:54+00:00 error Memory index failed (main): Unknown memory embedding provider: ollama- Diagnoseindikatoren:
- Vorherige Installationen mit identischer Konfiguration funktionierten in Versionen vor 2026.4.5
- Sowohl CLI-Befehle
memory statusals auchmemory indexschlagen fehl - Gateway-Speicherindex-geplante Aufgaben schlagen still mit Fehlerprotokollierung fehl
- Andere nicht-speicherbezogene ollama-Operationen (Chat-Vervollständigungen) funktionieren weiterhin normal
🧠 Ursache
Der Stack-Trace zeigt einen Fehler bei der Anbieter-Registry-Suche in der Embedding-Initialisierungskette. Der Fehler stammt aus:
getAdapter (manager-BRmgtjii.js:317:22)
createEmbeddingProvider (manager-BRmgtjii.js:369:25)Technische Analyse
- Isolierung der Anbieter-Registry: In den betroffenen Versionen verwendet die Embedding-Anbieter-Registry eine separate Lookup-Tabelle von der LLM-Anbieter-Registry. Der String
"ollama"ist gültig für Chat-Vervollständigungen, wurde aber nicht in der Embedding-spezifischen Adapter-Map registriert. - Stille Anbieter-Mapping-Regression: Vor v2026.4.5 führte das Speichersubsystem eine implizite Anbieter-Normalisierung durch – es ordnete den Laufzeit-Anbieternamen dem korrekten Embedding-Adapter zu. Diese Normalisierung wurde in der Regression entfernt oder refaktoriert, wodurch die Verbindung unterbrochen wurde.
- Code-Pfad-Analyse:
MemoryIndexManager.probeVectorAvailability()
→ ensureProviderInitialized()
→ loadProviderResult() // Zeile 2706
→ createEmbeddingProvider() // Zeile 369 — SCHLÄGT HIER FEHL
→ getAdapter() // Zeile 317 — Unbekannter Anbieter-LookupDie Funktion getAdapter() führt einen direkten Map-Lookup gegen ADAPTER_REGISTRY durch. Da “ollama” nie zu dieser Registry hinzugefügt wurde (oder während der Refaktorierung entfernt wurde), gibt der Lookup undefined zurück und löst den Fehler aus.
Betroffene Konfigurationsmuster
Benutzer mit folgenden Konfigurationsmustern sind betroffen:
// openclaw.yaml oder openclaw.json
memory:
embedding:
provider: ollama
model: nomic-embed-text:latest
// ...
Das Speichersubsystem erwartet einen Anbieter, der in der Embedding-Adapter-Registry existiert, aber ollama wurde nur in der LLM-Adapter-Registry registriert, nicht in der Embedding-spezifischen.
🛠️ Schritt-für-Schritt-Lösung
Option A: OpenAI-Compat-Anbieter verwenden (Empfohlen)
Die Ollama-API ist OpenAI-kompatibel. Konfigurieren Sie Memory-Embeddings so, dass sie den openai-compat</>-Anbieter verwenden, der auf Ihren lokalen ollama-Endpunkt zeigt:
Vorher (kaputt):
memory:
embedding:
provider: ollama
model: nomic-embed-text:latestNachher (repariert):
memory:
embedding:
provider: openai-compat
model: nomic-embed-text:latest
apiKey: not-required
baseURL: http://localhost:11434/v1Option B: Ollama-Anbieter mit vollständigem Pfad verwenden
Wenn Ihre Installation das ollama-Plugin enthält, geben Sie den vollständigen Anbieterpfad an:
memory:
embedding:
provider: @openclaw/provider-ollama
model: nomic-embed-text:latestOption C: Umgebungsvariablen-Überschreibung
Überschreiben Sie den Anbieter zur Laufzeit, ohne Konfigurationsdateien zu ändern:
$ OPENCLAW_MEMORY_EMBEDDING_PROVIDER=openai-compat \
OPENCLAW_MEMORY_EMBEDDING_BASE_URL=http://localhost:11434/v1 \
openclaw memory statusKonfigurationsverifizierung
Stellen Sie sicher, dass Ihre vollständige Speicherkonfiguration dieser Struktur entspricht:
memory:
enabled: true
embedding:
provider: openai-compat
model: nomic-embed-text:latest
apiKey: not-required
baseURL: http://localhost:11434/v1
dimensions: 768 # Erforderlich für nomic-embed-text
index:
enabled: true
chunkSize: 512
overlap: 64🧪 Verifizierung
Schritt 1: Anbieterkonnektivität überprüfen
$ curl -s http://localhost:11434/v1/embeddings \
-H "Content-Type: application/json" \
-d '{"model": "nomic-embed-text:latest", "input": "test"}' \
| jq '.data[0].embedding[:5]'Erwartete Ausgabe:
[
-0.02187623,
0.04312847,
-0.05898431,
0.02345612,
-0.03456789
]Schritt 2: CLI-Speicherstatus testen
$ openclaw memory status
🦞 OpenClaw 2026.4.8 (9ece252) — iMessage green bubble energy, but for everyone.
✅ Memory System Ready
Provider: openai-compat
Model: nomic-embed-text:latest
Dimensions: 768
Status: ConnectedErwartet: Exit-Code 0 ohne Fehler.
Schritt 3: Vektorverfügbarkeit verifizieren
$ openclaw memory index --dry-run
✅ Embedding provider verified
Vector dimensions: 768
Average latency: 45msSchritt 4: Gateway-Betrieb bestätigen
Starten Sie den Gateway neu und überprüfen Sie die Protokolle auf erfolgreiche Speicherinitialisierung:
$ systemctl restart openclaw-gateway
$ journalctl -u openclaw-gateway -n 20 --no-pager | grep -i memoryDie erwartete Ausgabe sollte keine Fehler enthalten und die Anbieterinitialisierung bestätigen.
⚠️ Häufige Fehler
- Groß-/Kleinschreibung: Der Anbietername ist Groß-/Kleinschreibung-sensitiv. Verwenden Sie
openai-compat(Kleinbuchstaben, mit Bindestrich), nichtopenaiCompatoderOpenAI-Compat. - Port-Konflikte: Stellen Sie sicher, dass Port 11434 nicht von einem anderen Dienst verwendet wird. Überprüfen Sie mit
ss -tlnp | grep 11434. - API-Schlüssel-Mismatch: Ollama erfordert keine API-Schlüssel. Die Verwendung von
sk-...-Platzhaltern kann zu Authentifizierungsfehlern führen. Verwenden SieapiKey: not-requiredoderapiKey: "". - Modellnamens-Mismatch: Stellen Sie sicher, dass der Modellname genau dem entspricht, was ollama meldet. Führen Sie
curl http://localhost:11434/api/tagsaus, um verfügbare Modelle aufzulisten und den genauen String zu verifizieren. - Docker-Netzwerk: Wenn Sie OpenClaw in Docker ausführen und ollama auf dem Host, verwenden Sie
host.docker.internal(macOS) oder172.17.0.1(Linux) anstelle vonlocalhost. - Dimensions-Mismatch:
nomic-embed-textgibt 768-dimensionale Vektoren aus. Wenn Ihre Vektordatenbank eine andere Dimensionsanzahl erwartet, geben Siedimensions: 768explizit an. - Plugin-Laden: Wenn Sie Option B verwenden, stellen Sie sicher, dass das Plugin installiert ist:
npm list @openclaw/provider-ollama. Installieren Sie es übernpm install -g @openclaw/provider-ollama, falls es fehlt. - Speicherort der Konfigurationsdatei: Stellen Sie sicher, dass sich die Konfiguration am richtigen Speicherort befindet:
~/.openclaw/config.yamloder/etc/openclaw/config.yaml. Führen Sieopenclaw config showaus, um die geladene Konfiguration zu verifizieren.
🔗 Zugehörige Fehler
E_PROVIDER_NOT_FOUND— Generischer Anbieter-Auflösungsfehler, oft zeigt ein fehlendes Plugin oder einen Tippfehler im Anbieternamen an.E_EMBEDDING_INIT_FAILED— Embedding-Anbieter wurde initialisiert, aber bei der ersten Embedding-Generierung fehlgeschlagen (Authentifizierung, Netzwerk, Modell nicht gefunden).E_VECTOR_DIMENSION_MISMATCH— Die vom Anbieter zurückgegebenen Vektordimensionen stimmen nicht mit den Erwartungen des Datenbankschemas überein.- Issue #62282 — Vorheriger Bericht über denselben Fehler, angeblich in 2026.4.8 behoben. Benutzer berichten, dass die Regression sowohl in 2026.4.5 als auch in 2026.4.8 weiterhin besteht.
Unknown memory embedding provider: azure-openai— Dasselbe Muster betrifft Azure OpenAI-Embeddings; die Problemumgehung (Verwendung von openai-compat mit Azure-Endpunkt) gilt.Unknown memory embedding provider: bedrock— AWS Bedrock-Embeddings sind von demselben Registry-Isolationsproblem betroffen.