问题域/PD-224

多 LLM Provider 抽象

Multi-LLM Provider Abstraction

统一多个 LLM 提供商的接口差异,实现模型无关的调用层

子问题

1.Provider API 差异适配

2.模型参数兼容性处理

3.推理模型特殊参数管理

4.输出格式归一化

5.多代际模型 thinking/reasoning 参数命名差异适配

6.OpenAI 协议兼容 Provider 的 base_url 与认证统一

7.自定义模型名的宽松验证策略

各项目的解法1 solutions

Signals

横向对比

维度TradingAgents
抽象层级ABC 抽象基类 + 3 个具体 Client 覆盖 6 Provider
协议复用OpenAI 协议复用:openai/xai/ollama/openrouter 共享 OpenAIClient
参数兼容UnifiedChatOpenAI 自动剥离推理模型不支持的 temperature/top_p
输出归一化NormalizedChatGoogleGenerativeAI 将 Gemini list→str
模型验证白名单验证 + Ollama/OpenRouter 放行策略
thinking适配Gemini 3 Pro/Flash/2.5 三路 thinking 参数映射

最佳实践

1.使用抽象基类定义统一接口,Factory 模式按 provider 分发

2.继承 SDK ChatModel 重写 __init__/invoke 做最小侵入修补

3.OpenAI 协议兼容 Provider 共享同一 Client 类减少代码重复

4.参数白名单透传防止不兼容参数泄漏到 SDK