速率限制是设计约束,不是错误代码
· 阅读需 10 分钟
我认识的一个团队构建了一个带有智能体循环的金融助手。第一周,API 费用是 127 美元。第十一周,费用飙升至 47,000 美元——同样的系统,同样的功能,范围上没有任何有意的变化。智能体触及了速率限制,重试逻辑忠实地进行了重试,循环没有熔断器,成本在悄无声息中不断累积,直到有人注意到他们设置得太高的计费告警。
这不是一个 bug 的故事,而是一个架构的故事。团队的思维模型将速率限制视为需要被动处理的错误。他们构建的系统完全反映了这种模型。那 47,000 美元的那一周,正是系统按设计运行的结果。
"我的系统处理速率限制事件"与"我的系统被设计为在持续配额压力下正常运行"之间的差异不是语义上的。这是在 API 调用周围添加 try/except 与在设计时就决定当配额成为约束时系统该做什么之间的差异——因为在生产规模下,配额往往就是约束所在。
