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:
{ 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?