memory-lancedb-pro — OpenClaw向け強化メモリプラグイン

AI/ML

概要

memory-lancedb-proは、OpenClaw向けに設計された長期メモリプラグインで、LanceDBをストレージ/ベクトルストアとして活用します。主な特徴は「ハイブリッド検索(ベクトル検索+BM25)」「クロスエンコーダを使った再ランク処理」「スコープ(名前空間)ごとの隔離管理」「コマンドラインによる管理機能」です。これにより、文脈に応じた関連メモリの抽出と高精度な順位付けを両立し、複数ユーザー/アシスタントの混在を回避しつつ運用できます。TypeScriptで実装され、OpenClawプラグインとして容易に組み込めます。

GitHub

リポジトリの統計情報

  • スター数: 110
  • フォーク数: 41
  • ウォッチャー数: 110
  • コミット数: 4
  • ファイル数: 10
  • メインの言語: TypeScript

主な特徴

  • ハイブリッド検索:ベクトル埋め込みによる意味検索とBM25によるキーワードマッチを組み合わせて候補を生成
  • クロスエンコーダ再ランク:得られた候補をクロスエンコーダで精査し高精度な順位付けを実現
  • マルチスコープ隔離:スコープ/名前空間ごとにデータを分離し、混同を防止
  • 管理CLI:インデックス作成・バックアップ・クエリ・スコープ管理を行うコマンドラインツール

技術的なポイント

memory-lancedb-proの技術的中核は「検索パイプラインの二段構成」です。まずクエリに対してLanceDBを用いたベクトル検索で意味的に近いドキュメントを取得し、同時にBM25(逆文書頻度に基づくスコア)でキーワードベースの候補も集めます。ハイブリッド化により語彙的に強いBM25と曖昧な意味を拾えるベクトル検索の長所を補完します。候補集合はクロスエンコーダ(通常はトークンレベルでクエリと候補を同時に入力しスコア算出)で再ランクされ、埋め込み類似度だけでは捉えにくい関係性や文脈整合性を反映します。

運用面では「スコープ(名前空間)分離」が重要です。メモリをユーザー単位/会話単位などに分けることで、プライバシーと意味的一貫性を担保します。LanceDBのインデックスはTypeScriptコードから管理され、CLI(cli.ts)でインポート・エクスポート・削除・バックアップ等が可能です。実装は軽量でOpenClawのプラグインフックに適合する設計。TypeScriptにより型安全性が確保され、エンベディング取得やベクトルのアップサート、BM25のテキストインデックス化、再ランクモデルの呼び出しをモジュール化しています。スケーリング時はLanceDB側のストレージ戦略と再ランクのバッチ化が鍵になります。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • README.md: file
  • README_CN.md: file
  • cli.ts: file
  • index.ts: file

…他 5 ファイル

まとめ

OpenClaw向けの実用的な長期メモリプラグインで、検索精度と運用管理を両立する設計。導入・拡張性ともに優れる一方で再ランクのコストは考慮が必要。

リポジトリ情報: