Skip to content

Latest commit

 

History

History
663 lines (494 loc) · 31.5 KB

File metadata and controls

663 lines (494 loc) · 31.5 KB

MemU Banner

memU

AIエージェントのための常時稼働プロアクティブメモリ

PyPI version License: Apache 2.0 Python 3.13+ Discord Twitter

NevaMind-AI%2FmemU | Trendshift

English | 中文 | 日本語 | 한국어 | Español | Français


memUは24/7プロアクティブエージェント向けに構築されたメモリフレームワークです。 長時間稼働向けに設計されており、エージェントを常時オンラインに保つためのLLMトークンコストを大幅に削減し、本番システムで常時稼働・進化し続けるエージェントを実用的にします。 memUはユーザーの意図を継続的にキャプチャして理解します。コマンドがなくても、エージェントはあなたが何をしようとしているかを判断し、自ら行動します。


  • Download-and-use and simple to get started.
  • Builds long-term memory to understand user intent and act proactively.
  • Cuts LLM token cost with smaller context.

Try now: memU bot


🗃️ メモリはファイルシステム、ファイルシステムはメモリ

memUはメモリをファイルシステムのように扱います—構造化され、階層的で、即座にアクセス可能。

ファイルシステム memU メモリ
📁 フォルダ 🏷️ カテゴリ(自動整理されたトピック)
📄 ファイル 🧠 メモリアイテム(抽出された事実、好み、スキル)
🔗 シンボリックリンク 🔄 クロスリファレンス(関連メモリのリンク)
📂 マウントポイント 📥 リソース(会話、ドキュメント、画像)

なぜ重要か:

  • ディレクトリを閲覧するようにメモリをナビゲート—広いカテゴリから具体的な事実にドリルダウン
  • 新しい知識を即座にマウント—会話やドキュメントがクエリ可能なメモリに
  • すべてをクロスリンク—メモリが相互参照し、接続されたナレッジグラフを構築
  • 永続的でポータブル—ファイルのようにメモリをエクスポート、バックアップ、転送
memory/
├── preferences/
│   ├── communication_style.md
│   └── topic_interests.md
├── relationships/
│   ├── contacts/
│   └── interaction_history/
├── knowledge/
│   ├── domain_expertise/
│   └── learned_skills/
└── context/
    ├── recent_conversations/
    └── pending_tasks/

ファイルシステムが生のバイトを整理されたデータに変換するように、memUは生のインタラクションを構造化された、検索可能な、プロアクティブなインテリジェンスに変換します。


⭐️ リポジトリにスターを

memUが役立つまたは興味深いと思われた場合は、GitHub Star ⭐️をいただけると大変嬉しいです。

✨ コア機能

機能 説明
🤖 24/7プロアクティブエージェント バックグラウンドで継続的に動作する常時稼働メモリエージェント—眠らない、忘れない
🎯 ユーザー意図キャプチャ セッション間でユーザーの目標、好み、コンテキストを自動的に理解して記憶
💰 コスト効率 インサイトをキャッシュし、冗長なLLM呼び出しを避けることで長時間稼働のトークンコストを削減

🔄 プロアクティブメモリの仕組み

cd examples/proactive
python proactive.py

Proactive Memory Lifecycle

┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                         USER QUERY                                               │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
                 │                                                           │
                 ▼                                                           ▼
