ハイブリッド検索とRRFにより、純粋なベクトル検索を超えるAIメモリシステムが向上します。

ローカルファーストでセルフホスト型のセットアップとして、PostgreSQLとpgvectorを使用したAIアシスタント向けのオープンソースメモリシステムが開発されました。このシステムは、AIアシスタントがセッションを超えて記憶する情報を保存し、検索可能にします。
なぜ純粋なベクトル検索では不十分だったのか
開発者は当初、純粋なベクトル検索から始めました:クエリを埋め込み、コサイン類似度を使用し、上位k件の結果を返します。これは曖昧な質問には機能しましたが、完全一致の検索では一貫して失敗しました。例えば、「RRF merging」を検索すると、文字通り「RRF merging」と記載されている文書ではなく、数か月前の「ランクリストの結合」に関するチャンクが返されてしまいました。
ハイブリッド検索ソリューション
解決策には、2つ目の検索手段の追加が含まれました:PostgreSQLのtsvectorとGINインデックスを使用した全文検索です。このキーワードマッチングは、ベクトル検索が見逃すものを捕捉します。しかし、これにより統合が必要な2つのランクリストが作成されました。
相互順位融合(RRF)
2つのランクリストを統合するには、相互順位融合が答えであることが証明されました。式は単純です:スコア = 1 / (k + 順位)、ここでk=60(標準値)。両方のリストに出現する結果は、両方のスコアが加算されます。このアプローチでは、コサイン類似度とts_rankの間の重み調整やスコア正規化は必要ありません—順位のみを使用します。
クエリ拡張技術
検索前に、システムはクエリを埋め込みモデルのWordPieceトークナイザーで実行し、主要な用語(技術的またはドメイン用語である可能性が高いマルチサブワードトークン)を抽出します。これにより最大3つのクエリバリエーションが生成され、すべてを埋め込み、並行して検索します。これにより、1つの表現では見逃される可能性のある結果を捕捉します。
技術スタック
- PostgreSQL 16 + pgvector(ベクトル用HNSWインデックス、全文検索用GINインデックス)
- 埋め込み用all-MiniLM-L6-v2(384次元、CPUで実行)
- 非同期psycopg 3を使用したPython
- 3つの取り込みアダプター:マークダウン、プレーンテキスト、Claude会話JSON
システム全体はローカルで実行され、埋め込み用のAPI呼び出しやクラウド依存性はありません。コードは最近出荷され、開発者は完全なアプローチについて詳細なブログ記事を書いています。
📖 Read the full source: r/LocalLLaMA
👀 See Also

Tilde.run: トランザクション型・バージョン管理型ファイルシステムを備えたエージェントサンドボックス
Tilde.runは、AIエージェント向けの隔離されたリバーシブルなサンドボックスを提供し、GitHub、S3、Googleドライブをマウントするバージョン管理されたファイルシステムと、デフォルトでのネットワーク分離を備えています。

Spectyra OpenClaw用プラグイン:全リクエストフロー分析によるリアルタイムAIコスト最適化
Spectyraプラグインは、繰り返しの呼び出し、過剰なコンテキスト、高価なモデルの誤用などの隠れた無駄をリアルタイムで可視化し、AI APIコストを削減します。

オープンソースのビジルツールがOpenClawエコシステムにおけるエージェントアイデンティティ問題に取り組む
OpenClawユーザーがウェブサービスを構築中、人間のユーザーと見分けがつかないエージェントのトラフィックを発見し、これがVigilの開発につながりました。VigilはW3C DIDに基づくオープンソースのアイデンティティレイヤーで、エージェントに暗号化された資格情報と行動履歴を提供します。

Lat.md: コードベースのためのマークダウンベースのナレッジグラフ
Lat.mdは、lat.md/ディレクトリ内の相互接続されたマークダウンファイルを使用して、コードベースの知識グラフを作成します。単一のドキュメントではスケーリングの問題を解決し、[[wikiリンク]]でセクションをリンクし、// @lat: [[section-id]]のようなコメントでソースコードに接続し、検証と検索のためのCLIツールを提供します。