重试策略(Retry policy)
目标
- 按单个 HTTP 请求重试,而不是按多步骤流程整体重试。
- 仅重试当前步骤以保持顺序。
- 避免重复执行非幂等操作。
默认值
- 尝试次数:3
- 最大延迟上限:30000 ms
- 抖动(jitter):0.1(10%)
- Provider 默认:
- Telegram 最小延迟:400 ms
- Discord 最小延迟:500 ms
行为
Discord
- 只对限流错误重试(HTTP 429)。
- 若可用则使用 Discord 的
retry_after,否则使用指数退避。
Telegram
- 对瞬时错误重试(429、timeout、connect/reset/closed、temporarily unavailable)。
- 若可用则使用
retry_after,否则使用指数退避。 - Markdown 解析错误不会重试;会回退到纯文本。
配置
在 ~/.openclaw/moltbot.json 中按 provider 设置重试策略:
json5
{
channels: {
telegram: {
retry: {
attempts: 3,
minDelayMs: 400,
maxDelayMs: 30000,
jitter: 0.1
}
},
discord: {
retry: {
attempts: 3,
minDelayMs: 500,
maxDelayMs: 30000,
jitter: 0.1
}
}
}
}备注
- 重试按“单请求”生效(消息发送、媒体上传、reaction、poll、sticker)。
- 组合式(composite)流程不会重试已完成的步骤。