> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# प्रगति मसौदे

प्रगति ड्राफ्ट लंबे समय तक चलने वाले एजेंट टर्न को चैट में जीवंत महसूस कराते हैं, बिना
बातचीत को अस्थायी स्थिति उत्तरों के ढेर में बदले।

जब प्रगति ड्राफ्ट सक्षम होते हैं, OpenClaw केवल तब एक दृश्य कार्य-प्रगति संदेश बनाता है
जब टर्न यह साबित कर देता है कि वह सचमुच काम कर रहा है, एजेंट के पढ़ने, योजना बनाने,
टूल कॉल करने, या अनुमोदन की प्रतीक्षा करने के दौरान उसे अपडेट करता है, और फिर जब
चैनल सुरक्षित रूप से ऐसा कर सकता है तो उस ड्राफ्ट को अंतिम उत्तर में बदल देता है।

```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
Shelling...
📖 from docs/concepts/progress-drafts.md
🔎 Web Search: for "discord edit message"
🛠️ Bash: run tests
```

प्रगति ड्राफ्ट का उपयोग तब करें जब आप टूल-प्रधान काम के दौरान एक साफ-सुथरा स्थिति संदेश
और टर्न पूरा होने पर अंतिम उत्तर चाहते हों।

## त्वरित शुरुआत

`streaming.mode: "progress"` के साथ प्रति चैनल प्रगति ड्राफ्ट सक्षम करें:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
      },
    },
  },
}
```

आमतौर पर इतना पर्याप्त होता है। OpenClaw एक स्वचालित एक-शब्द लेबल चुनेगा, तब तक
प्रतीक्षा करेगा जब तक काम कम से कम पांच सेकंड तक न चले या दूसरा कार्य इवेंट न निकले,
उपयोगी काम होते समय संक्षिप्त प्रगति पंक्तियां जोड़ेगा, और उस टर्न के लिए डुप्लिकेट
स्वतंत्र प्रगति बातचीत को दबा देगा।

## उपयोगकर्ताओं को क्या दिखता है

प्रगति ड्राफ्ट के दो भाग होते हैं:

| भाग              | उद्देश्य                                                                                |
| ---------------- | --------------------------------------------------------------------------------------- |
| लेबल             | `Working` या `Shelling` जैसी छोटी शुरुआती/स्थिति पंक्ति।                                |
| प्रगति पंक्तियां | verbose आउटपुट जैसे ही टूल आइकन और विवरण फॉर्मैटर का उपयोग करते हुए संक्षिप्त रन अपडेट। |

लेबल तब दिखाई देता है जब एजेंट सार्थक काम शुरू करता है और या तो पांच सेकंड तक व्यस्त
रहता है या दूसरा कार्य इवेंट निकालता है। यह रोलिंग प्रगति पंक्ति सूची का हिस्सा होता है,
इसलिए पर्याप्त ठोस काम दिखाई देने के बाद शुरुआती स्थिति स्क्रोल होकर हट जाती है।
केवल सादा टेक्स्ट वाले उत्तर प्रगति ड्राफ्ट नहीं दिखाते। प्रगति पंक्तियां केवल तब जोड़ी जाती
हैं जब एजेंट उपयोगी कार्य अपडेट निकालता है, उदाहरण के लिए `🛠️ Bash: run tests`,
`🔎 Web Search: for "discord edit message"`, या `✍️ Write: to /tmp/file`।
डिफ़ॉल्ट रूप से वे `/verbose` जैसा ही संक्षिप्त explain मोड उपयोग करती हैं; डिबग करते समय
और जब आप कच्चे कमांड/विवरण भी जोड़े हुए चाहते हों तो
`agents.defaults.toolProgressDetail: "raw"` सेट करें।
जहां संभव हो अंतिम उत्तर ड्राफ्ट को बदल देता है; अन्यथा OpenClaw अंतिम उत्तर सामान्य रूप से
भेजता है और चैनल के ट्रांसपोर्ट के अनुसार ड्राफ्ट को साफ करता है या उसे अपडेट करना बंद कर देता है।

## मोड चुनें

`channels.<channel>.streaming.mode` दृश्य कार्य-प्रगति व्यवहार नियंत्रित करता है:

| मोड        | सबसे उपयुक्त                             | चैट में क्या दिखाई देता है                        |
| ---------- | ---------------------------------------- | ------------------------------------------------- |
| `off`      | शांत चैनल                                | केवल अंतिम उत्तर।                                 |
| `partial`  | उत्तर का टेक्स्ट दिखाई देते देखना        | नवीनतम उत्तर टेक्स्ट के साथ संपादित एक ड्राफ्ट।   |
| `block`    | बड़े उत्तर-पूर्वावलोकन खंड               | बड़े खंडों में अपडेट या जोड़ा गया एक पूर्वावलोकन। |
| `progress` | टूल-प्रधान या लंबे समय तक चलने वाले टर्न | एक स्थिति ड्राफ्ट, फिर अंतिम उत्तर।               |

जब उपयोगकर्ताओं को उत्तर टेक्स्ट को टोकन-दर-टोकन स्ट्रीम होते देखने से अधिक "क्या हो रहा है"
की परवाह हो, तब `progress` चुनें।

जब उत्तर स्वयं ही प्रगति संकेत हो, तब `partial` चुनें।

जब आप बड़े टेक्स्ट खंडों में ड्राफ्ट पूर्वावलोकन अपडेट चाहते हों, तब `block` चुनें। Discord
और Telegram पर, `streaming.mode: "block"` अभी भी पूर्वावलोकन स्ट्रीमिंग है, सामान्य
ब्लॉक डिलीवरी नहीं। जब आप सामान्य ब्लॉक उत्तर चाहते हों तो `streaming.block.enabled`
या legacy `blockStreaming` का उपयोग करें।

## लेबल कॉन्फ़िगर करें

प्रगति लेबल `channels.<channel>.streaming.progress` के अंतर्गत रहते हैं।

डिफ़ॉल्ट लेबल `auto` है, जो OpenClaw के अंतर्निहित एक-शब्द लेबल पूल से चुनता है:

```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
Working
Shelling
Scuttling
Clawing
Pinching
Molting
Bubbling
Tiding
Reefing
Cracking
Sifting
Brining
Nautiling
Krilling
Barnacling
Lobstering
Tidepooling
Pearling
Snapping
Surfacing
```

एक निश्चित लेबल उपयोग करें:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          label: "Investigating",
        },
      },
    },
  },
}
```

