codecamp

OpenClaw 出站提供商调用的重试策略

重试策略

目标

  • 按 HTTP 请求重试,而非按多步骤流程重试。
  • 通过仅重试当前步骤来保持顺序。
  • 避免重复执行非幂等操作。

默认值

  • 尝试次数:3
  • 最大延迟上限:30000 毫秒
  • 抖动:0.1(10%)
  • 提供商默认值:
    • Telegram 最小延迟:400 毫秒
    • Discord 最小延迟:500 毫秒

行为

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,
      },
    },
  },
}

注意事项

  • 重试按请求应用(消息发送、媒体上传、表情回应、投票、贴纸)。
  • 组合流程不会重试已完成的步骤。
OpenClaw 流式传输 + 分块行为(块回复、草稿流式传输、限制)
OpenClaw 用于序列化入站自动回复运行的命令队列设计
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

OpenClaw 消息渠道

OpenClaw 工具

OpenClaw 模型

OpenClaw 平台

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }