メインコンテンツへスキップ

組み込みメモリエンジン

組み込みエンジンはデフォルトのメモリバックエンドです。メモリインデックスをエージェントごとのSQLiteデータベースに保存し、使い始めるのに追加の依存関係は不要です。

提供される機能

  • キーワード検索: FTS5全文インデックス(BM25スコアリング)を使用します。
  • ベクトル検索: サポートされている任意のプロバイダーの埋め込みを使用します。
  • ハイブリッド検索: 両方を組み合わせて最良の結果を得ます。
  • CJKサポート: 中国語、日本語、韓国語向けのトライグラムトークン化を使用します。
  • sqlite-vec高速化: データベース内ベクトルクエリを使用します(任意)。

はじめに

OpenAI、Gemini、Voyage、またはMistralのAPIキーがある場合、組み込みエンジンはそれを自動検出してベクトル検索を有効にします。設定は不要です。 プロバイダーを明示的に設定するには:
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai",
      },
    },
  },
}
埋め込みプロバイダーがない場合は、キーワード検索のみが利用可能です。

サポートされている埋め込みプロバイダー

プロバイダーID自動検出注記
OpenAIopenaiはいデフォルト: text-embedding-3-small
Geminigeminiはいマルチモーダル(画像 + 音声)をサポート
Voyagevoyageはい
Mistralmistralはい
Ollamaollamaいいえローカル、明示的に設定
Locallocalはい(最初)GGUFモデル、約0.6 GBダウンロード
自動検出では、表示されている順序で、APIキーを解決できる最初のプロバイダーが選ばれます。上書きするにはmemorySearch.providerを設定してください。

インデックス作成の仕組み

OpenClawはMEMORY.mdmemory/*.mdをチャンク(約400トークン、80トークンのオーバーラップ付き)にインデックス化し、エージェントごとのSQLiteデータベースに保存します。
  • インデックスの場所: ~/.openclaw/memory/<agentId>.sqlite
  • ファイル監視: メモリファイルへの変更は、デバウンス付きの再インデックス化(1.5秒)をトリガーします。
  • 自動再インデックス化: 埋め込みプロバイダー、モデル、またはチャンク化設定が変更されると、インデックス全体が自動的に再構築されます。
  • オンデマンドでの再インデックス化: openclaw memory index --force
memorySearch.extraPathsを使用して、ワークスペース外のMarkdownファイルもインデックス化できます。詳細は設定リファレンスを参照してください。

使用するべき場面

組み込みエンジンは、ほとんどのユーザーにとって適切な選択です:
  • 追加の依存関係なしですぐに使えます。
  • キーワード検索とベクトル検索の両方を適切に処理します。
  • すべての埋め込みプロバイダーをサポートします。
  • ハイブリッド検索は、両方の検索アプローチの長所を組み合わせます。
リランキング、クエリ拡張、またはワークスペース外のディレクトリをインデックス化したい場合は、QMDへの切り替えを検討してください。 セッションをまたいだメモリと自動ユーザーモデリングが必要な場合は、Honchoを検討してください。

トラブルシューティング

メモリ検索が無効ですか? openclaw memory statusを確認してください。プロバイダーが検出されない場合は、明示的に設定するか、APIキーを追加してください。 結果が古いですか? openclaw memory index --forceを実行して再構築してください。まれなエッジケースでは、ウォッチャーが変更を見逃すことがあります。 sqlite-vecが読み込まれませんか? OpenClawは自動的にインプロセスのコサイン類似度にフォールバックします。具体的な読み込みエラーはログを確認してください。

設定

埋め込みプロバイダーの設定、ハイブリッド検索のチューニング(重み、MMR、時間減衰)、バッチインデックス作成、マルチモーダルメモリ、sqlite-vec、追加パス、およびその他すべての設定項目については、メモリ設定リファレンスを参照してください。