agentic_huge_data_base / wiki
页面 jcode · 4 大模型提供方·DeepWiki 中文全文译文

4 · 大模型提供方(LLM Providers)

代理式研究运行时 · 聚焦本章的模块关系、源码依据与实现要点。

项目jcode 章节4 状态全文译文 模块模型调用与提供方适配、系统架构、测试、发布与运维、工作流与编排
源码线索
  • src/message.rs
  • src/provider/accessors.rs
  • src/provider/anthropic.rs
  • src/provider/claude.rs
  • src/provider/copilot.rs
  • src/provider/dispatch.rs
  • src/provider/failover.rs
  • src/provider/mod.rs
  • src/provider/openai.rs
  • src/provider/selection.rs
模块标签
  • 模型调用与提供方适配
  • 系统架构
  • 测试、发布与运维
  • 工作流与编排
  • 记忆与上下文

章节正文

大模型提供方

LLM 提供商

相关源文件

以下文件为本维基页面的生成提供了上下文:

  • src/message.rs
  • src/provider/accessors.rs
  • src/provider/anthropic.rs
  • src/provider/claude.rs
  • src/provider/copilot.rs
  • src/provider/dispatch.rs
  • src/provider/failover.rs
  • src/provider/mod.rs
  • src/provider/openai.rs
  • src/provider/selection.rs
  • src/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、Cursor src/provider/cursor.rs:9-9、AWS Bedrock src/provider/bedrock.rs:6-6 和 Antigravity src/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 抽象层与不同的大语言模型后端进行通信。

大语言模型提供商交互流程

jcode · 架构总览 · 图 1
jcode · 架构总览 · 图 1

来源:src/provider/dispatch.rs:183-191src/provider/anthropic.rs:42-45src/provider/openai.rs:172-181src/provider/selection.rs:6-11

提供商数据与元数据流

jcode · 架构总览 · 图 2
jcode · 架构总览 · 图 2

来源:src/provider/mod.rs:40-48src/provider/mod.rs:29-31src/provider/mod.rs:167-170

子页面

来源:src/provider/mod.rs:1-25src/provider/anthropic.rs:1-10src/provider/openai.rs:1-66src/provider/openrouter.rs:1-19src/provider/copilot.rs:1-20src/provider/failover.rs:1-53