---
read_when:
    - การอัปเดตลักษณะการทำงานการลองใหม่หรือค่าเริ่มต้นของผู้ให้บริการ
    - การดีบักข้อผิดพลาดในการส่งของผู้ให้บริการหรือขีดจำกัดอัตราการใช้งาน
summary: นโยบายการลองใหม่สำหรับการเรียกไปยังผู้ให้บริการขาออก
title: นโยบายการลองใหม่
x-i18n:
    generated_at: "2026-05-02T10:14:28Z"
    model: gpt-5.5
    provider: openai
    source_hash: 7720092499effdfa011fc0a0310adb2ecddca9e94f57f749794eab1c9ab4c922
    source_path: concepts/retry.md
    workflow: 16
---

## เป้าหมาย

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

## ค่าเริ่มต้น

- จำนวนครั้งที่พยายาม: 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 เมื่อมีให้ใช้ มิฉะนั้นจะใช้ exponential backoff

### Telegram

- ลองใหม่เมื่อเกิดข้อผิดพลาดชั่วคราว (429, หมดเวลา, เชื่อมต่อ/รีเซ็ต/ปิด, ไม่พร้อมใช้งานชั่วคราว)
- ใช้ `retry_after` เมื่อมีให้ใช้ มิฉะนั้นจะใช้ exponential backoff
- ข้อผิดพลาดในการแยกวิเคราะห์ 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,
      },
    },
  },
}
```

## หมายเหตุ

- การลองใหม่มีผลต่อแต่ละคำขอ (ส่งข้อความ, อัปโหลดสื่อ, การแสดงความรู้สึก, โพล, สติกเกอร์)
- โฟลว์ประกอบจะไม่ลองใหม่ในขั้นตอนที่เสร็จสมบูรณ์แล้ว

## ที่เกี่ยวข้อง

- [การสลับโมเดลเมื่อทำงานล้มเหลว](/th/concepts/model-failover)
- [คิวคำสั่ง](/th/concepts/queue)
