---
read_when:
    - تكوين تحديثات التقدم المرئية لدورات الدردشة طويلة التشغيل
    - اختيار بين أوضاع البث الجزئي والكتلي وبث التقدم
    - شرح كيفية تحديث OpenClaw لرسالة قناة واحدة أثناء سير العمل
    - استكشاف أخطاء مسودات التقدم أو رسائل التقدم المستقلة أو احتياطي الإنهاء وإصلاحها
summary: 'مسودات التقدم: رسالة واحدة مرئية للعمل قيد التنفيذ تُحدَّث أثناء تشغيل الوكيل'
title: مسودات التقدم
x-i18n:
    generated_at: "2026-06-27T17:31:56Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 7cc005ed39c2a4a6d887748c769c9d2bb9c133aeeda87b2c11bfe5360f364fdd
    source_path: concepts/progress-drafts.md
    workflow: 16
---

تجعل مسودات التقدم دورات الوكيل طويلة التشغيل تبدو حية في الدردشة دون تحويل المحادثة إلى كومة من ردود الحالة المؤقتة.

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

```text
Shelling...
📖 from docs/concepts/progress-drafts.md
🔎 Web Search: for "discord edit message"
🛠️ Bash: run tests
```

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

## البدء السريع

فعّل مسودات التقدم لكل قناة باستخدام `streaming.mode: "progress"`:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
      },
    },
  },
}
```

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

## ما يراه المستخدمون

تتكون مسودة التقدم من جزأين:

| الجزء | الغرض |
| -------------- | ------------------------------------------------------------------------------------- |
| التسمية | سطر بداية/حالة قصير مثل `Working` أو `Shelling`. |
| أسطر التقدم | تحديثات تشغيل موجزة تستخدم أيقونات الأدوات ومنسق التفاصيل نفسيهما كما في الإخراج المطول. |

تظهر التسمية بعد أن يبدأ الوكيل عملا ذا معنى، وإما أن يبقى مشغولا لخمس ثوان أو يصدر حدث عمل ثانيا. وهي جزء من قائمة أسطر التقدم المتحركة، لذلك تختفي حالة البداية من العرض عند ظهور ما يكفي من العمل الملموس. لا تعرض الردود النصية الصرفة مسودة تقدم. تضاف أسطر التقدم فقط عندما يصدر الوكيل تحديثات عمل مفيدة، مثل `🛠️ Bash: run tests` أو `🔎 Web Search: for "discord edit message"` أو `✍️ Write: to /tmp/file`.
افتراضيا تستخدم وضع الشرح الموجز نفسه مثل `/verbose`؛ اضبط `agents.defaults.toolProgressDetail: "raw"` عند التصحيح وعندما تريد أيضا إلحاق الأوامر/التفاصيل الخام.
تستبدل الإجابة النهائية المسودة عندما يكون ذلك ممكنا؛ وإلا يرسل OpenClaw الإجابة النهائية بالطريقة العادية وينظف المسودة أو يتوقف عن تحديثها وفقا لنقل القناة.

## اختيار وضع

يتحكم `channels.<channel>.streaming.mode` في سلوك التقدم المرئي قيد التنفيذ:

| الوضع | الأنسب لـ | ما يظهر في الدردشة |
| ---------- | -------------------------------- | ------------------------------------------------- |
| `off` | القنوات الهادئة | الإجابة النهائية فقط. |
| `partial` | مشاهدة نص الإجابة وهو يظهر | مسودة واحدة تعدل بأحدث نص للإجابة. |
| `block` | مقاطع أكبر لمعاينة الإجابة | معاينة واحدة تحدّث أو يضاف إليها بمقاطع أكبر. |
| `progress` | الدورات الكثيفة بالأدوات أو طويلة التشغيل | مسودة حالة واحدة، ثم الإجابة النهائية. |

اختر `progress` عندما يهتم المستخدمون أكثر بـ"ما الذي يحدث" بدلا من مشاهدة نص الإجابة يتدفق رمزا برمز.

اختر `partial` عندما تكون الإجابة نفسها هي إشارة التقدم.

اختر `block` عندما تريد تحديثات معاينة المسودة في مقاطع نصية أكبر. على Discord وTelegram، لا يزال `streaming.mode: "block"` بث معاينة، وليس تسليم كتل عاديا. استخدم `streaming.block.enabled` أو الخيار القديم `blockStreaming` عندما تريد ردود الكتل العادية.

## تكوين التسميات

توجد تسميات التقدم ضمن `channels.<channel>.streaming.progress`.

التسمية الافتراضية هي `auto`، التي تختار من مجموعة التسميات أحادية الكلمة المضمنة في OpenClaw:

```text
Working
Shelling
Scuttling
Clawing
Pinching
Molting
Bubbling
Tiding
Reefing
Cracking
Sifting
Brining
Nautiling
Krilling
Barnacling
Lobstering
Tidepooling
Pearling
Snapping
Surfacing
```

استخدم تسمية ثابتة:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          label: "Investigating",
        },
      },
    },
  },
}
```

