
LinkingMem — Graph-native RAG Engine
khapu2906 · コーディング · 学習
LinkingMemは、セルフホスト型のDockerサービスとして動くグラフネイティブRAGエンジンで、ベクトル検索とグラフ走査を結び付け、LLMが自分の文書から質問に答えられるようにする。類似度だけでテキスト断片を照合するのではなく、エンティティ間のエッジをたどり、関連する事実を1つの根拠ある回答にまとめ上げる。それがこの仕組みの全てだ。自前のハードウェア上で、端から端まで自分で制御できるRAGパイプラインを求めるなら、これはそのために作られている。

LinkingMem — Graph-native RAG Engine について
LinkingMemとは何か
LinkingMemは、非公開データ上で質問応答システムを構築するための検索エンジンだ。Rustの演算コアとPythonプラグインを組み合わせ、知識グラフを後付けの要素ではなく検索の中核として扱う。クエリはパイプラインに入ってベクトル化され、HNSWベクトルインデックスに当たり、その後でグラフのエッジを通じて展開してから、LLMが最終的な回答を書く。この順序が重要だ。語彙を共有しない事実同士をつなぐのが、グラフの工程なのである。
エンジンはDockerイメージとして配布されるため、自分で動かす。テキストと画像の処理は別々のプラグインに分かれ、起動するか省くかを選べる。LLMクライアントはOpenAI互換プロトコルで通信する。バックエンドは自分で選べばいい。OpenAI、Ollama、Groq、Gemini互換のエンドポイントがいずれも動くため、推論をローカルに保ちたいときに役立つ。
最大の難点は構築コストだ。LinkingMemはRust 1.80+とPython 3.11+を要求し、設定、LLMキー、データファイルの接続は自分の責任になる。これは開発者向けツールであり、インストールして放置できるアプリではない。
はじめ方
- Docker Hub(khapu2906/linkingmem)からDockerイメージを取得するか、リポジトリを複製し、uvでRust 1.80+とPython 3.11+をインストールする。
.env.exampleを.envにコピーし、少なくともOPENAI_API_KEYを設定する。ローカルで動かしたい場合はOPENAI_BASE_URLをOllamaや他の互換プロバイダーに向ける。plugins.tomlを確認し、起動するプラグイン(8001番ポートのテキストプラグイン、8002番ポートの画像プラグイン)とクエリパイプラインの順序を決める。POST /ingest/textまたはPOST /ingest/jsonエンドポイントで文書を取り込み、ノード、エッジ、ベクトルを構築する。POST /queryに質問を送って根拠あるLLMの回答を読む。エンジンに複数のホップをたどらせたいときはPOST /query/multihopを使う。
AIツール情報
LinkingMem — Graph-native RAG Engineの料金、対応プラットフォーム、性能を簡単に確認できます。
こんな人におすすめ
このツールが最も力を発揮するユーザー、タスク、シーン。
ユーザー
- バックエンドとAIのエンジニア。Dockerの運用と設定ファイルの編集に抵抗がなければ、自分でホストできる完全な検索パイプラインが手に入る。
- 非公開文書を抱えるチーム。すべてが自分のマシンで動くため、機密データが自社のインフラから出ていかない。
- グラフRAGのアイデアを試す開発者。オープンソースのコードとモジュール式プラグインが実験の実用的な土台になる。ただしRustとPythonを読めることが前提だ。
タスク
- 社内文書上に質問応答サービスを構築する。テキストを取り込んでから問い合わせ、モデルの記憶ではなく自社の情報源に基づいた回答を得る。
- マルチホップの質問。答えに複数文書にまたがる事実の連結が必要なとき、グラフ展開の工程がつながった断片を引き寄せる。
- 画像とテキストの検索を混ぜる。画像プラグインはテキストプラグインとベクトル空間を共有できるため、説明文による画像クエリが同じ結果に入る。
シーン
- 自分のサーバーで非公開のナレッジベースを動かす。機密文書をファイアウォールの内側に保てる。
- マネージドサービスを契約する前に検索バックエンドを試作する。サブスクリプションなしで品質を検証できる。
- すでにホストしているLLMにグラウンディングを足す。既存のOpenAI互換エンドポイントにエンジンを向けて再利用する。
主な機能
ベクトルとグラフのハイブリッド検索
LinkingMemは2段階の検索パイプラインを動かす。クエリはベクトル化され、HNSWベクトルインデックスと照合されて高速に近傍探索され、その結果が幅優先探索でグラフのエッジを通じて展開する。ベクトルの工程が入口を見つける。グラフの工程が周辺の文脈を集める。エンティティ間の関係に懸かる質問では、この第2段階が正解を生む鍵になることが多い。
マルチホップ推論エンドポイント
エンジンは専用の/query/multihopエンドポイントを公開し、回答を生成する前に知識グラフを複数のホップにわたってたどる。これは単一文書では答えられず、モデルが異なるノードの事実を組み合わせる必要がある質問を狙っている。単一の一致断片ではなく、つながった証拠の連鎖が得られる。
モジュール式のテキスト・画像プラグイン
テキスト埋め込み、エンティティ抽出、回答生成は8001番ポートのPythonテキストプラグインに置かれ、画像の保存と埋め込みは8002番ポートの別プラグインで動く。必要なものだけ起動すればいい。画像プラグインは2つのバックエンドを提供する。テキストのベクトル空間を共有する視覚LLMのキャプション方式か、LLM呼び出しなしで真の視覚的類似度を扱うCLIPエンコーダーだ。
OpenAI互換のLLMクライアント
LLMクライアントはOpenAI互換APIで通信するため、OpenAI、Ollama、Groq、Gemini互換エンドポイントなどをつなげられる。プロバイダーの差し替えはコード変更ではなく設定変更で済む。ローカル推論が必要なら、Ollamaの経路がそれを担う。
クラッシュに強い差分ストアを備えたRustコア
演算層はRustで書かれ、8000番ポートでHTTP APIを提供する。先行書き込みログとファイルロックを備えたLSM方式の差分ストアを含むため、取り込んだ変更は再起動を越えて残る。並行埋め込みキャッシュ(moka)と結果キャッシュが、よくあるクエリの繰り返し作業を削る。
組み込みの可観測性と認証
管理用エンドポイントは/health、/metrics、/graph/statsとノード一覧を公開し、メトリクスはPrometheus互換の形式で出る。APIキー認証とトークンバケット式のレート制限はミドルウェアに入っている。作る層が1つ減るわけだ。すぐに複数のクライアントの前にエンジンを置ける。
メリットとデメリット
メリット
- 既定でセルフホストのため、非公開文書が自社インフラに留まる。
- グラフ展開が、単純なベクトル検索では見落としがちなマルチホップの質問を処理する。
- OpenAI互換のLLMクライアントにより、Ollama経由でローカルに推論を実行できる。
- モジュール式プラグインで、不要な画像対応やテキスト機能を省ける。
- オープンソースで、Rustコア全体とPythonプラグインを読んで変更できる。
デメリット
- 構築は開発者向け。ソースからビルドするにはDockerに加えてRust 1.80+とPython 3.11+が必要で、非技術系のユーザーには向かない。
- ホスト型プランもWebダッシュボードもないため、ホスティング、スケーリング、稼働率は自分の責任になる。
- ドキュメントはコード優先で、最初のクエリが動くまでリポジトリと設定ファイルを読む時間が要る。
よくある質問
自分の文書から質問に答える検索エンジンだ。ベクトル検索とグラフ走査を組み合わせ、検索した文脈をLLMに渡す。グラフの工程が、断片照合だけの基本的なRAG構成との違いを生む。
関連コンテンツ
LinkingMem — Graph-native RAG Engineに関連するツール、スキル、記事を探す。
LinkingMem — Graph-native RAG Engineの代替ツール
Base Code
Base44 (Wix) · コーディング · 生産性向上Base CodeはBase44の共有クラウド開発環境だ。既存のGitHubリポジトリに対する変更をチャットで伝え、プレビューで確認し、プルリクエストとして返せる。
Google EmbeddingGemma 2
Google DeepMind · ライティング · 画像 · コーディングGoogle EmbeddingGemma 2 は 7 億 4000 万パラメータのオープンなモデルで、テキスト、コード、画像、音声、動画フレームを同じ 768 次元空間のベクトルに変え、スマートフォンやノート PC 上で動く。
GitGlow
GitGlow · コーディング · 生産性向上GitGlow は自分のコードと AI エージェントの変更を一つのレビューにまとめるデスクトップ Git クライアントだ。出荷前に、マシンから何が出ていくのかを確かめられる。
