Disimpan sebagai memori importance-1.0, tag identity โ tiap sesi menyapa The Coder lebih dulu ๐
Ingat fakta, keputusan, preferensi. Panggil lagi kapan saja. Rating pentingnya, satukan yang dobel!
Kasih dokumen โ dipecah & di-embed & disimpan di SQLite โ tanya apa saja, dapat bagian yang tepat.
Embedder hash lokal 1024-dim, node:sqlite bawaan. Tanpa cloud, tanpa key, tanpa tagihan ๐ธ
BM25 (FTS5) + vektor digabung pakai RRF. Presisi kata kunci, paham makna โ dua-duanya!
Mendukung opencode, Claude Desktop, Cursor, VS Code โ satu memori untuk semua teman MCP.
File gede ditolak (RAG_MAX_FILE_MB), path bisa di-batasi (RAG_ALLOWED_DIRS), dokumen dobel dideteksi.
npm install
npm test # 160 cek: unit + round-trip MCP
npm run lint # oxlint
npm run build # kompilasi ke dist/
npm run cli -- docs # playground CLI
npx mcp-rag-memory # langsung jalan dari npm (butuh Node >= 22.12)
Config MCP global โ ingat kamu di semua project.
claude_desktop_config.json โ mcpServers.
Settings โ MCP โ Add server. Trik yang sama jalan!
.vscode/mcp.json dengan "type": "stdio".
๐งฉ Tips: perintah sama di mana saja โ npx mcp-rag-memory setelah `npm install -g` / publish, atau node --import tsx <path>/src/mcp/rag-server.ts buat dev lokal. Ingat sekali, panggil di mana saja!
| Grup | Tool | Fungsi |
|---|---|---|
| Sistem | system_stats | Lokasi DB, backend embedding, jumlah dok/memori |
| RAG Input | rag_ingest_text | Simpan teks mentah (deteksi dobel otomatis) |
rag_ingest_file | Simpan sebuah file | |
rag_ingest_dir | Input satu folder penuh! | |
| RAG Cari | rag_search | Cari hybrid (BM25 + vektor), chunk terurut |
rag_retrieve | Blok konteks siap-suntik | |
| RAG Dokumen | rag_list_documents | Inventaris dokumen (ada limit/offset) |
rag_document_stats | Jumlah dokumen & chunk | |
rag_delete_document | Hapus dokumen + chunk | |
| Sinkron Sesi | rag_sync_session | Input sesi opencode masuk store RAG |
| Memori | memory_remember | Simpan memori jangka panjang |
memory_recall | Cari memori semantik | |
memory_context | Blok ringkas untuk prompt | |
memory_list/get/update/forget | CRUD lengkap | |
memory_consolidate | Dedupe + promosi memori panas | |
memory_stats | Jumlah, token, rata-rata penting |
Setiap pesan yang kamu ketik di opencode bisa ikut masuk store RAG sebagai dokumen yang bisa dicari โ tanpa mencampur memori jangka panjang yang kurasi.
# plugin ".opencode/plugin/session-logger.ts" auto-sync tiap menit (RAG_AUTOSYNC=0 utk matikan)
npm run sync-latest -- --dir "D:/Project/my-app" # sesi terbaru di workspace itu
npm run sync-session -- ses_abc123 # sesi tertentu
npm run cli -- sessions # daftar sesi terbuka
Data dibaca dari DB opencode sendiri (~/.local/share/opencode/opencode.db), aman karena dedup per (source, sesi, timestamp) โ jalan berulang-ulang tidak bikin dobel, tapi pesan sama di sesi berbeda tetap jadi dokumen terpisah. Input panjang otomatis dipadatkan ke point inti (ekstraktif, tanpa LLM) supaya storage ramping; ketik ulang tetap utuh. Tool MCP rag_sync_session nyediain akses yang sama lewat MCP.
๐ช Data tersimpan di .rag-data/rag.sqlite (di-gitignore, memori tidak pernah ter-push!)
{
"mcp": {
"rag-memory": {
"type": "local",
"command": ["node", "--import", "tsx", "src/mcp/rag-server.ts"],
"cwd": "D:/Project/mcp-server",
"environment": { "RAG_DB_DIR": "D:/Project/mcp-server/.rag-data" }
}
}
}
{
"mcpServers": {
"rag-memory": {
"command": "node",
"args": ["--import", "tsx", "D:/Project/mcp-server/src/mcp/rag-server.ts"],
"env": { "RAG_DB_DIR": "D:/Project/mcp-server/.rag-data" }
}
}
}
| Variabel | Default | Guna |
|---|---|---|
RAG_DB_DIR | .rag-data | Lokasi penyimpanan SQLite |
SEARCH_MODE | hybrid | hybrid | vector | keyword |
EMBEDDING_PROVIDER | local | local (tanpa deps) | transformers |
RAG_MAX_FILE_MB | 10 | Batas ukuran file yang boleh di-ingest |
RAG_ALLOWED_DIRS | (bebas) | Daftar folder yang diizinkan: ; | , |
RAG_PRUNE | 0 | 1 = konsolidasi boleh hapus memori basi |
rag_ingest_*memory_remember
memory_contextrag_retrieve
Suntik konteks โ biar AI kamu makin cemerlang โจ