استخدم مجموعة تسميات تلقائية خاصة بك:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          label: "auto",
          labels: ["Checking", "Reading", "Testing", "Finishing"],
        },
      },
    },
  },
}
```

أخف التسمية وأظهر أسطر التقدم فقط:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          label: false,
        },
      },
    },
  },
}
```

## التحكم في أسطر التقدم

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

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

```json
{
  "content": [],
  "progress": {
    "text": "Fetching page content...",
    "visibility": "channel",
    "privacy": "public",
    "id": "web_fetch:fetching"
  }
}
```

يعرض OpenClaw قيمة `progress.text` فقط في واجهة تقدم القناة. لا تزال نتيجة الأداة العادية تصل لاحقا بصفتها `content` و`details`، وهي الجزء الوحيد الذي يعود إلى النموذج.

عند إضافة تقدم إلى أداة، استخدم رسالة قصيرة وعامة وأخرها إلى أن تكون العملية معلقة لمدة كافية لتكون مفيدة:

```typescript
const clearProgressTimer = scheduleToolProgress(
  onUpdate,
  { text: "Fetching page content...", id: "web_fetch:fetching" },
  5_000,
  { signal },
);

try {
  return await runToolWork();
} finally {
  clearProgressTimer();
}
```

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

يستخدم OpenClaw المنسق نفسه لمسودات التقدم و`/verbose`:

```json5
{
  agents: {
    defaults: {
      toolProgressDetail: "explain", // explain | raw
    },
  },
}
```

`"explain"` هو الافتراضي ويحافظ على استقرار المسودات بتسميات موجزة مثل `🛠️ check JS syntax for /tmp/app.js`. يضيف `"raw"` الأمر/التفصيل الأساسي عند توفره، وهو مفيد أثناء التصحيح لكنه أكثر ضجيجا في الدردشة.

على سبيل المثال، يظهر الأمر نفسه بشكل مختلف حسب وضع التفاصيل:

| الوضع | سطر التقدم |
| --------- | -------------------------------------------------------------- |
| `explain` | `🛠️ check JS syntax for /tmp/app.js` |
| `raw` | `🛠️ check JS syntax for /tmp/app.js, node --check /tmp/app.js` |

حدد عدد الأسطر التي تبقى مرئية:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          maxLines: 4,
        },
      },
    },
  },
}
```

تضغط أسطر التقدم تلقائيا لتقليل إعادة تدفق فقاعة الدردشة أثناء تعديل المسودة.

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

اضبط ميزانية كل سطر:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          maxLineChars: 160,
        },
      },
    },
  },
}
```

يمكن لـSlack عرض أسطر التقدم كحقول Block Kit منظمة بدلا من جسم نصي واحد:

```json5
{
  channels: {
    slack: {
      streaming: {
        mode: "progress",
        progress: {
          render: "rich",
        },
      },
    },
  },
}
```

يحافظ العرض الغني على بديل النص العادي نفسه حتى تتمكن القنوات والعملاء الذين لا يدعمون الشكل الأغنى من إظهار نص التقدم الموجز.

