多 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,确保对话历史零丢失