OmniMem
公式セッション、プロジェクト、マシンを超えてAIエージェントに永続的なメモリを提供する、セルフホスト型のMCPサーバーです。
OmniMem MCPで何ができますか?
- 永続セッションメモリ — アシスタントに重要な決定事項や教訓を
rememberするよう依頼し、セッション、プロジェクト、マシンをまたいで保持させます。 - コンテキスト付きリコール — 新しい作業を始める前に、
recallを使用して類似性、新しさ、経験の重みでランク付けされた関連メモリを取得します。 - ワンコールセッションブリーフィング — プロジェクトコンテキスト、古いメモリ、新しい記事、スキル提案を含む完全な
briefing()を1回の呼び出しで取得します。 - 過去の行き詰まりを回避 — ライブラリやパターンを提案する前に、墓地をチェックして、すでに失敗したアプローチをスキップします。
- 再利用可能なスキルのコンパイル — 強化された教訓を、アクティベーション前にレビューを経るロード可能な
compile_skill提案に変換します。 - メモリのエクスポート —
dump_to_file()を使用して、完全に所有するJSONファイルにすべてをバックアップします。
ドキュメント
自己ホスト型のセマンティックメモリ for AIエージェント。永続セッション、経験スコアリング、行き詰まりのための墓場。読んだRSSから取得した知識を基に、Valkeyベクター検索に保存され、MCPサーバーとして公開されます。 https://omnimem.org
omnimem.org
開発はCodebergで行われています — 問題やPRはそちらへお願いします。
同じセッションを二度と繰り返さないでください。
すべてのClaude Codeセッションはゼロから始まります。プロジェクトの記憶はありません。先週何が失敗したかの記憶もありません。先週の火曜日に、onnxruntimeがAlpineで爆発する理由を発見するのに3時間費やし、実際に動くものを見つけたという記憶もありません。
だから、あなたはプロジェクトをもう一度説明します。Claudeはまた同じ壊れたライブラリを提案します。同じ警報。同じ歌。あなたはビル・マレーで、Claudeはパンクスートーニーです。
OmniMemはそれを修正します。これは自己ホスト型のMCPサーバーで、AIエージェントにセッション、プロジェクト、マシンを超えた永続的なメモリを提供します。あなた自身のハードウェアで動作し、永遠に無料です。
claude> use onnxruntime for the embeddings
⚠ WARNING: previously abandoned approach
onnxruntime — SIGILL crash on Alpine musl libc (effort: 4/5)
→ switched to sentence-transformers instead
その警告は運ではなく記憶から来ています。すでに代償を払った過ちが、二度請求されることはありません。
すぐに始める
ヒント
1つのコマンドで、事前ビルド済みのDocker Hubイメージからフルスタックが起動します:
curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bashその後、エージェントをそれに向けます — クイックスタートで残りの手順を説明しています。または、以下のより詳細なクイックスタートセクションにジャンプしてください。
記憶するもの
5種類のメモリがあり、呼び出し時にすべて一緒に検索されます:
- エピソード記憶 — あなたが下した決定、修正したバグ、発見したパターン。実際の努力を要して学んだことで、毎朝再学習する必要のないもの。
- プロジェクトコンテキスト — あなたのスタック、目標、現在の状態。エージェントは毎回のセッションで冷たい状態から始めるのではなく、すでにブリーフィングを受けた状態で到着します。
- 知識 — 設定したRSSフィードをスケジュールで取得し、Claude Haikuで要約し、埋め込み、保存します。先週関連する記事が届いた場合、読む価値のある出発点として表示されます。
- 好み — あなたの働き方に関する規範的なルール(「機能が完了したら必ずREADMEを更新する」など)。会話から自動的に抽出され、適用されるたびに表示されます。
- スキル — ドメインでの蓄積された経験からコンパイルされたSKILL.mdドキュメント。最初のプロンプトからあなたのやり方でエージェントが動作します。他の名前空間から派生し、手動編集はされず、すべての変更はあなたのレビューを通過します。スキルコンパイラを参照してください。 最も上位のリコール結果は、6か月前の別プロジェクトでの判断、昨日の解決策、火曜の夜に公開された記事かもしれません。役に立つ限り、どこから来たかは問題ではありません。
何が違うのか
MCPラッパー付きのキーバリューストアではありません。OmniMemは記憶が実際に機能する仕組みをモデル化しています。物事は時間とともに薄れ、時には互いに矛盾し、苦労して得たものはその地位を獲得します。
- The Graveyard — 行き止まりはすべて、試した内容、失敗した理由、費やした時間とともに記録されます。エージェントはライブラリやパターンを提案する前にこれを確認します。
- Experience scoring — 4回の試行と奇妙なプラットフォーム回避策を要して解決できたものは貴重です。難しかったほど、次回はより簡単に表面化します。
- Memory lifecycle —
ACTIVE → DEPRIORITISED → ARCHIVED → DELETED。「Xについて忘れて」は通常、話題に出すのをやめるという意味であり、存在を消すことではありません。優先度を下げられた記憶も、再び重要性を取り戻せます。 - Contradiction detection — 新しい記憶が保存済みの内容と矛盾する場合、OmniMemがそれを検出します。毎回の書き込みで高速ヒューリスティック、Claude Haikuによる任意の詳細分析。
- Semantic deduplication — ほぼ同一の記憶は書き込み時にフラグが付けられ、
find_duplicates()で一括クリーンアップされます。 - One-call briefing — 単一の
briefing()で、プロジェクトコンテキスト、経験統計、古い記憶、新しい記事、矛盾警告、スキル提案が返されます。3段階のウォームアップは不要です。 - The skill compiler — 強化された教訓と行き止まりを、ロード可能なスキルに凝縮します。提案・承認ゲートの背後にあるため、悪い教訓が静かにポリシーになることはありません。
- Auto-maintenance — 重複のアーカイブ、矛盾のフラグ付け、期限切れ知識のクリーンアップをすべてバックグラウンドで実行。
- Web UI — htmxダッシュボードからすべてを閲覧・検索・管理。テレメトリとPrometheus
/metricsエンドポイント付き。
すべてのリコールの背後にあるランキング式:
score = similarity x surface_score x recency x experience_weight
何が返ってくるかを決めるのは4つの要素です。意味的類似性だけでは不十分で、ライフサイクル状態、経過時間、教訓を学ぶのがどれほど難しかったかがすべて影響します。
あらゆるMCPエージェントと連携
すべてに共通する単一のメモリレイヤー:claude.ai、Claude Code、Claude Desktop、Cursor、GitHub Copilot、GitLab Duo、AWS Kiro、OpenCode、OpenAI Codex CLI、Open Design。
アーキテクチャ
4つのコンテナ。あなたのマシンから何も出て行きません。sentence-transformersによるローカル埋め込み、ベクトル検索付きValkeyへの保存、両方のフロントドアが同じメモリエンジンを共有します。
flowchart TB
agent["AI agent<br/>Claude Code · claude.ai · Cursor · Copilot · ..."]
browser["Browser"]
agent -- "MCP · Streamable HTTP / SSE · :8765" --> mcp
browser -- "HTTP · :8080" --> webui
subgraph stack["Docker Compose stack"]
mcp["MCP server<br/>Python · FastMCP<br/><i>remember · recall · briefing<br/>compile_skill · record_experience</i>"]
webui["Web UI<br/>Starlette · htmx · Jinja2<br/><i>dashboard · search · skills<br/>projects · backups · /metrics</i>"]
rss["RSS worker<br/>feedparser · APScheduler<br/>Claude Haiku summaries"]
valkey[("Valkey + valkey-search<br/>HNSW vector indexes<br/><i>idx:episodic · idx:project · idx:knowledge<br/>idx:preference · idx:skill</i>")]
mcp <--> valkey
webui <--> valkey
rss --> valkey
end
全体像(リコールパイプライン、ストレージモデル、設計上の決定)はdocs/architecture.mdにあります。
セルフホスト、オープンソース、あなたのもの
SaaSなし。ベンダーロックインなし。他人のサーバーにコンテキストを送信することもありません。
- ValkeyはオープンソースのRedisフォークです。すべてのデータは、自分のマシン上の名前付きDockerボリュームに保持されます。
- Multi-arch Docker imagesはamd64とarm64に対応。Raspberry Pi、AWS Graviton、Apple Siliconでもx86と同様に動作します。
- sentence-transformersはAPI呼び出しなしでローカルに埋め込みを実行します。
- MIT licensedは、フォーク、拡張、どこでも実行が可能であることを意味します。
- One backup commandは
dump_to_file()を呼び出し、すべてをあなたが所有するJSONファイルにエクスポートします。
リバースプロキシ経由でMCPポートを公開すれば、作業するすべてのマシンが同じメモリを共有します。1つのデプロイでどこでも利用可能 — docs/remote-access.mdを参照してください。
クイックスタート
インストーラーはDockerのインストールを確認し、安全なパスワードを生成し、適切な.envを書き込み、ビルド済みのDocker Hubイメージからすべてを起動します:
curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bash
またはソースからビルド:
git clone https://codeberg.org/ric_harvey/omnimem.git && cd omnimem
cp .env.example .env
# Set VALKEY_PASSWORD and ANTHROPIC_API_KEY in .env
docker compose up -d
次にエージェントを接続します — Claude Code (~/.claude.json):
{
"mcpServers": {
"omnimem": {
"type": "sse",
"url": "http://localhost:8765/sse"
}
}
}
サーバーは接続するエージェントにMCP instructionsフィールド経由で使用ガイドを自動的に配信します — 設定ファイルは不要です。Webダッシュボードはhttp://localhost:8080にあります。
認証トークン、権限設定、その他のエージェントを含む完全なウォークスルーはdocs/quick-start.mdにあります。
ドキュメント
| Quick start | インストーラー、ソースからのビルド、エージェントの接続 |
| Features in depth | ライフサイクル、墓場、経験スコアリング、重複排除、矛盾、ブリーフィング |
| The skill compiler | 経験をロード可能なスキルにコンパイル |
| MCP tool reference | 30以上の全ツール |
| Configuration reference | すべての環境変数 |
| RSS & knowledge | パッシブな知識の取り込みと昇格 |
| Multiple machines | リバースプロキシ、claude.ai用OAuth 2.1、トラブルシューティング |
| Web UI | 管理ダッシュボードとPrometheusメトリクス |
| Architecture | コンテナ、リコールパイプライン、設計上の決定 |
| Memory type specs | ストレージモデル、フィールドごと |
| Connection guides | エージェントごとのセットアップ |
| Deployment guides | macOS · Raspberry Pi · AWS · GCP · Linux + Tailscale Funnel |
Valkeyに何が誰によって書き込まれるかを正確に知りたい場合の名前空間別ストレージ仕様:overview · episodic · project · knowledge · preference · skill
コントリビューション
IssueとPRを歓迎します。開発はCodebergで行われています — IssueとPRはそちらへお願いします。OmniMemは拡張を前提に設計されており、スコアリングパイプラインはコアに触れることなく新しい乗数を追加できる構造になっています。新しいMCPツール、追加の名前空間タイプ、代替の埋め込みバックエンドはすべて合理的な方向性です。
ライセンス
MIT。自由に使用、フォーク、変更が可能です。エンタープライズ層もホスト版も、条件もありません。
Ric Harvey @ SquareCows Ltd によって構築されました。自分のツールを所有したい人向けのAI・自動化コンサルタンシーです。