OpenCode 模型提供商完全指南:75+ LLM 提供商的接入、配置与最佳实践

OpenCode 作为一款现代化的 AI 编程助手,其核心优势之一在于对模型提供商的广泛支持。基于 AI SDK 和 Models.dev,OpenCode 原生支持 75 个以上的 LLM 提供商,涵盖云端商业模型、开源自托管模型以及本地运行模型。本文将从零开始,详细讲解如何在 OpenCode 中接入和配置各种模型提供商,帮助你选择最适合自己的 AI 编程底座。

一、模型提供商概览

OpenCode 的模型架构分为三层:

Provider(提供商):定义 API 的接入方式和认证逻辑

Model(模型):具体的模型实例,如 GPT-5、Claude Sonnet 4.5

Variant(变体):同一模型的不同配置参数组合

这种分层设计使得 OpenCode 极其灵活——你可以同时接入多个提供商,在不同任务中切换使用不同的模型,甚至为同一个模型配置多个变体以应对不同场景。

支持的提供商类型

OpenCode 支持的提供商可分为以下几类:

  • 商业 API 提供商:OpenAI、Anthropic、Google、MiniMax、DeepSeek、Moonshot AI 等
  • 聚合平台:OpenRouter、OpenCode Zen、LLM Gateway、Helicone、Cloudflare AI Gateway
  • 云服务平台:Amazon Bedrock、Google Vertex AI、Azure OpenAI
  • 本地运行:Ollama、LM Studio、llama.cpp、Atomic Chat
  • 订阅制服务:GitHub Copilot、GitLab Duo、ChatGPT Plus/Pro

二、添加提供商凭据

使用 /connect 命令是添加提供商最便捷的方式。该命令会将 API Key 存储在 ~/.local/share/opencode/auth.json 中,OpenCode 启动时自动加载。

/connect

执行后会出现交互式界面,选择你的目标提供商。以 OpenAI 为例:

┌ Select auth method
│  ChatGPT Plus/Pro
│  Manually enter API Key
└

选择 ChatGPT Plus/Pro 会自动打开浏览器进行 OAuth 认证;选择 Manually enter API Key 则可直接粘贴已有的 API Key。

对于 GitHub Copilot 用户,流程类似:

/connect
# 选择 GitHub Copilot
# 访问 github.com/login/device 输入设备码完成授权

认证完成后,运行 /models 即可查看该提供商下可用的模型列表。

三、配置提供商参数

opencode.jsonopencode.jsonc 中,你可以精细控制每个提供商的行为。

3.1 基础配置

最简单的配置就是设置默认模型:

{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4-20250514"
}

格式为 provider_id/model_id。对于 OpenCode Zen,则使用 opencode/gpt-5.1-codex

3.2 自定义 Base URL

当需要通过代理或自定义端点访问 API 时,可以设置 baseURL

{
  "provider": {
    "anthropic": {
      "options": {
        "baseURL": "https://api.anthropic.com/v1"
      }
    }
  }
}

3.3 模型黑名单与白名单

当一个提供商暴露了大量你不需要的模型时,可以使用 blacklistwhitelist 过滤:

{
  "provider": {
    "anthropic": {
      "blacklist": ["claude-opus-4-20250514"]
    }
  }
}

whitelist 则相反——只保留列出的模型:

{
  "provider": {
    "anthropic": {
      "whitelist": ["claude-sonnet-4-20250514"]
    }
  }
}

两者可以组合使用:先 whitelist 缩小范围,再用 blacklist 从中剔除。

四、模型级配置与变体

4.1 模型选项配置

不同模型支持不同的推理参数。OpenCode 允许为每个模型单独配置:

{
  "provider": {
    "openai": {
      "models": {
        "gpt-5": {
          "options": {
            "reasoningEffort": "high",
            "textVerbosity": "low",
            "reasoningSummary": "auto",
            "include": ["reasoning.encrypted_content"]
          }
        }
      }
    },
    "anthropic": {
      "models": {
        "claude-sonnet-4-5-20250929": {
          "options": {
            "thinking": {
              "type": "enabled",
              "budgetTokens": 16000
            }
          }
        }
      }
    }
  }
}

4.2 变体(Variants)系统

变体是 OpenCode 的一个特色功能。它允许你为同一个模型定义多组配置参数,通过快捷键快速切换:

{
  "provider": {
    "opencode": {
      "models": {
        "gpt-5": {
          "variants": {
            "high": {
              "reasoningEffort": "high",
              "textVerbosity": "low",
              "reasoningSummary": "auto"
            },
            "low": {
              "reasoningEffort": "low",
              "textVerbosity": "low",
              "reasoningSummary": "auto"
            }
          }
        }
      }
    }
  }
}

OpenCode 为流行提供商预置了默认变体:

  • Anthropichigh(高思考预算,默认)、max(最大思考预算)
  • OpenAInoneminimallowmediumhighxhigh
  • Googlelowhigh

使用快捷键 variant_cycle 可在变体间快速循环切换。

五、本地模型部署与接入

对于注重隐私或需要离线使用的场景,OpenCode 支持多种本地运行方案。

5.1 Ollama

Ollama 是最流行的本地 LLM 运行工具之一,OpenCode 对其有自动配置支持。也可以手动配置:

{
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (local)",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "qwen3-coder": {
          "name": "Qwen3 Coder (local)"
        }
      }
    }
  }
}

注意事项:如果工具调用(tool calls)效果不佳,可以尝试增加 Ollama 的 num_ctx 参数,建议设置在 16k-32k 范围。

5.2 LM Studio

