memory-wiki هو Plugin مضمّن يجمع المعرفة الدائمة في ويكي قابلة للتصفح: صفحات حتمية، وادعاءات منظّمة مدعومة بالأدلة، ومعلومات المصدر، ولوحات معلومات، وملخصات قابلة للقراءة آليًا.
لا يحل محل Plugin الذاكرة النشطة. تظل مسؤولية الاسترجاع، والترقية، والفهرسة، وDreaming مملوكة لواجهة الذاكرة الخلفية التي تم تكوينها (memory-core أو QMD أو Honcho أو غيرها). يعمل memory-wiki إلى جانبها ويجمع المعرفة في طبقة ويكي خاضعة للصيانة.
قاعدة عملية:
- استخدم
memory_searchلإجراء عملية استرجاع واسعة واحدة عبر أي مجموعات محتوى تم تكوينها - استخدم
wiki_search/wiki_getعندما تريد ترتيبًا خاصًا بالويكي، أو معلومات المصدر، أو بنية اعتقادات على مستوى الصفحة - استخدم
memory_search corpus=allلتغطية الطبقتين في استدعاء واحد، عندما يدعم Plugin الذاكرة النشطة تحديد مجموعة المحتوى
memory-wiki في وضع bridge للصفحات الدائمة المركّبة. راجع مثال وضع QMD + bridge ضمن التكوين.
إذا أبلغ وضع bridge عن عدم وجود أي عناصر مصدّرة، فهذا يعني أن Plugin الذاكرة النشطة لا يوفّر حاليًا مدخلات bridge عامة. شغّل openclaw wiki doctor أولًا، ثم تأكد من أن Plugin الذاكرة النشطة يدعم العناصر العامة.
أوضاع المخزن
isolated(الافتراضي): مخزن مستقل، ومصادر مستقلة، ومن دون اعتماد على Plugin الذاكرة النشطة. استخدمه لمستودع معرفة منسّق ومكتفٍ ذاتيًا.bridge: يقرأ عناصر الذاكرة العامة وسجلات الأحداث من Plugin الذاكرة النشطة عبر واجهات plugin SDK العامة. استخدمه لتجميع العناصر التي يصدّرها Plugin الذاكرة من دون الوصول إلى مكوّناته الداخلية الخاصة.unsafe-local: منفذ صريح للاستخدام على الجهاز نفسه للوصول إلى المسارات المحلية الخاصة. تجريبي وغير قابل للنقل عن قصد؛ لا تستخدمه إلا عندما تفهم حدود الثقة وتحتاج تحديدًا إلى وصول محلي لنظام الملفات لا يستطيع وضع bridge توفيره.
- يحدد
vaultModeمصدر مدخلات الويكي. - يحدد
vault.scopeما إذا كان جميع الوكلاء يستخدمون مخزنًا واحدًا أو يحصل كل وكيل على مخزن فرعي.
vault.scope: "global" هي الافتراضية وتحافظ على سلوك المخزن الواحد الحالي. استخدم vault.scope: "agent" مع وضع isolated أو bridge عندما يجب ألا يتشارك الوكلاء صفحات الويكي، أو الملخصات المجمّعة، أو نتائج البحث، أو عمليات الكتابة. لا يمكن الجمع بين نطاق الوكيل ووضع unsafe-local لأن تلك المسارات الخاصة المكوّنة ليست مدخلات مملوكة للوكيل. يرفض التحقق من صحة التكوين هذا الجمع.
يمكن لوضع bridge فهرسة ما يلي، وفق مفتاح التبديل المقابل في تكوين bridge.*:
- عناصر الذاكرة المصدّرة (
indexMemoryRoot) - الملاحظات اليومية (
indexDailyNotes) - تقارير Dreaming (
indexDreamReports) - سجلات أحداث الذاكرة (
followMemoryEvents)
bridge.readMemoryArtifacts مفعّلًا، تُوجَّه أوامر openclaw wiki status وopenclaw wiki doctor وopenclaw wiki bridge import عبر Gateway قيد التشغيل، بحيث ترى سياق Plugin الذاكرة النشطة نفسه الذي تراه ذاكرة الوكيل/بيئة التشغيل. إذا كان bridge معطّلًا أو كانت قراءة العناصر متوقفة، تحتفظ هذه الأوامر بسلوكها المحلي/غير المتصل.
تخطيط المخزن
sources/: المواد الأولية المستوردة والصفحات المدعومة بواسطة bridge أوunsafe-localentities/: الأشياء والأشخاص والأنظمة والمشاريع والكائنات الدائمةconcepts/: الأفكار والتجريدات والأنماط والسياسات (وهو أيضًا موضع وصول واردات OKF)syntheses/: الملخصات المجمّعة والتجميعات الخاضعة للصيانةreports/: لوحات المعلومات المُنشأة
واردات تنسيق المعرفة المفتوح
memory-wiki يحوّله إلى صفحات مفاهيم أصلية لـ OpenClaw وملخصات مجمّعة.
- ملفات
.mdغير المحجوزة هي مستندات مفاهيم - يتطلب كل مفهوم مستورد حقل frontmatter غير فارغ باسم
type؛ يؤدي غيابtypeإلى تحذيرmissing-typeوتخطي الملف - تُقبل قيم
typeغير المعروفة كمفاهيم عامة - الملفان
index.mdوlog.mdمحجوزان ولا يُستوردان مطلقًا كمفاهيم - تُترك روابط Markdown المعطّلة أو الخارجية من دون تغيير
concepts/ بحيث تراها مسارات التجميع والبحث والجلب ولوحات المعلومات الحالية من دون شجرة ويكي ثانية. تحتفظ كل صفحة بمعرّف مفهوم OKF الأصلي، ومسار المصدر، وtype، وresource، وtags، والطابع الزمني، وfrontmatter الكامل الخاص بالمنتِج. يُعاد توجيه روابط OKF الداخلية إلى صفحات مفاهيم الويكي المُنشأة، كما تنشئ إدخالات relationships منظّمة تتضمن kind: okf-link.
الادعاءات والأدلة المنظّمة
تحمل الصفحات frontmatter منظّمًا باسمclaims، وليس مجرد نص حر. يمكن أن يتضمن كل ادعاء id وtext وstatus وconfidence وevidence[] وupdatedAt. ويمكن أن يتضمن كل إدخال دليل kind وsourceId وpath وlines وweight وconfidence وprivacyTier وnote وupdatedAt.
يجعل ذلك الويكي تعمل كطبقة اعتقادات، لا كمستودع ملاحظات سلبي. يمكن تتبع الادعاءات وتقييمها والاعتراض عليها وحسمها بالرجوع إلى المصادر.
بيانات الكيانات الوصفية الموجّهة للوكلاء
تحمل صفحات الكيانات بيانات توجيه وصفية عامة قابلة للاستخدام مع الأشخاص أو الفرق أو الأنظمة أو المشاريع أو أي نوع آخر من الكيانات:entityType: مثلpersonأوteamأوsystemأوprojectcanonicalId: مفتاح هوية ثابت عبر الأسماء البديلة والوارداتaliases: أسماء أو معرّفات أو تسميات تشير إلى الصفحة نفسهاprivacyTier: سلسلة حرة؛ تُعاملpublicعلى أنها لا تتطلب مراجعة، بينما تُعلّم أي قيمة أخرى (مثلlocal-privateأوsensitiveأوconfirm-before-use) فيreports/privacy-review.mdbestUsedFor/notEnoughFor: تلميحات توجيه مختصرةlastRefreshedAt: طابع زمني لتحديث المصدر، منفصل عن وقت تعديل الصفحةpersonCard: بطاقة توجيه اختيارية خاصة بالشخص (المعرّفات، وحسابات التواصل الاجتماعي، وعناوين البريد الإلكتروني، والمنطقة الزمنية، والمسار، وما يمكن سؤاله عنه، وما ينبغي تجنب سؤاله عنه، والثقة، ومستوى الخصوصية)relationships: حواف ذات أنواع إلى الصفحات ذات الصلة (الهدف، والنوع، والوزن، والثقة، ونوع الدليل، ومستوى الخصوصية، والملاحظة)
reports/person-agent-directory.md، ثم افتح صفحة الشخص باستخدام wiki_get قبل استخدام تفاصيل الاتصال أو الحقائق المستنتجة.
مثال على صفحة كيان
مثال على صفحة كيان
مسار التجميع
تقرأ عملية التجميع صفحات الويكي، وتوحّد الملخصات، وتنتج عناصر ثابتة موجّهة للآلات ضمن:.openclaw-wiki/cache/agent-digest.json.openclaw-wiki/cache/claims.jsonl
لوحات المعلومات وتقارير السلامة
عندما يكونrender.createDashboards مفعّلًا، تحافظ عملية التجميع على لوحات المعلومات ضمن reports/:
البحث والاسترجاع
واجهتان خلفيتان للبحث:shared: استخدام مسار بحث الذاكرة المشترك عند توفرهlocal: البحث في الويكي محليًا
wiki وmemory وall.
- يستخدم
wiki_search/wiki_getالملخصات المجمّعة كمرحلة أولى متى أمكن - تُرجع معرّفات الادعاءات إلى الصفحة المالكة
- تؤثر الادعاءات المتنازع عليها والقديمة والحديثة في الترتيب
- تظل تسميات معلومات المصدر موجودة في النتائج
--mode / معامل الأداة mode):
عندما تتطابق نتيجة مع ادعاء منظّم، يعيد
wiki_search الحقول matchedClaimId وmatchedClaimStatus وmatchedClaimConfidence وevidenceKinds وevidenceSourceIds ضمن حمولة التفاصيل. يتضمن الإخراج النصي أسطر Claim: وEvidence: مختصرة عند توفرها.
أدوات الوكيل
يسجّل Plugin أيضًا ملحقًا غير حصري لمجموعة الذاكرة، بحيث يمكن لـ
memory_search وmemory_get المشتركين الوصول إلى الويكي عندما يدعم Plugin
الذاكرة النشط اختيار المجموعة.
سلوك الموجّه والسياق
عند تمكينcontext.includeCompiledDigestPrompt، تُلحق أقسام موجّه الذاكرة
لقطة مترجمة مدمجة من agent-digest.json: أهم الصفحات فقط،
وأهم الادعاءات فقط، وعدد التناقضات، وعدد الأسئلة، ومؤهلات الثقة/الحداثة.
هذه ميزة اختيارية لأنها تغيّر بنية الموجّه؛ وهي تهم أساسًا محركات السياق
أو عمليات تجميع الموجّهات التي تستهلك ملحقات الذاكرة صراحةً.
الإعداد
ضع الإعداد ضمنplugins.entries.memory-wiki.config:
خزنات منفصلة لكل وكيل
اضبطvault.scope على agent لمنح كل وكيل مُعدّ ويكي منفصلة.
في هذا النطاق، يكون vault.path دليلًا أبًا ويُلحق OpenClaw
معرّف الوكيل بعد تطبيعه:
~/.openclaw/wiki/support و
~/.openclaw/wiki/marketing. إذا أُغفل vault.path في نطاق الوكيل، تكون
القيمة الافتراضية للمسار الأب هي ~/.openclaw/wiki. لذلك يحتفظ الوكيل
الافتراضي main بالمسار الحالي ~/.openclaw/wiki/main.
تحدد أدوات الوكيل وملخصات الموجّه المترجمة وملحق الويكي المكشوف من خلال
memory_search / memory_get الخزنة من سياق الوكيل النشط.
بالنسبة إلى استدعاءات CLI وGateway في إعداد يحتوي عدة وكلاء مُعدّين، حدّد
الوكيل صراحةً باستخدام openclaw wiki --agent <agentId> ... أو agentId
في طلب Gateway. يظل الوكيل الوحيد المُعدّ هو الافتراضي عند عدم تقديم معرّف.
في وضع الجسر، لا تقبل عمليات الاستيراد ذات نطاق الوكيل عنصر ذاكرة عامًا إلا عندما
تتضمن agentIds الخاصة به الوكيل المحدد. تُتخطى العناصر المملوكة لوكيل آخر،
أو التي لا تحتوي على بيانات وصفية للملكية، أو التي لها مالك مجهول. يحتفظ النطاق العام
بسلوك العناصر المشتركة الحالي.
مثال: QMD + وضع الجسر
استخدم هذا عندما تريد QMD للاسترجاع وmemory-wiki لطبقة معرفية مُدارة.
تظل كل طبقة مركزة على مهمتها: يحافظ QMD على قابلية البحث في الملاحظات الأولية
وتصديرات الجلسات والمجموعات الإضافية، بينما يترجم memory-wiki
الكيانات والادعاءات ولوحات المعلومات وصفحات المصادر المستقرة.
memory-wiki على
الصفحات المترجمة ولوحات المعلومات، ويُبقي بنية الموجّه دون تغيير حتى
تُفعّل عمدًا موجّهات الملخص المترجم.
CLI
wiki okf import وwiki apply metadata وwiki unsafe-local import
وwiki chatgpt import / wiki chatgpt rollback، ومجموعة أوامر
wiki obsidian الفرعية الكاملة.
دعم Obsidian
عندما تكون قيمةvault.renderMode هي obsidian، يكتب Plugin صيغة
Markdown ملائمة لـ Obsidian، ويمكنه اختياريًا استخدام CLI الرسمي
obsidian لاستقصاء الحالة، والبحث في الخزنة، وفتح صفحة، واستدعاء أمر،
والانتقال إلى الملاحظة اليومية. هذا اختياري؛ تظل الويكي تعمل في الوضع
الأصلي دون Obsidian.
لا يزال بإمكان الخزنات ذات نطاق الوكيل استخدام Markdown الملائم لـ Obsidian،
لكن التحقق من الإعداد يرفض obsidian.useOfficialCli: true مع
vault.scope: "agent". إعداد obsidian.vaultName الحالي عام ولا يمكنه
تحديد خزنة Obsidian مميزة لكل وكيل. استخدم بدلًا من ذلك أدوات الويكي وعمليات
CLI، أو احتفظ بويكي يديرها Obsidian ضمن النطاق العام.
سير العمل الموصى به
1
احتفظ بـ Plugin الذاكرة النشط للاسترجاع
يبقى الاسترجاع والترقية وDreaming تحت مسؤولية واجهة الذاكرة الخلفية المُعدّة.
2
فعّل memory-wiki
ابدأ بالوضع
isolated ما لم تكن تريد وضع الجسر صراحةً.3
استخدم wiki_search / wiki_get عندما يكون مصدر المعلومات مهمًا
فضّلهما على
memory_search عندما تريد ترتيبًا خاصًا بالويكي أو بنية معتقدات على مستوى الصفحة.4
استخدم wiki_apply للتوليفات المحدودة أو تحديثات البيانات الوصفية
تجنب تحرير الكتل المُدارة والمُنشأة يدويًا.
5
شغّل wiki_lint بعد التغييرات المهمة
يكتشف التناقضات والأسئلة المفتوحة وفجوات مصدر المعلومات.
6
فعّل لوحات المعلومات لإظهار المحتوى القديم والتناقضات
اضبط
render.createDashboards: true (افتراضي).