大模型提供方
LLM 提供商
相关源文件
以下文件为本维基页面的生成提供了上下文:
src/message.rssrc/provider/accessors.rssrc/provider/anthropic.rssrc/provider/claude.rssrc/provider/copilot.rssrc/provider/dispatch.rssrc/provider/failover.rssrc/provider/mod.rssrc/provider/openai.rssrc/provider/selection.rssrc/provider/startup.rs
jcode 系统采用多态提供商架构来对接各种大语言模型(LLM)后端。这种设计使智能体能够切换模型、处理特定 API 的优化(如提示缓存),并在不同服务层级和供应商之间实现稳健的故障切换逻辑。
提供商特质
提供商系统的核心是 Provider 特质 src/provider/mod.rs:40-48。它定义了发送消息和接收流式响应的标准接口。
| 方法 | 描述 |
|---|---|
complete | 向大语言模型发送消息和工具,获取流式响应 src/provider/dispatch.rs:57-64。 |
complete_split | 优化版本,将静态和动态系统提示分离,以提升缓存效果 src/provider/dispatch.rs:183-191。 |
native_compaction_mode | 返回提供商特定的上下文窗口管理策略 src/provider/openai.rs:129-158。 |
available_models | 列出特定后端支持的模型 src/provider/mod.rs:168-180。 |
model_routes | 返回模型选择器的统一路由元数据 src/provider/mod.rs:43-45。 |
关于特质实现和故障切换编排的详细信息,请参见 提供商特质与多提供商。
提供商编排
系统通过 MultiProvider src/provider/mod.rs:16-16 管理多个账户和后端。该层负责:
- 故障切换逻辑:当主提供商遇到速率限制或临时错误时,自动切换到备用提供商
src/provider/failover.rs:21-30。 - 账户轮换:对同一服务循环使用多个凭证,以最大化有效速率限制
src/provider/mod.rs:29-33。 - 故障分类:
FailoverDecision枚举将错误分为可重试和致命两类,以驱动管线src/provider/failover.rs:64-66。 - 认证协调:如果提供商在使用点缺失,自动从磁盘重新加载凭证
src/provider/accessors.rs:84-95。
支持的后端
代码库包含多个主要大语言模型提供商的本地实现:
- Anthropic:直接集成 Messages API,支持高级提示缓存和 100 万 Token 上下文
src/provider/anthropic.rs:1-10。 - Claude:支持基于 Claude CLI 和 SDK 的传输方式
src/provider/claude.rs:47-60。 - OpenAI / Codex:同时支持标准 HTTPS 和持久化 WebSocket 连接,实现低延迟增量续写
src/provider/openai.rs:169-182。 - OpenRouter:路由引擎,可访问数百种模型,并自动固定提供商以提升缓存局部性
src/provider/openrouter.rs:19-19。 - Copilot:集成 GitHub Copilot 的 API,包含
PremiumMode以节省高级请求配额src/provider/copilot.rs:64-78。 - 其他:支持 Google Gemini
src/provider/gemini.rs:13-13、Cursorsrc/provider/cursor.rs:9-9、AWS Bedrocksrc/provider/bedrock.rs:6-6和 Antigravitysrc/provider/antigravity.rs:5-5。
使用量与目录管理
为提供无缝的用户体验,jcode 会跟踪所有活跃提供商的使用情况。这包括:
- 配额检测:实时监控利用率和耗尽状态
src/provider/failover.rs:12-19。 - 模型目录:统一的模型能力、定价和路由元数据注册表
src/provider/mod.rs:167-184。 - 动态选择:根据可用性和配置确定最佳默认提供商的逻辑
src/provider/selection.rs:45-48。
关于使用量跟踪和模型选择的详细信息,请参见 使用量跟踪与模型目录。
架构总览
下图展示了 Agent 如何通过 Provider 抽象层与不同的大语言模型后端进行通信。
大语言模型提供商交互流程
来源:src/provider/dispatch.rs:183-191、src/provider/anthropic.rs:42-45、src/provider/openai.rs:172-181、src/provider/selection.rs:6-11
提供商数据与元数据流
来源:src/provider/mod.rs:40-48、src/provider/mod.rs:29-31、src/provider/mod.rs:167-170
子页面
- 提供商特质与多提供商
- Anthropic 与 Claude 提供商
- OpenAI、Copilot 及其他提供商
- 使用量跟踪与模型目录
涵盖 Provider 特质方法、MultiProvider 故障切换管线、FailoverDecision 分类以及账户轮换策略。
详细介绍 AnthropicProvider、OAuth 合约重映射、提示缓存标记以及 claude_agent_sdk_bridge.py。
解释 OpenAIProvider 的 WebSocket 实现、CopilotApiProvider 的高级模式以及 OpenRouter 的提供商固定机制。
概述 fetch_all_provider_usage、AccountUsageProbe、配额耗尽检测以及统一的模型定价目录。
来源:src/provider/mod.rs:1-25、src/provider/anthropic.rs:1-10、src/provider/openai.rs:1-66、src/provider/openrouter.rs:1-19、src/provider/copilot.rs:1-20、src/provider/failover.rs:1-53