路由
什么是模型间的回退?
回退是指第一个模型失败时——宕机、被限速,或者因内容被拒绝——接下来会发生的事情。这篇文章说明回退链应该按什么顺序设计,具体如何运作,以及为什么悄悄进行的回退是危险的。
全部文章 · 最近核实:
为什么这不是可选项
单一供应商的工作流会原样继承它的可用性。尤其是速率限制,并不是罕见事件——它是繁忙时段的正常结果——没有回退的工作流会直接停下来。
回退把一次硬性失败变成一个降级的答案。这算不算改进,完全取决于你有没有被告知这件事发生了。
选择顺序
直觉上的顺序是「次优模型」,但这通常是错的。如果第一个选择因为请求太长而失败,更小的模型也会失败。如果它因内容原因拒绝,类似的模型也会同样拒绝。
更有用的顺序会改变一些结构性的东西:一个完全不同的供应商,或者规则不同的本地模型,而不是一个会以同样方式失败的近亲。
危险的那种
悄悄回退是指系统用另一个模型悄悄作答,什么都不告诉你。你得到一个更差的答案,心里却把它归功于你选的模型,从而对那个模型得出错误结论。
当回退跨越隐私边界时,比得出错误结论更糟。从本地模型切换到云服务商,恰恰把数据送到了用户特意选择不去的地方。能够离开本地执行的链条,应该是用户明确同意过的链条。
ClawAI 是怎么做的
路由模式各自定义自己的链条,仅本地模式把它的链条保持在本地供应商上,而不是在本地忙碌时去找云模型。每条消息都记录实际作答的模型,所以回退事后是可见的,不用靠语气变化去猜。
常见问题
- 回退和重试是一回事吗?
- 重试把同一个请求发给同一个模型,这对临时性错误有帮助。回退换一个模型,这在第一个模型完全无法处理请求时有帮助。稳健的系统会按这个顺序两者都做。
- 回退应该从本地转到云端吗?
- 只有在用户提出要求时才行。选择本地执行通常有一个回退无法尊重的理由,所以安全的做法是失败并告知,而不是在别处成功。
- 一条链应该有多少个模型?
- 通常两三个就够了。长链主要增加的是延迟,因为每次失败的尝试都要在下一次开始前先付出时间的代价。
与其阅读,不如亲自试试
ClawAI 的路由模式各自携带自己的回退链,仅本地模式把它的链条保持在本地,而不是悄悄地连到云服务商。