الذاكرة النشطة
الذاكرة النشطة هي وكيل فرعي اختياري لذاكرة الحظر مملوك للمكوّن الإضافي ويعمل قبل الرد الرئيسي في جلسات المحادثة المؤهلة. وهي موجودة لأن معظم أنظمة الذاكرة قادرة ولكنها تفاعلية. فهي تعتمد على الوكيل الرئيسي ليقرر متى يبحث في الذاكرة، أو على المستخدم ليقول أشياء مثل “تذكر هذا” أو “ابحث في الذاكرة”. وبحلول ذلك الوقت، تكون اللحظة التي كان من الممكن أن تجعل فيها الذاكرة الرد يبدو طبيعيًا قد فاتت بالفعل. تمنح الذاكرة النشطة النظام فرصة واحدة محدودة لإظهار الذاكرة ذات الصلة قبل إنشاء الرد الرئيسي.الصق هذا في الوكيل الخاص بك
الصق هذا في الوكيل الخاص بك إذا كنت تريد أن يفعّل الذاكرة النشطة باستخدام إعداد مكتفٍ ذاتيًا وآمن افتراضيًا:main، وإبقائه مقصورًا افتراضيًا على
الجلسات بأسلوب الرسائل المباشرة، ويسمح له أولًا بوراثة نموذج الجلسة الحالية،
ومع ذلك يظل يسمح بالرجوع الاحتياطي البعيد المضمّن إذا لم يتوفر أي نموذج صريح
أو موروث.
بعد ذلك، أعد تشغيل البوابة:
تشغيل الذاكرة النشطة
أكثر إعدادات الأمان هي:- تفعيل المكوّن الإضافي
- استهداف وكيل محادثة واحد
- إبقاء التسجيل مفعّلًا فقط أثناء الضبط
openclaw.json:
plugins.entries.active-memory.enabled: trueيشغّل المكوّن الإضافيconfig.agents: ["main"]يفعّل الذاكرة النشطة للوكيلmainفقطconfig.allowedChatTypes: ["direct"]يُبقي الذاكرة النشطة مفعّلة افتراضيًا فقط للجلسات بأسلوب الرسائل المباشرة- إذا لم يتم تعيين
config.model، فإن الذاكرة النشطة ترث أولًا نموذج الجلسة الحالية config.modelFallbackPolicy: "default-remote"يُبقي الرجوع الاحتياطي البعيد المضمّن هو الافتراضي عندما لا يتوفر نموذج صريح أو موروثconfig.promptStyle: "balanced"يستخدم نمط المطالبة الافتراضي للأغراض العامة لوضعrecent- لا تزال الذاكرة النشطة تعمل فقط على جلسات الدردشة التفاعلية الدائمة المؤهلة
كيفية رؤيتها
تحقن الذاكرة النشطة سياق نظام مخفيًا للنموذج. وهي لا تعرض وسوم<active_memory_plugin>...</active_memory_plugin> الخام للعميل.
تبديل الجلسة
استخدم أمر المكوّن الإضافي عندما تريد إيقاف الذاكرة النشطة مؤقتًا أو استئنافها لجلسة الدردشة الحالية من دون تعديل الإعدادات:plugins.entries.active-memory.enabled أو استهداف الوكيل أو أي إعداد
عام آخر.
إذا كنت تريد أن يكتب الأمر الإعدادات ويوقف الذاكرة النشطة مؤقتًا أو يستأنفها
لكل الجلسات، فاستخدم الصيغة العامة الصريحة:
plugins.entries.active-memory.config.enabled. وهي تُبقي
plugins.entries.active-memory.enabled مفعّلًا حتى يظل الأمر متاحًا
لتشغيل الذاكرة النشطة مرة أخرى لاحقًا.
إذا كنت تريد معرفة ما الذي تفعله الذاكرة النشطة في جلسة مباشرة، ففعّل
الوضع المطوّل لتلك الجلسة:
- سطر حالة للذاكرة النشطة مثل
Active Memory: ok 842ms recent 34 chars - ملخص تصحيح مقروء مثل
Active Memory Debug: Lemon pepper wings with blue cheese.
متى يعمل
تستخدم الذاكرة النشطة بوابتين:- الاشتراك عبر الإعدادات
يجب تفعيل المكوّن الإضافي، ويجب أن يظهر معرّف الوكيل الحالي في
plugins.entries.active-memory.config.agents. - أهلية وقت التشغيل الصارمة حتى عند التفعيل والاستهداف، لا تعمل الذاكرة النشطة إلا مع جلسات الدردشة التفاعلية الدائمة المؤهلة.
أنواع الجلسات
تتحكمconfig.allowedChatTypes في أنواع المحادثات التي يمكن أن تشغّل الذاكرة
النشطة أصلًا.
القيمة الافتراضية هي:
أين تعمل
الذاكرة النشطة ميزة لإثراء المحادثة، وليست ميزة استدلال على مستوى المنصة بالكامل.| السطح | هل تعمل الذاكرة النشطة؟ |
|---|---|
| جلسات Control UI / web chat الدائمة | نعم، إذا كان المكوّن الإضافي مفعّلًا وكان الوكيل مستهدفًا |
| جلسات القنوات التفاعلية الأخرى على نفس مسار الدردشة الدائم | نعم، إذا كان المكوّن الإضافي مفعّلًا وكان الوكيل مستهدفًا |
| التشغيلات غير التفاعلية أحادية الاستخدام | لا |
| تشغيلات نبضات الحياة/الخلفية | لا |
مسارات agent-command الداخلية العامة | لا |
| تنفيذ الوكيل الفرعي/المساعد الداخلي | لا |
لماذا تستخدمها
استخدم الذاكرة النشطة عندما:- تكون الجلسة دائمة وموجّهة للمستخدم
- يكون لدى الوكيل ذاكرة طويلة الأمد ذات معنى للبحث فيها
- تكون الاستمرارية والتخصيص أهم من الحتمية الخام للمطالبة
- التفضيلات الثابتة
- العادات المتكررة
- سياق المستخدم طويل الأمد الذي ينبغي أن يظهر بشكل طبيعي
- الأتمتة
- العمال الداخليين
- مهام API أحادية الاستخدام
- الأماكن التي قد يكون فيها التخصيص المخفي مفاجئًا
كيف تعمل
شكل وقت التشغيل هو: يمكن لوكيل الذاكرة الفرعي للحظر استخدام ما يلي فقط:memory_searchmemory_get
NONE.
أوضاع الاستعلام
تتحكمconfig.queryMode في مقدار المحادثة التي يراها وكيل الذاكرة الفرعي للحظر.
أنماط المطالبة
يتحكمconfig.promptStyle في مدى حماس أو صرامة وكيل الذاكرة الفرعي للحظر
عند اتخاذ قرار ما إذا كان سيعيد ذاكرة أم لا.
الأنماط المتاحة:
balanced: الافتراضي العام لوضعrecentstrict: الأقل حماسًا؛ الأفضل عندما تريد أقل قدر ممكن من التأثر بالسياق القريبcontextual: الأكثر ملاءمة للاستمرارية؛ الأفضل عندما يكون لتاريخ المحادثة أهمية أكبرrecall-heavy: أكثر استعدادًا لإظهار الذاكرة عند وجود تطابقات أخف لكنها لا تزال محتملةprecision-heavy: يفضّلNONEبقوة ما لم يكن التطابق واضحًاpreference-only: مُحسّن للمفضلات والعادات والروتين والذوق والحقائق الشخصية المتكررة
config.promptStyle:
config.promptStyle صراحةً، فستكون هذه القيمة المتجاوزة هي المعتمدة.
مثال:
سياسة الرجوع الاحتياطي للنموذج
إذا لم يتم تعيينconfig.model، فإن الذاكرة النشطة تحاول حل نموذج بهذا الترتيب:
config.modelFallbackPolicy في الخطوة الأخيرة.
الافتراضي:
resolved-only إذا كنت تريد من الذاكرة النشطة تخطي الاسترجاع بدلًا من
الرجوع إلى الافتراضي البعيد المضمّن عندما لا يتوفر نموذج صريح أو موروث.
منافذ هروب متقدمة
هذه الخيارات ليست عمدًا جزءًا من الإعداد الموصى به. يمكن لـconfig.thinking تجاوز مستوى التفكير لوكيل الذاكرة الفرعي للحظر:
config.promptAppend تعليمات إضافية للمشغّل بعد مطالبة الذاكرة النشطة
الافتراضية وقبل سياق المحادثة:
config.promptOverride مطالبة الذاكرة النشطة الافتراضية. ولا يزال OpenClaw
يضيف سياق المحادثة بعد ذلك:
NONE
أو سياقًا مدمجًا لحقائق المستخدم للنموذج الرئيسي.
message
يُرسل فقط أحدث رسالة من المستخدم.
- تريد أسرع سلوك
- تريد أقوى انحياز نحو استرجاع التفضيلات الثابتة
- لا تحتاج المنعطفات اللاحقة إلى سياق المحادثة
- ابدأ من حوالي
3000إلى5000مللي ثانية
recent
تُرسل أحدث رسالة من المستخدم بالإضافة إلى ذيل صغير من المحادثة الحديثة.
- تريد توازنًا أفضل بين السرعة والارتكاز إلى المحادثة
- تعتمد أسئلة المتابعة غالبًا على آخر بضع منعطفات
- ابدأ من حوالي
15000مللي ثانية
full
تُرسل المحادثة الكاملة إلى وكيل الذاكرة الفرعي للحظر.
- تكون أفضل جودة استرجاع أهم من زمن الاستجابة
- تحتوي المحادثة على إعداد مهم في موضع بعيد من السلسلة
- زِدها بدرجة كبيرة مقارنةً بـ
messageأوrecent - ابدأ من حوالي
15000مللي ثانية أو أكثر بحسب حجم السلسلة
استمرارية النصوص
تؤدي تشغيلات وكيل الذاكرة الفرعي للحظر الخاصة بالذاكرة النشطة إلى إنشاء نصsession.jsonl حقيقي أثناء استدعاء وكيل الذاكرة الفرعي للحظر.
افتراضيًا، يكون هذا النص مؤقتًا:
- يُكتب في دليل مؤقت
- يُستخدم فقط لتشغيل وكيل الذاكرة الفرعي للحظر
- يُحذف فورًا بعد انتهاء التشغيل
config.transcriptDir.
استخدم هذا بحذر:
- يمكن أن تتراكم نصوص وكيل الذاكرة الفرعي للحظر بسرعة في الجلسات المزدحمة
- يمكن لوضع الاستعلام
fullأن يكرر قدرًا كبيرًا من سياق المحادثة - تحتوي هذه النصوص على سياق مطالبة مخفي وذكريات مسترجعة
الإعدادات
توجد جميع إعدادات الذاكرة النشطة ضمن:| المفتاح | النوع | المعنى |
|---|---|---|
enabled | boolean | يفعّل المكوّن الإضافي نفسه |
config.agents | string[] | معرّفات الوكلاء الذين يمكنهم استخدام الذاكرة النشطة |
config.model | string | مرجع نموذج اختياري لوكيل الذاكرة الفرعي للحظر؛ وعند عدم تعيينه، تستخدم الذاكرة النشطة نموذج الجلسة الحالية |
config.queryMode | "message" | "recent" | "full" | يتحكم في مقدار المحادثة التي يراها وكيل الذاكرة الفرعي للحظر |
config.promptStyle | "balanced" | "strict" | "contextual" | "recall-heavy" | "precision-heavy" | "preference-only" | يتحكم في مدى حماس أو صرامة وكيل الذاكرة الفرعي للحظر عند اتخاذ قرار ما إذا كان سيعيد ذاكرة |
config.thinking | "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | تجاوز متقدم لمستوى التفكير لوكيل الذاكرة الفرعي للحظر؛ الافتراضي هو off للسرعة |
config.promptOverride | string | استبدال كامل متقدم للمطالبة؛ غير موصى به للاستخدام العادي |
config.promptAppend | string | تعليمات إضافية متقدمة تُلحق بالمطالبة الافتراضية أو المستبدلة |
config.timeoutMs | number | مهلة زمنية قصوى صارمة لوكيل الذاكرة الفرعي للحظر |
config.maxSummaryChars | number | الحد الأقصى لإجمالي الأحرف المسموح بها في ملخص الذاكرة النشطة |
config.logging | boolean | يصدر سجلات الذاكرة النشطة أثناء الضبط |
config.persistTranscripts | boolean | يحتفظ بنصوص وكيل الذاكرة الفرعي للحظر على القرص بدلًا من حذف الملفات المؤقتة |
config.transcriptDir | string | دليل نصوص وكيل الذاكرة الفرعي للحظر النسبي ضمن مجلد جلسات الوكيل |
| المفتاح | النوع | المعنى |
|---|---|---|
config.maxSummaryChars | number | الحد الأقصى لإجمالي الأحرف المسموح بها في ملخص الذاكرة النشطة |
config.recentUserTurns | number | منعطفات المستخدم السابقة التي يجب تضمينها عندما تكون queryMode هي recent |
config.recentAssistantTurns | number | منعطفات المساعد السابقة التي يجب تضمينها عندما تكون queryMode هي recent |
config.recentUserChars | number | الحد الأقصى للأحرف لكل منعطف مستخدم حديث |
config.recentAssistantChars | number | الحد الأقصى للأحرف لكل منعطف مساعد حديث |
config.cacheTtlMs | number | إعادة استخدام ذاكرة التخزين المؤقت للاستعلامات المتطابقة المتكررة |
الإعداد الموصى به
ابدأ بـrecent.
/verbose on في
الجلسة بدلًا من البحث عن أمر تصحيح منفصل للذاكرة النشطة.
ثم انتقل إلى:
messageإذا كنت تريد زمن استجابة أقلfullإذا قررت أن السياق الإضافي يستحق وكيل الذاكرة الفرعي للحظر الأبطأ
تصحيح الأخطاء
إذا لم تظهر الذاكرة النشطة حيث تتوقع:- تأكد من أن المكوّن الإضافي مفعّل ضمن
plugins.entries.active-memory.enabled. - تأكد من أن معرّف الوكيل الحالي مدرج في
config.agents. - تأكد من أنك تختبر من خلال جلسة دردشة تفاعلية دائمة.
- فعّل
config.logging: trueوراقب سجلات البوابة. - تحقّق من أن البحث في الذاكرة نفسه يعمل باستخدام
openclaw memory status --deep.
maxSummaryChars
- خفّض
queryMode - خفّض
timeoutMs - قلّل عدد المنعطفات الحديثة
- قلّل حدود الأحرف لكل منعطف