Mengram について
Mengram は、AI エージェント向けに事実、出来事、進化するワークフローを保存し、開発者がセッションをまたいで文脈を引き継げるようにします。クラウドとローカルの記憶、23 言語での検索、自動保存と想起に対応します。
主な機能
- 01意味・エピソード・手順の記憶
- 02失敗のフィードバックによる手順の進化
- 03引用付きの記憶への質問
- 0423 言語での検索
- 05セッションフックによる自動保存と想起
- 06ローカル Markdown 記憶フォルダー
活用シーン
- 01新しいセッションでプロジェクトの文脈を復元
- 02過去の判断やデプロイの出来事を検索
- 03失敗の教訓を再利用可能な手順に反映
- 04ローカルフォルダーでエージェントの記憶を管理
MCP 対応
Mengram は、Claude Desktop や Cursor などのクライアントが記憶にアクセスするための MCP サーバーを提供します。ローカルモードでも MCP サーバーを起動できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mengram.io/mcpclaude mcp add --transport http mengram https://mengram.io/mcp{"mcpServers":{"mengram":{"type":"http","url":"https://mengram.io/mcp"}}}Cursor で開く{"servers":{"mengram":{"type":"http","url":"https://mengram.io/mcp"}}}VS Code で開く{"mcpServers":{"mengram":{"type":"http","url":"https://mengram.io/mcp"}}}{"mcpServers":{"mengram":{"serverUrl":"https://mengram.io/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mengram.io/mcp認証が必要ツール
詳細
pip install mengram-ai # the CLI; JS SDK: npm install mengram-ai
mengram try # see what memory would know about you — local only,
# no account, nothing leaves your machine
from mengram import Mengram
m = Mengram(api_key="om-...") # Free key → mengram.io
m.add([{"role": "user", "content": "I use Python and deploy to Railway"}])
m.search("tech stack") # → facts
m.ask("what's my tech stack?") # → synthesized answer + citations
m.episodes(query="deployment") # → events
m.procedures(query="deploy") # → workflows that evolve from failures
ネイティブな多言語対応:ロシア語、中国語、スペイン語、日本語で質問すると、Mengram が23言語にわたって検索し、回答します(Cohere の多言語埋め込み+再ランキング)。
1つのプロンプトでインストール(あらゆるAIツールに対応)
これを Claude Desktop、Cursor、Codex、Claude Code、または Windsurf に貼り付けてください。エージェントがセットアップガイドを読み、SDKをインストールし、MCP サーバーを設定して、最初から最後までの一連の動作を検証します。ターミナルに切り替える必要はありません。
Install Mengram for me. Fetch the canonical install guide at
https://mengram.io/agent-install.txt and follow it precisely.
My email is YOUR_EMAIL_HERE.
シェル、ファイル編集、ウェブ取得のツールを備えたあらゆるエージェントで動作します。手動で設定したい場合は、プレーンテキストのガイドをご覧ください。人が読みやすい構成にもなっています。
Claude Code — /clear と自動コンパクション後も残るメモリ
/clear、自動コンパクション、マシンの切り替え、チームへの引き継ぎを越えて持続するメモリです。SessionStart フックはコンパクションのたびに実行され、コンテキストを再注入します。要約で情報が失われることはあっても、メモリは失われません。
# 1. Get a free key at https://mengram.io and save it once
mkdir -p ~/.mengram && echo '{"api_key": "om-your-key-here"}' > ~/.mengram/config.json
# 2. Install the plugin (hooks + MCP server + skill)
claude plugin marketplace add alibaizhanov/mengram
claude plugin install mengram@mengram
# 3. Skip the cold start — import your existing session history
# (secrets are redacted on your machine before anything is uploaded)
mengram import claude-code
実行されること:
Session Start → Loads your cognitive profile (fires after /clear, compaction, and restarts)
Every Prompt → Searches past sessions for relevant context (auto-recall)
After Response → Saves new knowledge in background (auto-save)
Before a Bash → If the command matches a learned workflow with a weak record, asks you first (policy gate, CLI hooks)
Before compact → Writes the working state down — last prompts, files edited, last commands, where Claude left off (CLI hooks)
After compact → Puts that state back, verbatim, next to the host's summary — and tells you so in one line
手動で保存する必要はありません。ツールを呼び出す必要もありません。コンパクションで会話の記録が消えた後でも、Claude は昨日取り組んだことを把握しています。
プラグインではなくCLIでフックを管理したい場合は、pip install mengram-ai && mengram setup を実行すると、mengram hook install を通じて同じ設定が行われます。
Codex と Cursor でも同じメモリを共有
Codex と Cursor は同じライフサイクルイベントを発生させるため、同じフックが実行されます。つまり、3 つすべてで 1 つのメモリを共有できます。mengram setup はマシン上でそれらを見つけてフックをインストールします。または、1 つずつ追加することもできます。
mengram hook install --codex # ~/.codex/hooks.json: session context, recall on every prompt, compaction checkpoint, auto-save + task card
mengram hook install --cursor # ~/.cursor/hooks.json: session context, compaction checkpoint (back on the next tool call), auto-save
Cursor にはプロンプトごとのコンテキストフックがありません(beforeSubmitPrompt でできるのは許可またはブロックのみです)。そのため、会話の途中での呼び出しは MCP ツール経由で要求したときに行われます。セッション開始時とコンパクション時の処理は自動です。
すべての事実には、どのツールがいつ書き込んだかが記録され、呼び出し時に表示されます。例:deploys to Fly.io from main (codex, 2026-09-15)。各フックは、実行中の OS とツールもサーバーに伝えます。そのため、Mac で記録されたワークスペースのパスが Linux マシン上の Claude Code セッションに届くことはなく、Cursor の設定に関する事実が Codex に届くこともありません。こうした事実は除外され、件数が記録されます(facts_left_out_for_host)。
中断したタスクを続きから再開 — mengram resume
エージェントが停止すると、フックはリポジトリとブランチごとにタスクカードを書き込みます。カードには、変更したファイル、最後に実行したコマンド、最後に実行したテストとそのテストを実行したコミットに加えて、タスクについてのエージェントの下書き、完了したこと、残っていることが記載されます。翌日、同じブランチでの別のセッション、別のワークツリーにいる別のエージェント、別のマシンなど、次のセッションで最初にカードが渡され、前回の確認からコードが変更されている場合はその旨が伝えられます。独自のカードがないブランチ(たとえば新しい Orca ワークツリー)でのセッションには、カードが存在することだけが伝えられます。別のブランチのカードは、通常、別のエージェントのタスクに関するものだからです。mengram resume を実行すると、要求に応じてカードを表示できます。
$ mengram resume
[Mengram resume — where this task stands (2 h ago, from claude-code, branch main)]
Task (agent draft, not confirmed): prepare the Dify example for publication
Done:
- three workflows assembled
- save/recall round-trip checked through the API
Remaining:
- import the workflows into Dify and check the model's answers
Last check: `python3 -m pytest -q tests/test_dify.py` → 4 passed in 0.31s
The last check ran on 57cdde9; HEAD is now a1b2c3d (4 commits later). Its result describes the earlier state.
Files touched: examples/dify-support/workflow.yml
Sources: session 5d274778 · commit 57cdde9
mengram resume --open はローカルページを表示し、カードの修正、確認(確認済みのテキストは再び下書きされません)、別のタスクの選択、新しいセッション用のコンテキストのコピーができます。カードは ~/.mengram/resume/ に保存され、アカウントは不要です。モデルを使用するのは、タスク/完了事項/残作業の下書きだけです。
アカウントがなくても、フォルダーにメモリを保存
pip install mengram-ai
mengram local init ./memory --provider anthropic --api-key sk-ant-... # or openai / ollama
mengram import claude-code --memory ./memory # seed it from your Claude Code sessions
mengram local map --memory ./memory --open # one page: who you are, what happened, what it learned
mengram hook install --memory ./memory # the same four hooks, all local
mengram server --memory ./memory # MCP for Claude Desktop, Cursor, any client
フォルダーそのものがメモリです。自分で管理する memfmt の Markdown ツリーで、git で差分を確認でき、Obsidian で表示でき、memfmt validate で検証できます。クラウド版と同じく、結果を伴う手順を保存します。バージョン、ステップごとの成功/失敗回数、ポリシーゲート、別のワークフローを壊す修正を隔離するリグレッションゲートが含まれます。モデルが必要なのは抽出と失敗時の改訂だけで、そのモデルは自分で用意します。期限切れになるものはなく、キーを要求されることもありません。ドキュメント。
ローカル検索はロシア語を含む Unicode テキストの単語に一致します。埋め込みを使用せず、クエリも翻訳しません。複数の Mengram セッションはフォルダーロックを使って書き込みを調整し、独立した追加内容をマージします。編集内容が競合した場合は、別のセッションの内容を上書きするのではなく、再読み込みが必要になります。変更された各ファイルはアトミックに置き換えられますが、フォルダー全体が単一のクラッシュアトミックなトランザクションになるわけではなく、外部エディターはロックに参加しません。
なぜMengramなのか?
AIのメモリツールはどれも事実を保存します。Mengramは3種類のメモリを保存し、手順は失敗すると進化します。
| Mengram | claude-mem | Mem0 | Zep | Letta | |
|---|---|---|---|---|---|
| セマンティックメモリ(事実、好み) | あり | あり | あり | あり | あり |
| エピソードメモリ(出来事、決定) | あり | 一部 | なし | なし | 一部 |
| 手続きメモリ(ワークフロー) | あり | なし | なし | なし | なし |
| 失敗から手順が進化 | あり | なし | なし | なし | なし |
| 認知プロファイル | あり | なし | なし | なし | なし |
| ネイティブな多言語検索(23言語) | あり | 一部 | なし | なし | なし |
| 質問と引用(統合された回答) | あり | なし | なし | なし | なし |
| 複数ユーザーの分離 | あり | なし | あり | あり | なし |
| ナレッジグラフ | あり | なし | あり | あり | あり |
| Claude Code フック(自動保存/呼び出し) | あり | あり | なし | なし | なし |
| MCP サーバー | あり | あり | あり | あり | あり |
| LangChain + CrewAI 連携 | あり | なし | 一部 | 一部 | 一部 |
| Claude Code 履歴/ChatGPT/Obsidian のインポート | あり | なし | なし | なし | なし |
| 料金 | 無料プラン | 無料のOSS(+クラウドバックアップ) | $19-249/月 | エンタープライズ | セルフホスト |
30秒で始める
1. インストール
pip install mengram-ai
2. セットアップ — 1つのコマンドですべて実行します:アカウント、Claude Code フック、検出されたツール(Cursor、Claude Desktop、Windsurf)用のMCP設定、履歴のインポート、往復チェック
mengram setup
または、mengram.ioでキーを手動で取得し、export MENGRAM_API_KEY=om-...を実行します
3. 使用
from mengram import Mengram
m = Mengram(api_key="om-...")
# Add a conversation — auto-extracts facts, events, and workflows
m.add([
{"role": "user", "content": "Deployed to Railway today. Build passed but forgot migrations — DB crashed. Fixed by adding a pre-deploy check."},
])
# Search across all 3 memory types at once
results = m.search_all("deployment issues")
# → {semantic: [...], episodic: [...], procedural: [...]}
ファイルのアップロード(PDF、DOCX、TXT、MD)
# Upload a PDF — auto-extracts memories using vision AI
result = m.add_file("meeting-notes.pdf")
# → {"status": "accepted", "job_id": "job-...", "page_count": 12}
# Poll for completion
m.job_status(result["job_id"])
// Node.js — pass a file path
await m.addFile('./report.pdf');
// Browser — pass a File object from <input type="file">
await m.addFile(fileInput.files[0]);
# REST API
curl -X POST https://mengram.io/v1/add_file \
-H "Authorization: Bearer om-..." \
-F "[email protected]" \
-F "user_id=default"
JavaScript / TypeScript
npm install mengram-ai
const { MengramClient } = require('mengram-ai');
const m = new MengramClient('om-...');
await m.add([{ role: 'user', content: 'Fixed OOM by adding Redis cache layer' }]);
const results = await m.searchAll('database issues');
// → { semantic: [...], episodic: [...], procedural: [...] }
REST API(curl)
# Add memory
curl -X POST https://mengram.io/v1/add \
-H "Authorization: Bearer om-..." \
-H "Content-Type: application/json" \
-d '{"messages": [{"role": "user", "content": "I prefer dark mode and vim keybindings"}]}'
# Search all 3 types
curl -X POST https://mengram.io/v1/search/all \
-H "Authorization: Bearer om-..." \
-d '{"query": "user preferences"}'
3種類のメモリ
セマンティック — 事実、好み、知識
m.search("tech stack")
# → ["Uses Python 3.12", "Deploys to Railway", "PostgreSQL with pgvector"]
エピソード — 出来事、決定、結果
m.episodes(query="deployment")
# → [{summary: "DB crashed due to missing migrations", outcome: "resolved", date: "2025-05-12"}]
手続き — 進化するワークフロー
Week 1: "Deploy" → build → push → deploy
↓ FAILURE: forgot migrations
Week 2: "Deploy" v2 → build → run migrations → push → deploy
↓ FAILURE: OOM
Week 3: "Deploy" v3 → build → run migrations → check memory → push → deploy ✅
失敗を報告すると、これは自動的に行われます:
m.procedure_feedback(proc_id, success=False,
context="OOM error on step 3", failed_at_step=3)
# → Procedure evolves to v3 with new step added
失敗に基づく改訂では、失敗したステップだけでなく、誤りだと判明した前提もすべて記録し、呼び出し時に手順とともに提示される事前条件を導き出します:
{
"version": 3,
"violated_assumption": "the build container had enough memory for a full build",
"preconditions": ["check available memory before building"],
"success_count": 11, "fail_count": 2
}
v3を読み込むエージェントは、それを生み出した2つの間違いを繰り返さず、ワークフローを信頼する前に何を確認すべきかも把握できます。
または完全に自動で実行できます。会話を追加するだけで、Mengramが失敗を検出し、手順を進化させます:
m.add([{"role": "user", "content": "Deploy failed again — OOM on the build step"}])
# → Episode created → linked to "Deploy" procedure → failure detected → v3 created
メモリに質問する(RAG組み込み)
m.ask()は、生の事実リストではなく、引用付きの統合された回答を返します。
Mengramはクエリを埋め込み、関連性の高い事実を上位から取得し、
Cohere Chatを使って、出典をネイティブに示す根拠に基づいた回答を作成します。
result = m.ask("what programming languages do I use?")
print(result["answer"])
# 'You use Python and Rust. Python is your daily language [1] and
# Rust is your favorite [2]. You also know Java for enterprise
# systems [3].'
for cit in result["citations"]:
print(f' "{cit["text"]}" → {cit["sources"][0]["fact"]}')
# "Python and Rust" → uses Python daily for backend development
# "favorite [2]" → Rust is favorite language
# "Java" → specializes in Java/Spring Boot
多言語対応:23言語のどの言語で質問しても、同じ言語で回答が得られ、引用から保存時の元の言語の事実に戻れます。プレミアム機能(Pro / Growth / Business)です。
認知プロファイル
1回のAPI呼び出しで、すべてのメモリからシステムプロンプトを生成します:
profile = m.get_profile()
# → "You are talking to Ali, a developer in Almaty. Uses Python, PostgreSQL,
# and Railway. Recently debugged pgvector deployment. Prefers direct
# communication and practical next steps."
あらゆるLLMのシステムプロンプトに挿入して、すぐにパーソナライズできます。
既存データのインポート
コールドスタート問題を解消します:
mengram import chatgpt ~/Downloads/chatgpt-export.zip --cloud # ChatGPT history
mengram import obsidian ~/Documents/MyVault --cloud # Obsidian vault
mengram import files notes/*.md --cloud # Any text/markdown
インテグレーション
|
Claude Code — 自動メモリーフック
5 つのフック:開始時のプロフィール、各プロンプトでの想起、応答後の保存、ワークフロー形式の Bash コマンド実行前のポリシーゲート、および各ステップの実行後にその結果を記録します。 レシート。 機能するメモリーは目に見えないため、各フックは記録を残し、次のセッションはその集計から始まります:「Mengram、前回のセッション:4 つのプロンプトでメモリーを想起 · 記録が不十分な 1 つのワークフローの前に確認 · 3 つのステップ結果を記録(2 件成功、1 件失敗)」。何も起きなければ通知はありません。 ポリシーゲート。 結果の順位付けだけでなく、結果の履歴によってエージェントが実行できることも変わります。 |
MCP Server — Claude Desktop、Cursor、Codex、Windsurf、Cline
メモリー管理用の 30 個のツール。 |
|
LangChain —
|
CrewAI
|
|
OpenClaw
各ターンの前に自動で想起し、後に自動で記録します。12 個のツール、スラッシュコマンド、Graph RAG に対応しています。 |
CLI — コマンドラインインターフェース一式
|
|
Claude Managed Agents — ホスト型エージェント向け MCP メモリー
MCP 経由で 30 個のメモリーツールを利用できます。ドキュメント |
n8n — あらゆるワークフロー向けの HTTP ノード
コードは不要です。メモリーをドラッグ&ドロップするだけで、あらゆる n8n ワークフローに追加できます。 |
マルチユーザー分離
1 つの API キーで複数のユーザーに対応し、それぞれが自分のデータのみを参照できます:
m.add([...], user_id="alice")
m.add([...], user_id="bob")
m.search_all("preferences", user_id="alice") # Only Alice's memories
m.get_profile(user_id="alice") # Alice's cognitive profile
非同期クライアント
httpx を基盤とする、ノンブロッキングの Python クライアントです:
from mengram import AsyncMengram
async with AsyncMengram() as m:
await m.add([{"role": "user", "content": "I use async/await"}])
results = await m.search("async")
profile = await m.get_profile()
pip install mengram-ai[async] でインストールします。
メタデータフィルター
メタデータで検索結果を絞り込みます:
results = m.search("config", filters={"agent_id": "support-bot", "app_id": "prod"})
Webhook
メモリーが変更されたときに通知を受け取ります:
m.create_webhook(
url="https://your-app.com/hook",
event_types=["memory_add", "memory_update"],
)
エージェントテンプレート
クローンし、API キーを設定して、5 分で実行できます:
| テンプレート | スタック | 内容 |
|---|---|---|
| DevOps エージェント | Python SDK | デプロイ失敗から進化する手順 |
| カスタマーサポート | CrewAI | 5 つのメモリーツールを備え、再訪する顧客を記憶するエージェント |
| パーソナルアシスタント | LangChain | 認知プロフィールとチャット履歴の自動保存 |
cd examples/devops-agent && pip install -r requirements.txt
export MENGRAM_API_KEY=om-...
python main.py
AI エージェントでの使用
Mengram は、自律型エージェント向けの永続的なメモリーバックエンドとして機能します。エージェントが学習した内容を保存し、次回の実行時にそれを想起することで、時間とともに賢くなります。
from mengram import Mengram
m = Mengram(api_key="om-...")
# Agent completes a task → store what happened
m.add([
{"role": "user", "content": "Apply to Acme Corp on Greenhouse"},
{"role": "assistant", "content": "Applied successfully. Had to use React Select workaround for dropdowns."},
])
# → Extracts: fact ("applied to Acme Corp"), episode ("Greenhouse application"),
# procedure ("React Select dropdown workaround")
# Next run → agent recalls what worked before
context = m.search_all("Greenhouse application tips")
# → Returns past procedures, failures, and successful strategies
# Report outcome → procedures evolve
m.procedure_feedback(proc_id, success=False,
context="Dropdown fix stopped working")
# → Procedure auto-evolves to a new version
CrewAI、LangChain、AutoGPT、独自のループなど、あらゆるエージェントフレームワークで使用できます。エージェントはアクション後に add() を呼び出し、判断前に search() を呼び出すだけです。
セルフホスト(Ollama)
Ollama でローカル実行する場合は、8B 以上のパラメーターと8K 以上のコンテキストウィンドウを持つモデルを使用してください。抽出プロンプトは約 4,000 トークンです。小規模なモデルでは、ハルシネーションが発生したり、例と実データが混同されたりする可能性があります。
| モデル | パラメーター | 動作 |
|---|---|---|
llama3.1:8b | 8B | はい |
mistral:7b | 7B | はい |
gemma2:9b | 9B | はい |
llama3.1:70b | 70B | 最適 |
phi4-mini:3.8b | 3.8B | いいえ — コンテキストが小さすぎます |
API リファレンス
| エンドポイント | 説明 |
|---|---|
POST /v1/add | メモリーを追加します(3 種類すべてを自動抽出) |
POST /v1/add_text | プレーンテキストからメモリーを追加します |
POST /v1/add_file | ファイルをアップロードします(PDF、DOCX、TXT、MD) — ビジョン AI による抽出 |
POST /v1/search | セマンティック検索 |
POST /v1/search/all | 統合検索(セマンティック+エピソード+手続き) |
GET /v1/episodes/search | イベントと意思決定を検索します |
GET /v1/procedures/search | ワークフローを検索します |
PATCH /v1/procedures/{id}/feedback | 結果を報告します — 進化をトリガーします |
GET /v1/procedures/{id}/history | バージョン履歴+進化ログ |
GET /v1/profile | 認知プロファイル |
GET /v1/triggers | スマートトリガー(リマインダー、矛盾、パターン) |
POST /v1/agents/run | メモリーエージェント(Curator、Connector、Digest) |
GET /v1/me | アカウント情報 |
インタラクティブなドキュメントの全文は mengram.io/docs をご覧ください。
クォータヘッダー
認証済みのすべてのレスポンスには、使用状況ヘッダーが含まれます。
| ヘッダー | 説明 |
|---|---|
X-Quota-Add-Used | 今月使用した追加リクエスト数 |
X-Quota-Add-Limit | 今月許可されている追加リクエスト数 |
X-Quota-Search-Used | 今月使用した検索リクエスト数 |
X-Quota-Search-Limit | 今月許可されている検索リクエスト数 |
SDK では .quota を通じて参照できます。
m.search("test")
print(m.quota) # {"add": {"used": 5, "limit": 30}, "search": {"used": 12, "limit": 100}}
コミュニティ
- GitHub Issues — バグ報告、機能リクエスト
- GitHub Discussions — ユースケースの紹介、質問
- API Docs — インタラクティブな Swagger UI
- Examples — すぐに実行できるエージェントテンプレート
Star History
ライセンス
Apache 2.0 — 商用利用も無料です。
無料の API キーを取得 · Ali Baizhanov が開発 · mengram.io
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。