April 16, 2026 • バージョン: 2026.4.5 - 2026.4.8

不明な memory embedding provider: ollama — v2026.4.x でのレグレッション

OpenClawは、ollama providerで構成されている場合、memory embeddingsの初期化に失敗し、'Unknown memory embedding provider: ollama'エラーをスローします。これはprovider registryのレグレッションによるものです。

🔍 症状

OpenClawのメモリサブシステムが、ollamaをエンベッディングプロバイダーとして使用時に初期化に失敗します。エラーはCLIとゲートウェイランタイムの両方で同一に現れます。

  • CLI実行の失敗:
$ 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)
  • ゲートウェイプロセスの失敗:
23:28:54+00:00 error Memory index failed (main): Unknown memory embedding provider: ollama
  • 診断指標:
  • 同一設定で、2026.4.5以前のバージョンでは正常に動作していた
  • CLIのmemory statusmemory indexコマンドの両方が失敗する
  • ゲートウェイのメモリインデックススケジュールタスクがエラー付きでサイレントに失敗する
  • 他の非メモリ関連のollama操作(チャット補完など)は通常通り機能し続ける

🧠 原因

スタックトレースから、メモリエンベッディングの初期化チェーンにおけるプロバイダーレジストリのルックアップ失敗が明らかになります。エラーは以下から発生しています:

getAdapter (manager-BRmgtjii.js:317:22)
createEmbeddingProvider (manager-BRmgtjii.js:369:25)

技術的分析

  1. プロバイダーレジストリの分離:影響を受けるバージョンでは、エンベッディングプロバイダーレジストリはLLMプロバイダーレジストリとは別のルックアップテーブルを使用しています。文字列"ollama"はチャット補完では有効ですが、エンベッディング専用のアダプタマップには登録されていませんでした。
  2. サイレントプロバイダーマッピングのリグレッション:v2026.4.5より前では、メモリサブシステムが暗黙的なプロバイダーの正規化を行っていました—ランタイムのプロバイダー名を正しいエンベッディングアダプタにマッピングしていました。この正規化はリグレッションで削除またはリファクタリングされ、接続が切断されました。
  3. コードパスの分析:
MemoryIndexManager.probeVectorAvailability()
  → ensureProviderInitialized()
    → loadProviderResult()         // Line 2706
      → createEmbeddingProvider()  // Line 369 — FAILS HERE
        → getAdapter()             // Line 317 — Unknown provider lookup

getAdapter()関数はADAPTER_REGISTRYに対して直接マップルックアップを実行します。“ollama”がこのレジストリに追加されたことがなかった(またはリファクタリング中に削除された)ため、ルックアップはundefinedを返し、エラーをトリガーします。

影響を受ける設定パターン

以下の設定パターンのユーザーが影響を受けます:

// openclaw.yaml or openclaw.json
memory:
  embedding:
    provider: ollama
    model: nomic-embed-text:latest
  // ...

メモリサブシステムはエンベッディングアダプタレジストリに存在するプロバイダーを期待しますが、ollamaはLLMアダプタレジストリ에만登録されており、エンベッディング専用のレジストリには登録されていませんでした。

🛠️ 解決手順

オプションA:OpenAI-Compatプロバイダーの使用(推奨)

OllamaのAPIはOpenAI互換です。メモリエンベッディングがローカルollamaエンドポイントを指すopenai-compatプロバイダーを使用するように設定します:

修正前(壊れている):

memory:
  embedding:
    provider: ollama
    model: nomic-embed-text:latest

修正後(修正済み):

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

オプションB:フルパスでOllamaプロバイダーを使用

ollamaプラグインがインストールされている場合、プロバイダーのフルパスを指定します:

memory:
  embedding:
    provider: @openclaw/provider-ollama
    model: nomic-embed-text:latest

オプションC:環境変数によるオーバーライド

設定ファイルを変更せずに、ランタイムでプロバイダーをオーバーライドします:

$ OPENCLAW_MEMORY_EMBEDDING_PROVIDER=openai-compat \
  OPENCLAW_MEMORY_EMBEDDING_BASE_URL=http://localhost:11434/v1 \
  openclaw memory status

