Lanjut ke konten
Samkarsa Logbook

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 menjadi activeSupplier.
  • Solusi: Menerapkan prinsip baku Zero AI-Feedback Loop (identik dengan memoryService.ts). SessionScratchpadService.updateScratchpad kini HANYA mengekstrak dari userQuery murni 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 activeSupplier lama.
  • Sebaliknya, ketika pengguna menanyakan supplier baru tanpa menyebut komoditas, sistem mereset activeCommodity lama.
  • 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) ===.

  1. 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.
  2. 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.
  3. Deployment: Container mcp-backend-prod berhasil dikompilasi ulang dan berjalan stabil di VPS.