┌────────────────────────────────────────┐         ┌────────────────────────────────────────────────┐
│         🤖 MAIN AGENT                  │         │              🧠 MEMU BOT                       │
│                                        │         │                                                │
│  Handle user queries & execute tasks   │  ◄───►  │  Monitor, memorize & proactive intelligence   │
├────────────────────────────────────────┤         ├────────────────────────────────────────────────┤
│                                        │         │                                                │
│  ┌──────────────────────────────────┐  │         │  ┌──────────────────────────────────────────┐  │
│  │  1. RECEIVE USER INPUT           │  │         │  │  1. MONITOR INPUT/OUTPUT                 │  │
│  │     Parse query, understand      │  │   ───►  │  │     Observe agent interactions           │  │
│  │     context and intent           │  │         │  │     Track conversation flow              │  │
│  └──────────────────────────────────┘  │         │  └──────────────────────────────────────────┘  │
│                 │                      │         │                    │                           │
│                 ▼                      │         │                    ▼                           │
│  ┌──────────────────────────────────┐  │         │  ┌──────────────────────────────────────────┐  │
│  │  2. PLAN & EXECUTE               │  │         │  │  2. MEMORIZE & EXTRACT                   │  │
│  │     Break down tasks             │  │   ◄───  │  │     Store insights, facts, preferences   │  │
│  │     Call tools, retrieve data    │  │  inject │  │     Extract skills & knowledge           │  │
│  │     Generate responses           │  │  memory │  │     Update user profile                  │  │
│  └──────────────────────────────────┘  │         │  └──────────────────────────────────────────┘  │
│                 │                      │         │                    │                           │
│                 ▼                      │         │                    ▼                           │
│  ┌──────────────────────────────────┐  │         │  ┌──────────────────────────────────────────┐  │
│  │  3. RESPOND TO USER              │  │         │  │  3. PREDICT USER INTENT                  │  │
│  │     Deliver answer/result        │  │   ───►  │  │     Anticipate next steps                │  │
│  │     Continue conversation        │  │         │  │     Identify upcoming needs              │  │
│  └──────────────────────────────────┘  │         │  └──────────────────────────────────────────┘  │
│                 │                      │         │                    │                           │
│                 ▼                      │         │                    ▼                           │
│  ┌──────────────────────────────────┐  │         │  ┌──────────────────────────────────────────┐  │
│  │  4. LOOP                         │  │         │  │  4. RUN PROACTIVE TASKS                  │  │
│  │     Wait for next user input     │  │   ◄───  │  │     Pre-fetch relevant context           │  │
│  │     or proactive suggestions     │  │  suggest│  │     Prepare recommendations              │  │
│  └──────────────────────────────────┘  │         │  │     Update todolist autonomously         │  │
│                                        │         │  └──────────────────────────────────────────┘  │
└────────────────────────────────────────┘         └────────────────────────────────────────────────┘
                 │                                                           │
                 └───────────────────────────┬───────────────────────────────┘
                                             ▼
                              ┌──────────────────────────────┐
                              │     CONTINUOUS SYNC LOOP     │
                              │  Agent ◄──► MemU Bot ◄──► DB │
                              └──────────────────────────────┘

🎯 プロアクティブなユースケース

1. 情報レコメンデーション

エージェントが興味を監視し、関連コンテンツをプロアクティブに表示

# ユーザーがAIトピックを研究している
MemUが追跡: 閲覧履歴保存した記事検索クエリ

# 新しいコンテンツが到着したとき:
エージェント: "検索システムに関する最近の研究と一致する
              RAG最適化に関する3つの新しい論文を見つけました以前引用した著者チェン博士が昨日発表しました。"

# プロアクティブな行動:
- 閲覧パターンからトピックの好みを学習
- 著者/ソースの信頼性の好みを追跡
- エンゲージメント履歴に基づいてノイズをフィルタリング
- 最適な注意を引くタイミングでレコメンド

2. メール管理

エージェントがコミュニケーションパターンを学習し、日常的な通信を処理

# MemUが時間をかけてメールパターンを観察:
- 一般的なシナリオ用の応答テンプレート
- 優先連絡先と緊急キーワード
- スケジュールの好みと空き状況
- 文体とトーンのバリエーション

# プロアクティブなメールアシスタンス:
エージェント: "12件の新着メールがあります3件の定型リクエストへの
              返信を下書きし優先連絡先からの2件の緊急事項に
              フラグを付けましたジョンが言及した競合に基づいて
              明日のミーティングを再スケジュールしますか?"

# 自律的なアクション:コンテキストを考慮した返信を下書き受信トレイを分類して優先順位付けスケジュールの競合を検出長いスレッドの主要な決定を要約

3. トレーディング&財務モニタリング

エージェントが市場コンテキストとユーザーの投資行動を追跡

# MemUがトレーディングの好みを学習:
- 過去の決定からのリスク許容度
- 好みのセクターと資産クラス
- 市場イベントへの反応パターン
- ポートフォリオリバランスのトリガー

