April 16, 2026 • Version: 2026.4.5 - 2026.4.8

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 status als auch memory index schlagen 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

  1. 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.
  2. 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.
  3. Code-Pfad-Analyse:
MemoryIndexManager.probeVectorAvailability()
  → ensureProviderInitialized()
    → loadProviderResult()         // Zeile 2706
      → createEmbeddingProvider()  // Zeile 369 — SCHLÄGT HIER FEHL
        → getAdapter()             // Zeile 317 — Unbekannter Anbieter-Lookup

Die 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:latest

Nachher (repariert):

memory:
  embedding:
    provider: openai-compat
    model: nomic-embed-text:latest
    apiKey: not-required
    baseURL: http://localhost:11434/v1

Option 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:latest

Option 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 status

Konfigurationsverifizierung

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: Connected

Erwartet: Exit-Code 0 ohne Fehler.

Schritt 3: Vektorverfügbarkeit verifizieren

$ openclaw memory index --dry-run

✅ Embedding provider verified
   Vector dimensions: 768
   Average latency: 45ms

Schritt 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 memory

Die 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), nicht openaiCompat oder OpenAI-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 Sie apiKey: not-required oder apiKey: "".
  • Modellnamens-Mismatch: Stellen Sie sicher, dass der Modellname genau dem entspricht, was ollama meldet. Führen Sie curl http://localhost:11434/api/tags aus, 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) oder 172.17.0.1 (Linux) anstelle von localhost.
  • Dimensions-Mismatch: nomic-embed-text gibt 768-dimensionale Vektoren aus. Wenn Ihre Vektordatenbank eine andere Dimensionsanzahl erwartet, geben Sie dimensions: 768 explizit an.
  • Plugin-Laden: Wenn Sie Option B verwenden, stellen Sie sicher, dass das Plugin installiert ist: npm list @openclaw/provider-ollama. Installieren Sie es über npm install -g @openclaw/provider-ollama, falls es fehlt.
  • Speicherort der Konfigurationsdatei: Stellen Sie sicher, dass sich die Konfiguration am richtigen Speicherort befindet: ~/.openclaw/config.yaml oder /etc/openclaw/config.yaml. Führen Sie openclaw config show aus, 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.

Belege & Quellen

Diese Troubleshooting-Anleitung wurde automatisch von der FixClaw Intelligence Pipeline aus Community-Diskussionen synthetisiert.