Community translations by veiseule.ai — Help improve them on Crowdin
Skip to main content

Workspace Memory v2 (offline): تحقیقی نوٹس

ہدف: Clawd طرز کی ورک اسپیس (agents.defaults.workspace، بطورِ طے شدہ ~/.openclaw/workspace) جہاں “میموری” ہر دن کی ایک Markdown فائل (memory/YYYY-MM-DD.md) اور چند مستحکم فائلوں کے ایک چھوٹے مجموعے (مثلاً memory.md، SOUL.md) میں محفوظ ہوتی ہے۔

یہ دستاویز ایک offline-first میموری آرکیٹیکچر تجویز کرتی ہے جو Markdown کو بطورِ جائزہ لینے کے قابل، بنیادی ماخذِ حقیقت برقرار رکھتی ہے، مگر ایک اخذ کردہ اشاریہ کے ذریعے ساختہ یادداشت (تلاش، اینٹیٹی خلاصے، اعتماد کی تازہ کاری) شامل کرتی ہے۔

تبدیلی کیوں؟

موجودہ سیٹ اپ (ہر دن ایک فائل) ان کے لیے بہترین ہے:

  • “append-only” جرنلنگ
  • انسانی ترمیم
  • git پر مبنی پائیداری + آڈٹ کے قابل ہونا
  • کم رکاوٹ کے ساتھ اندراج (“بس لکھ دیں”)

یہ ان پہلوؤں میں کمزور ہے:

  • اعلیٰ یادداشت کے ساتھ بازیافت (“ہم نے X کے بارے میں کیا فیصلہ کیا؟”، “پچھلی بار Y کب آزمایا؟”)
  • اینٹیٹی مرکز جوابات (“Alice / The Castle / warelay کے بارے میں بتائیں”) بغیر بہت سی فائلیں دوبارہ پڑھے
  • رائے/ترجیح کی پائیداری (اور اس میں تبدیلی پر شواہد)
  • وقت کی پابندیاں (“Nov 2025 کے دوران کیا درست تھا؟”) اور conflict resolution

ڈیزائن کے مقاصد

  • Offline: نیٹ ورک کے بغیر کام کرے؛ لیپ ٹاپ/Castle پر چل سکے؛ کلاؤڈ پر انحصار نہ ہو۔
  • Explainable: بازیافت شدہ اشیاء منسوب کی جا سکیں (فائل + مقام) اور استنباط سے الگ ہوں۔
  • Low ceremony: روزانہ لاگنگ Markdown ہی رہے؛ بھاری اسکیما کی ضرورت نہ ہو۔
  • Incremental: v1 صرف FTS کے ساتھ بھی مفید ہو؛ معنوی/ویکٹر اور گراف اختیاری اپ گریڈ ہوں۔
  • Agent-friendly: “ٹوکن بجٹس کے اندر یادداشت” کو آسان بنائے (حقائق کے چھوٹے بنڈلز واپس کرے)۔

نارتھ اسٹار ماڈل (Hindsight × Letta)

دو اجزاء کو ملانا:

  1. Letta/MemGPT طرز کا کنٹرول لوپ
  • ایک چھوٹا “core” ہمیشہ سیاق میں رکھیں (persona + کلیدی صارف حقائق)
  • باقی سب سیاق سے باہر ہو اور اوزار کے ذریعے بازیافت ہو
  • میموری لکھائیاں واضح ٹول کالز ہوں (append/replace/insert)، محفوظ ہوں، پھر اگلے ٹرن میں دوبارہ شامل کی جائیں
  1. Hindsight طرز کا میموری سبسٹریٹ
  • مشاہدہ شدہ بمقابلہ مانا گیا بمقابلہ خلاصہ شدہ کو الگ کریں
  • retain/recall/reflect کی حمایت
  • اعتماد رکھنے والی آراء جو شواہد کے ساتھ ارتقا پذیر ہوں
  • اینٹیٹی آگاہ بازیافت + وقتی سوالات (مکمل نالج گراف کے بغیر بھی)

مجوزہ آرکیٹیکچر (Markdown بطور بنیادی ماخذ + اخذ کردہ انڈیکس)

کینونیکل اسٹور (git کے موافق)

~/.openclaw/workspace کو بطورِ انسانی قابلِ مطالعہ میموری برقرار رکھیں۔

تجویز کردہ ورک اسپیس لے آؤٹ:

~/.openclaw/workspace/
  memory.md                    # small: durable facts + preferences (core-ish)
  memory/
    YYYY-MM-DD.md              # daily log (append; narrative)
  bank/                        # “typed” memory pages (stable, reviewable)
    world.md                   # objective facts about the world
    experience.md              # what the agent did (first-person)
    opinions.md                # subjective prefs/judgments + confidence + evidence pointers
    entities/
      Peter.md
      The-Castle.md
      warelay.md
      ...

