Messages and delivery

قائمة انتظار التوجيه

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

حدود وقت التشغيل

لا يقاطع التوجيه استدعاء أداة قيد التشغيل بالفعل. يتحقق Pi من رسائل التوجيه الموجودة في قائمة الانتظار عند حدود النموذج:

  1. يطلب المساعد استدعاءات أدوات.
  2. ينفذ Pi دفعة استدعاءات الأدوات في رسالة المساعد الحالية.
  3. يصدر Pi حدث نهاية الدور.
  4. يفرغ Pi رسائل التوجيه الموجودة في قائمة الانتظار.
  5. يضيف Pi تلك الرسائل كرسائل مستخدم قبل استدعاء LLM التالي.

يبقي هذا نتائج الأدوات مقترنة برسالة المساعد التي طلبتها، ثم يتيح لاستدعاء النموذج التالي رؤية أحدث إدخال من المستخدم.

تعرض حزمة خادم التطبيق الأصلية لـ Codex ‏turn/steer بدلا من قائمة انتظار التوجيه الداخلية في Pi. يكيف OpenClaw الأوضاع نفسها هناك:

  • يجمع steer الرسائل الموجودة في قائمة الانتظار ضمن نافذة الهدوء المضبوطة، ثم يرسل طلب turn/steer واحدا يتضمن كل إدخال المستخدم الذي جُمع بترتيب الوصول.
  • يحافظ queue على الشكل المتسلسل القديم بإرسال طلبات turn/steer منفصلة.
  • تظل followup وcollect وsteer-backlog وinterrupt سلوك قائمة انتظار يملكه OpenClaw حول دور Codex النشط.

ترفض دورات مراجعة Codex ودورات Compaction اليدوية التوجيه ضمن الدور نفسه. عندما يتعذر على وقت تشغيل قبول التوجيه، يعود OpenClaw إلى قائمة انتظار المتابعة حيث يسمح ذلك الوضع بذلك.

تشرح هذه الصفحة توجيه وضع قائمة الانتظار للرسائل الواردة العادية. لمعرفة أمر /steer <message> الصريح، راجع التوجيه.

الأوضاع

الوضع سلوك التشغيل النشط سلوك المتابعة اللاحق
steer يحقن كل رسائل التوجيه الموجودة في قائمة الانتظار معا عند حد وقت التشغيل التالي. هذا هو الوضع الافتراضي. يعود إلى المتابعة فقط عندما يكون التوجيه غير متاح.
queue توجيه قديم برسالة واحدة في كل مرة. يحقن Pi رسالة واحدة من قائمة الانتظار عند كل حد نموذج؛ ويرسل Codex طلبات turn/steer منفصلة. يعود إلى المتابعة فقط عندما يكون التوجيه غير متاح.
steer-backlog سلوك التوجيه في التشغيل النشط نفسه مثل steer. يحتفظ أيضا بالرسالة نفسها لدور متابعة لاحق.
followup لا يوجه التشغيل الحالي. يشغل الرسائل الموجودة في قائمة الانتظار لاحقا.
collect لا يوجه التشغيل الحالي. يدمج الرسائل المتوافقة الموجودة في قائمة الانتظار في دور لاحق واحد بعد نافذة إزالة الارتداد.
interrupt يجهض التشغيل النشط، ثم يبدأ بأحدث رسالة. لا شيء.

مثال دفعة مفاجئة

إذا أرسل أربعة مستخدمين رسائل بينما ينفذ الوكيل استدعاء أداة:

  • steer: يتلقى وقت التشغيل النشط الرسائل الأربع كلها بترتيب الوصول قبل قرار النموذج التالي. يفرغها Pi عند حد النموذج التالي؛ ويتلقاها Codex كطلب turn/steer واحد مجمع.
  • queue: توجيه متسلسل قديم. يحقن Pi رسالة واحدة من قائمة الانتظار في كل مرة؛ ويتلقى Codex طلبات turn/steer منفصلة.
  • collect: ينتظر OpenClaw حتى ينتهي التشغيل النشط، ثم ينشئ دور متابعة بالرسائل المتوافقة الموجودة في قائمة الانتظار بعد نافذة إزالة الارتداد.

النطاق

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

استخدم collect عندما تريد من OpenClaw إنشاء دور متابعة لاحق يمكنه دمج الرسائل المتوافقة والحفاظ على سياسة إسقاط قائمة انتظار المتابعة. استخدم queue فقط عندما تحتاج إلى سلوك التوجيه الأقدم برسالة واحدة في كل مرة.

إزالة الارتداد

ينطبق messages.queue.debounceMs على تسليم المتابعة، بما في ذلك collect وfollowup وsteer-backlog والرجوع الاحتياطي لـ steer عندما لا يكون توجيه التشغيل النشط متاحا. بالنسبة إلى Pi، لا يستخدم steer النشط نفسه مؤقت إزالة الارتداد لأن Pi يجمع الرسائل بشكل طبيعي حتى حد النموذج التالي. بالنسبة إلى حزمة Codex الأصلية، يستخدم OpenClaw قيمة إزالة الارتداد نفسها كنافذة هدوء قبل إرسال turn/steer المجمع.

ذو صلة