Workspace Memory v2 (oflayn): tadqiqot qaydlari
Maqsad: Clawd uslubidagi ish joyi (agents.defaults.workspace, standart ~/.openclaw/workspace), bu yerda “xotira” har bir kun uchun bitta Markdown faylida (memory/YYYY-MM-DD.md) hamda bir nechta barqaror fayllarda (masalan, memory.md, SOUL.md) saqlanadi.
Ushbu hujjat Markdown’ni ko‘rib chiqiladigan, kanonik manba-haqiqat sifatida saqlab qoladigan, biroq hosila indeks orqali tuzilmali eslash (qidiruv, entitet xulosalari, ishonch yangilanishlari) ni qo‘shadigan oflayn-birinchi xotira arxitekturasini taklif qiladi.
Nega o‘zgartirish kerak?
Joriy sozlama (kuniga bitta fayl) quyidagilar uchun juda yaxshi:- “faqat qo‘shib boriladigan” jurnal yuritish
- inson tomonidan tahrirlash
- git asosidagi barqarorlik + audit qilinuvchanlik
- kam ishqalanishli qayd etish (“shunchaki yozib qo‘yish”)
- yuqori darajadagi qayta chaqirish (“X haqida nimaga kelishgandik?”, “oxirgi marta Y ni qachon sinab ko‘rdik?”)
- ko‘p fayllarni qayta o‘qimasdan entitetga yo‘naltirilgan javoblar (“Alice / The Castle / warelay haqida aytib ber”)
- fikr/afzalliklar barqarorligi (va u o‘zgarganda dalillar)
- vaqt cheklovlari (“2025-yil noyabrida nima to‘g‘ri edi?”) va ziddiyatlarni hal qilish
Dizayn maqsadlari
- Oflayn: tarmoqsiz ishlaydi; noutbukda/Castle’da ishga tushadi; bulutga bog‘liqlik yo‘q.
- Tushuntiriladigan: qaytarib olingan elementlar manbaga bog‘lanishi (fayl + joylashuv) va inferensiyadan ajratilishi kerak.
- Kam marosim: kundalik yozuvlar Markdown bo‘lib qoladi, og‘ir sxema ishlari yo‘q.
- Bosqichma-bosqich: v1 faqat FTS bilan ham foydali; semantik/vektor va graf funksiyalari ixtiyoriy yangilanishlardir.
- Agentga qulay: “token byudjeti doirasida eslab qolish”ni osonlashtiradi (faktlarning kichik to‘plamlarini qaytaradi).
North star model (Hindsight × Letta)
Birlashtiriladigan ikki qism:- Letta/MemGPT-style control loop
- kichik “asosiy” qismni doimo kontekstda saqlash (persona + foydalanuvchi haqidagi muhim faktlar)
- qolgan hamma narsa kontekstdan tashqarida bo‘ladi va vositalar orqali chaqirib olinadi
- xotiraga yozish aniq tool chaqiruvlari (append/replace/insert) orqali amalga oshiriladi, saqlanadi va keyingi navbatda qayta kiritiladi
- Hindsight-style memory substrate
- kuzatilgan, ishonilgan va umumlashtirilgan ma’lumotlarni alohida ajratish
- support retain/recall/reflect
- confidence-bearing opinions that can evolve with evidence
- entity-aware retrieval + temporal queries (even without full knowledge graphs)
Proposed architecture (Markdown source-of-truth + derived index)
Canonical store (git-friendly)
Keep~/.openclaw/workspace as canonical human-readable memory.
Suggested workspace layout:
- Daily log stays daily log. No need to turn it into JSON.
- The
bank/files are curated, produced by reflection jobs, and can still be edited by hand. memory.mdremains “small + core-ish”: the things you want Clawd to see every session.
Derived store (machine recall)
Add a derived index under the workspace (not necessarily git tracked):- SQLite schema for facts + entity links + opinion metadata
- SQLite FTS5 for lexical recall (fast, tiny, offline)
- Loglar JSONL formatida (har bir qatorda bitta JSON obyekt).
Retain / Recall / Reflect (operational loop)
Retain: normalize daily logs into “facts”
Hindsight’s key insight that matters here: store narrative, self-contained facts, not tiny snippets. Practical rule formemory/YYYY-MM-DD.md:
- at end of day (or during), add a
## Retainsection with 2–5 bullets that are:- narrative (cross-turn context preserved)
- self-contained (standalone makes sense later)
- tagged with type + entity mentions
- Type prefix:
W(world),B(experience/biographical),O(opinion),S(observation/summary; usually generated) - Entities:
@Peter,@warelay, etc (slugs map tobank/entities/*.md) - Opinion confidence:
O(c=0.0..1.0)optional
Recall: queries over the derived index
Recall should support:- lexical: “find exact terms / names / commands” (FTS5)
- entity: “tell me about X” (entity pages + entity-linked facts)
-
- temporal: “11-noyabr 27 atrofida nima bo‘ldi” / “o‘tgan haftadan beri”
-
- opinion: “Peter nimani afzal ko‘radi?” 3. (ishonch + dalillar bilan)
- Qaytarish formati agentlar uchun qulay bo‘lishi va manbalarni keltirishi kerak:
kind(world|experience|opinion|observation)- Agar mualliflar bu haqda o‘ylashini istamasangiz: reflect vazifasi bu punktlarni jurnalning qolgan qismidan chiqarib olishi mumkin, ammo aniq
## Retainbo‘limiga ega bo‘lish eng oson “sifat richagi”dir. entities(["Peter","warelay"])-
content(bayon qilingan fakt)
-
source(memory/2025-11-27.md#L12va h.k.)
10. Refleksiya: barqaror sahifalarni yaratish + e’tiqodlarni yangilash
- Refleksiya — rejalashtirilgan ish (kunlik yoki heartbeat
ultrathink) bo‘lib, u:
-
- so‘nggi faktlar asosida
bank/entities/*.mdni yangilaydi (entity xulosalari)
- so‘nggi faktlar asosida
-
- mustahkamlash/qarama-qarshilikka qarab
bank/opinions.mddagi ishonchni yangilaydi
- mustahkamlash/qarama-qarshilikka qarab
-
- ixtiyoriy ravishda
memory.mdga tahrirlarni taklif qiladi (“core-ish” barqaror faktlar)
- ixtiyoriy ravishda
- Fikr evolyutsiyasi (oddiy, tushuntiriladigan):
-
- har bir fikrda quyidagilar bo‘ladi:
-
- bayonot
-
- ishonch
c ∈ [0,1]
- ishonch
- last_updated
timestamp(manba kuni yoki mavjud bo‘lsa, ajratib olingan vaqt oralig‘i)
-
- yangi faktlar kelganda:
-
- entity ustma-ustligi + o‘xshashlik bo‘yicha nomzod fikrlarni topish (avval FTS, keyin embeddinglar)
-
- ishonchni kichik deltalar bilan yangilash; katta sakrashlar kuchli qarama-qarshilik + takroriy dalillarni talab qiladi
24. CLI integratsiyasi: mustaqil vs chuqur integratsiya
- Tavsiya: OpenClaw ichida chuqur integratsiya, lekin ajratiladigan yadro kutubxonasini saqlash.
26. Nega OpenClaw ga integratsiya qilish kerak?
-
- OpenClaw allaqachon biladi:
-
- ish joyi yo‘li (
agents.defaults.workspace)
- ish joyi yo‘li (
-
- sessiya modeli + heartbeats
-
- loglash + nosozliklarni bartaraf etish andozalari
-
- Asboblarni agentning o‘zi chaqirishini xohlaysiz:
openclaw memory recall "…" --k 25 --since 30dopenclaw memory reflect --since 7d
34. Nega baribir kutubxonani ajratish kerak?
-
- xotira mantiğini gateway/runtime bo‘lmasdan testlanadigan saqlash
- dalil havolalari (tasdiqlovchi + qarama-qarshi fakt identifikatorlari)
- Tuzilishi:
Xotira asboblari kichik CLI + kutubxona qatlamidan iborat bo‘lishi mo‘ljallangan, ammo bu hozircha faqat tadqiqotdir.
- “S-Collide” / SuCo: qachon ishlatish (tadqiqot)
- Agar “S-Collide” SuCo (Subspace Collision) ni anglatadigan bo‘lsa: bu kuchli recall/kechikish muvozanatini maqsad qilgan ANN qidiruv yondashuvi bo‘lib, subfazolardagi o‘rganilgan/tuzilmaviy to‘qnashuvlardan foydalanadi (maqola: arXiv 2411.14754, 2024).
- recall sifati leksik qidiruv bilan sezilarli darajada cheklanib qolganda
-
- boshlamang SuCo bilan.
-
- SQLite FTS + (ixtiyoriy) oddiy embeddinglardan boshlang; darhol UX yutuqlarining aksariga erishasiz.
-
- SuCo/HNSW/ScaNN turidagi yechimlarni faqat shunda ko‘rib chiqing:
-
- korpus katta bo‘lganda (o‘nlab/yuz minglab bo‘laklar)
-
- embeddinglarni qo‘pol kuch bilan qidirish juda sekinlashganda
- recall sifati leksik qidiruv bilan sezilarli darajada cheklanib qolganda
-
- Offline-ga qulay muqobillar (murakkablik ortib borish tartibida):
-
- SQLite FTS5 + metadata filtrlari (nol ML)
-
- Embeddinglar + brute force (bo‘laklar soni kam bo‘lsa, hayratlanarli darajada uzoq ishlaydi)
- SuCo (tadqiqot darajasida; agar ichiga joylashtira oladigan mustahkam implementatsiya bo‘lsa, jozibali)
- sizning qurilmalaringizda (noutbuk + desktop) “shaxsiy yordamchi xotirasi” uchun eng yaxshi oflayn embedding modeli qaysi?
- agar sizda allaqachon Ollama bo‘lsa: lokal model bilan embedding qiling; aks holda toolchain ichiga kichik embedding modelini yuboring.
Eng kichik foydali pilot
Agar minimal, lekin baribir foydali versiyani xohlasangiz:bank/entity sahifalarini va kundalik loglarda## Retainbo‘limini qo‘shing.- Iqtiboslar bilan eslab qolish uchun SQLite FTS’dan foydalaning (yo‘l + qator raqamlari).
- Faqatgina recall sifati yoki masshtab talab qilgandagina embedding qo‘shing.
Manbalar
- Letta / MemGPT tushunchalari: “asosiy xotira bloklari” + “arxiv xotira” + vositalar orqali o‘zini tahrirlovchi xotira.
- Hindsight Texnik Hisoboti: “retain / recall / reflect”, to‘rtta tarmoqli xotira, narrativ faktlarni ajratib olish, fikr ishonchliligining evolyutsiyasi.
- SuCo: arXiv 2411.14754 (2024): “Subspace Collision” taxminiy eng yaqin qo‘shnilarni topish (ANN) orqali retrieval.