channels.<channel>.streaming.mode: "progress" وسينشئ OpenClaw الرسالة
بمجرد بدء العمل الفعلي، ويعدّلها بينما يقرأ الوكيل أو يخطط أو يستدعي
الأدوات أو ينتظر الموافقة، ثم يحوّلها إلى الإجابة النهائية.
يستخدم Discord بالفعل القيمة الافتراضية
streaming.mode: "progress" عندما تكون
channels.discord.streaming غير مضبوطة، لذا تظهر مسودات التقدّم
فيه دون أي إعداد. تستخدم كل قناة أخرى القيمة الافتراضية partial
أو off؛ راجع البث والتقسيم إلى أجزاء
للاطلاع على جدول القيم الافتراضية الكامل لكل قناة.البدء السريع
ما يراه المستخدمون
بالنسبة إلى تقدّم الأدوات الأولي، تظهر التسمية بمجرد أن يبدأ الوكيل عملًا ذا معنى
ويظل منشغلًا طوال مدة التأخير الأولية.
توجد في أعلى قائمة أسطر التقدّم المتجددة، لذا تختفي بالتمرير بمجرد
ظهور ما يكفي من أسطر العمل الفعلية. لا يعرض عنوان الحالة سوى حالة الوكيل
بلغة واضحة ما لم تُضبط تسمية صراحةً. لا تعرض الردود النصية البحتة
مسودة تقدّم مطلقًا؛ ولا يظهر سطر إلا لتحديثات العمل الفعلية،
مثل
🛠️ Bash: run tests، أو 🔎 Web Search: for "discord edit message"،
أو ✍️ Write: to /tmp/file.
تحل الإجابة النهائية محل المسودة في موضعها عندما تستطيع القناة تنفيذ
ذلك بأمان؛ وإلا يرسل OpenClaw الإجابة النهائية عبر التسليم المعتاد
وينظّف المسودة أو يتوقف عن تحديثها (راجع الإنهاء).
اختيار وضع
يتحكمchannels.<channel>.streaming.mode في السلوك المرئي أثناء التنفيذ:
اختر
progress عندما يهتم المستخدمون بمعرفة «ما الذي يحدث» أكثر من مشاهدة
بث نص الإجابة رمزًا مميزًا تلو الآخر؛ واختر partial عندما يكون نص الإجابة نفسه
إشارة التقدّم؛ واختر block لأجزاء معاينة أكبر. في Discord و
Telegram، يظل streaming.mode: "block" بثًا للمعاينة، وليس تسليمًا عاديًا
للردود الكتلية — استخدم streaming.block.enabled لذلك.
ضبط التسميات
توجد تسميات التقدّم ضمنchannels.<channel>.streaming.progress. تسمية
أسطر الأدوات الأولية الافتراضية هي "auto"، التي تستخدم تسمية Working
البسيطة المضمّنة. يخفي عنوان الحالة تلك التسمية الضمنية؛ اضبط
label: "auto" صراحةً إذا أردت تسمية فوقه أيضًا:
label: "auto"):
التحكم في أسطر التقدّم
تأتي أسطر التقدّم من أحداث تشغيل فعلية: بدء الأدوات، وتحديثات العناصر، وخطط المهام، والموافقات، ومخرجات الأوامر، وملخصات الرقع، وأنشطة الوكيل المشابهة. وهي مفعّلة افتراضيًا (progress.toolProgress، والقيمة الافتراضية true).
يمكن للأدوات أيضًا إصدار تقدّم محدد النوع بينما لا يزال استدعاء واحد قيد التشغيل. وهذه
هي الطريقة التي يحدّث بها جلب أو بحث بطيء المسودة المرئية قبل أن
تعيد الأداة نتيجتها النهائية. تحديث التقدّم هو نتيجة أداة جزئية ذات
محتوى نموذج فارغ وبيانات وصفية صريحة للقناة العامة:
progress.text في واجهة تقدّم القناة. وتصل
نتيجة الأداة العادية لاحقًا بصيغة content/details وهي الجزء الوحيد
الذي يُعاد إلى النموذج.
عند إضافة التقدّم إلى أداة، أصدر رسالة قصيرة وعامة وأخّرها
حتى تظل العملية معلّقة مدة كافية لتكون مفيدة. ينفّذ web_fetch
ذلك تمامًا بتأخير قدره 5 ثوانٍ:
وضع التفاصيل
يستخدم OpenClaw المنسّق نفسه لمسودات التقدّم و/verbose:
"explain" هو الوضع الافتراضي ويحافظ على استقرار المسودات باستخدام تسميات موجزة.
يُلحق "raw" الأمر الأساسي عند توفره، وهو مفيد أثناء
تصحيح الأخطاء لكنه أكثر إزعاجًا في المحادثة. على سبيل المثال، يُعرض استدعاء node --check /tmp/app.js
بصورة مختلفة حسب الوضع:
نص الأمر/التنفيذ
يتحكمstreaming.progress.commandText (القيمة الافتراضية "raw") في مقدار تفاصيل الأمر
التي تظهر بجوار أسطر تقدّم exec/bash، بصورة مستقلة عن وضع التفاصيل
أعلاه. اضبطه على "status" لإبقاء سطر تقدّم الأداة مرئيًا مع إخفاء
نص الأمر بالكامل:
مسار التعليق
يدمجstreaming.progress.commentary (القيمة الافتراضية false) سرد
تعليقات/تمهيد النموذج قبل الأداة (💬، مثلًا «سأتحقق… ثم
…») مع أسطر الأدوات في المسودة. راجع
البث والتقسيم إلى أجزاء للاطلاع على
بنية الإعداد المشتركة بين القنوات.
عند تفعيل مسار التعليق، لا تُعرض التمهيدات إلا في صورة أسطر 💬
متداخلة؛ ويظل عنوان الحالة أدناه بعيدًا حتى يحافظ المسار على
بنيته الموثقة.
عنوان الحالة
في Discord وTelegram ضمن وضع التقدّم، يصبح تمهيد النموذج المحدد النوع قبل الأداة عنوان حالة المسودة كلما كان متاحًا. وتحتفظ قنوات وضع التقدّم الأخرى بسلوك الحالة الحالي لديها. يكون العنوان مفعّلًا افتراضيًا ولا يتجاوز بوابة النشاط المعتادة للجولات القصيرة؛ ويؤدي تفعيلstreaming.progress.commentary إلى تمرير التمهيدات إلى مسار
التعليق المتداخل بدلًا من ذلك.
في Discord، عندما يُحدَّد نموذج مساعد للوكيل — سواء كان
utilityModel صريحًا، أو الإعداد الافتراضي
المعلن للنموذج الصغير لدى المزوّد الأساسي (OpenAI ← gpt-5.6-luna،
Anthropic ← claude-haiku-4-5) — فإنه يوفر نصًا مساعدًا قصيرًا
بلغة واضحة عندما لا يصدر النموذج تمهيدًا أو يظل صامتًا لنحو 20 ثانية
(عنوان Telegram يقتصر على التمهيد حاليًا):
streaming.progress.narration، والقيمة الافتراضية
true) ولا يرجع مطلقًا إلى النموذج الأساسي: فلا يعمل إلا بوجود
utilityModel صريح أو إعداد افتراضي معلن من المزوّد للمزوّد الأساسي
للوكيل. اضبط utilityModel: "" لتعطيل التوجيه المساعد بالكامل. تستمر أسطر الأدوات
في التراكم أسفل العنوان وتعود إذا توقف مصدرا الحالة كلاهما. ولا تزال تعديلات
المسودة تنتظر بوابة النشاط المعتادة وتغييرًا فعليًا
في النص، ما يمنع الومضات في الجولات السريعة ويقلل كثرة التعديلات في القنوات
المزدحمة. اضبط narration: false لتعطيل النص المساعد من النموذج المساعد فقط؛ وتظل
عناوين تمهيد النموذج مفعّلة:
commandText: "status"، تحذف مدخلات السرد أيضًا نص أمر exec/bash،
بما يطابق ما تعرضه المسودة.
حدود الأسطر
حدّد عدد الأسطر التي تظل مرئية (القيمة الافتراضية 8):العرض المنسّق (Slack)
يمكن لـSlack عرض أسطر التقدّم كحقول Block Kit منظّمة بدلًا من النص العادي:إخفاء أسطر الأدوات/المهام
احتفظ بمسودة التقدّم الواحدة لكن أخفِ أسطر الأدوات والمهام:toolProgress: false، يواصل OpenClaw كبت رسائل
تقدّم الأدوات المستقلة الأقدم لتلك الدورة — وتظل القناة هادئة بصريًا حتى
الإجابة النهائية، باستثناء التسمية إذا كانت مُهيأة.
سلوك القنوات
تعود القنوات التي لا تدعم التعديل الآمن إلى مؤشرات الكتابة أو
التسليم النهائي فقط. راجع البث والتقسيم إلى أجزاء للاطلاع على
التفصيل الكامل لسلوك وقت التشغيل لكل قناة.
الإنهاء
عندما تصبح الإجابة النهائية جاهزة، يحاول OpenClaw إبقاء المحادثة مرتبة:- في وضع
progressعلى Discord، تُرسل الإجابة النهائية كرسالة جديدة مع إرفاق إيصال نشاط صغير-#(على سبيل المثال-# 🧠 2 thoughts · 🛠️ 5 tool calls · ⏱️ 12s)، وتُحذف مسودة الحالة بمجرد تسليم تلك الإجابة. لا تحتفظ القنوات المزدحمة بأي سجل أداة متروك فوق الرد؛ بينما تُبقي الإجابات النهائية التي تتضمن خطأ المسودة كسجل مرئي للدورة الفاشلة. - إذا كان من الممكن أن تصبح المسودة هي الإجابة النهائية بأمان (وضعا
partial/block)، يعدّلها OpenClaw في مكانها. - إذا كانت القناة تستخدم بث التقدّم الأصلي، يُنهي OpenClaw ذلك البث عندما تقبل وسيلة النقل الأصلية النص النهائي.
- بخلاف ذلك (وسائط، أو مطالبة بالموافقة، أو هدف رد صريح، أو عدد كبير جدًا من الأجزاء، أو فشل في التعديل/الإرسال)، يرسل OpenClaw الإجابة النهائية عبر مسار التسليم العادي للقناة بدلًا من الكتابة فوق المسودة.
استكشاف الأخطاء وإصلاحها
لا أرى سوى الإجابة النهائية. تحقق من أنchannels.<channel>.streaming.mode هو progress للحساب
أو القناة التي عالجت الرسالة. تعطّل بعض مسارات المجموعات أو الرد على الاقتباس
معاينات المسودة لدورة ما عندما لا تستطيع القناة تعديل الرسالة الصحيحة بأمان.
أرى التسمية، لكن لا أرى سطور الأدوات.
تحقق من streaming.progress.toolProgress. إذا كان false، يحتفظ OpenClaw
بسلوك المسودة الواحدة، لكنه يخفي سطور تقدّم الأدوات والمهام.
أرى رسالة نهائية جديدة بدلًا من مسودة معدّلة.
هذا هو الرجوع الآمن الموضح في الإنهاء. ويمكن أن
يحدث مع الردود التي تتضمن وسائط، أو الإجابات الطويلة، أو أهداف الرد الصريحة، أو مسودات Telegram
القديمة، أو أهداف سلاسل Slack المفقودة، أو رسائل المعاينة المحذوفة، أو فشل
إنهاء البث الأصلي.
ما زلت أرى رسائل تقدّم مستقلة.
يكبت وضع التقدّم رسائل تقدّم الأدوات المستقلة الافتراضية كلما كانت هناك
مسودة نشطة. إذا استمرت الرسائل المستقلة في الظهور، فتأكد من أن الدورة
تستخدم بالفعل وضع progress وليس streaming.mode: "off" أو مسار قناة
لا يستطيع إنشاء مسودة لتلك الرسالة.
يختلف سلوك Teams عن Discord أو Telegram.
يستخدم Microsoft Teams بثًا أصليًا في المحادثات الشخصية بدلًا من وسيلة نقل
المعاينة العامة القائمة على الإرسال والتعديل، ويحوّل streaming.mode: "block" إلى تسليم
كتل Teams لأنه لا يملك وضع كتل لمعاينة المسودة مثل Discord و
Telegram.