設定の確認

メモリ設定がこの構造と一致していることを確認してください:

memory:
  enabled: true
  embedding:
    provider: openai-compat
    model: nomic-embed-text:latest
    apiKey: not-required
    baseURL: http://localhost:11434/v1
    dimensions: 768  # Required for nomic-embed-text
  index:
    enabled: true
    chunkSize: 512
    overlap: 64

🧪 検証

ステップ1:プロバイダー接続の確認

$ 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]'

期待される出力:

[
  -0.02187623,
  0.04312847,
  -0.05898431,
  0.02345612,
  -0.03456789
]

ステップ2:CLIメモリのステータス確認

$ 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

期待される結果:終了コード0でエラーなし。

ステップ3:ベクトル可用性の確認

$ openclaw memory index --dry-run

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

ステップ4:ゲートウェイ動作の確認

ゲートウェイを再起動し、メモリが正常に初期化されたことを確認するためにログを確認します:

$ systemctl restart openclaw-gateway
$ journalctl -u openclaw-gateway -n 20 --no-pager | grep -i memory

期待される出力にはエラーが含まれず、プロバイダーの初期化が確認されている必要があります。

⚠️ よくある落とし穴

  • 大文字と小文字の区別:プロバイダー名は大小文字を区別します。openaiCompatOpenAI-Compatではなく、openai-compat(小文字、ハイフン付き)を使用してください。
  • ポートの競合:ポート11434が他のサービスによって使用されていないことを確認してください。ss -tlnp | grep 11434で確認します。
  • APIキーの不一致:OllamaはAPIキーを必要としません。sk-...プレースホルダーを使用すると認証失敗が発生する可能性があります。apiKey: not-requiredまたはapiKey: ""を使用してください。
  • モデル名の不一致:モデル名がollamaが報告するものと正確に一致していることを確認してください。curl http://localhost:11434/api/tagsを実行して利用可能なモデルを一覧表示し、正確な文字列を確認してください。
  • Dockerネットワーキング:OpenClawをDockerで実行し、ollamaをホストで実行している場合、localhostの代わりにhost.docker.internal(macOS)または172.17.0.1(Linux)を使用してください。
  • 次元の不一致:nomic-embed-textは768次元のベクトルを出力します。ベクトルデータベースが別の次元数を期待している場合、dimensions: 768を明示的に指定してください。
  • プラグインの読み込み:オプションBを使用する場合は、プラグインがインストールされていることを確認してください:npm list @openclaw/provider-ollama。不足している場合はnpm install -g @openclaw/provider-ollamaでインストールしてください。
  • 設定ファイルの場所:設定が正しい場所にあることを確認してください:~/.openclaw/config.yamlまたは/etc/openclaw/config.yamlopenclaw config showを実行して読み込まれた設定を確認してください。

🔗 関連するエラー

  • E_PROVIDER_NOT_FOUND — 汎用プロバイダー解決失敗。缺乏れているプラグインまたはプロバイダー名のタイプミスが原因であることが多いです。
  • E_EMBEDDING_INIT_FAILED — エンベッディングプロバイダーは初期化されたが、最初のエンベッ딩生成中に失敗しました(認証、ネットワーク、モデルが見つからないなど)。
  • E_VECTOR_DIMENSION_MISMATCH — プロバイダーが返すベクトルの次元がデータベーススキーマの期待値と一致しません。
  • Issue #62282 — 同じエラーの以前のレポート。2026.4.8で修正されたとされていましたが、ユーザーは2026.4.5と2026.4.8の両方でリグレッションが持続していると報告しています。
  • Unknown memory embedding provider: azure-openai — Azure OpenAIエンベッディングも同じパターンに影響されます。Azureエンドポイントでopenai-compatを使用するという回避策が適用されます。
  • Unknown memory embedding provider: bedrock — AWS Bedrockエンベッディングも同じレジストリ分離問題の影響を受けます。

エビデンスとソース

このトラブルシューティングガイドは、FixClaw Intelligence パイプラインによってコミュニティの議論から自動的に合成されました。