# プロアクティブなアラート:
エージェント: "NVDAが時間外取引で5%下落しました過去の行動から通常3%以上のテック株の下落時に購入しています現在の配分では70/30の株式-債券目標を維持しながら
              $2,000の追加エクスポージャーが可能です。"

# 継続的な監視:
- ユーザー定義のしきい値に関連する価格アラートを追跡
- ニュースイベントとポートフォリオへの影響を相関
- 実行された推奨と無視された推奨から学習
- タックスロスハーベスティングの機会を予測

...


🗂️ 階層メモリアーキテクチャ

MemUの3層システムは、リアクティブクエリプロアクティブコンテキストロードの両方を可能にします:

structure

レイヤー リアクティブ使用 プロアクティブ使用
リソース 元データへの直接アクセス 新パターンのバックグラウンド監視
アイテム ターゲットを絞った事実検索 進行中のインタラクションからのリアルタイム抽出
カテゴリ サマリーレベルの概要 予測のための自動コンテキスト組み立て

プロアクティブな利点:

  • 自動分類:新しいメモリがトピックに自己組織化
  • パターン検出:システムが繰り返し現れるテーマを特定
  • コンテキスト予測:次に必要な情報を予測

🚀 クイックスタート

オプション1:クラウドバージョン

プロアクティブメモリを即座に体験:

👉 memu.so - 7×24継続学習を備えたホストサービス

カスタムプロアクティブワークフローを含むエンタープライズデプロイメントについては、info@nevamind.ai にお問い合わせください

クラウドAPI (v3)

ベースURL https://api.memu.so
認証 Authorization: Bearer YOUR_API_KEY
メソッド エンドポイント 説明
POST /api/v3/memory/memorize 継続学習タスクを登録
GET /api/v3/memory/memorize/status/{task_id} リアルタイム処理ステータスを確認
POST /api/v3/memory/categories 自動生成されたカテゴリを一覧表示
POST /api/v3/memory/retrieve メモリをクエリ(プロアクティブコンテキストロードをサポート)

📚 完全なAPIドキュメント


オプション2:セルフホスト

インストール

pip install -e .

基本例

要件:Python 3.13+ と OpenAI APIキー

継続学習をテスト(インメモリ):

export OPENAI_API_KEY=your_api_key
cd tests
python test_inmemory.py

永続ストレージでテスト(PostgreSQL):

# pgvectorを含むPostgreSQLを起動
docker run -d \
  --name memu-postgres \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_PASSWORD=postgres \
  -e POSTGRES_DB=memu \
  -p 5432:5432 \
  pgvector/pgvector:pg16

# 継続学習テストを実行
export OPENAI_API_KEY=your_api_key
cd tests
python test_postgres.py

両方の例はプロアクティブメモリワークフローを示しています:

  1. 継続的な取り込み:複数のファイルを順次処理
  2. 自動抽出:即座のメモリ作成
  3. プロアクティブ検索:コンテキストに応じたメモリ表示

実装の詳細については tests/test_inmemory.pytests/test_postgres.py を参照してください。


カスタムLLMと埋め込みプロバイダー

MemUはOpenAI以外のカスタムLLMと埋め込みプロバイダーをサポートしています。llm_profilesで設定:

from memu import MemUService

service = MemUService(
    llm_profiles={
        # LLM操作のデフォルトプロファイル
        "default": {
            "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
            "api_key": "your_api_key",
            "chat_model": "qwen3-max",
            "client_backend": "sdk"  # "sdk" または "http"
        },
        # 埋め込み用の別プロファイル
        "embedding": {
            "base_url": "https://api.voyageai.com/v1",
            "api_key": "your_voyage_api_key",
            "embed_model": "voyage-3.5-lite"
        }
    },
    # ... その他の設定
)

OpenRouter統合

MemUはOpenRouterをモデルプロバイダーとしてサポートし、単一のAPIを通じて複数のLLMプロバイダーにアクセスできます。

設定

from memu import MemoryService

