mcpField
M
Memwyre

Memwyre

リモート
github.com/memwyreaiメモリ・ナレッジ316 週間前に更新
リポジトリ

Memwyre について

Memwyreは、LLM、AIエージェント、独自アプリ向けのオープンソース永続メモリ基盤です。文書や会話などを整理して複数のツールから検索でき、メモリの確認やプロジェクト別検索にも対応します。

主な機能

  1. 01共有型の永続メモリ
  2. 02メモリの非同期整理
  3. 03取得したメモリの確認と承認
  4. 04プロジェクト単位の検索
  5. 05ダッシュボード、拡張機能、CLI、プラグイン

活用シーン

  1. 01AIツール間で過去のコンテキストを検索
  2. 02インデックス登録前に取得メモリを確認
  3. 03プロジェクトごとにメモリ検索を分離

MCP 対応

Python製MCPサーバーが、Cursor、VS Code、Claude Desktopなどのクライアントに `search_memory`、`save_memory`、`get_document` ツールを提供します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://server.memwyre.tech/mcp/
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://server.memwyre.tech/mcp/認証が必要

ツール

詳細

Memwyre

すべての AI に永続的な共有メモリを。

Memwyre Logo

ウェブサイト · ドキュメント · コンソール/アプリ · Twitter/X

FastAPI Vue 3 Chrome Extension MCP LoCoMo Accuracy License: Apache 2.0

Memwyre は、LLM、AI エージェント、カスタムアプリケーション向けの、オープンソースの汎用メモリインフラストラクチャ兼永続的なナレッジ検索レイヤーです。

ChatGPT、Claude、Cursor、または異なるエージェント環境を切り替えるたびに AI をステートレスなものとして扱い、コンテキストを失うのではなく、Memwyre は統合された個人用の脳として外部で機能します。ドキュメント、ウェブページ、会話、ワークフローを安全に取り込み、チャンクに分割して構造化することで、AI ツールチェーン全体からすぐに検索できるようにします。


クイックスタート

🧑‍💻 AI ツールを接続したい

ユーザー向けダッシュボードまたはブラウザー拡張機能を使って独自の外部メモリレイヤーを構築し、MCP 経由で Cursor、VS Code、または Claude Desktop に直接接続できます。

npx -y install-memwyre

→ ユーザー向けセットアップへ

🔧 AI エージェントや製品を開発したい

統合メモリ保管庫、カスタムベクトル検索、プロファイルベースの検索 API を利用できます。

  • カスタム AI エージェントやアプリ向けの統合ガイド
  • すぐに使える OpenClaw および Claude プラグイン
  • 設定不要のダイレクトベクトルストレージ

→ 開発者向けセットアップへ


目次

  1. クイックスタート
  2. 主な機能
  3. エコシステムの各プラン
  4. システムアーキテクチャと主要ワークフロー
  5. LoCoMo ベンチマーク評価
  6. データベーススキーマとマルチテナンシー
  7. インストールとセットアップ
  8. 環境設定
  9. ライセンス

コア機能

  • 分離された永続メモリ: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 とフラットベクトルシステムの比較)
評価カテゴリテスト内容フラットベクトル RAGMemwyre エンジン
シングルホップの想起個人の事実や値を直接取得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 のパフォーマンスを支えるアーキテクチャ
  1. 動的なコンテキストの刈り込み:チャンクの拡充時に、会話のノイズ(つなぎ言葉、あいさつ、誤解を招く情報)を取り除きます。
  2. 2 段階の再ランキング:広範囲かつ高再現率のベクトル取得段階を実行した後、Cross-Encoder の再ランカーを用いて、文脈に最も関連するメモリ項目のみを選択します。
  3. エビングハウスの対数的な新しさの減衰:新しい項目によって上書きされた場合、古いユーザーの好みや矛盾する事実を時系列に沿って自動的に陳腐化させます。
  4. 敵対的入力への耐性:厳密な意味的包含を利用するため、存在しない情報について問い合わせられた場合、リトリーバーは適切に失敗し、ハルシネーションを拒否します。

データベーススキーマとマルチテナンシー

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 拡張機能のインストール
  1. Chrome を開き、chrome://extensions/ に移動します
  2. デベロッパーモード(右上の切り替え)を有効にします
  3. パッケージ化されていない拡張機能を読み込む(左上)をクリックします
  4. このプロジェクトのルートにある extension/ フォルダーを選択します。
  5. 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 ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。