MemRosetta -- AIツール向けのローカル長期記憶エンジン
(github.com/obst2580)AIコーディングツール(Claude Code、Cursor、Codex、Gemini など)を使っていると、セッションが切り替わるたびに文脈が失われます。
昨日決めたアーキテクチャ、先週のデバッグ結果、自分の好みのコーディングスタイル -- 毎回あらためて説明しなければなりません。
MemRosetta は、この問題を解決するためのローカル長期記憶エンジンです。
1行でインストール:
npm install -g memrosetta && memrosetta init --claude-code
どのように動くのか
1つのローカル SQLite ファイル(~/.memrosetta/memories.db)にすべての記憶を保存します。Claude Code、Cursor、Codex、Gemini が同じ DB を共有するため、あるツールで保存した記憶を別のツールで検索できます。
既存の RAG のように文書をテキスト断片(chunk)に分割する代わりに、原子的記憶(atomic memory)単位で保存します。
1つの事実が1つのレコードです。
// 月曜日のセッション — Claude が会話中に自動で MCP を呼び出し
store({
"content": "認証は OAuth2 + PKCE に決定",
"memoryType": "decision",
"keywords": ["auth", "oauth2", "pkce"]
})
// 火曜日の新しいセッション — Claude が MCP で検索
search({ "query": "auth" })
→ [0.95] 認証は OAuth2 + PKCE に決定 (decision, 2026-03-31)
→ [0.82] API rate limit はユーザーごとに 100req/min (fact, 2026-03-31)
→ [0.41] ログインページ UI 完成 (event, 2026-03-28)
100 個の記憶が蓄積されていても、キーワードマッチング + セマンティック類似度 + ACT-R 活性化スコアを組み合わせて、関連度の高い上位 5 件だけを返します。人間の脳が関連する記憶を思い出す仕組みに似ています — よく思い出される記憶ほど想起されやすくなり、長く使われていない記憶は自然に薄れていきますが、消えることはありません。
主な特徴
- ハイブリッド検索: FTS5 キーワードマッチング + ベクトルのセマンティック類似度 + Convex Combination 融合
- 矛盾検出: ローカル NLI モデル(71MB)が新しい事実と既存の記憶の矛盾を自動検出し、関係として接続
- 適応的忘却: 認知科学の ACT-R モデルベース。頻繁に検索される記憶は活性化スコアが上がり、使われない記憶は自然に退色(削除ではない)
- 時間モデル: 記憶ごとに 4 つのタイムスタンプ -- いつ保存したか、会話がいつ行われたか、実際の出来事の時点、無効化時点
- 関係グラフ: updates, extends, derives, contradicts, supports -- 記憶同士を接続
- LLM 不要: コアエンジンは外部 API 呼び出しなしでローカル動作。埋め込み(33MB)と NLI(71MB)もどちらもローカル
ツール別の統合
memrosetta init --claude-code # Claude Code: hooks + CLAUDE.md + MCP
memrosetta init --cursor # Cursor: MCP + .cursorrules
memrosetta init --codex # Codex: config.toml + AGENTS.md
memrosetta init --gemini # Gemini: settings.json + GEMINI.md
MCP(Model Context Protocol)を通じて、AI がセッション中に直接記憶を保存・検索します。Claude Code の場合、セッション中は Claude が直接 MCP で保存し(品質最高、コスト $0)、セッション終了時には Stop Hook がセーフティネットとして取りこぼしを補完します。
競合製品との比較
Mem0、Zep、Letta のような既存の AI メモリソリューションはクラウドベースで、LLM 依存があります。MemRosetta はローカル SQLite 1 つで動作し、矛盾検出、ACT-R 忘却モデル、時間モデル、関係グラフなどは既存ソリューションにない機能です。
- GitHub: https://github.com/obst2580/memrosetta
- ホームページ: https://memrosetta.liliplanet.net
- npm: npm install -g memrosetta
- 696+ テスト、MIT ライセンス
1件のコメント
こんにちは、良いアイデアだと思います。
もしよければ、プロジェクトごとに区分することは考えていませんか?