يعالج محرك السياق كيفية بناء OpenClaw لسياق النموذج لكل تشغيل: أي الرسائل يجب تضمينها، وكيفية تلخيص السجل الأقدم، وكيفية إدارة السياق عبر حدود الوكلاء الفرعيين. يأتي OpenClaw مع محركDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
legacy مدمج ويستخدمه افتراضيا - ولا يحتاج معظم المستخدمين إلى تغيير ذلك أبدا. ثبّت محرك Plugin وحدده فقط عندما تريد سلوكا مختلفا في التجميع أو Compaction أو الاستدعاء عبر الجلسات.
البدء السريع
كيف يعمل
في كل مرة يشغّل فيها OpenClaw موجها للنموذج، يشارك محرك السياق في أربع نقاط من دورة الحياة:1. الاستيعاب
1. الاستيعاب
يستدعى عند إضافة رسالة جديدة إلى الجلسة. يستطيع المحرك تخزين الرسالة أو فهرستها في مخزن البيانات الخاص به.
2. التجميع
2. التجميع
يستدعى قبل كل تشغيل للنموذج. يعيد المحرك مجموعة مرتبة من الرسائل (و
systemPromptAddition اختياريا) تناسب ميزانية الرموز.3. Compact
3. Compact
يستدعى عندما تمتلئ نافذة السياق، أو عندما يشغّل المستخدم
/compact. يلخص المحرك السجل الأقدم لتحرير مساحة.4. بعد الدور
4. بعد الدور
يستدعى بعد اكتمال التشغيل. يستطيع المحرك حفظ الحالة، أو تشغيل Compaction في الخلفية، أو تحديث الفهارس.
دورة حياة الوكيل الفرعي (اختيارية)
يستدعي OpenClaw خطافي دورة حياة اختياريين للوكلاء الفرعيين:جهّز حالة السياق المشتركة قبل بدء تشغيل تابع. يتلقى الخطاف مفاتيح جلسة الأصل/التابع، و
contextMode (isolated أو fork)، ومعرفات/ملفات النصوص المتاحة، وTTL اختياريا. إذا أعاد مقبض تراجع، يستدعيه OpenClaw عندما يفشل الإنشاء بعد نجاح التحضير.نظّف عند اكتمال جلسة وكيل فرعي أو كنسها.
إضافة موجه النظام
يمكن لطريقةassemble إرجاع سلسلة systemPromptAddition. يضيف OpenClaw هذه السلسلة في بداية موجه النظام للتشغيل. يتيح ذلك للمحركات حقن إرشادات استدعاء ديناميكية، أو تعليمات استرجاع، أو تلميحات واعية بالسياق من دون الحاجة إلى ملفات مساحة عمل ثابتة.
محرك legacy
يحافظ محركlegacy المدمج على السلوك الأصلي لـ OpenClaw:
- الاستيعاب: لا عملية (يتولى مدير الجلسات حفظ الرسائل مباشرة).
- التجميع: تمرير مباشر (يتولى مسار التعقيم → التحقق → الحد الحالي في وقت التشغيل تجميع السياق).
- Compact: يفوض إلى Compaction التلخيص المدمج، الذي ينشئ ملخصا واحدا للرسائل الأقدم ويبقي الرسائل الحديثة كما هي.
- بعد الدور: لا عملية.
systemPromptAddition.
عندما لا يتم تعيين plugins.slots.contextEngine (أو يتم تعيينه إلى "legacy")، يستخدم هذا المحرك تلقائيا.
محركات Plugin
يمكن لـ Plugin تسجيل محرك سياق باستخدام واجهة برمجة تطبيقات Plugin:ctx قيما اختيارية هي config وagentDir وworkspaceDir
حتى تتمكن Plugins من تهيئة حالة لكل وكيل أو لكل مساحة عمل قبل تشغيل
أول خطاف من دورة الحياة.
ثم فعّله في الإعدادات:
واجهة ContextEngine
الأعضاء المطلوبة:| العضو | النوع | الغرض |
|---|---|---|
info | خاصية | معرف المحرك، واسمه، وإصداره، وما إذا كان يملك Compaction |
ingest(params) | طريقة | تخزين رسالة واحدة |
assemble(params) | طريقة | بناء سياق لتشغيل نموذج (يعيد AssembleResult) |
compact(params) | طريقة | تلخيص/تقليل السياق |
assemble قيمة AssembleResult تحتوي على:
الرسائل المرتبة لإرسالها إلى النموذج.
تقدير المحرك لإجمالي الرموز في السياق المجمع. يستخدم OpenClaw هذا لاتخاذ قرارات عتبة Compaction ولتقارير التشخيص.
يضاف إلى بداية موجه النظام.
يتحكم في تقدير الرموز الذي يستخدمه المشغّل لفحوصات تجاوز السعة
الاستباقية. القيمة الافتراضية هي
"assembled"، ما يعني أن تقدير
الموجه المجمع فقط هو الذي يفحص - وهذا مناسب للمحركات التي تعيد
سياقا نافذيا مكتفيا بذاته. اضبطه على "preassembly_may_overflow" فقط
عندما يمكن للعرض المجمع لديك إخفاء خطر تجاوز السعة في النص الأساسي؛
حينها يأخذ المشغّل الحد الأقصى بين التقدير المجمع
وتقدير سجل الجلسة قبل التجميع (غير النافذي) عند تقرير
ما إذا كان ينبغي إجراء Compaction استباقيا. في كلتا الحالتين، الرسائل التي تعيدها هي
ما يراه النموذج فعلا - لا يؤثر promptAuthority إلا في الفحص المسبق.compact قيمة CompactResult. عندما يدوّر Compaction النص النشط،
يحدد result.sessionId وresult.sessionFile جلسة الخلف
التي يجب أن تستخدمها المحاولة التالية أو الدور التالي.
الأعضاء الاختيارية:
| العضو | النوع | الغرض |
|---|---|---|
bootstrap(params) | طريقة | تهيئة حالة المحرك لجلسة. يستدعى مرة واحدة عندما يرى المحرك جلسة لأول مرة (مثلا، استيراد السجل). |
ingestBatch(params) | طريقة | استيعاب دور مكتمل كدفعة. يستدعى بعد اكتمال التشغيل، مع كل رسائل ذلك الدور دفعة واحدة. |
afterTurn(params) | طريقة | عمل دورة الحياة بعد التشغيل (حفظ الحالة، تشغيل Compaction في الخلفية). |
prepareSubagentSpawn(params) | طريقة | إعداد حالة مشتركة لجلسة تابعة قبل أن تبدأ. |
onSubagentEnded(params) | طريقة | التنظيف بعد انتهاء وكيل فرعي. |
dispose() | طريقة | تحرير الموارد. يستدعى أثناء إيقاف Gateway أو إعادة تحميل Plugin - وليس لكل جلسة. |
ownsCompaction
يتحكمownsCompaction فيما إذا كان Compaction التلقائي المدمج داخل محاولة Pi يبقى مفعلا للتشغيل:
ownsCompaction: true
ownsCompaction: true
يملك المحرك سلوك Compaction. يعطل OpenClaw Compaction التلقائي المدمج في Pi لذلك التشغيل، ويكون تنفيذ
compact() في المحرك مسؤولا عن /compact، وCompaction استعادة تجاوز السعة، وأي Compaction استباقي يريد تنفيذه في afterTurn(). قد يظل OpenClaw يشغّل أداة الحماية من تجاوز السعة قبل الموجه؛ وعندما تتوقع أن النص الكامل سيتجاوز السعة، يستدعي مسار الاسترداد compact() الخاص بالمحرك النشط قبل إرسال موجه آخر.ownsCompaction: false أو غير معين
ownsCompaction: false أو غير معين
قد يظل Compaction التلقائي المدمج في Pi يعمل أثناء تنفيذ الموجه، لكن طريقة
compact() الخاصة بالمحرك النشط تظل تستدعى من أجل /compact واستعادة تجاوز السعة.- وضع الامتلاك
- وضع التفويض
نفّذ خوارزمية Compaction الخاصة بك واضبط
ownsCompaction: true.compact() الذي لا يفعل شيئا غير آمن لمحرك نشط غير مالك، لأنه يعطل مسار /compact وCompaction استعادة تجاوز السعة الطبيعيين لفتحة ذلك المحرك.
مرجع الإعدادات
الفتحة حصرية في وقت التشغيل - لا يحل إلا محرك سياق مسجل واحد لتشغيل معين أو عملية Compaction معينة. يمكن أن تظل Plugins الأخرى المفعلة ذات
kind: "context-engine" محملة وتشغّل رمز التسجيل الخاص بها؛ لا يحدد plugins.slots.contextEngine إلا معرف المحرك المسجل الذي يحله OpenClaw عندما يحتاج إلى محرك سياق.إلغاء تثبيت Plugin: عندما تلغي تثبيت Plugin المحدد حاليا كـ
plugins.slots.contextEngine، يعيد OpenClaw ضبط الفتحة إلى الافتراضي (legacy). ينطبق سلوك إعادة الضبط نفسه على plugins.slots.memory. لا يلزم تعديل الإعدادات يدويا.العلاقة بـ Compaction والذاكرة
Compaction
Compaction
Compaction هي إحدى مسؤوليات محرك السياق. يفوض المحرك القديم إلى التلخيص المدمج في OpenClaw. يمكن لمحركات Plugin تنفيذ أي استراتيجية Compaction (ملخصات DAG، واسترجاع المتجهات، وما إلى ذلك).
Memory plugins
Memory plugins
تكون Plugins الذاكرة (
plugins.slots.memory) منفصلة عن محركات السياق. توفر Plugins الذاكرة البحث/الاسترجاع؛ وتتحكم محركات السياق في ما يراه النموذج. يمكنها العمل معًا - فقد يستخدم محرك السياق بيانات Plugin الذاكرة أثناء التجميع. يجب أن تفضل محركات Plugin التي تريد مسار مطالبة الذاكرة النشطة استخدام buildMemorySystemPromptAddition(...) من openclaw/plugin-sdk/core، الذي يحول أقسام مطالبة الذاكرة النشطة إلى systemPromptAddition جاهز للإضافة في البداية. إذا احتاج محرك إلى تحكم أدنى مستوى، فلا يزال بإمكانه سحب الأسطر الخام من openclaw/plugin-sdk/memory-host-core عبر buildActiveMemoryPromptSection(...).Session pruning
Session pruning
لا يزال تشذيب نتائج الأدوات القديمة في الذاكرة يعمل بغض النظر عن محرك السياق النشط.
نصائح
- استخدم
openclaw doctorللتحقق من أن محركك يُحمَّل بشكل صحيح. - عند تبديل المحركات، تواصل الجلسات الحالية العمل بسجلها الحالي. يتولى المحرك الجديد التشغيل في الجولات المستقبلية.
- تُسجل أخطاء المحرك وتظهر في التشخيصات. إذا فشل محرك Plugin في التسجيل أو تعذّر حل معرف المحرك المحدد، لا يعود OpenClaw تلقائيًا إلى البديل؛ تفشل الجولات حتى تصلح Plugin أو تعيد تبديل
plugins.slots.contextEngineإلى"legacy". - لأغراض التطوير، استخدم
openclaw plugins install -l ./my-engineلربط دليل Plugin محلي دون نسخه.
ذات صلة
- Compaction - تلخيص المحادثات الطويلة
- السياق - كيفية بناء السياق لجولات الوكيل
- بنية Plugin - تسجيل Plugins محرك السياق
- بيان Plugin - حقول بيان Plugin
- Plugins - نظرة عامة على Plugin