نوٹس:

  • Daily log stays daily log۔ اسے JSON میں تبدیل کرنے کی ضرورت نہیں۔
  • bank/ فائلیں مرتب شدہ ہیں، عکاسی کے کاموں سے بنتی ہیں، اور پھر بھی ہاتھ سے ترمیم کی جا سکتی ہیں۔
  • memory.md “چھوٹا + core جیسا” ہی رہتا ہے: وہ چیزیں جو آپ چاہتے ہیں کہ Clawd ہر سیشن میں دیکھے۔

اخذ کردہ اسٹور (مشینی یادداشت)

ورک اسپیس کے تحت ایک اخذ کردہ اشاریہ شامل کریں (ضروری نہیں کہ git میں ٹریک ہو):

~/.openclaw/workspace/.memory/index.sqlite

اسے بیک کریں:

  • حقائق + اینٹیٹی روابط + رائے کے میٹاڈیٹا کے لیے SQLite اسکیما
  • لغوی یادداشت کے لیے SQLite FTS5 (تیز، چھوٹا، آف لائن)
  • معنوی یادداشت کے لیے اختیاری embeddings ٹیبل (ابھی بھی آف لائن)

یہ اشاریہ ہمیشہ Markdown سے دوبارہ تعمیر کے قابل ہوتا ہے۔

Retain / Recall / Reflect (عملی لوپ)

Retain: روزانہ لاگز کو “حقائق” میں معمول پر لانا

Hindsight کی کلیدی بصیرت جو یہاں اہم ہے: بیانیہ، خود کفیل حقائق محفوظ کریں، نہ کہ چھوٹے ٹکڑے۔

memory/YYYY-MM-DD.md کے لیے عملی قاعدہ:

  • دن کے اختتام پر (یا دوران)، ایک ## Retain سیکشن میں 2–5 بُلٹس شامل کریں جو:
  • بیانیہ ہوں (کراس ٹرن سیاق محفوظ)
  • خود کفیل ہوں (بعد میں اکیلے بھی معنی خیز)
  • قسم + اینٹیٹی حوالہ جات کے ساتھ ٹیگ شدہ ہوں

مثال:

## Retain
- W @Peter: Currently in Marrakech (Nov 27–Dec 1, 2025) for Andy’s birthday.
- B @warelay: I fixed the Baileys WS crash by wrapping connection.update handlers in try/catch (see memory/2025-11-27.md).
- O(c=0.95) @Peter: Prefers concise replies (<1500 chars) on WhatsApp; long content goes into files.

