- 在 ChatService.completions() 中实现跨 Token 重试循环,最多尝试 3 个 不同 Token,遇到 429 时标记当前 Token 为 COOLING 并切换下一个 - TokenPool.select() 和 TokenManager.get_token() 增加 exclude 参数, 支持排除已失败的 Token - 新增 TokenManager.mark_rate_limited() 方法,将 429 的 Token 配额 归零并标记 COOLING,等待 Scheduler 刷新恢复 - 内层 retry_on_status 不再重试 429,避免对同一耗尽 Token 做无意义重试 - 循环耗尽后兜底抛出异常,避免隐式返回 None