v1.5.0 — Plan Arsitektur Basemind: Context Budget, Persistent Memory, LLM Router & Predictive Engine untuk Vibes Chat
Rancangan implementasi konsep Basemind (context-map, selective grounding, per-repo memory, agent intelligence) ke Vibes Chat Blonjo dalam 3 fase: Quick Win → Core Architecture → Intelligence Layer.
Berdasarkan analisis kodebase nyata (vibeCopilot.ts, VibesChat.tsx, sajen-api), ditemukan bahwa Vibes Chat sudah mengimplementasikan ~60% konsep Basemind secara tidak sengaja (Multi-Agent Router, SQL Grounding, Vector RAG, Web Search, Multi-turn). Namun gap utama ada pada efisiensi konteks dan kecerdasan data.
Referensi: Basemind GitHub — “Answer from structure and search, not from burning context window on grep and file reads”
| File | Aksi | Fase |
|---|---|---|
mcp-server/src/tools/vibeCopilot.ts |
EDIT — Context Budget + Schema Map + Memory integration | 1, 2 |
mcp-server/src/tools/intentClassifier.ts |
BUAT BARU — LLM-first Gemini router | 2 |
mcp-server/src/tools/dataGraph.ts |
BUAT BARU — Data relationship graph bisnis | 3 |
mcp-server/src/tools/predictiveEngine.ts |
BUAT BARU — Forecasting & analytics internal | 3 |
mcp-server/src/services/memoryService.ts |
BUAT BARU — Persistent memory CRUD + vector search | 2 |
mcp-server/src/index.ts |
EDIT — Daftarkan 2 tool baru | 3 |
sajen/migrations/versions/XXXX_add_vibes_memory.py |
BUAT BARU — Alembic migration tabel vibes_memory |
2 |
blonjo/src/pages/insights/VibesChat.tsx |
EDIT — Suggestion chips parser + chart JSON validator | 1 |
Tambah fungsi validateAndSanitizeResponse() — validasi setiap blok ```chart:* ``` sebelum dikirim ke UI. Jika JSON invalid → replace dengan fallback text. Mencegah crash JSON.parse di InteractiveVisualChart.
Tambah AGENT_DATA_BUDGET map — CONVERSATIONAL_PARTNER dan APP_GUIDE tidak query DB sama sekali. Estimasi penghematan: ~8.000 token per “selamat pagi”. Override flag needsFinancials / needsItems berdasarkan budget agen.
Parse blok <!-- SUGGESTIONS --> dari jawaban AI → render sebagai chip yang bisa diklik untuk langsung dikirim sebagai pertanyaan berikutnya. UX lebih conversational.
Deploy Fase 1: ./deploy.sh mcp-server + ./deploy.sh blonjo-ui
Tabel PostgreSQL baru dengan kolom: tenant_id, memory_type (short_term | long_term | preference | insight), content, embedding (pgvector 768d), importance_score, created_at. Memory bersifat permanent (tanpa TTL), dengan importance_score sebagai mekanisme prune di masa depan. Index ivfflat untuk vector cosine similarity.
Service baru di mcp-server/src/services/. Fungsi retrieveMemory() — semantic vector search ke vibes_memory per tenant. Fungsi saveMemory() — simpan insight penting setelah setiap percakapan selesai (ekstraksi otomatis oleh AI).
- Alur: Regex dulu (0ms, gratis) → jika confidence < 0.85 → panggil Gemini Flash untuk klasifikasi
- Model: Gemini (sesuai keputusan user)
- Output wajib JSON:
{"agent": "NAMA_AGEN", "confidence": 0.0-1.0, "needs_web": false} - Agen baru: Tambah
PREDICTIVE_ANALYSTsebagai agen ke-9 (khusus forecasting data internal, berbeda dariMARKET_RESEARCHERyang pakai web)
Refactor blok data fetching (baris 347-419) dari dump 60 raw rows menjadi agregat terstruktur (6 angka ringkasan + top 5 produk). Detail on-demand via targeted query jika AI perlu. Estimasi penghematan: dari ~8.000-12.000 token → ~1.500-3.000 token per query.
Deploy Fase 2: ./deploy.sh sajen → jalankan migration di VPS → ./deploy.sh mcp-server
Forecasting berbasis data historis internal (bukan web search):
- Stock Depletion Forecast — “Produk X habis dalam ~N hari” (rata-rata penjualan 30 hari)
- Revenue Forecast — “Prediksi omset bulan depan” (linear regression tren 3 bulan)
- Cash Flow Projection — “Saldo kas akhir bulan jika pola sama”
- Seasonal Pattern — “Hari mana penjualan biasanya naik/turun”
Analisa relasi bisnis — siapa beli apa dari mana, pola tersembunyi:
- Supplier → Produk → Revenue chain (output Mermaid)
- Market Basket Analysis sederhana (produk yang sering dibeli bersamaan)
- Churn Supplier (supplier yang frekuensi transaksinya menurun)
- Hidden Bottleneck (produk sering habis tapi jarang di-restock)
Daftarkan predict_business dan data_graph sebagai MCP tools. Update classifyIntent() untuk mengenali intent ke PREDICTIVE_ANALYST.
Deploy Fase 3: ./deploy.sh mcp-server
AI dapat mendeteksi bug dari error log VPS, menganalisa pola, dan menghasilkan diff/patch teks yang ditampilkan di Vibes Chat untuk review manual sebelum deploy. Tidak otomatis ke production. Tool: diagnose_app.
| Metrik | Sekarang | Target |
|---|---|---|
| Token per query rata-rata | ~8.000–12.000 | ~1.500–3.000 |
| Waktu respons | 3–8 detik | 1–3 detik |
| Biaya API per 1.000 query | ~Rp 15.000 | ~Rp 3.000 |
| Akurasi intent router (estimasi) | ~75% | ~92% |
| Konteks hilang setelah refresh | Ya | Tidak (persistent memory) |
| Chart crash malformed JSON | Mungkin | Tidak (validator) |
- Tambah
validateAndSanitizeResponse()divibeCopilot.ts - Tambah
AGENT_DATA_BUDGET+ guard divibeCopilot.ts - Tambah suggestion chips parser di
VibesChat.tsx - Deploy
mcp-server+blonjo-ui
- Generate Alembic migration
vibes_memory(permanent) - Buat
memoryService.ts - Buat
intentClassifier.ts(LLM Gemini router) - Refactor data fetching → schema map aggregat
- Integrasi memory ke
handleVibeCopilot() - Deploy
sajen→ migration VPS →mcp-server
- Buat
predictiveEngine.ts - Buat
dataGraph.ts - Register ke
index.ts - Tambah agen
PREDICTIVE_ANALYST - Deploy
mcp-server