- Untuk mengatasi masalah hilangnya konteks antar-sesi di Claude Code, dibangun sistem memori yang menggabungkan mesin pencari lokal QMD dan skill /recall
- QMD adalah mesin pencari lokal yang mengindeks vault Obsidian, dengan dukungan tiga mode pencarian: BM25, semantik, dan hibrida
- Skill /recall mendukung tiga mode—berdasarkan waktu, topik, dan visualisasi graf—untuk memulihkan konteks penuh dari sesi sebelumnya secara instan
- Diimplementasikan pipeline otomatis yang mem-parsing dan meng-embed 700 rekaman percakapan JSONL sesi ke dalam indeks QMD
- Mengusulkan workflow berpusat pada konteks yang dapat digunakan di agen AI mana pun selama konteksnya dipertahankan, meski tool berganti
Masalah: Claude Code di-reset setiap sesi
- Semua percakapan di Claude Code dimulai dari nol, dan setelah menjalani 700 sesi selama 3 minggu, menjadi sulit melacak keputusan sebelumnya dan konteks proyek
- Saat mencapai batas konteks (60%) di tengah sesi, diperlukan compact atau hand off, dan dalam proses itu setengah dari keputusan bisa hilang
- Ketika mencoba melanjutkan pekerjaan keesokan harinya, ketidaknyamanan karena tidak ingat apa yang sudah dikerjakan terus berulang
- Pendekatan lama berupa pencarian berbasis grep pada file tidak skalabel
QMD: mesin pencari lokal khusus vault
- QMD adalah mesin pencari lokal buatan CEO Shopify Tobias Lutke, yang mengindeks vault Obsidian dan mengembalikan hasil pencarian dalam waktu kurang dari 1 detik
- Tiap folder vault dapat dipetakan ke collection QMD (catatan, log harian, sesi, transkrip, dll.) sehingga pencarian bisa lebih terfokus
- Bekerja lewat satu perintah seperti
qmd collection list, qmd search "video workflow" -c notes -n 3
- Pencarian bawaan Claude Code menggunakan sub-agent Haiku yang menjalankan grep ke semua file secara brute force; dalam pengujian butuh 3 menit, mengembalikan 300 file, dan kualitas hasilnya rendah
- Pencarian QMD instan, lebih akurat, dan lebih hemat token — tanpa perlu sub-agent
Grep vs BM25 vs pencarian semantik
- BM25 (
qmd search): pencarian full-text deterministik yang mencocokkan kata kunci seperti grep, tetapi memberi skor pada setiap file
— berbasis frekuensi kemunculan kata dan kelangkaannya terhadap seluruh dokumen, hanya memakai perhitungan matematis tanpa AI atau embedding
- Catatan pendek yang menyebut "sleep" 5 kali akan mendapat skor lebih tinggi daripada file 10.000 kata yang hanya menyebutnya 1 kali
- Semantik (
qmd vsearch): berbasis embedding, sehingga dapat mencari berdasarkan makna meski kata persisnya tidak ada
- Hibrida (
qmd query): menggabungkan BM25 dan semantik
- Perbandingan benchmark pencarian "sleep":
- grep: mengembalikan 200 file, dengan banyak noise termasuk perintah pemrograman
sleep()
- BM25: dalam 2 detik mengembalikan hasil relevan seperti eksperimen kualitas tidur, catatan gangguan tidur
- Namun,
qmd search "insomnia" menghasilkan 0 karena kata itu tidak ada di vault
- Semantik: saat mencari "couldn't sleep, bad night", sistem bahkan menemukan target kebiasaan tidur yang ditetapkan bertahun-tahun lalu — 4 dari 5 hasil tidak mengandung kata kunci pencarian
- Hibrida: memberi peringkat terbaik seperti sleep quality improvement 89%, sleep interrupted at 3am 51%, health sleep optimization 42%
- Pola penggunaan yang direkomendasikan: 80% pencarian ditangani dengan BM25 (cocok untuk catatan terstruktur), lalu tambahkan pencarian semantik untuk transkrip dan memo tidak terstruktur
Contoh nyata penemuan lewat pencarian semantik
- Untuk kueri tak terstruktur seperti "find the days when I was happy and what was the reason", Claude otomatis menggabungkan beberapa pencarian:
- Menjalankan beberapa pencarian seperti
qmd vsearch "happy, grateful, excited", "energy, great day, feeling good", "satisfaction, accomplishment"
- Dari catatan harian selama berbulan-bulan, sistem menemukan keterkaitan semantik — muncul pola bahwa "hari-hari paling bahagia adalah saat merilis sesuatu lalu pulih dengan baik lewat sauna atau tidur 9 jam"
Skill /recall: memuat konteks sebelum mulai bekerja
- /recall adalah skill Claude Code yang berjalan di atas QMD dan secara otomatis memuat konteks sebelum mulai bekerja
- Mendukung tiga mode:
- temporal: memindai riwayat sesi berbasis tanggal (
/recall yesterday, /recall last week)
- topic: pencarian BM25 pada collection target QMD (
/recall topic graph)
- graph: visualisasi interaktif sesi dan file (
/recall graph last week)
- Hasil pengujian
/recall yesterday: 39 sesi dalam satu hari direkonstruksi menjadi timeline — menampilkan waktu, jumlah pesan, dan isi pekerjaan tiap sesi
- Hasil
/recall topic "QMD video": dalam waktu kurang dari 1 menit, sistem mengembalikan file terkait seperti dashboard, rencana produksi, dan daftar tugas dari seluruh sesi dan catatan — unggul atas grep brute force dari sisi waktu, token, dan kualitas hasil
- Mode graph memvisualisasikan sesi sebagai blob berwarna; sesi lama tampak pudar, sesi terbaru disorot ungu — file dikelompokkan menurut tipe seperti goals, research, voice, docs, content, skills
- Contoh: sesi pencarian tempat makan siang ditemukan lagi di graf seminggu kemudian, lalu path file-nya disalin ke Claude Code untuk melanjutkan pekerjaan dari percakapan sebelumnya
Pengindeksan otomatis 700 sesi
- Claude Code menyimpan semua percakapan secara lokal sebagai file JSONL — terkumpul 700 sesi selama 3 minggu
- Karena file asli berisi tool uses, system prompt, role, dll., isinya di-parse lalu diubah menjadi Markdown bersih (pesan pengguna dan sinyal yang benar-benar relevan) sebelum di-embed ke indeks QMD
- Saat terminal ditutup, hook otomatis dijalankan untuk mengekspor dan meng-embed sesi ke QMD — indeks selalu terbaru tanpa pekerjaan manual tambahan
Menemukan ide yang belum pernah dijalankan
- Saat mencari "find the ideas that I have never acted on", Claude merangkum hasil QMD dan menemukan:
- 19 Oktober — ada rencana membuat dashboard penulisan PhD, tetapi tidak pernah dijalankan
- Ada ide aplikasi berbasis ilustrasi, tetapi tidak ada tindak lanjut
- Ada ide rekaman layar workflow Obsidian, tetapi tidak pernah dieksekusi
- Hal-hal yang ditulis beberapa bulan lalu dan benar-benar terlupakan bisa ditemukan kembali
- Semua embedding disimpan secara lokal
Workflow berpusat pada konteks
- Catatan tidak lagi terkurung di Obsidian, tetapi berubah menjadi konteks berguna yang dipakai untuk mencapai tujuan nyata
- Tool bisa berubah (model baru, agen baru), tetapi selama konteksnya dipertahankan, sistem tetap bisa berjalan di Claude Code, Codex, Gemini CLI, dan lainnya
- Lapisan memori berjalan di seluruh stack dalam bentuk skill
- Konfigurasi nyata: vault disinkronkan antara Mac dan Mac Mini yang selalu aktif lewat Obsidian Sync, lalu OpenClaw berjalan 24/7 di Mac Mini — saat mengakses OpenClaw dari ponsel, vault, indeks QMD, dan skill yang sama bisa dipakai dari mana saja
- Struktur seluruh stack:
- bawah: Obsidian Vault
- tengah: QMD Search
- atas: Claude Code / OpenClaw
- konteks mengalir dari bawah ke atas
Belum ada komentar.