Sessions and memory

تشذيب الجلسة

يقتطع تشذيب الجلسة نتائج الأدوات القديمة من السياق قبل كل استدعاء لنموذج LLM. ويقلل تضخم السياق الناتج عن تراكم مخرجات الأدوات (نتائج التنفيذ، وقراءات الملفات، ونتائج البحث) من دون إعادة كتابة نص المحادثة العادي.

سبب أهميته

تراكم الجلسات الطويلة مخرجات الأدوات، ما يؤدي إلى تضخيم نافذة السياق. وهذا يزيد التكلفة وقد يفرض إجراء Compaction في وقت أبكر من اللازم.

يكتسب التشذيب أهمية خاصة مع التخزين المؤقت للمطالبات في Anthropic. فبعد انتهاء مدة صلاحية ذاكرة التخزين المؤقت، يعيد الطلب التالي تخزين المطالبة كاملةً. ويقلل التشذيب حجم الكتابة في ذاكرة التخزين المؤقت، ما يخفض التكلفة مباشرةً.

آلية العمل

يعمل التشذيب في وضع cache-ttl، ويشترط اجتياز كل من فحص الوقت وفحص حجم السياق:

  1. انتظر انتهاء مدة صلاحية ذاكرة التخزين المؤقت (الافتراضي 5 دقائق عند ضبطها يدويًا؛ راجع الإعدادات الافتراضية الذكية لمعرفة الإعداد التلقائي الافتراضي لـ Anthropic). قبل انقضاء مدة الصلاحية، يُتخطى التشذيب بالكامل للحفاظ على إعادة استخدام ذاكرة تخزين المطالبات المؤقتة في الأدوار المتقاربة.
  2. بعد انقضاء مدة الصلاحية، قدّر الحجم الإجمالي للسياق مقارنةً بنافذة سياق النموذج. إذا كانت النسبة أقل من softTrimRatio (الافتراضي 0.3)، فتخطَّ التشذيب واترك ساعة مدة الصلاحية مستمرة.
  3. شذّب شذبًا خفيفًا نتائج الأدوات كبيرة الحجم التي تتجاوز النسبة: احتفظ بالبداية والنهاية (الافتراضي 1500 حرف لكل منهما، بحد أقصى إجمالي قدره 4000 حرف)، وأدرج ... بينهما.
  4. إذا بقيت النسبة مساوية لـ hardClearRatio أو أعلى منها (الافتراضي 0.5)، وظل ما لا يقل عن minPrunableToolChars (الافتراضي 50,000) حرف من محتوى الأدوات القابل للتشذيب، فامسح تلك النتائج بالكامل: استبدل محتواها بعنصر نائب (الافتراضي [تم مسح محتوى نتيجة الأداة القديمة]).
  5. أعد ضبط ساعة مدة الصلاحية فقط عندما يغيّر التشذيب السياق فعليًا، حتى تعيد طلبات المتابعة استخدام ذاكرة التخزين المؤقت الجديدة.

تُطبّق قاعدتا أمان بغض النظر عن الحدود: لا تُشذّب أبدًا أحدث أدوار المساعد البالغ عددها keepLastAssistants (الافتراضي 3)، ولا يُشذّب أي شيء يسبق أول رسالة للمستخدم في الجلسة (لحماية قراءات التمهيد مثل SOUL.md/USER.md).

تكون رسائل toolResult وحدها مؤهلة للتشذيب؛ أما نص المحادثة العادي فيُترك كما هو. استخدم agents.defaults.contextPruning.tools.{allow,deny} لتحديد أسماء الأدوات القابلة للتشذيب.

تنظيف الصور القديمة

ينشئ OpenClaw أيضًا عرض إعادة تشغيل منفصلًا ومتكرر التنفيذ بأمان للجلسات التي تحتفظ بكتل الصور الأولية أو علامات وسائط تهيئة المطالبة في السجل.

  • يحتفظ بأحدث 3 أدوار مكتملة بايتًا ببايت، حتى تظل بادئات ذاكرة تخزين المطالبات المؤقتة مستقرة لطلبات المتابعة الحديثة. يشمل هذا العدد جميع الأدوار المكتملة، وليس الأدوار المحتوية على صور فقط، ولذلك تشغل الأدوار النصية وحدها جزءًا من النافذة أيضًا.
  • في عرض إعادة التشغيل، تُستبدل كتل الصور الأقدم التي سبق معالجتها من سجل user أو toolResult بالنص [تمت إزالة بيانات الصورة - سبق أن عالجها النموذج].
  • تُستبدل مراجع الوسائط النصية الأقدم مثل [media attached: ...] و[Image: source: ...] وmedia://inbound/... بالنص [تمت إزالة مرجع الوسائط - سبق أن عالجه النموذج]. وتبقى علامات مرفقات الدور الحالي دون تغيير حتى تتمكن نماذج الرؤية من تهيئة الصور الجديدة.
  • لا يُعاد كتابة سجل الجلسة الأولي، ولذلك يظل بإمكان عارضي السجل إظهار إدخالات الرسائل الأصلية وصورها.
  • يختلف هذا عن تشذيب مدة صلاحية ذاكرة التخزين المؤقت العادي الموضح أعلاه. والغرض منه منع حمولات الصور المتكررة أو مراجع الوسائط القديمة من إفساد ذاكرات تخزين المطالبات المؤقتة في الأدوار اللاحقة.

الإعدادات الافتراضية الذكية

يضبط Plugin ‏Anthropic المضمّن التشذيب ووتيرة Heartbeat تلقائيًا عند أول مرة يحل فيها ملف تعريف مصادقة Anthropic (أو Claude CLI)، ولكن فقط للحقول التي لم تضبطها صراحةً:

وضع المصادقة contextPruning.mode contextPruning.ttl heartbeat.every
OAuth/رمز مميز (بما في ذلك إعادة استخدام Claude CLI) cache-ttl 1h 1h
مفتاح API cache-ttl 1h 30m

إذا ضبطت agents.defaults.contextPruning.mode أو agents.defaults.heartbeat.every بنفسك، فلن يتجاوزهما OpenClaw. ولا يُفعّل هذا الإعداد التلقائي الافتراضي إلا لمصادقة عائلة Anthropic؛ أما المزوّدون الآخرون فيكون التشذيب لديهم off ما لم تضبطه.

التفعيل أو التعطيل

يكون التشذيب معطلًا افتراضيًا للمزوّدين من غير Anthropic. لتفعيله:

json5
{  agents: {    defaults: {      contextPruning: { mode: "cache-ttl", ttl: "5m" },    },  },}

لتعطيله: اضبط mode: "off".

التشذيب مقارنةً بـ Compaction

التشذيب Compaction
الإجراء يقتطع نتائج الأدوات يلخّص المحادثة
هل يُحفظ؟ لا (لكل طلب) نعم (في السجل)
النطاق نتائج الأدوات فقط المحادثة بأكملها

يكمل كل منهما الآخر -- إذ يحافظ التشذيب على خفة مخرجات الأدوات بين دورات Compaction.

قراءات إضافية

  • Compaction: تقليل السياق بالاعتماد على التلخيص
  • إعداد Gateway: جميع خيارات ضبط التشذيب (contextPruning.*)

ذو صلة

Was this useful?
On this page

On this page