MCP v1.0.0-035: Scratchpad Entity Decoupling & Zero AI-Feedback Loop Guardrail
Eliminasi halusinasi atributif silang pada VibesChat melalui pemisahan entitas komoditas-supplier di SessionScratchpad, isolasi working memory, dan penegakan Zero AI-Feedback Loop.
2mnt baca
Pembaruan ini menuntaskan secara permanen akar masalah halusinasi Cross-Entity Attribute Blending pada VibesChat, di mana model AI sebelumnya secara keliru mengasosiasikan pemasok air minum (CV. Mitra Mulia) sebagai penyuplai komoditas Beras.
Penyelidikan mendalam membuktikan bahwa halusinasi tersebut bukan berasal dari kegagalan LLM, melainkan akibat kontaminasi data pada Session Scratchpad (Working Memory) yang menyajikan entitas komoditas dan supplier berdampingan di bawah header fakta sistem.
- Masalah: Sebelumnya, pembaruan scratchpad di background worker memproses gabungan teks
${userQuery} ${cleanText}(pertanyaan pengguna ditambah teks jawaban AI). Setiap supplier yang disebut oleh AI di giliran sebelumnya otomatis tersedot menjadiactiveSupplier. - Solusi: Menerapkan prinsip baku Zero AI-Feedback Loop (identik dengan
memoryService.ts).SessionScratchpadService.updateScratchpadkini HANYA mengekstrak dariuserQuerymurni ucapan pengguna. Teks keluaran AI dilarang keras mengontaminasi working memory.
- Ketika pengguna mengajukan kueri komoditas baru (misal Beras) tanpa menyebut supplier, sistem secara otomatis mereset
activeSupplierlama. - Sebaliknya, ketika pengguna menanyakan supplier baru tanpa menyebut komoditas, sistem mereset
activeCommoditylama. - Kueri operasional/finansial umum (bensin, operasional, kas) otomatis melepaskan fokus komoditas lama agar tidak membiaskan kueri berikutnya.
- Format teks Scratchpad dirombak total dari satu baris ambigu (
Komoditas: X | Supplier: Y) menjadi daftar poin terpisah dengan disclaimer tegas bahwa entitas tersebut hanyalah topik diskusi aktif, bukan relasi permanen. - Memindahkan
${scratchpadContext}keluar dari header=== 🗄️ FAKTA DATA DARI SISTEM (Single Source of Truth) ===menuju blok terisolasi=== 💬 KONTEKS SESI OBROLAN AKTIF (Working Memory) ===.
- Unit Test Decoupling: Simulasi multi-turn (Turn 1: Beras ➔ Turn 2: Belanja Juli ➔ Turn 3: Mitra Mulia ➔ Turn 4: Proyeksi Beras) membuktikan entitas beras dan supplier Mitra Mulia terisolasi 100% tanpa saling mengontaminasi.
- Uji Produksi Live di VPS: Kueri “Proyeksi kebutuhan modal untuk beras bulan Oktober berdasarkan tren rata-rata” menghasilkan proyeksi berbasis 19 varian beras riil dari PostgreSQL tanpa satupun halusinasi Mitra Mulia.
- Deployment: Container
mcp-backend-prodberhasil dikompilasi ulang dan berjalan stabil di VPS.