Skip to content

Feature Request: Provider fallback chain — auto-switch on API failure #2574

@hsdbeebou

Description

@hsdbeebou

问题描述

目前 config.toml 支持配置多个 [providers.*](如 deepseek、nvidia-nim 等),但切换需要手动执行 /provider 命令。当正在使用的 provider 因配额耗尽、401、429 或 5xx 错误不可用时,用户必须中断对话手动切换,体验不佳。

建议方案

增加自动 fallback 链配置:

provider = "nvidia-nim"
fallback_providers = ["deepseek", "openrouter"]

当当前 provider 返回不可恢复错误(401、429、5xx)时,自动按顺序尝试 fallback 列表中的下一个 provider,无需用户介入。

使用场景

  • NVIDIA NIM key 配额用完 → 自动切到 DeepSeek 官方 API
  • DeepSeek 官方服务波动 → 自动切到 OpenRouter
  • 用户全程无感知,不中断工作流

额外考虑

  • fallback_providers 不设数量上限,按列表顺序尝试
  • 可配合 [retry] 现有配置,retry 耗尽后再 fallback
  • 如果所有 provider 都失败,回显明确错误信息

感谢考虑!

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions