Skip to content

重试策略(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)流程不会重试已完成的步骤。