Memwyre について
Memwyreは、LLM、AIエージェント、独自アプリ向けのオープンソース永続メモリ基盤です。文書や会話などを整理して複数のツールから検索でき、メモリの確認やプロジェクト別検索にも対応します。
主な機能
- 01共有型の永続メモリ
- 02メモリの非同期整理
- 03取得したメモリの確認と承認
- 04プロジェクト単位の検索
- 05ダッシュボード、拡張機能、CLI、プラグイン
活用シーン
- 01AIツール間で過去のコンテキストを検索
- 02インデックス登録前に取得メモリを確認
- 03プロジェクトごとにメモリ検索を分離
MCP 対応
Python製MCPサーバーが、Cursor、VS Code、Claude Desktopなどのクライアントに `search_memory`、`save_memory`、`get_document` ツールを提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://server.memwyre.tech/mcp/claude mcp add --transport http memwyreai-memwyre https://server.memwyre.tech/mcp/{"mcpServers":{"memwyreai-memwyre":{"type":"http","url":"https://server.memwyre.tech/mcp/"}}}Cursor で開く{"servers":{"memwyreai-memwyre":{"type":"http","url":"https://server.memwyre.tech/mcp/"}}}VS Code で開く{"mcpServers":{"memwyreai-memwyre":{"type":"http","url":"https://server.memwyre.tech/mcp/"}}}{"mcpServers":{"memwyreai-memwyre":{"serverUrl":"https://server.memwyre.tech/mcp/"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://server.memwyre.tech/mcp/認証が必要ツール
詳細
Memwyre
すべての AI に永続的な共有メモリを。
ウェブサイト · ドキュメント · コンソール/アプリ · Twitter/X
Memwyre は、LLM、AI エージェント、カスタムアプリケーション向けの、オープンソースの汎用メモリインフラストラクチャ兼永続的なナレッジ検索レイヤーです。
ChatGPT、Claude、Cursor、または異なるエージェント環境を切り替えるたびに AI をステートレスなものとして扱い、コンテキストを失うのではなく、Memwyre は統合された個人用の脳として外部で機能します。ドキュメント、ウェブページ、会話、ワークフローを安全に取り込み、チャンクに分割して構造化することで、AI ツールチェーン全体からすぐに検索できるようにします。
クイックスタート
🧑💻 AI ツールを接続したいユーザー向けダッシュボードまたはブラウザー拡張機能を使って独自の外部メモリレイヤーを構築し、MCP 経由で Cursor、VS Code、または Claude Desktop に直接接続できます。
|
🔧 AI エージェントや製品を開発したい統合メモリ保管庫、カスタムベクトル検索、プロファイルベースの検索 API を利用できます。
|
目次
- クイックスタート
- 主な機能
- エコシステムの各プラン
- システムアーキテクチャと主要ワークフロー
- LoCoMo ベンチマーク評価
- データベーススキーマとマルチテナンシー
- インストールとセットアップ
- 環境設定
- ライセンス
コア機能
- 分離された永続メモリ:LLM に依存しない外部メモリレイヤーとして機能します。OpenAI、Google Gemini、Anthropic Claude、ローカルモデルの設定のいずれを使用していても、ナレッジベースを引き続き利用できます。
- 非同期エンリッチメント:メモリを自動的に洗練し、不要なテキストを取り除き、要約を生成し、重要なエンティティを抽出して、原子的な事実の関連付けを作成します。
- 動的なコンテキストの整理と新しさによる減衰:エビングハウスの忘却曲線に着想を得た対数減衰を利用し、古くなったユーザー設定や矛盾するユーザー設定を時系列で非推奨にして、コンテキストのサイズを最適化します。
- 承認ベースの受信トレイフロー:メモリダッシュボードに受信トレイを設け、長期ベクトルインデックスに登録する前に、自動取得されたメモリを確認、編集、承認、または却下できます。
- プロジェクト単位のコンテナ化:ベクトル検索と事実の関連付けを特定のワークスペースまたはプロジェクトの範囲に限定し、堅牢なマルチテナントコンテナ化を実現します。
エコシステムの各プラン
Memwyre では、情報を取り込んで取得するためのさまざまな方法を提供しています。
- 1. ウェブアプリケーションとダッシュボード(memwyre.tech で公開):Vue 3(Vite + Tailwind CSS)で作成されたメインのウェブアプリで、オンボーディングツアー、ドキュメント管理用の Monaco Editor、請求機能との連携、ベクトルランキングのデバッグと検証に使える視覚的な検索シミュレーターを備えています。
- 2. Chrome 拡張機能(Manifest V3)(Chrome ウェブストアで入手可能):ウェブチャットクライアントにコンテキストを自動挿入し、認証トークンをマッピングします。また、ワンクリックで記事、コードスニペット、会話ログを直接ユーザーの保管庫に保存できます。
- 3. Model Context Protocol(MCP)サーバー:メモリツール(
search_memory、save_memory、get_document)を Cursor や VS Code などの IDE、または Claude Desktop などのデスクトップアシスタントに直接連携させる Python サーバーです。 - 4. CLI ツール:Node ベースのコマンドラインインターフェース(
cli/)で、ターミナルからの操作、クエリのテスト、ドキュメントの一括アップロードができます。 - 5. OpenClaw プラグイン:マルチエージェントプラットフォームが Memwyre のメモリ保管庫と直接連携できる専用統合モジュール(
openclaw-plugin/)です。
システムアーキテクチャと主要なワークフロー
コンポーネントの概要
Memwyre はユーザークライアントを、ローカルまたはクラウドのベクトル検索サービスと AI プロバイダーに接続します。
flowchart TB
subgraph Client_Side ["Client Side"]
Browser["WebApp (Vue 3 / Vite)"]
Extension["Chrome Extension (MV3)"]
CLI["CLI Client (Node.js)"]
end
subgraph Load_Balancer ["Ingress"]
Nginx["Nginx Reverse Proxy"]
end
subgraph Backend_Core ["Backend API (FastAPI)"]
Auth_Mod["Auth & Users Module"]
Mem_Mod["Memory Management"]
Ret_Mod["Retrieval Engine"]
LLM_Mod["LLM Service (V1/V2)"]
end
subgraph Background_Workers ["Celery Workers"]
Ingest_Worker["Ingestion & Chunking Worker"]
Dedupe_Worker["Deduplication Worker"]
end
subgraph Data_Persistence ["Data Layer"]
Postgres[("PostgreSQL / SQLite")]
Pinecone[("Pinecone / ChromaDB")]
Redis[("Redis Message Broker")]
end
subgraph External_Services ["AI Inference"]
NVIDIA["NVIDIA NIM (Kimi K2.6)"]
Azure["Azure OpenAI (GPT-4o-mini)"]
Gemini["Google Gemini API"]
end
Browser -->|HTTPS| Nginx
Extension -->|HTTPS| Nginx
CLI -->|HTTPS| Nginx
Nginx --> Backend_Core
Auth_Mod --> Postgres
Mem_Mod --> Postgres
Mem_Mod --> Ingest_Worker
Ret_Mod --> Pinecone
Ret_Mod --> Postgres
Ret_Mod --> External_Services
Ingest_Worker --> External_Services
Ingest_Worker --> Pinecone
Ingest_Worker --> Postgres
データ取り込みパイプライン
メモリを取り込むと、バックグラウンドワーカーのタスクが起動し、生データを非同期に処理、埋め込み、構造化します。
sequenceDiagram
participant User
participant API as FastAPI API
participant Worker as Celery Worker
participant LLM as LLM/Embedding Provider
participant Vector as Pinecone/ChromaDB
participant DB as PostgreSQL/SQLite
User->>API: POST /memory (Raw Text Content)
API->>DB: Save Memory (Status: Pending)
API->>Worker: Dispatch Ingest Task
API-->>User: 202 Accepted (In progress)
Note over Worker: Asynchronous Processing
Worker->>LLM: Metadata Extraction (Titles, Tags)
Worker->>Worker: Semantic Chunking (Overlapping Splits)
loop Parallel Enrichment
Worker->>LLM: Enrich Chunk (Q&A Pairs, Summaries)
Worker->>LLM: Extract SPO Facts (Subject-Predicate-Object)
end
Worker->>Vector: Batch Upsert Embeddings (Chunks + Facts)
Worker->>DB: Write Chunks & Facts (Linked to Memory)
Worker->>DB: Update Memory Status (Approved/Active)
並列検索(RAG)
検索クエリでは、リレーショナルデータベースを使った正確な事実検索と、あいまい検索によるセマンティック検索を並行して実行し、超低レイテンシーで LLM のコンテキストに情報を提供します。
sequenceDiagram
participant User
participant API as FastAPI API
participant RetSvc as RetrievalService
participant Vector as Vector Store
participant DB as Relational DB
participant LLM as GenAI Model
User->>API: Chat Query / RAG Trigger
API->>RetSvc: search_memories(Query, project_id)
par State Fact Lookups
RetSvc->>Vector: Vector Search (Factual matches)
RetSvc->>DB: SQL Filter (Valid & Non-superseded Facts)
and Semantic Search
RetSvc->>Vector: Vector Search (Chunk embeddings)
RetSvc->>RetSvc: MMR Re-ranking (Filter redundant chunks)
end
RetSvc->>RetSvc: Merge Results (State Facts + Chunk text)
RetSvc-->>API: Ranked Top-K Context Items
API->>LLM: Generate Answer (Prompt + Merged Context)
LLM-->>User: Streaming Response
LoCoMo ベンチマーク評価
Snap Research が 「Evaluating Very Long-Term Conversational Memory of LLM Agents」(2024) で発表した LoCoMo-10(Long Conversational Memory)ベンチマークは、最大 32 セッション、会話あたり 26,000 トークンに及ぶ複数セッションの長い対話を対象に、AI エージェントシステムの長期記憶、事実の一貫性、時間的な整合性、マルチホップ推論を評価します。
パフォーマンス指標(Memwyre とフラットベクトルシステムの比較)
| 評価カテゴリ | テスト内容 | フラットベクトル RAG | Memwyre エンジン |
|---|---|---|---|
| シングルホップの想起 | 個人の事実や値を直接取得 | 53.0% | 80.0% |
| マルチホップ推論 | 離れたチャットセッション間の事実を関連付け | 24.0% | 45.0% |
| 時間的な整合性 | イベントを時系列に並べ、期間の変化を特定 | 48.0% | 74.0% |
| オープンドメイン推論 | 文脈に基づく推論と複雑な推論 | 50.0% | 76.0% |
| 全体的な精度 | 1,540 件のテスト質問すべての加重平均 | 43.7% | 73.5% |
| 平均トークンサイズ | LLM のプロンプトに送信される取得コンテキストの平均サイズ | ~26,000 | ~3,000 |
ヒント
コンテキストの圧縮:Memwyre はコンテキスト長を 88.5% 削減します(生の会話内容 26,000 トークンに対し、取得するのは 3,000 トークンです)。その一方で、フラットベクトルインデックスを精度で大幅に上回ります。
LoCoMo のパフォーマンスを支えるアーキテクチャ
- 動的なコンテキストの刈り込み:チャンクの拡充時に、会話のノイズ(つなぎ言葉、あいさつ、誤解を招く情報)を取り除きます。
- 2 段階の再ランキング:広範囲かつ高再現率のベクトル取得段階を実行した後、Cross-Encoder の再ランカーを用いて、文脈に最も関連するメモリ項目のみを選択します。
- エビングハウスの対数的な新しさの減衰:新しい項目によって上書きされた場合、古いユーザーの好みや矛盾する事実を時系列に沿って自動的に陳腐化させます。
- 敵対的入力への耐性:厳密な意味的包含を利用するため、存在しない情報について問い合わせられた場合、リトリーバーは適切に失敗し、ハルシネーションを拒否します。
データベーススキーマとマルチテナンシー
Memwyre はハイブリッドストレージモデルを採用しています。メタデータ、リレーショナルな事実、ユーザーの認証情報は SQL テーブル(PostgreSQL/SQLite)に保存され、ドキュメントチャンクと拡充された事実文字列はベクトルデータベース(Pinecone/ChromaDB)にミラーリングされます。
👉 **詳細なデータベーススキーマを表示**すると、コアエンティティ(users、projects、memories、documents、chunks、facts)とエンティティ関係図の全容を確認できます。
事実の上書きとプロジェクトのコンテナ化
- 上書き:同じ
subjectとpredicateに一致する新しい事実が書き込まれると(例:ユーザーがベルリンから東京へ引っ越す場合)、データベースは古いレコードのis_supersededフラグをtrueに設定し、valid_untilを現在のタイムスタンプに更新します。これにより、時間に関する問い合わせに対して、該当時点の状態に正確な事実を返せます。 - コンテナ化:すべてのメモリ、ドキュメント、チャンク、事実には
project_idが含まれます。問い合わせ時には、フィルターによって現在のワークスペースのproject_idに一致する項目のみが厳密に選別されるため、異なるプロジェクト環境間で情報が漏れることを防ぎます。
インストールとセットアップ
前提条件
- Python 3.11 または 3.12(UV パッケージマネージャーを推奨)
- Node.js 18+ と npm
- Redis サーバー(バックグラウンドの Celery タスク用)
- PostgreSQL データベース(任意。デフォルトでは SQLite を使用)
1. バックエンド API のセットアップ
バックエンドディレクトリに移動し、環境を初期化して依存関係をインストールし、FastAPI サーバーを起動します。
cd backend
# Create virtual environment and install packages
uv venv
uv pip install -r requirements.txt
# Start the FastAPI server
uv run uvicorn app.main:app --reload
API の Swagger UI ドキュメントは http://localhost:8000/docs で利用できます。
2. バックグラウンド取り込みワーカー
Redis が起動していることを確認してから、取り込みキューを処理する Celery バックグラウンドワーカーを起動します。
cd backend
uv run celery -A app.celery_app worker --loglevel=info -P solo
3. フロントエンドダッシュボードのセットアップ
フロントエンドのパッケージをインストールし、Vite 開発サーバーを起動します。
cd frontend
npm install
npm run dev
Web ダッシュボードは http://localhost:5173 で動作します。
4. Chrome 拡張機能のインストール
- Chrome を開き、
chrome://extensions/に移動します - デベロッパーモード(右上の切り替え)を有効にします
- パッケージ化されていない拡張機能を読み込む(左上)をクリックします
- このプロジェクトのルートにある
extension/フォルダーを選択します。 - Web アプリで Settings -> Copy Extension Token に移動し、拡張機能のポップアップにトークンを貼り付けてセッションをリンクします。
5. MCP サーバーの統合
Claude Desktop
Claude Desktop の設定に以下を追加します(Windows では %APPDATA%\Claude\claude_desktop_config.json、macOS では ~/Library/Application Support/Claude/claude_desktop_config.json にあります)。
{
"mcpServers": {
"brain-vault": {
"command": "python",
"args": ["/path/to/memwyre/backend/mcp_server.py"]
}
}
}
Cursor / VS Code
コマンドライン経由でサーバーを実行するように、エディターの MCP 設定を構成します。
python /path/to/memwyre/backend/mcp_server.py
6. Node CLI のセットアップ
依存関係をインストールし、コマンドラインツールをグローバルに実行します。
cd cli
npm install
node index.js --help
環境設定
backend/ ディレクトリにあるサンプル環境ファイルをコピーし、変数を設定します。
cp backend/.env.example backend/.env
主な環境パラメーター:
# --- Base Secrets & Database ---
SECRET_KEY="your-strong-random-64-character-string"
DATABASE_URL="postgresql://postgres:password@localhost/brain-vault"
# --- Redis & Celery ---
CELERY_BROKER_URL="redis://localhost:6379/0"
REDIS_URL="redis://localhost:6379/0"
# --- Vector Database (Pinecone) ---
PINECONE_API_KEY="your-pinecone-api-key"
PINECONE_HOST="https://your-pinecone-index-host"
PINECONE_SPARSE_HOST="https://your-optional-sparse-index-host"
# --- LLM Providers & Embeddings ---
MEMORY_ENGINE_VERSION="v2" # "v1" for NVIDIA, "v2" for Azure/OpenAI
AZURE_OPENAI_API_KEY="your-azure-key"
AZURE_OPENAI_ENDPOINT="https://your-resource-name.cognitiveservices.azure.com/"
AZURE_OPENAI_DEPLOYMENT="gpt-4o-mini"
AZURE_OPENAI_EMBEDDING_DEPLOYMENT="text-embedding-3-small"
# --- V1 Compatibility (NVIDIA NIM) ---
EMBEDDING_API_KEY="your-nvidia-embedding-key"
LLM_API_KEY="your-nvidia-llm-key"
ライセンス
このプロジェクトは Apache License, Version 2.0(Apache-2.0)の下でライセンスされています。詳細は LICENSE ファイルと NOTICE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。