{
  "provider": {
    "lmstudio": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "LM Studio (local)",
      "options": {
        "baseURL": "http://127.0.0.1:1234/v1"
      },
      "models": {
        "google/gemma-3n-e4b": {
          "name": "Gemma 3n-e4b (local)"
        }
      }
    }
  }
}

5.3 llama.cpp

{
  "provider": {
    "llama.cpp": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "llama-server (local)",
      "options": {
        "baseURL": "http://127.0.0.1:8080/v1"
      },
      "models": {
        "qwen3-coder:a3b": {
          "name": "Qwen3-Coder (local)",
          "limit": {
            "context": 128000,
            "output": 65536
          }
        }
      }
    }
  }
}

所有本地方案都遵循相同的模式:使用 @ai-sdk/openai-compatible 作为 npm 包,设置本地服务的 baseURL,然后注册模型。这意味着任何提供 OpenAI 兼容 API 的本地推理引擎都可以接入 OpenCode。

六、自定义提供商

除了内置的 75+ 提供商,你还可以创建自定义提供商。这在对接企业内部 API 或小众推理服务时非常有用:

{
  "provider": {
    "my-custom-provider": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "My Company AI",
      "apiKeyEnv": "MY_COMPANY_API_KEY",
      "options": {
        "baseURL": "https://ai.mycompany.com/v1"
      },
      "models": {
        "my-model-v1": {
          "name": "My Custom Model v1"
        }
      }
    }
  }
}

配置项说明:

  • npm:AI SDK 的 provider 包名,兼容 OpenAI API 的用 @ai-sdk/openai-compatible
  • name:UI 中显示的名称
  • apiKeyEnv:API Key 的环境变量名
  • options.baseURL:API 端点地址
  • models:该提供商下可用的模型列表

七、模型加载优先级

当 OpenCode 启动时,按以下顺序确定使用的模型:

命令行参数--model-m 标志,格式为 provider_id/model_id

配置文件opencode.json 中的 model 字段

上次使用的模型:自动记忆上一次会话的选择

内部优先级:按内置优先级选择第一个可用模型

# 命令行指定模型
opencode --model openai/gpt-5
# 或简写
opencode -m anthropic/claude-sonnet-4-20250514

八、推荐模型与选型建议

OpenCode 官方推荐以下模型(2026 年 7 月):

| 模型 | 提供商 | 适用场景 |
|------|--------|---------|
| GPT 5.2 | OpenAI | 通用编程,复杂推理 |
| GPT 5.1 Codex | OpenAI | 代码生成优化 |
| Claude Opus 4.5 | Anthropic | 深度分析,长上下文 |
| Claude Sonnet 4.5 | Anthropic | 日常编程,性价比高 |
| Minimax M2.1 | MiniMax | 代码理解与重构 |
| Gemini 3 Pro | Google | 多模态场景 |

选型建议:

  • 预算充足、追求极致效果:选择 Claude Sonnet 4.5 或 GPT 5.1 Codex
  • 成本敏感:使用 OpenCode Zen 或 OpenRouter 接入开源模型如 Qwen 3 Coder、DeepSeek V4 Pro
  • 隐私优先:通过 Ollama 或 LM Studio 本地运行开源模型
  • 已有订阅:利用 GitHub Copilot 或 ChatGPT Plus 订阅,零额外成本
  • 多模型策略:同时配置多个提供商,复杂任务用强模型,简单任务用轻量模型

九、实际案例分析

场景:同时接入云端和本地模型

{
  "$schema": "https://opencode.ai/config.json",
  "model": "opencode/gpt-5.1-codex",
  "provider": {
    "opencode": {
      "models": {
        "gpt-5.1-codex": {
          "variants": {
            "high": { "reasoningEffort": "high" },
            "low": { "reasoningEffort": "low" }
          }
        }
      }
    },
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Local Models",
      "options": { "baseURL": "http://localhost:11434/v1" },
      "models": {
        "qwen3-coder": { "name": "Qwen3 Coder (本地)" }
      }
    }
  }
}

这样配置后,通过 /models 命令即可在两个提供商之间自由切换——联网时使用 GPT 5.1 Codex 处理复杂任务,离线时切换到本地的 Qwen3 Coder。

场景:通过 OpenRouter 使用多种模型

{
  "provider": {
    "openrouter": {
      "models": {
        "moonshotai/kimi-k2": {
          "options": {
            "provider": {
              "order": ["baseten"],
              "allow_fallbacks": false
            }
          }
        }
      }
    }
  }
}

十、注意事项与最佳实践

API Key 安全:OpenCode 将凭据加密存储在 auth.json,切勿将其提交到版本控制系统

模型上下文窗口:本地模型通常上下文窗口较小,处理大文件时注意设置合理的 limit

工具调用兼容性:部分本地模型的工具调用能力较弱,选择模型时优先考虑 Qwen-Coder、DeepSeek-Coder 等经过优化的模型

网络代理:在中国大陆使用海外 API 时,需配合网络代理配置

成本控制:利用变体系统,日常编码使用低推理预算的变体,复杂任务切换到高推理预算

使用共享会话:开启 session sharing 可以跨设备同步对话历史

总结

OpenCode 的模型提供商系统是其最强大的特性之一。75+ 内置提供商、灵活的变体机制、完善的本地模型支持,让开发者可以根据自己的需求、预算和隐私要求,自由组合不同的 AI 模型。无论是使用 Claude 进行深度代码审查,还是通过 Ollama 在离线环境中使用 Qwen Coder,OpenCode 都提供了统一而优雅的配置体验。

最佳的实践是:不要只依赖单一模型。利用 OpenCode 的多提供商支持,为不同任务选择最合适的模型,才能最大化 AI 编程助手的生产力。