service = MemoryService(
    llm_profiles={
        "default": {
            "provider": "openrouter",
            "client_backend": "httpx",
            "base_url": "https://openrouter.ai",
            "api_key": "your_openrouter_api_key",
            "chat_model": "anthropic/claude-3.5-sonnet",  # 任意のOpenRouterモデル
            "embed_model": "openai/text-embedding-3-small",  # 埋め込みモデル
        },
    },
    database_config={
        "metadata_store": {"provider": "inmemory"},
    },
)

環境変数

変数 説明
OPENROUTER_API_KEY openrouter.ai/keys からのOpenRouter APIキー

サポートされている機能

機能 ステータス 注記
チャット補完 サポート済み 任意のOpenRouterチャットモデルで動作
埋め込み サポート済み OpenRouter経由でOpenAI埋め込みモデルを使用
ビジョン サポート済み ビジョン対応モデルを使用(例:openai/gpt-4o

OpenRouterテストの実行

export OPENROUTER_API_KEY=your_api_key

# フルワークフローテスト(メモリ化 + 検索)
python tests/test_openrouter.py

# 埋め込み固有のテスト
python tests/test_openrouter_embedding.py

# ビジョン固有のテスト
python tests/test_openrouter_vision.py

完全な動作例については examples/example_4_openrouter_memory.py を参照してください。


📖 コアAPI

memorize() - 継続学習パイプライン

入力をリアルタイムで処理し、メモリを即座に更新:

memorize

result = await service.memorize(
    resource_url="path/to/file.json",  # ファイルパスまたはURL
    modality="conversation",            # conversation | document | image | video | audio
    user={"user_id": "123"}             # オプション:ユーザーにスコープ
)

# 抽出されたメモリを即座に返す:
{
    "resource": {...},      # 保存されたリソースメタデータ
    "items": [...],         # 抽出されたメモリアイテム(即座に利用可能)
    "categories": [...]     # 自動更新されたカテゴリ構造
}

プロアクティブ機能:

  • 遅延ゼロの処理—メモリが即座に利用可能
  • 手動タグ付けなしの自動分類
  • パターン検出のための既存メモリとの相互参照

retrieve() - デュアルモードインテリジェンス

MemUはプロアクティブコンテキストロードリアクティブクエリの両方をサポート:

retrieve

RAGベースの検索 (method="rag")

埋め込みを使用した高速なプロアクティブコンテキスト組み立て

  • インスタントコンテキスト:サブ秒のメモリ表示
  • バックグラウンド監視:LLMコストなしで継続的に実行可能
  • 類似度スコアリング:最も関連性の高いメモリを自動的に特定

LLMベースの検索 (method="llm")

複雑なコンテキストのための深い予測的推論

  • 意図予測:LLMがユーザーが尋ねる前にニーズを推測
  • クエリ進化:コンテキストの発展に応じて検索を自動的に改善
  • 早期終了:十分なコンテキストが収集されたら停止

比較

側面 RAG(高速コンテキスト) LLM(深い推論)
速度 ⚡ ミリ秒 🐢 秒
コスト 💰 埋め込みのみ 💰💰 LLM推論
プロアクティブ使用 継続的な監視 トリガーされたコンテキストロード
最適な用途 リアルタイムの提案 複雑な予測

使用方法

# コンテキスト履歴を含むプロアクティブ検索
result = await service.retrieve(
    queries=[
        {"role": "user", "content": {"text": "彼らの好みは何ですか?"}},
        {"role": "user", "content": {"text": "仕事の習慣について教えて"}}
    ],
    where={"user_id": "123"},  # オプション:スコープフィルター
    method="rag"  # または "llm" でより深い推論
)

# コンテキストに応じた結果を返す:
{
    "categories": [...],     # 関連トピック領域(自動優先順位付け)
    "items": [...],          # 具体的なメモリファクト
    "resources": [...],      # 追跡可能な元ソース
    "next_step_query": "..." # 予測されたフォローアップコンテキスト
}

プロアクティブフィルタリングwhereを使用して継続的な監視のスコープを設定:

  • where={"user_id": "123"} - ユーザー固有のコンテキスト
  • where={"agent_id__in": ["1", "2"]} - マルチエージェント調整
  • whereを省略してグローバルコンテキスト認識

📚 完全なAPIドキュメントについては、SERVICE_API.md を参照 - プロアクティブワークフローパターン、パイプライン設定、リアルタイム更新処理を含む。


💡 プロアクティブシナリオ

例1:常に学習するアシスタント

明示的なメモリコマンドなしで、すべてのインタラクションから継続的に学習:

export OPENAI_API_KEY=your_api_key
python examples/example_1_conversation_memory.py

プロアクティブな動作:

  • カジュアルな言及から好みを自動的に抽出
  • インタラクションパターンから関係モデルを構築
  • 将来の会話で関連コンテキストを表示
  • 学習した好みに基づいてコミュニケーションスタイルを適応

最適な用途: パーソナルAIアシスタント、記憶するカスタマーサポート、ソーシャルチャットボット


例2:自己改善エージェント

実行ログから学習し、最適化をプロアクティブに提案:

export OPENAI_API_KEY=your_api_key
python examples/example_2_skill_extraction.py

プロアクティブな動作:

  • エージェントのアクションと結果を継続的に監視
  • 成功と失敗のパターンを特定
  • 経験からスキルガイドを自動生成
  • 類似の将来のタスクに対する戦略をプロアクティブに提案

最適な用途: DevOps自動化、エージェントの自己改善、ナレッジキャプチャ


例3:マルチモーダルコンテキストビルダー

包括的なコンテキストのために異なる入力タイプ全体でメモリを統合:

export OPENAI_API_KEY=your_api_key
python examples/example_3_multimodal_memory.py

プロアクティブな動作:

  • テキスト、画像、ドキュメントを自動的に相互参照
  • モダリティ全体で統一された理解を構築
  • 関連トピックについて議論する際に視覚的コンテキストを表示
  • 複数のソースを組み合わせて情報ニーズを予測

最適な用途: ドキュメントシステム、学習プラットフォーム、研究アシスタント


📊 パフォーマンス

MemUは、すべての推論タスクでLocomoベンチマークで92.09%の平均精度を達成し、信頼性の高いプロアクティブメモリ操作を実証しています。

benchmark

詳細な実験データを見る:memU-experiment


🧩 エコシステム

リポジトリ 説明 プロアクティブ機能
memU コアプロアクティブメモリエンジン 7×24学習パイプライン、自動分類
memU-server 継続同期を備えたバックエンド リアルタイムメモリ更新、webhookトリガー
memU-ui ビジュアルメモリダッシュボード ライブメモリ進化モニタリング

クイックリンク:


🤝 パートナー

Ten OpenAgents Milvus xRoute Jazz Buddie Bytebase LazyLLM


🤝 コントリビュート方法

コミュニティからのコントリビュートを歓迎します!バグの修正、機能の追加、ドキュメントの改善など、あなたの助けに感謝します。

はじめに

MemUへのコントリビュートを開始するには、開発環境をセットアップする必要があります:

前提条件

  • Python 3.13+
  • uv(Pythonパッケージマネージャー)
  • Git

開発環境のセットアップ

# 1. リポジトリをフォークしてクローン
git clone https://github.com/YOUR_USERNAME/memU.git
cd memU

# 2. 開発依存関係をインストール
make install

make install コマンドは:

  • uvを使用して仮想環境を作成
  • すべてのプロジェクト依存関係をインストール
  • コード品質チェックのためのpre-commitフックをセットアップ

品質チェックの実行

コントリビュートを提出する前に、コードがすべての品質チェックに合格していることを確認してください:

make check

make check コマンドは:

  • ロックファイル検証pyproject.tomlの一貫性を確認
  • Pre-commitフック:Ruffでコードをリント、Blackでフォーマット
  • 型チェック:静的型分析のためのmypyを実行
  • 依存関係分析deptryで古い依存関係を検索

コントリビューションガイドライン

詳細なコントリビューションガイドライン、コード標準、開発プラクティスについては、CONTRIBUTING.md を参照してください。

クイックヒント:

  • 各機能またはバグ修正用に新しいブランチを作成
  • 明確なコミットメッセージを書く
  • 新機能にテストを追加
  • 必要に応じてドキュメントを更新
  • プッシュ前に make check を実行

📄 ライセンス

Apache License 2.0


🌍 コミュニティ


GitHubでスターを付けて、新しいリリースの通知を受け取りましょう!