---
read_when:
    - به‌روزرسانی رفتار تلاش مجدد یا پیش‌فرض‌های ارائه‌دهنده
    - اشکال‌زدایی خطاهای ارسال ارائه‌دهنده یا محدودیت‌های نرخ
summary: سیاست تلاش مجدد برای فراخوانی‌های خروجی به ارائه‌دهنده
title: سیاست تلاش مجدد
x-i18n:
    generated_at: "2026-05-02T11:43:38Z"
    model: gpt-5.5
    provider: openai
    source_hash: 7720092499effdfa011fc0a0310adb2ecddca9e94f57f749794eab1c9ab4c922
    source_path: concepts/retry.md
    workflow: 16
---

## اهداف

- تلاش دوباره برای هر درخواست HTTP، نه برای هر جریان چندمرحله‌ای.
- حفظ ترتیب با تلاش دوباره فقط برای گام فعلی.
- جلوگیری از تکرار عملیات غیرایدِمپوتنت.

## پیش‌فرض‌ها

- تعداد تلاش‌ها: 3
- سقف بیشینه تأخیر: 30000 ms
- Jitter: 0.1 (10 درصد)
- پیش‌فرض‌های ارائه‌دهنده:
  - کمینه تأخیر Telegram: 400 ms
  - کمینه تأخیر Discord: 500 ms

## رفتار

### ارائه‌دهندگان مدل

- OpenClaw اجازه می‌دهد SDKهای ارائه‌دهنده، تلاش‌های دوباره کوتاه معمول را مدیریت کنند.
- برای SDKهای مبتنی بر Stainless مانند Anthropic و OpenAI، پاسخ‌های قابل تلاش دوباره
  (`408`، `409`، `429`، و `5xx`) می‌توانند شامل `retry-after-ms` یا
  `retry-after` باشند. وقتی این انتظار طولانی‌تر از 60 ثانیه باشد، OpenClaw
  مقدار `x-should-retry: false` را تزریق می‌کند تا SDK خطا را بلافاصله نمایان کند و
  جایگزینی مدل بتواند به نمایه احراز هویت دیگر یا مدل پشتیبان بچرخد.
- سقف را با `OPENCLAW_SDK_RETRY_MAX_WAIT_SECONDS=<seconds>` بازنویسی کنید.
  آن را روی `0`، `false`، `off`، `none`، یا `disabled` تنظیم کنید تا SDKها
  خواب‌های طولانی `Retry-After` را به‌صورت داخلی رعایت کنند.

### Discord

- در خطاهای محدودیت نرخ (HTTP 429)، مهلت‌گذشت درخواست، پاسخ‌های HTTP 5xx،
  و خرابی‌های گذرای انتقال مانند خرابی‌های جست‌وجوی DNS، بازنشانی اتصال،
  بسته‌شدن سوکت، و خرابی‌های fetch دوباره تلاش می‌کند.
- وقتی `retry_after` در دسترس باشد از آن استفاده می‌کند، در غیر این صورت از عقب‌نشینی نمایی استفاده می‌کند.

### Telegram

- در خطاهای گذرا دوباره تلاش می‌کند (429، مهلت‌گذشت، اتصال/بازنشانی/بسته‌شده، موقتاً در دسترس نیست).
- وقتی `retry_after` در دسترس باشد از آن استفاده می‌کند، در غیر این صورت از عقب‌نشینی نمایی استفاده می‌کند.
- خطاهای تجزیه Markdown دوباره تلاش نمی‌شوند؛ آن‌ها به متن ساده بازمی‌گردند.

## پیکربندی

سیاست تلاش دوباره را برای هر ارائه‌دهنده در `~/.openclaw/openclaw.json` تنظیم کنید:

```json5
{
  channels: {
    telegram: {
      retry: {
        attempts: 3,
        minDelayMs: 400,
        maxDelayMs: 30000,
        jitter: 0.1,
      },
    },
    discord: {
      retry: {
        attempts: 3,
        minDelayMs: 500,
        maxDelayMs: 30000,
        jitter: 0.1,
      },
    },
  },
}
```

## یادداشت‌ها

- تلاش‌های دوباره برای هر درخواست اعمال می‌شوند (ارسال پیام، بارگذاری رسانه، واکنش، نظرسنجی، استیکر).
- جریان‌های ترکیبی گام‌های تکمیل‌شده را دوباره تلاش نمی‌کنند.

## مرتبط

- [جایگزینی مدل](/fa/concepts/model-failover)
- [صف فرمان](/fa/concepts/queue)
