الانتقال إلى المحتوى الرئيسي

الضغط

لكل نموذج نافذة سياق — وهي الحد الأقصى لعدد الرموز التي يمكنه معالجتها. عندما تقترب المحادثة من هذا الحد، يقوم OpenClaw بضغط الرسائل الأقدم إلى ملخص حتى يمكن أن تستمر الدردشة.

كيف يعمل

  1. تُلخَّص أدوار المحادثة الأقدم في إدخال مضغوط.
  2. يُحفَظ الملخص في نص الجلسة.
  3. تُحفَظ الرسائل الحديثة كما هي.
عندما يقسم OpenClaw السجل إلى مقاطع ضغط، فإنه يُبقي استدعاءات أدوات المساعد مقترنة بإدخالات toolResult المطابقة لها. وإذا وقعت نقطة التقسيم داخل كتلة أداة، ينقل OpenClaw الحد بحيث يبقى الزوج معًا ويُحفَظ الذيل الحالي غير الملخّص. يبقى السجل الكامل للمحادثة محفوظًا على القرص. ولا يغيّر الضغط إلا ما يراه النموذج في الدورة التالية.

الضغط التلقائي

يكون الضغط التلقائي مفعّلًا افتراضيًا. ويعمل عندما تقترب الجلسة من حد السياق، أو عندما يعيد النموذج خطأ تجاوز السياق (وفي هذه الحالة يضغط OpenClaw ثم يعيد المحاولة). وتتضمن تواقيع التجاوز الشائعة request_too_large وcontext length exceeded وinput exceeds the maximum number of tokens وinput token count exceeds the maximum number of input tokens وinput is too long for the model وollama error: context length exceeded.
قبل الضغط، يذكّر OpenClaw الوكيل تلقائيًا بحفظ الملاحظات المهمة في ملفات memory. وهذا يمنع فقدان السياق.

الضغط اليدوي

اكتب /compact في أي دردشة لفرض عملية ضغط. وأضف تعليمات لتوجيه الملخص:
/compact ركّز على قرارات تصميم API

استخدام نموذج مختلف

افتراضيًا، يستخدم الضغط النموذج الأساسي لوكيلك. ويمكنك استخدام نموذج أكثر قدرة للحصول على ملخصات أفضل:
{
  agents: {
    defaults: {
      compaction: {
        model: "openrouter/anthropic/claude-sonnet-4-6",
      },
    },
  },
}

إشعار بدء الضغط

افتراضيًا، يعمل الضغط بصمت. ولعرض إشعار موجز عند بدء الضغط، فعّل notifyUser:
{
  agents: {
    defaults: {
      compaction: {
        notifyUser: true,
      },
    },
  },
}
عند التمكين، يرى المستخدم رسالة قصيرة (على سبيل المثال، “جارٍ ضغط السياق…”) في بداية كل تشغيل لعملية الضغط.

الضغط مقابل التقليم

الضغطالتقليم
ما الذي يفعلهيلخّص المحادثة الأقدميقتطع نتائج الأدوات القديمة
هل يُحفَظ؟نعم (في نص الجلسة)لا (في الذاكرة فقط، لكل طلب)
النطاقالمحادثة بأكملهانتائج الأدوات فقط
يُعد Session pruning مكمّلًا أخف وزنًا يقوم بتقليم مخرجات الأدوات من دون تلخيص.

استكشاف الأخطاء وإصلاحها

هل يحدث الضغط كثيرًا جدًا؟ قد تكون نافذة سياق النموذج صغيرة، أو قد تكون مخرجات الأدوات كبيرة. جرّب تمكين Session pruning. هل يبدو السياق قديمًا بعد الضغط؟ استخدم /compact ركّز على <topic> لتوجيه الملخص، أو فعّل memory flush حتى تبقى الملاحظات محفوظة. هل تحتاج إلى بداية نظيفة؟ يبدأ /new جلسة جديدة من دون ضغط. للحصول على تهيئة متقدمة (الرموز المحجوزة، والحفاظ على المعرّفات، ومحركات السياق المخصصة، والضغط من جهة الخادم في OpenAI)، راجع التعمق في إدارة الجلسات.

ذو صلة

  • Session — إدارة الجلسات ودورة حياتها
  • Session Pruning — تقليم نتائج الأدوات
  • Context — كيف يُبنى السياق لأدوار الوكيل
  • Hooks — hooks دورة حياة الضغط (before_compaction وafter_compaction)