کم سے کم پارسنگ:

  • قسم کا سابقہ: W (دنیا)، B (تجربہ/سوانحی)، O (رائے)، S (مشاہدہ/خلاصہ؛ عموماً تیار کردہ)
  • اینٹیٹیز: @Peter، @warelay وغیرہ (slugs کا نقشہ bank/entities/*.md سے)
  • رائے کا اعتماد: O(c=0.0..1.0) اختیاری

اگر آپ مصنفین کو اس پر سوچنے پر مجبور نہیں کرنا چاہتے: reflect جاب لاگ کے باقی حصے سے یہ بُلٹس اخذ کر سکتی ہے، مگر ایک واضح ## Retain سیکشن رکھنا سب سے آسان “کوالٹی لیور” ہے۔

Recall: اخذ کردہ اشاریہ پر سوالات

Recall کو درج ذیل کی حمایت کرنی چاہیے:

  • لغوی: “عین اصطلاحات / نام / کمانڈز تلاش کریں” (FTS5)
  • اینٹیٹی: “X کے بارے میں بتائیں” (اینٹیٹی صفحات + اینٹیٹی سے منسلک حقائق)
  • وقتی: “27 نومبر کے آس پاس کیا ہوا” / “پچھلے ہفتے سے”
  • opinion: “Peter کیا ترجیح دیتا ہے؟” (اعتماد + شواہد کے ساتھ)

واپسی کا فارمیٹ ایجنٹ کے لیے موزوں ہو اور ذرائع کا حوالہ دے:

  • kind (world|experience|opinion|observation)
  • timestamp (ماخذ دن، یا موجود ہو تو اخذ کردہ وقت کی حد)
  • entities (["Peter","warelay"])
  • content (بیانیہ حقیقت)
  • source (memory/2025-11-27.md#L12 وغیرہ)

Reflect: مستحکم صفحات تیار کرنا + عقائد کی تازہ کاری

Reflection ایک شیڈول شدہ جاب ہے (روزانہ یا ہارٹ بیٹ ultrathink) جو:

  • حالیہ حقائق سے bank/entities/*.md کو تازہ کرتی ہے (اینٹیٹی خلاصے)
  • تقویت/تضاد کی بنیاد پر bank/opinions.md کے اعتماد کو اپ ڈیٹ کرتی ہے
  • اختیاری طور پر memory.md (“core جیسی” پائیدار حقائق) میں ترامیم تجویز کرتی ہے

رائے کا ارتقا (سادہ، قابلِ وضاحت):

  • ہر رائے میں شامل ہو:
  • بیان
  • اعتماد c ∈ [0,1]
  • last_updated
  • شواہد کے روابط (تائیدی + متضاد حقیقت IDs)
  • جب نئی حقائق آئیں:
  • اینٹیٹی اوورلیپ + مماثلت سے امیدوار آراء تلاش کریں (پہلے FTS، بعد میں embeddings)
  • اعتماد کو چھوٹے ڈیلٹاز سے اپ ڈیٹ کریں؛ بڑے چھلانگیں مضبوط تضاد + بار بار شواہد چاہتی ہیں

CLI انضمام: خود مختار بمقابلہ گہرا انضمام

سفارش: OpenClaw میں گہرا انضمام، مگر ایک علیحدہ کور لائبریری برقرار رکھیں۔

OpenClaw میں انضمام کیوں؟

  • OpenClaw پہلے ہی جانتا ہے:
  • ورک اسپیس کا راستہ (agents.defaults.workspace)
  • سیشن ماڈل + ہارٹ بیٹس
  • لاگنگ + خرابیوں کے ازالے کے پیٹرنز
  • آپ چاہتے ہیں کہ خود ایجنٹ ٹولز کال کرے:
  • openclaw memory recall "…" --k 25 --since 30d
  • openclaw memory reflect --since 7d

پھر بھی لائبریری کیوں الگ رکھیں؟

  • گیٹ وے/رن ٹائم کے بغیر میموری لاجک کو قابلِ جانچ رکھنا
  • دیگر سیاق میں دوبارہ استعمال (لوکل اسکرپٹس، مستقبل کی ڈیسک ٹاپ ایپ، وغیرہ)

شکل: میموری ٹولنگ ایک چھوٹی CLI + لائبریری لیئر کے طور پر ارادہ رکھتی ہے، مگر یہ صرف تحقیقی مرحلہ ہے۔

“S-Collide” / SuCo: کب استعمال کریں (تحقیق)

اگر “S-Collide” سے مراد SuCo (Subspace Collision) ہے: یہ ایک ANN بازیافت طریقہ ہے جو ذیلی اسپیسز میں سیکھے گئے/ساختہ تصادمات استعمال کر کے مضبوط یادداشت/تاخیر کے توازن کو ہدف بناتا ہے (پیپر: arXiv 2411.14754، 2024)۔

~/.openclaw/workspace کے لیے عملی مؤقف:

  • SuCo سے آغاز نہ کریں۔
  • SQLite FTS + (اختیاری) سادہ embeddings سے شروع کریں؛ آپ کو فوراً زیادہ تر UX فوائد مل جائیں گے۔
  • SuCo/HNSW/ScaNN کلاس حل تبھی سوچیں جب:
  • کارپس بڑا ہو (دسوں/سیکڑوں ہزاروں چنکس)
  • brute-force embedding تلاش بہت سست ہو جائے
  • یادداشت کا معیار لغوی تلاش کی وجہ سے معنی خیز طور پر رکا ہوا ہو

آف لائن دوستانہ متبادل (پیچیدگی کے بڑھتے درجے میں):

  • SQLite FTS5 + میٹاڈیٹا فلٹرز (صفر ML)
  • Embeddings + brute force (کم چنکس کے ساتھ حیرت انگیز حد تک کام کرتا ہے)
  • HNSW انڈیکس (عام، مضبوط؛ لائبریری بائنڈنگ درکار)
  • SuCo (تحقیقی درجے کا؛ پرکشش اگر ایمبیڈ کرنے کے لیے مضبوط امپلیمینٹیشن ہو)

کھلا سوال:

  • آپ کی مشینوں (لیپ ٹاپ + ڈیسک ٹاپ) پر “ذاتی معاون میموری” کے لیے بہترین آف لائن embedding ماڈل کون سا ہے؟
  • اگر پہلے ہی Ollama ہے: لوکل ماڈل کے ساتھ embed کریں؛ ورنہ ٹول چین میں ایک چھوٹا embedding ماڈل شامل کریں۔

Smallest useful pilot

اگر آپ ایک کم سے کم مگر مفید ورژن چاہتے ہیں:

  • bank/ اینٹیٹی صفحات اور روزانہ لاگز میں ایک ## Retain سیکشن شامل کریں۔
  • حوالہ جات (راستہ + لائن نمبرز) کے ساتھ recall کے لیے SQLite FTS استعمال کریں۔
  • embeddings صرف تب شامل کریں جب recall کا معیار یا پیمانہ اس کا تقاضا کرے۔

References

  • Letta / MemGPT تصورات: “core memory blocks” + “archival memory” + ٹول پر مبنی خود ترمیمی میموری۔
  • Hindsight ٹیکنیکل رپورٹ: “retain / recall / reflect”، چار-نیٹ ورک میموری، بیانیہ حقیقت اخذ کرنا، رائے کے اعتماد کا ارتقا۔
  • SuCo: arXiv 2411.14754 (2024): “Subspace Collision” approximate nearest neighbor retrieval۔