تشذيب الجلسات
يقوم تشذيب الجلسات بتقليم نتائج الأدوات القديمة من السياق الموجود في الذاكرة مباشرة قبل كل استدعاء لـ LLM. وهو لا يعيد كتابة سجل الجلسة المحفوظ على القرص (*.jsonl).
متى يعمل
- عندما يكون
mode: "cache-ttl"مفعّلًا وكان آخر استدعاء لـ Anthropic للجلسة أقدم منttl. - يؤثّر فقط على الرسائل المُرسلة إلى النموذج لذلك الطلب.
- نشِط فقط لاستدعاءات واجهة Anthropic البرمجية (ونماذج Anthropic عبر OpenRouter).
- للحصول على أفضل النتائج، طابِق
ttlمعcacheControlTtlالخاص بنموذجك. - بعد تنفيذ التشذيب، تُعاد تهيئة نافذة TTL بحيث تحتفظ الطلبات اللاحقة بالتخزين المؤقت إلى أن تنتهي صلاحية
ttlمرة أخرى.
الإعدادات الافتراضية الذكية (Anthropic)
- ملفات OAuth أو setup-token: تفعيل تشذيب
cache-ttlوضبط نبض القلب على1h. - ملفات API key: تفعيل تشذيب
cache-ttl، ضبط نبض القلب على30m، وتعيينcacheControlTtlافتراضيًا إلى1hعلى نماذج Anthropic. - إذا قمت بتعيين أي من هذه القيم صراحةً، فلن يقوم OpenClaw بتجاوزها.
ما الذي يُحسِّنه هذا (التكلفة + سلوك التخزين المؤقت)
- لماذا التشذيب: ينطبق التخزين المؤقت لمطالبة Anthropic فقط ضمن فترة TTL. إذا ظلت الجلسة خاملة بعد TTL، فسيُعاد تخزين المطالبة كاملة في الطلب التالي ما لم تُقلِّمها أولًا.
- ما الذي يصبح أقل تكلفة: يقلّل التشذيب حجم cacheWrite لذلك الطلب الأول بعد انتهاء TTL.
- أهمية إعادة ضبط TTL: بمجرد تنفيذ التشذيب، تُعاد نافذة التخزين المؤقت، بحيث يمكن للطلبات اللاحقة إعادة استخدام المطالبة المُخزّنة حديثًا بدلًا من إعادة تخزين السجل الكامل مرة أخرى.
- ما الذي لا يفعله: لا يضيف التشذيب رموزًا (tokens) ولا «يُضاعف» التكاليف؛ بل يغيّر فقط ما يتم تخزينه مؤقتًا في ذلك الطلب الأول بعد TTL.
ما الذي يمكن تشذيبه
- فقط رسائل
toolResult. - رسائل المستخدم والمساعد لا يتم تعديلها أبدًا.
- آخر
keepLastAssistantsرسائل للمساعد محمية؛ ولا يتم تشذيب نتائج الأدوات بعد حدّ القطع هذا. - إذا لم يكن هناك عدد كافٍ من رسائل المساعد لتحديد حدّ القطع، يتم تجاوز التشذيب.
- نتائج الأدوات التي تحتوي على كتل صور يتم تجاوزها (لا تُقلَّم/تُزال أبدًا).
تقدير نافذة السياق
يستخدم التشذيب تقديرًا لنافذة السياق (الأحرف ≈ الرموز × 4). ويتم حلّ النافذة الأساسية بهذا الترتيب:- تجاوز
models.providers.*.models[].contextWindow. - تعريف النموذج
contextWindow(من سجل النماذج). - القيمة الافتراضية
200000من الرموز.
agents.defaults.contextTokens، فسيُعامل كسقف (الحد الأدنى) على النافذة المُحَلّة.
النمط
cache-ttl
- لا يعمل التشذيب إلا إذا كان آخر استدعاء لـ Anthropic أقدم من
ttl(الافتراضي5m). - عند التنفيذ: نفس سلوك التقليم اللطيف + الإزالة الصارمة كما في السابق.
ناعمة ضد تشويش قاس
- التقليم اللطيف: فقط لنتائج الأدوات كبيرة الحجم.
- يحتفظ بالمقدمة + الخاتمة، ويدرِج
...، ويُلحق ملاحظة بالحجم الأصلي. - يتجاوز النتائج التي تحتوي على كتل صور.
- يحتفظ بالمقدمة + الخاتمة، ويدرِج
- الإزالة الصارمة: تستبدل نتيجة الأداة بالكامل بـ
hardClear.placeholder.
اختيار الأدوات
- يدعم
tools.allow/tools.denyمحارف*الشاملة. - إنكار الفوز.
- المطابقة غير حسّاسة لحالة الأحرف.
- قائمة السماح الفارغة => جميع الأدوات مسموح بها.
التفاعل مع حدود أخرى
- تقوم الأدوات المدمجة أصلًا باقتطاع مخرجاتها؛ ويُعدّ تشذيب الجلسات طبقة إضافية تمنع الدردشات طويلة الأمد من تراكم قدر كبير من مخرجات الأدوات في سياق النموذج.
- الضغط (Compaction) منفصل: الضغط يُلخِّص ويُثبّت، بينما التشذيب مؤقّت لكل طلب. انظر /concepts/compaction.
القيم الافتراضية (عند التفعيل)
ttl:"5m"keepLastAssistants:3softTrimRatio:0.3hardClearRatio:0.5minPrunableToolChars:50000softTrim:{ maxChars: 4000, headChars: 1500, tailChars: 1500 }hardClear:{ enabled: true, placeholder: "[Old tool result content cleared]" }