Messages and delivery

นโยบายการลองใหม่

เป้าหมาย

  • ลองใหม่แยกตามคำขอ HTTP แต่ละรายการ ไม่ใช่ตามโฟลว์หลายขั้นตอน
  • รักษาลำดับโดยลองใหม่เฉพาะขั้นตอนปัจจุบัน
  • หลีกเลี่ยงการทำซ้ำสำหรับการดำเนินการที่ไม่เป็นไอดempotent

ค่าเริ่มต้น

การตั้งค่า ค่าเริ่มต้น
จำนวนครั้งที่พยายาม 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 ภายใน SDK เอง

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