Sessions and memory
組み込みメモリエンジン
ビルトインエンジンはデフォルトのメモリバックエンドです。メモリインデックスを エージェントごとの SQLite データベースに保存し、開始するための追加依存関係は不要です。
提供するもの
- FTS5 全文インデックス(BM25 スコアリング)によるキーワード検索。
- 対応プロバイダーの埋め込みによるベクトル検索。
- 最良の結果を得るために両方を組み合わせるハイブリッド検索。
- 中国語、日本語、韓国語向けのトライグラムトークン化による CJK 対応。
- データベース内ベクトルクエリ用の sqlite-vec 高速化(任意)。
はじめに
デフォルトでは、ビルトインエンジンは OpenAI 埋め込みを使用します。すでに
OPENAI_API_KEY または models.providers.openai.apiKey を設定している場合、追加のメモリ設定なしで
ベクトル検索が動作します。
プロバイダーを明示的に設定するには:
{ agents: { defaults: { memorySearch: { provider: "openai", }, }, },}埋め込みプロバイダーがない場合、キーワード検索のみが利用できます。
ローカル GGUF 埋め込みを強制するには、公式の llama.cpp プロバイダー Plugin をインストールし、
local.modelPath に GGUF ファイルを指定します:
openclaw plugins install @openclaw/llama-cpp-provider{ agents: { defaults: { memorySearch: { provider: "local", fallback: "none", local: { modelPath: "~/.node-llama-cpp/models/embeddinggemma-300m-qat-Q8_0.gguf", }, }, }, },}対応する埋め込みプロバイダー
| プロバイダー | ID | 注記 |
|---|---|---|
| Bedrock | bedrock |
AWS 認証情報チェーンを使用 |
| DeepInfra | deepinfra |
デフォルト: BAAI/bge-m3 |
| Gemini | gemini |
マルチモーダル(画像 + 音声)に対応 |
| GitHub Copilot | github-copilot |
Copilot サブスクリプションを使用 |
| Local | local |
@openclaw/llama-cpp-provider |
| Mistral | mistral |
|
| Ollama | ollama |
ローカル/セルフホスト |
| OpenAI | openai |
デフォルト: text-embedding-3-small |
| OpenAI-compatible | openai-compatible |
汎用 /v1/embeddings エンドポイント |
| Voyage | voyage |
OpenAI 以外に切り替えるには、memorySearch.provider を設定します。
インデックス作成の仕組み
OpenClaw は MEMORY.md と memory/*.md をチャンク(約400トークン、
80トークンのオーバーラップ)に分割してインデックス化し、エージェントごとの SQLite データベースに保存します。
- インデックスの場所: 所有エージェントのデータベース:
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite - ストレージメンテナンス: SQLite WAL サイドカーは、定期的なチェックポイントと シャットダウン時のチェックポイントで制限されます。
- ファイル監視: メモリファイルへの変更はデバウンスされた再インデックス(1.5秒)をトリガーします。
- 自動再インデックス: 埋め込みプロバイダー、モデル、またはチャンク設定が 変更されると、インデックス全体が自動的に再構築されます。
- オンデマンド再インデックス:
openclaw memory index --force
使用すべき場合
ビルトインエンジンはほとんどのユーザーに適した選択肢です:
- 追加依存関係なしでそのまま動作します。
- キーワード検索とベクトル検索を適切に処理します。
- すべての埋め込みプロバイダーに対応します。
- ハイブリッド検索は、両方の検索アプローチの長所を組み合わせます。
再ランキング、クエリ拡張が必要な場合、またはワークスペース外のディレクトリを インデックス化したい場合は、QMD への切り替えを検討してください。
自動ユーザーモデリングを備えたセッション横断メモリが必要な場合は、 Honcho を検討してください。
トラブルシューティング
メモリ検索が無効ですか? openclaw memory status を確認してください。プロバイダーが
検出されない場合は、明示的に設定するか API キーを追加してください。
ローカルプロバイダーが検出されませんか? ローカルパスが存在することを確認し、次を実行してください:
openclaw memory status --deep --agent mainopenclaw memory index --force --agent mainスタンドアロン CLI コマンドと Gateway はどちらも同じ local プロバイダー ID を使用します。
ローカル埋め込みを使いたい場合は、memorySearch.provider: "local" を設定してください。
結果が古いですか? 再構築するには openclaw memory index --force を実行してください。まれなエッジケースでは、ウォッチャーが
変更を見逃すことがあります。
sqlite-vec が読み込まれませんか? OpenClaw は自動的にプロセス内コサイン類似度にフォールバックします。
openclaw memory status --deep はローカルベクトルストアを埋め込みプロバイダーとは別に報告するため、
Vector store: unavailable は sqlite-vec の読み込みを示し、Embeddings: unavailable はプロバイダー/認証
またはモデルの準備状態を示します。具体的な読み込みエラーについてはログを確認してください。
設定
埋め込みプロバイダーのセットアップ、ハイブリッド検索のチューニング(重み、MMR、時間的 減衰)、バッチインデックス作成、マルチモーダルメモリ、sqlite-vec、追加パス、その他すべての 設定ノブについては、 メモリ設定リファレンスを参照してください。