احتفظ بمسودة التقدم الواحدة لكن أخف أسطر الأدوات والمهام:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          toolProgress: false,
        },
      },
    },
  },
}
```

مع `toolProgress: false`، لا يزال OpenClaw يمنع رسائل تقدم الأدوات المستقلة الأقدم لتلك الدورة. تبقى القناة هادئة بصريا حتى الإجابة النهائية، باستثناء التسمية إذا كانت مهيأة.

## سلوك القناة

تستخدم كل قناة أنظف وسيلة نقل تدعمها:

| القناة | نقل التقدم | ملاحظات |
| --------------- | -------------------------------------- | --------------------------------------------------------------------- |
| Discord | إرسال رسالة واحدة، ثم تعديلها. | تعدل النص النهائي في مكانه عندما يناسب رسالة معاينة آمنة واحدة. |
| Matrix | إرسال حدث واحد، ثم تعديله. | يتحكم تكوين البث على مستوى الحساب في المسودات على مستوى الحساب. |
| Microsoft Teams | بث Teams أصلي في الدردشات الشخصية. | يرتبط `streaming.mode: "block"` بتسليم كتل Teams. |
| Slack | بث أصلي أو منشور مسودة قابل للتعديل. | يؤثر توفر السلسلة في إمكانية استخدام البث الأصلي. |
| Telegram | إرسال رسالة واحدة، ثم تعديلها. | قد تستبدل المسودات المرئية الأقدم حتى تبقى الطوابع الزمنية النهائية مفيدة. |
| Mattermost | منشور مسودة قابل للتعديل. | يدمج نشاط الأدوات في المنشور نفسه بأسلوب المسودة. |

القنوات التي لا تدعم التحرير الآمن تعود عادة إلى مؤشرات الكتابة أو التسليم النهائي فقط.

## الإنهاء

عندما تصبح الإجابة النهائية جاهزة، يحاول OpenClaw إبقاء الدردشة نظيفة:

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

مسار الرجوع مقصود. من الأفضل إرسال إجابة نهائية جديدة بدلا من فقدان النص أو إسناد الرد إلى سلسلة خاطئة أو استبدال مسودة بحمولة لا تستطيع القناة تمثيلها بأمان.

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

**أرى الإجابة النهائية فقط.**

تحقق من أن `channels.<channel>.streaming.mode` مضبوط على `progress` للحساب أو القناة التي عالجت الرسالة. قد تعطل بعض مسارات المجموعات أو الردود المقتبسة معاينات المسودات لدورة ما عندما لا تستطيع القناة تعديل الرسالة الصحيحة بأمان.

**أرى التسمية لكن لا أرى أسطر الأدوات.**

تحقق من `streaming.progress.toolProgress`. إذا كانت `false`، يحافظ OpenClaw على سلوك المسودة الواحدة لكنه يخفي أسطر تقدم الأدوات والمهام.

**أرى رسالة نهائية جديدة بدلا من مسودة معدلة.**

هذا رجوع أمان. يمكن أن يحدث لردود الوسائط، أو الإجابات الطويلة، أو أهداف الرد الصريحة، أو مسودات Telegram القديمة، أو أهداف سلاسل Slack المفقودة، أو رسائل المعاينة المحذوفة، أو فشل إنهاء البث الأصلي.

**ما زلت أرى رسائل تقدم مستقلة.**

يمنع وضع التقدم رسائل تقدم الأدوات المستقلة الافتراضية عندما تكون مسودة نشطة. إذا ظلت الرسائل المستقلة تظهر، فتحقق من أن الدورة تستخدم وضع التقدم فعلا وليست `streaming.mode: "off"` أو مسار قناة لا يستطيع إنشاء مسودة لتلك الرسالة.

**يتصرف Teams بشكل مختلف عن Discord أو Telegram.**

يستخدم Microsoft Teams دفقًا أصليًا في المحادثات الشخصية بدلًا من نقل المعاينة العام القائم على الإرسال ثم التحرير. ويتعامل Teams أيضًا مع `streaming.mode: "block"` كتسليم كتل في Teams، لأنه لا يملك وضع كتل معاينة المسودات نفسه المستخدم في Discord وTelegram.

## ذات صلة

- [البث والتقسيم إلى أجزاء](/ar/concepts/streaming)
- [الرسائل](/ar/concepts/messages)
- [إعدادات القنوات](/ar/gateway/config-channels)
- [Discord](/ar/channels/discord)
- [Matrix](/ar/channels/matrix)
- [Microsoft Teams](/ar/channels/msteams)
- [Slack](/ar/channels/slack)
- [Telegram](/ar/channels/telegram)
