Messages and delivery

سیاست تلاش مجدد

اهداف

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

مقادیر پیش‌فرض

تنظیم مقدار پیش‌فرض
تعداد تلاش‌ها 3
سقف حداکثر تأخیر 30000 ms
نوسان تصادفی 0.1 (10%)
حداقل تأخیر Telegram 400 ms
حداقل تأخیر Discord 500 ms

رفتار

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

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

Discord

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

Telegram

  • در خطاهای گذرا (429، پایان مهلت، اتصال/بازنشانی/بسته‌شدن و دردسترس‌نبودن موقت) تلاش مجدد انجام می‌دهد.
  • در صورت وجود، از retry_after استفاده می‌کند؛ در غیر این صورت، از پس‌روی نمایی بهره می‌گیرد.
  • برای خطاهای تجزیهٔ HTML/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,      },    },  },}

نکات

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

مرتبط

Was this useful?
On this page

On this page