重试策略
设计目标
- 按单个 HTTP 请求重试,而非按整个多步流程。
- 只重试当前步骤,保持执行顺序。
- 避免对非幂等操作产生重复执行。
默认值
- 尝试次数:3
- 最大延迟上限:30000 ms
- 抖动:0.1(10%)
- 各服务商默认值:
- Telegram 最小延迟:400 ms
- Discord 最小延迟:500 ms
行为
Discord
- 仅在限速错误(HTTP 429)时重试。
- 优先使用 Discord 返回的
retry_after,否则采用指数退避。
Telegram
- 在瞬时错误时重试(429、超时、连接重置/关闭、暂时不可用)。
- 优先使用
retry_after,否则采用指数退避。 - 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,
},
},
},
}
补充说明
- 重试针对单个请求(消息发送、媒体上传、表态、投票、贴纸)。
- 组合流程中已完成的步骤不会重试。