الجلسات والذاكرة
تقليم الجلسة
يقوم تقليم الجلسة بإزالة نتائج الأدوات القديمة من السياق المخزن في الذاكرة مباشرة قبل كل استدعاء لنموذج اللغة الكبيرة. إنه لا يعيد كتابة سجل الجلسة على القرص (*.jsonl).
متى يتم التشغيل
- عند تمكين
mode: "cache-ttl"وكان آخر استدعاء لـ Anthropic للجلسة أقدم منttl. - يؤثر فقط على الرسائل المرسلة إلى النموذج لتلك الطلبية.
- يعمل فقط مع استدعاءات واجهة برمجة تطبيقات Anthropic (ونماذج Anthropic على OpenRouter).
- للحصول على أفضل النتائج، قم بمطابقة
ttlمع سياسةcacheRetentionللنموذج (short= 5 دقائق،long= 1 ساعة). - بعد عملية التقليم، تتم إعادة تعيين نافذة TTL بحيث تحتفظ الطلبات اللاحقة بالتخزين المؤقت حتى انتهاء صلاحية
ttlمرة أخرى.
الإعدادات الافتراضية الذكية (Anthropic)
- ملفات التعريف OAuth أو setup-token: تمكين تقليم
cache-ttlوتعيين نبض القلب إلى1h. - ملفات التعريف مفتاح واجهة برمجة التطبيقات: تمكين تقليم
cache-ttl، وتعيين نبض القلب إلى30m، وcacheRetention: "short"افتراضيًا على نماذج Anthropic. - إذا قمت بتعيين أي من هذه القيم بشكل صريح، فإن OpenClaw لا يتجاوزها.
ما الذي يتحسن (التكلفة + سلوك التخزين المؤقت)
- لماذا التقليم: ينطبق التخزين المؤقت لمطالبات Anthropic فقط ضمن نافذة TTL. إذا أصبحت الجلسة خاملة بعد انتهاء صلاحية TTL، فإن الطلب التالي يعيد تخزين المطالبة الكاملة مؤقتًا ما لم تقوم بتقليمها أولاً.
- ما الذي يصبح أرخص: يقلل التقليم من حجم cacheWrite لهذا الطلب الأول بعد انتهاء صلاحية TTL.
- لماذا تعيين TTL مهم: بمجرد تشغيل التقليم، تتم إعادة تعيين نافذة التخزين المؤقت، بحيث يمكن للطلبات اللاحقة إعادة استخدام المطالبة المخزنة مؤقتًا حديثًا بدلاً من إعادة تخزين السجل الكامل مرة أخرى.
- ما الذي لا يفعله: لا يضيف التقليم رموزًا أو "يضاعف" التكاليف؛ إنه يغير فقط ما يتم تخزينه مؤقتًا في ذلك الطلب الأول بعد TTL.
ما الذي يمكن تقليمه
- رسائل
toolResultفقط. - لا يتم تعديل رسائل المستخدم والمساعد أبدًا.
- يتم حماية آخر
keepLastAssistantsرسائل مساعد؛ لا يتم تقليم نتائج الأدوات بعد نقطة القطع هذه. - إذا لم تكن هناك رسائل مساعد كافية لتحديد نقطة القطع، يتم تخطي التقليم.
- يتم تخطي نتائج الأدوات التي تحتوي على كتل صور (لا يتم تقليمها/مسحها أبدًا).
تقدير نافذة السياق
يستخدم التقليم نافذة سياق مقدرة (أحرف ≈ رموز × 4). يتم تحديد النافذة الأساسية بهذا الترتيب:
- تجاوز
models.providers.*.models[].contextWindow. - تعريف النموذج
contextWindow(من سجل النموذج). - الافتراضي
200000رمز.
إذا تم تعيين agents.defaults.contextTokens، يتم التعامل معه كحد أقصى (أدنى) على النافذة المحددة.
الوضع
cache-ttl
- يعمل التقليم فقط إذا كان آخر استدعاء لـ Anthropic أقدم من
ttl(الافتراضي5m). - عندما يعمل: نفس سلوك التقليم الناعم + المسح الصارم كما كان من قبل.
التقليم الناعم مقابل الصارم
- التقليم الناعم: فقط لنتائج الأدوات كبيرة الحجم.
- يحتفظ بالرأس والذيل، يُدخل
...، ويُلحق ملاحظة بالحجم الأصلي. - يتخطى النتائج التي تحتوي على كتل صور.
- يحتفظ بالرأس والذيل، يُدخل
- المسح الصارم: يستبدل نتيجة الأداة الكاملة بـ
hardClear.placeholder.
اختيار الأداة
- تدعم
tools.allow/tools.denyالرموز البديلة*. - يفوز Deny.
- المطابقة لا تراعي حالة الأحرف.
- القائمة الفارغة للسماح => جميع الأدوات مسموح بها.
التفاعل مع القيود الأخرى
- تقوم الأدوات المدمجة بالفعل بتقليص مخرجاتها الخاصة؛ يعد تقليم الجلسة طبقة إضافية تمنع الدردشات طويلة الأمد من تراكم الكثير من مخرجات الأدوات في سياق النموذج.
- الضغط منفصل: يلخص الضغط ويستمر، بينما التقليم مؤقت لكل طلب. انظر /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]" }
أمثلة
الافتراضي (معطل):
{
agents: { defaults: { contextPruning: { mode: "off" } } },
}
تمكين التقليم الواعي بـ TTL:
{
agents: { defaults: { contextPruning: { mode: "cache-ttl", ttl: "5m" } } },
}
تقييد التقليم على أدوات محددة:
{
agents: {
defaults: {
contextPruning: {
mode: "cache-ttl",
tools: { allow: ["exec", "read"], deny: ["*image*"] },
},
},
},
}
انظر مرجع التكوين: تكوين البوابة