问题域/PD-117

多 LLM Provider 适配

Multi-LLM Provider Adapter

统一接入多种 LLM API 后端,屏蔽差异提供一致接口

子问题

1.API差异抽象

2.认证方式统一

3.流式输出适配

4.reasoning/thinking 模式跨 Provider 兼容

5.按角色/Action 粒度的模型分配与配置覆盖

6.OpenAI 兼容 API 的流式 usage 返回位置差异

各项目的解法1 solutions

Signals

横向对比

维度MetaGPT
注册方式@register_provider 装饰器 + LLMType 枚举,import 时自注册
抽象层设计BaseLLM ABC 统一 aask/acompletion,子类实现 _achat_completion
Provider 数量13 个实现类覆盖 27 个 LLMType,OpenAILLM 一类注册 11 型
配置模型LLMConfig Pydantic 统一字段 + ModelsConfig 多模型字典
模型切换粒度三级覆盖:全局默认 → Role 级 → Action.llm_name_or_type
成本追踪CostManager 子类化:标准/Token-only/Fireworks 分级计费
流式适配各 Provider 独立实现 _achat_completion_stream,处理不同 SSE 协议

最佳实践

1.注册表模式解耦 Provider 实现

2.一对多注册:OpenAI 兼容 API 共享单一实现类

3.三级配置覆盖链:全局→Role→Action 逐层可覆盖

4.CostManager 子类化适配不同计费模型