अपना स्वचालित लेबल पूल उपयोग करें:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          label: "auto",
          labels: ["Checking", "Reading", "Testing", "Finishing"],
        },
      },
    },
  },
}
```

लेबल छिपाएं और केवल प्रगति पंक्तियां दिखाएं:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          label: false,
        },
      },
    },
  },
}
```

## प्रगति पंक्तियां नियंत्रित करें

प्रगति मोड में प्रगति पंक्तियां डिफ़ॉल्ट रूप से सक्षम होती हैं। वे वास्तविक रन इवेंट से आती हैं:
टूल शुरू होना, आइटम अपडेट, टास्क योजनाएं, अनुमोदन, कमांड आउटपुट, पैच सारांश, और
इसी तरह की एजेंट गतिविधि।

एकल टूल कॉल अभी चल रही हो तब भी टूल typed प्रगति निकाल सकते हैं।
इसी तरह धीमा fetch या search टूल के अंतिम परिणाम लौटाने से पहले दृश्य ड्राफ्ट को अपडेट
कर सकता है। प्रगति अपडेट खाली मॉडल सामग्री और स्पष्ट सार्वजनिक चैनल मेटाडेटा के साथ
एक आंशिक टूल परिणाम होता है:

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  "content": [],
  "progress": {
    "text": "Fetching page content...",
    "visibility": "channel",
    "privacy": "public",
    "id": "web_fetch:fetching"
  }
}
```

OpenClaw चैनल प्रगति UI में केवल `progress.text` रेंडर करता है। सामान्य टूल परिणाम
बाद में `content` और `details` के रूप में आता है, और मॉडल को लौटाया गया यही एकमात्र
भाग होता है।

किसी टूल में प्रगति जोड़ते समय, छोटा, सामान्य संदेश उपयोग करें और उसे तब तक विलंबित रखें
जब तक ऑपरेशन उपयोगी होने जितनी देर से लंबित न हो:

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

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

इस पैटर्न का अर्थ है कि तेज़ कॉल प्रगति पंक्ति नहीं दिखाते, लंबे कॉल अभी लंबित रहने के दौरान
एक पंक्ति दिखाते हैं, और रद्द किए गए कॉल पुराने प्रगति संदेश के दिखाई देने से पहले टाइमर साफ
कर देते हैं। प्रगति टेक्स्ट एक सार्वजनिक UI साइड चैनल है, इसलिए उसमें secrets, कच्चे arguments,
fetch की गई सामग्री, कमांड आउटपुट, या पेज टेक्स्ट शामिल नहीं होना चाहिए।

OpenClaw प्रगति ड्राफ्ट और `/verbose` के लिए वही फॉर्मैटर उपयोग करता है:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  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 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          maxLines: 4,
        },
      },
    },
  },
}
```

