mcpField
B
Becomer: LLM-agnostic persistent memory API. Store and recall memories across GPT, Claude, Gemini, or any model — zero tokens per recall.

Becomer: LLM-agnostic persistent memory API. Store and recall memories across GPT, Claude, Gemini, or any model — zero tokens per recall.

ローカル
github.com/Becomer-netAI・エージェント221 週間前に更新

Becomer: LLM-agnostic persistent memory API. Store and recall memories across GPT, Claude, Gemini, or any model — zero tokens per recall. について

BECOMERは、セッションをまたいで情報を保存・取得するAIアプリ向けのメモリーAPIです。Python SDKとREST APIに加え、MCP連携とuser_id単位の分離に対応します。

主な機能

  1. 01セッションをまたぐメモリーの保存と取得
  2. 02user_idごとのメモリー分離
  3. 03Python SDKとREST API
  4. 04保存済みメモリーの削除と統合

活用シーン

  1. 01会話をまたいでユーザー設定を保持
  2. 02アプリのユーザーごとにメモリーを分離
  3. 03AIアプリ向けの関連情報の取得

MCP 対応

BECOMERはMCPサーバーとして動作し、対応ホストからメモリーの保存と取得を行えます。user_idによるユーザー単位の分離にも対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

BECOMER — AI アプリケーション向けメモリー API

PyPI License: MIT LongMemEval

3 行のコードで、AI アプリに永続的なメモリーを追加できます。

from becomer import Client
mem = Client("bk-your-api-key")
mem.store("User prefers dark mode and speaks French")
memories = mem.recall("user preferences")  # → ['User prefers dark mode...']

→ 無料の API キーを取得 · ドキュメント · ベンチマーク · サンプル


BECOMER を選ぶ理由

多くのメモリーソリューションはベクトルストアを追加しただけで完成としています。BECOMER は、長期的な会話メモリーを評価する標準的な学術ベンチマークである LongMemEval に照らして性能を測定した、独自の検索エンジンを採用しています。

ベンチマークBECOMERHindsight(次点)
LongMemEval(500 件のプローブ)94.4%91.4%

94.4% という数値は、ユーザーが「先週、食事について何を伝えた?」と尋ねたとき、正しいメモリーが呼び出されることを意味します。曖昧に関連するものではなく、正しい情報が呼び出されます。


インストール

pip install becomer

依存関係はありません。Python の標準ライブラリのみで動作します。


クイックスタート

from becomer import Client

mem = Client("bk-your-api-key")

# Store anything worth remembering
mem.store("User is building a React app, prefers TypeScript")
mem.store("User's name is Sarah, she's a senior engineer at Stripe")

# Recall before each LLM call
context = mem.recall("what do I know about the user?")
# → ['User is building a React app, prefers TypeScript',
#    "User's name is Sarah, she's a senior engineer at Stripe"]

# Build your prompt with memory injected
system_prompt = "You are a helpful assistant.\n\nWhat you remember:\n" + "\n".join(context)

3 つの統合方法

1. Python SDK(このリポジトリ)
from becomer import Client
mem = Client("bk-your-api-key")
mem.store("...")
mem.recall("...")
2. MCP — Claude Desktop、Cursor、あらゆる MCP ホストで動作
{
  "mcpServers": {
    "becomer": {
      "command": "python",
      "args": ["-m", "becomer"],
      "env": { "BECOMER_API_KEY": "bk-your-api-key" }
    }
  }
}

Claude はセッションをまたいで、メモリーを自動的に保存および呼び出します。コードを変更する必要はありません。

3. REST API — 言語を問わず利用可能
# Store
curl -X POST https://becomer.net/v1/store \
  -H "Authorization: Bearer bk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"content": "User prefers concise answers"}'

# Recall
curl -X POST https://becomer.net/v1/recall \
  -H "Authorization: Bearer bk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"query": "user preferences", "top_k": 5}'

マルチテナント(1 つのキーで複数のユーザーに対応)

各ユーザー専用の分離されたメモリーが必要なプロダクトを開発していますか?user_id を渡すだけで利用できます。追加のキーは不要です。

from becomer import Client

