OmniMem
resmiServer MCP yang dihosting sendiri yang memberikan memori persisten kepada Agen AI di seluruh sesi, proyek, dan mesin.
Apa yang bisa Anda lakukan dengan OmniMem MCP?
Berikan agen AI Anda memori persisten yang dihosting sendiri di seluruh sesi, proyek, dan mesin — minta ia untuk "memeriksa kuburan sebelum menyarankan pustaka yang sudah gagal."
- Briefing sesi — Minta
briefinguntuk mendapatkan konteks proyek, statistik pengalaman, memori basi, artikel baru, dan saran keterampilan dalam satu panggilan. - Hindari jalan buntu masa lalu — Minta agen memeriksa kuburan sebelum menyarankan pustaka atau pola yang sebelumnya gagal.
- Ingat keputusan masa lalu — Gunakan
recalluntuk memunculkan keputusan, perbaikan, dan pola dari sesi sebelumnya di berbagai proyek. - Catat pengalaman yang sulit didapat — Catat perbaikan dengan
record_experiencesehingga pelajaran yang membutuhkan usaha nyata lebih mudah muncul di lain waktu. - Hapus duplikat memori — Jalankan
find_duplicatesuntuk menandai dan membersihkan secara massal memori tersimpan yang hampir identik. - Cadangkan memori Anda — Ekspor semuanya ke file JSON yang Anda miliki dengan
dump_to_file.
Dokumentasi
Memori semantik self-hosted untuk AI Agents. Sesi persisten, penilaian pengalaman, dan kuburan untuk jalan buntu, didukung oleh pengetahuan yang diperoleh dari RSS yang Anda baca dan disimpan dalam pencarian vektor Valkey lalu diekspos sebagai server MCP. https://omnimem.org
<OmniMem>omnimem.org
Pengembangan dilakukan di Codeberg — silakan ajukan issue dan PR di sana.
Berhentilah menjalani sesi yang sama dua kali.
Setiap sesi Claude Code dimulai dari nol. Tidak ada memori tentang proyek Anda. Tidak ada memori tentang apa yang gagal minggu lalu. Tidak ada memori bahwa Anda menghabiskan tiga jam Selasa lalu mencari tahu mengapa onnxruntime meledak di Alpine sebelum menemukan sesuatu yang benar-benar berfungsi.
Jadi Anda menjelaskan proyeknya lagi. Claude menyarankan pustaka rusak yang sama lagi. Alarm yang sama. Lagu yang sama. Anda adalah Bill Murray dan Claude adalah Punxsutawney.
OmniMem memperbaiki itu. OmniMem adalah server MCP self-hosted yang memberikan agen AI Anda memori persisten lintas sesi, proyek, dan mesin. OmniMem berjalan di perangkat keras Anda sendiri dan gratis selamanya.
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
Peringatan itu datang dari memori, bukan keberuntungan. Kesalahan yang sudah Anda bayar tidak boleh menagih Anda dua kali.
Mulai dengan cepat
Tip
Satu perintah menjalankan seluruh stack dari image Docker Hub yang sudah dibuat:
curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bashLalu arahkan agen Anda ke sana — panduan memulai memandu langkah selanjutnya, atau langsung lompat ke bagian panduan memulai yang lebih lengkap di bawah.
Apa yang diingatnya
Lima jenis memori, semuanya dicari bersamaan saat recall:
- Episodik — keputusan yang Anda buat, bug yang Anda perbaiki, pola yang Anda temukan. Hal-hal yang membutuhkan usaha nyata untuk dipelajari dan tidak seharusnya dipelajari ulang setiap pagi.
- Konteks proyek — stack, tujuan, dan keadaan terkini Anda. Agen tiba di setiap sesi sudah mendapat pengarahan alih-alih memulai dari nol.
- Pengetahuan — feed RSS yang Anda konfigurasi, diambil sesuai jadwal, diringkas oleh Claude Haiku, di-embed, dan disimpan. Ketika artikel relevan tayang minggu lalu, artikel itu muncul sebagai titik awal yang layak dibaca.
- Preferensi — aturan preskriptif tentang cara Anda ingin bekerja ("selalu perbarui README setelah fitur rilis"), diekstrak otomatis dari percakapan Anda dan dimunculkan setiap kali relevan.
- Keterampilan — dokumen SKILL.md yang disusun dari akumulasi pengalaman Anda di suatu domain, sehingga agen bekerja dengan cara Anda sejak prompt pertama. Diturunkan dari namespace lain, tidak pernah diedit manual, dan setiap perubahan melalui tinjauan Anda. Lihat kompiler skill. Hasil pencarian teratas mungkin berupa keputusan dari enam bulan lalu pada proyek yang berbeda, solusi dari kemarin, atau artikel yang tayang Selasa malam. Tidak masalah dari mana asalnya selama itu berguna.
Apa yang membuatnya berbeda
Bukan sekadar penyimpanan key-value dengan pembungkus MCP. OmniMem memodelkan cara kerja memori yang sebenarnya: hal-hal memudar seiring waktu, kadang saling bertentangan, dan hal-hal yang diperoleh dengan susah payah akan mendapatkan tempatnya.
- The Graveyard — setiap jalan buntu dicatat beserta apa yang Anda coba, mengapa gagal, dan berapa banyak waktu yang Anda habiskan. Agen memeriksanya sebelum menyarankan pustaka atau pola.
- Experience scoring — sesuatu yang butuh empat kali percobaan dan solusi platform yang tidak biasa untuk dipecahkan adalah emas. Semakin sulit, semakin mudah muncul kembali di lain waktu.
- Memory lifecycle —
ACTIVE → DEPRIORITISED → ARCHIVED → DELETED. "Lupakan X" biasanya berarti berhenti mengangkatnya, bukan menghapusnya dari keberadaan. Memori yang diturunkan prioritasnya bisa naik kembali. - Contradiction detection — jika memori baru bertentangan dengan yang tersimpan, OmniMem menangkapnya. Heuristik cepat pada setiap penulisan, analisis lebih dalam opsional melalui Claude Haiku.
- Semantic deduplication — memori yang hampir identik ditandai saat penulisan dan dibersihkan secara massal dengan
find_duplicates(). - One-call briefing — satu
briefing()mengembalikan konteks proyek, statistik pengalaman, memori basi, artikel baru, peringatan kontradiksi, dan saran keterampilan. Tanpa pemanasan tiga langkah. - The skill compiler — menyaring pelajaran yang diperkuat dan jalan buntu menjadi keterampilan yang dapat dimuat, di balik gerbang usul-dan-terima sehingga pelajaran buruk tidak bisa menjadi kebijakan secara diam-diam.
- Auto-maintenance — duplikat diarsipkan, kontradiksi ditandai, pengetahuan kedaluwarsa dibersihkan, semuanya di latar belakang.
- Web UI — jelajahi, cari, dan kelola semuanya dari dasbor htmx, dengan telemetri dan endpoint
/metricsPrometheus.
Rumus peringkat di balik setiap pencarian:
score = similarity x surface_score x recency x experience_weight
Empat faktor menentukan apa yang kembali. Kemiripan semantik saja tidak cukup — status siklus hidup, usia, dan seberapa sulit pelajaran itu dipelajari semuanya berperan.
Bekerja dengan agen MCP apa pun
Satu lapisan memori untuk semuanya: claude.ai, Claude Code, Claude Desktop, Cursor, GitHub Copilot, GitLab Duo, AWS Kiro, OpenCode, OpenAI Codex CLI, dan Open Design.
Arsitektur
Empat kontainer. Tidak ada yang meninggalkan mesin Anda. Embedding lokal melalui sentence-transformers, penyimpanan di Valkey dengan pencarian vektor, dan kedua pintu depan berbagi mesin memori yang sama.
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
Gambaran lengkap — pipeline pencarian, model penyimpanan, dan keputusan desain — ada di docs/architecture.md.
Self-hosted, open source, milik Anda
Tanpa SaaS. Tanpa vendor lock-in. Tanpa konteks yang dikirim ke server orang lain.
- Valkey adalah fork open source dari Redis. Semua data Anda tetap berada di volume Docker bernama di mesin Anda sendiri.
- Gambar Docker multi-arsitektur untuk amd64 dan arm64. Berjalan di Raspberry Pi, AWS Graviton, atau Apple Silicon sama baiknya dengan x86.
- sentence-transformers menjalankan embedding secara lokal tanpa panggilan API.
- Lisensi MIT berarti Anda bebas fork, memperluas, dan menjalankannya di mana pun Anda mau.
- Satu perintah cadangan memanggil
dump_to_file()dan mengekspor semuanya ke file JSON yang Anda miliki.
Ekspos port MCP melalui reverse proxy Anda dan setiap mesin tempat Anda bekerja berbagi memori yang sama. Satu deployment, di mana saja — lihat docs/remote-access.md.
Mulai cepat
Penginstal memeriksa Docker terpasang, menghasilkan kata sandi aman, menulis .env yang masuk akal, dan memulai semuanya dari gambar Docker Hub yang sudah dibuat:
curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bash
Atau bangun dari sumber:
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
Lalu arahkan agen Anda ke sana — Claude Code (~/.claude.json):
{
"mcpServers": {
"omnimem": {
"type": "sse",
"url": "http://localhost:8765/sse"
}
}
}
Server mengirimkan panduan penggunaannya ke agen yang terhubung secara otomatis melalui bidang instructions MCP — tanpa file konfigurasi yang diperlukan. Dasbor web ada di http://localhost:8080.
Panduan lengkap, termasuk token autentikasi, pengaturan izin, dan agen lainnya, ada di docs/quick-start.md.
Dokumentasi
| Mulai cepat | Penginstal, membangun dari sumber, menghubungkan agen Anda |
| Fitur secara mendalam | Siklus hidup, graveyard, experience scoring, dedup, kontradiksi, briefing |
| The skill compiler | Mengompilasi pengalaman menjadi keterampilan yang dapat dimuat |
| Referensi alat MCP | Semua 30+ alat |
| Referensi konfigurasi | Setiap variabel lingkungan |
| RSS & pengetahuan | Penyerapan dan promosi pengetahuan pasif |
| Banyak mesin | Reverse proxy, OAuth 2.1 untuk claude.ai, pemecahan masalah |
| Web UI | Dasbor manajemen dan metrik Prometheus |
| Arsitektur | Kontainer, pipeline pencarian, keputusan desain |
| Spesifikasi tipe memori | Model penyimpanan, bidang demi bidang |
| Panduan koneksi | Pengaturan per agen |
| Panduan deployment | macOS · Raspberry Pi · AWS · GCP · Linux + Tailscale Funnel |
Spesifikasi penyimpanan per-namespace, jika Anda ingin tahu persis apa yang ditulis ke Valkey dan oleh siapa: ringkasan · episodik · proyek · pengetahuan · preferensi · keterampilan
Berkontribusi
Issue dan PR diterima. Pengembangan berlangsung di Codeberg — issue dan PR di sana ya. OmniMem dirancang untuk diperluas dan pipeline penilaian disusun sehingga pengali baru dapat ditambahkan tanpa menyentuh inti. Alat MCP baru, tipe namespace tambahan, dan backend embedding alternatif semuanya merupakan arah yang masuk akal.
Lisensi
MIT. Bebas digunakan, di-fork, dan dimodifikasi. Tanpa tier enterprise, tanpa versi hosted, tanpa syarat.
Dibuat oleh Ric Harvey @ SquareCows Ltd, konsultan AI dan otomasi untuk orang-orang yang lebih suka memiliki alat mereka sendiri.