ड्राफ्ट संपादित होने के दौरान चैट-बबल reflow कम करने के लिए प्रगति पंक्तियां स्वचालित रूप से compact की जाती हैं।

OpenClaw लंबे प्रगति पंक्तियों को डिफ़ॉल्ट रूप से छोटा करता है ताकि बार-बार ड्राफ्ट संपादन
हर अपडेट पर अलग तरह से wrap न हों। डिफ़ॉल्ट प्रति-पंक्ति बजट 120 वर्ण है।
गद्य शब्द सीमा पर कटता है, जबकि path या कच्चे कमांड जैसे लंबे विवरण बीच की ellipsis से
छोटे किए जाते हैं ताकि suffix दिखाई देता रहे।

प्रति-पंक्ति बजट समायोजित करें:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          maxLineChars: 160,
        },
      },
    },
  },
}
```

Slack प्रगति पंक्तियों को एकल टेक्स्ट body के बजाय संरचित Block Kit फ़ील्ड के रूप में
रेंडर कर सकता है:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    slack: {
      streaming: {
        mode: "progress",
        progress: {
          render: "rich",
        },
      },
    },
  },
}
```

Rich rendering वही plain-text fallback रखता है ताकि वे चैनल और क्लाइंट जो समृद्ध shape
का समर्थन नहीं करते, फिर भी संक्षिप्त प्रगति टेक्स्ट दिखा सकें।