# One master key for your whole app
mem = Client("bk-your-master-key", user_id="user-alice")
mem.store("Alice prefers Python over JavaScript")

# Different user — completely isolated memory space
mem_bob = Client("bk-your-master-key", user_id="user-bob")
mem_bob.recall("programming preferences")  # → [] (can't see Alice's memories)

# Or override per-call
mem = Client("bk-your-master-key")
mem.store("Bob uses dark mode", user_id="user-bob")
mem.recall("preferences", user_id="user-alice")  # → Alice's memories only

ユーザーごとに分離した MCP:

{
  "mcpServers": {
    "becomer": {
      "command": "python",
      "args": ["-m", "becomer"],
      "env": {
        "BECOMER_API_KEY": "bk-your-master-key",
        "BECOMER_USER_ID": "alice-123"
      }
    }
  }
}

REST API:

curl -X POST https://becomer.net/v1/store \
  -H "Authorization: Bearer bk-your-master-key" \
  -H "Content-Type: application/json" \
  -d '{"content": "Alice prefers dark mode", "user_id": "alice-123"}'

user_id には、UUID、ユーザー名、メールアドレスなど、アプリ内部で使用している任意の文字列を指定できます。異なる user_id 間のメモリーは完全に分離されます。料金はマスターキーに対して計上されます。


LangChain

from langchain.memory import BaseMemory
from becomer import Client
from pydantic import Field

class BecomerMemory(BaseMemory):
    client: object = Field(default=None)
    memory_key: str = "history"

    def __init__(self, api_key: str, **kwargs):
        super().__init__(**kwargs)
        self.client = Client(api_key)

    @property
    def memory_variables(self):
        return [self.memory_key]

    def load_memory_variables(self, inputs):
        query = inputs.get("input", "")
        memories = self.client.recall(query)
        return {self.memory_key: "\n".join(memories)}

    def save_context(self, inputs, outputs):
        self.client.store(f"User: {inputs.get('input','')} | AI: {outputs.get('output','')}")

    def clear(self):
        self.client.forget()

# Usage
from langchain.chains import ConversationChain
from langchain_openai import ChatOpenAI

chain = ConversationChain(
    llm=ChatOpenAI(model="gpt-4o"),
    memory=BecomerMemory(api_key="bk-your-api-key")
)
chain.predict(input="My name is Sarah and I work at Stripe")
# Next session — Sarah is still remembered.

OpenAI / Anthropic との直接連携

import openai
from becomer import Client

mem = Client("bk-your-api-key")

def chat(user_message: str) -> str:
    context = mem.recall(user_message)
    system = "You are a helpful assistant."
    if context:
        system += "\n\nWhat you remember about the user:\n" + "\n".join(f"- {m}" for m in context)

    response = openai.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": system},
            {"role": "user", "content": user_message},
        ]
    )
    reply = response.choices[0].message.content
    mem.store(f"User said: {user_message}")
    return reply

API リファレンス

メソッド説明
Client(api_key, user_id=None)クライアントを作成します。user_id はすべての呼び出しをサブユーザー単位に名前空間化します。
store(content, user_id=None)メモリーを保存します
recall(query, top_k=5, user_id=None)関連性の高いメモリーを上位 k 件取得します
forget(user_id=None)このキー(またはサブユーザー)のすべてのメモリーを削除します
sync(user_id=None)ワーキングメモリーを長期ストレージに統合します

REST API の全ドキュメント → becomer.net/docs.html


サンプル

ファイルフレームワーク
quickstart.pyプレーンな Python
openai_chat.pyOpenAI SDK
anthropic_chat.pyAnthropic SDK
langchain_memory.pyLangChain
langgraph_memory.pyLangGraph
llamaindex_memory.pyLlamaIndex
crewai_memory.pyCrewAI
autogen_memory.pyAutoGen
mcp.jsonMCP(Claude Desktop / Cursor)
mcp_multitenant.jsonMCP マルチテナント

料金

プラン月間呼び出し回数価格
Free1,000永年無料
Pro50,000₹1,140/月

無料で始める →


開発元

Obsidex Pvt Limited · Aravind Balaji、創業者 · [email protected]

コメント

MCP は初めてですか?

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

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