多模型路由
Multi-Model Routing
解决不同任务阶段使用不同 LLM 模型的选择、切换和成本优化问题
子问题
1.按任务复杂度选择模型
2.多供应商 API Key 管理
3.模型 token 限制感知
4.运行时模型热切换
5.跨供应商 token 超限异常的统一检测与分类
6.长文本生成时的渐进式截断重试策略
7.本地开发与云部署的 API Key 双通道管理
各项目的解法1 solutions
Signals
横向对比
| 维度 | OpenDeepResearch |
|---|---|
| 路由粒度 | 四阶段独立模型:summarization/research/compression/final_report |
| 切换机制 | init_chat_model configurable_fields + with_config 运行时注入 |
| 供应商支持 | provider:model 命名约定,自动路由 OpenAI/Anthropic/Google/Cohere/Mistral/Ollama/Bedrock |
| token感知 | MODEL_TOKEN_LIMITS 静态映射表 + 渐进式截断重试(每次缩减10%) |
| Key管理 | 双通道:环境变量(本地)+ config.apiKeys(云部署),按 provider 前缀自动分发 |
| 配置方式 | Pydantic BaseModel + x_oap_ui_config 元数据驱动 UI 表单 |
最佳实践
1.用 init_chat_model configurable_fields 实现运行时切换
2.维护 MODEL_TOKEN_LIMITS 映射表感知各模型限制
3.用 provider:model 命名约定让 init_chat_model 自动路由到对应 SDK
4.为每个模型字段配套独立的 max_tokens 字段实现细粒度控制
5.token 超限时按 10% 递减截断重试而非直接失败