एकल प्रगति ड्राफ्ट रखें लेकिन टूल और टास्क पंक्तियां छिपाएं:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          toolProgress: false,
        },
      },
    },
  },
}
```

`toolProgress: false` के साथ, OpenClaw उस टर्न के लिए पुराने standalone
tool-progress संदेशों को फिर भी दबा देता है। यदि कोई लेबल कॉन्फ़िगर है तो उसे छोड़कर,
अंतिम उत्तर तक चैनल दृश्य रूप से शांत रहता है।

## चैनल व्यवहार

हर चैनल अपने समर्थित सबसे साफ ट्रांसपोर्ट का उपयोग करता है:

| चैनल            | प्रगति ट्रांसपोर्ट                           | नोट्स                                                                                      |
| --------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------ |
| Discord         | एक संदेश भेजें, फिर उसे संपादित करें।        | जब वह एक सुरक्षित पूर्वावलोकन संदेश में फिट होता है तो अंतिम टेक्स्ट वहीं संपादित होता है। |
| Matrix          | एक इवेंट भेजें, फिर उसे संपादित करें।        | अकाउंट-स्तरीय स्ट्रीमिंग कॉन्फ़िग अकाउंट-स्तरीय ड्राफ्ट नियंत्रित करता है।                 |
| Microsoft Teams | निजी चैट में native Teams stream।            | `streaming.mode: "block"` Teams ब्लॉक डिलीवरी पर मैप होता है।                              |
| Slack           | native stream या संपादन योग्य ड्राफ्ट पोस्ट। | थ्रेड उपलब्धता प्रभावित करती है कि native streaming उपयोग की जा सकती है या नहीं।           |
| Telegram        | एक संदेश भेजें, फिर उसे संपादित करें।        | पुराने दृश्य ड्राफ्ट बदले जा सकते हैं ताकि अंतिम timestamps उपयोगी रहें।                   |
| Mattermost      | संपादन योग्य ड्राफ्ट पोस्ट।                  | टूल गतिविधि उसी draft-style पोस्ट में समाहित की जाती है।                                   |

सुरक्षित संपादन समर्थन के बिना चैनल आमतौर पर typing indicators या final-only delivery पर
fallback करते हैं।

## अंतिमकरण

जब अंतिम उत्तर तैयार होता है, OpenClaw चैट को साफ रखने की कोशिश करता है:

* यदि ड्राफ्ट सुरक्षित रूप से अंतिम उत्तर बन सकता है, तो OpenClaw उसे वहीं संपादित करता है।
* यदि चैनल native progress streaming उपयोग करता है, तो native transport द्वारा अंतिम टेक्स्ट स्वीकार किए जाने पर OpenClaw उस stream को अंतिम करता है।
* यदि अंतिम उत्तर में मीडिया, अनुमोदन prompt, स्पष्ट reply target, बहुत अधिक chunks, या असफल edit/send है, तो OpenClaw अंतिम उत्तर को सामान्य चैनल delivery path से भेजता है।

fallback path जानबूझकर है। टेक्स्ट खोने, reply को गलत thread में डालने, या draft को ऐसे
payload से overwrite करने से बेहतर है एक नया अंतिम उत्तर भेजना जिसे चैनल सुरक्षित रूप से
दर्शा नहीं सकता।

## समस्या निवारण

**मुझे केवल अंतिम उत्तर दिखता है।**

जांचें कि संदेश संभालने वाले account या channel के लिए `channels.<channel>.streaming.mode`
`progress` पर सेट है। कुछ group या quote-reply paths किसी turn के लिए draft previews
अक्षम कर सकते हैं जब channel सही message को सुरक्षित रूप से edit नहीं कर सकता।

**मुझे label दिखता है लेकिन tool lines नहीं।**

`streaming.progress.toolProgress` जांचें। यदि यह `false` है, तो OpenClaw single draft
व्यवहार रखता है लेकिन tool और task progress lines छिपा देता है।

**मुझे edited draft के बजाय fresh final message दिखता है।**

यह safety fallback है। यह media replies, लंबे answers, explicit reply targets, पुराने
Telegram drafts, missing Slack thread targets, deleted preview messages, या failed
native stream finalization के लिए हो सकता है।

**मुझे अब भी standalone progress messages दिखते हैं।**

जब draft सक्रिय होता है तो progress mode default standalone tool-progress messages को
दबाता है। यदि standalone messages अब भी दिखाई देते हैं, तो सत्यापित करें कि turn सचमुच
progress mode उपयोग कर रहा है और `streaming.mode: "off"` या ऐसा channel path नहीं
जो उस message के लिए draft नहीं बना सकता।

**Teams Discord या Telegram से अलग व्यवहार करता है।**

Microsoft Teams निजी चैट में सामान्य send-and-edit पूर्वावलोकन ट्रांसपोर्ट के बजाय नेटिव स्ट्रीम का उपयोग करता है। Teams `streaming.mode: "block"` को Teams ब्लॉक डिलीवरी भी मानता है क्योंकि इसमें Discord और Telegram द्वारा उपयोग किया जाने वाला वही ड्राफ्ट-पूर्वावलोकन ब्लॉक मोड नहीं होता।

## संबंधित

* [स्ट्रीमिंग और चंकिंग](/hi/concepts/streaming)
* [संदेश](/hi/concepts/messages)
* [चैनल कॉन्फ़िगरेशन](/hi/gateway/config-channels)
* [Discord](/hi/channels/discord)
* [Matrix](/hi/channels/matrix)
* [Microsoft Teams](/hi/channels/msteams)
* [Slack](/hi/channels/slack)
* [Telegram](/hi/channels/telegram)
