问题域/PD-183

多 AI 提供商路由

Multi-Provider AI Routing

支持多个 AI 提供商(Claude/Gemini/OpenRouter)的动态切换、自动降级和共享上下文

子问题

1.提供商选择与配置

2.自动降级链设计

3.跨提供商对话历史共享

4.速率限制与配额管理

5.无状态 REST API 的合成 Session ID 与 FK 约束兼容

6.项目级环境变量对 Agent 凭证的污染防护

各项目的解法1 solutions

Signals

横向对比

维度claude-mem
路由策略配置驱动选择 + isSelected() && isAvailable() 双重检查
降级方向单向降级链:Gemini→Claude, OpenRouter→Claude;SDK失败时 Gemini→OpenRouter→放弃
对话历史ConversationMessage[] 提供商无关格式,降级时直接传递共享 session
速率控制Gemini 内置 RPM 限制器(按模型),OpenRouter 滑动窗口截断(消息数+token数)
凭证管理集中式 ~/.claude-mem/.env + SettingsDefaultsManager 三层优先级,屏蔽项目级污染

最佳实践

1.实现提供商无关的对话历史,支持运行时切换而不丢失上下文

2.用 isSelected() + isAvailable() 双重检查避免配置了但 key 缺失的提供商被选中

3.降级时传递同一个 session 对象而非创建新 session,确保对话历史零丢失