多模型提供商管理
Multi-Provider Model Management
统一管理多个 LLM 提供商的模型配置、凭证检测和运行时切换
子问题
1.提供商注册与凭证检测
2.模型热切换与持久化
3.自定义 class_path 加载
4.per-model 参数覆盖
5.模型 profile 能力验证(tool_calling 支持检测)
6.default vs recent 双字段意图区分
7.LangChain 内置提供商注册表动态发现
各项目的解法1 solutions
Signals
横向对比
| 维度 | DeepAgents |
|---|---|
| 配置格式 | TOML 文件 (~/.deepagents/config.toml),tomllib 标准库解析 |
| 提供商注册 | 17 提供商硬编码 PROVIDER_API_KEY_ENV + TOML 自定义扩展 |
| 模型标识 | provider:model 格式 ModelSpec 值对象,支持裸名自动推断 |
| 凭证检测 | 三层链:config.toml api_key_env → 硬编码映射 → LangChain 注册表 |
| 热切换机制 | /model 命令 + LangGraph checkpointer 保持会话状态 |
| 自定义扩展 | class_path importlib 动态加载任意 BaseChatModel 子类 |
| 参数覆盖 | TOML params 表 flat key 为 provider 默认,sub-table 为 per-model 覆盖 |
| 持久化策略 | default/recent 双字段分离,tempfile+rename 原子写入 |
最佳实践
1.使用 provider:model 格式统一模型标识
2.TOML 配置支持自定义提供商扩展
3.frozen dataclass + MappingProxyType 防止全局缓存被意外修改
4.tempfile + rename 原子写入防止配置文件损坏
5.模型创建前凭证前置检测,提前给出友好错误信息