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 باشند. وقتی این زمان انتظار بیش از 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، بازنشانی اتصال، بسته‌شدن سوکت و شکست دریافت، دوباره تلاش می‌کند.
  • در صورت موجود بودن از 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