OC
OpenClaw 中文解释版

给五岁小朋友也能看懂的说明书

简要总结

Retry Policy

这页说明书在讲一个叫“重试”的小帮手。有时候,我们让电脑给朋友发消息,可能会遇到网络不好或者对方服务器太忙的情况。这时候,“重试”小帮手就会自动地、轻轻地再试几次,而不是马上放弃。它很聪明,会等一会儿再试,也不会把同一件事情做两遍。这页就是告诉你这个小帮手是怎么工作的,以及怎么告诉它你想让它试几次。

五岁小孩版解释

这个“重试”小帮手的目标是帮助消息发送得更可靠。它有三个小任务:第一,它每次只帮一个忙(比如发一条消息),而不是一下子帮一连串的忙。第二,它只重新做现在卡住的这一步,这样所有事情的顺序就不会乱掉。第三,它很小心,对于那些不能重复做的事情(比如创建唯一的东西),它不会不小心做两次。

默认情况下,这个小帮手会这样工作:它会最多尝试 3 次。每次等待的时间会慢慢变长,但最长不会超过 30000 毫秒(也就是30秒)。它还会加一点点“抖动”(Jitter),你可以把它想成是“随机的小等待”,就像你等朋友时不会每次都数完全一样的秒数,这样大家不会挤在同一时间再试。对于不同的聊天软件,它开始等待的时间不一样:和Telegram聊天时,最少等 400 毫秒;和Discord聊天时,最少等 500 毫秒。

对于 Discord 这个聊天软件,小帮手只在一种情况下会重试:就是当Discord说“太忙了,请稍等”(这叫速率限制错误,HTTP 429)。它会先看看Discord告诉它要等多久(retry_after),如果没告诉,它就用自己的“慢慢等久一点”的方法(指数退避)。

对于 Telegram 这个聊天软件,小帮手在更多情况下会帮忙重试:比如对方说“太忙了”(429)、等了好久没回应(超时)、网络连接突然断了等等。它也会先看Telegram说的等待时间(retry_after),没有的话再用自己的方法。但是,如果你发的消息格式(Markdown)让Telegram看不懂,小帮手不会重试,它会直接换成普通文字再发一次。

如果你想改变小帮手的工作方式,可以告诉它。你需要打开一个叫 ~/.openclaw/openclaw.json 的配置文件(就像给机器人写一张设置纸条)。在里面,你可以分别给 Telegram 和 Discord 设置规则。比如,你可以改 attempts(尝试次数)、minDelayMs(最少等多久)、maxDelayMs(最多等多久)和 jitter(抖动大小)。记得要按照纸条上原来的样子写,只是改数字哦。

最后要记住几件重要的事:这个重试规则,对每一次单独的请求都有效,比如发一条消息、传一张图片、加一个表情回复等等。如果是一连串的动作(复合流程),前面已经成功完成的步骤,小帮手不会再回头去重做,它只关心现在正在做的这一步。