opencode-map
← guides/

opencode 的 provider 与模型

入门最后更新: 2026年10月21日

opencode 与供应商无关——通过 AI SDK 和 models.dev 支持 75+ LLM provider,也支持本地模型。API key 自带,其余交给 opencode。

接入 provider

在 TUI 里执行 /connect,选择 provider,按提示完成授权并粘贴 API key。凭据保存在 ~/.local/share/opencode/auth.json,不会写进项目文件;opencode auth list 可查看已存凭据。部分 provider 走环境变量认证——比如 Amazon Bedrock 读取 AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY、AWS_PROFILE 或 AWS_BEARER_TOKEN_BEDROCK。

OpenCode Zen

不想自己折腾 provider 账号的话,OpenCode Zen 是官方精选的模型列表,每个模型都经过实测验证——官方也推荐新手从这里开始。

  1. 执行 /connect,选择 OpenCode Zen,打开 opencode.ai/auth。
  2. 登录、填计费信息、复制 API key。
  3. 粘贴到提示框,然后执行 /models 选模型。

Zen 按请求计费,完全可选,用法和其他 provider 一样。(v2 文档里这块叫 OpenCode Console,流程相同。)OpenCode Go 是另一种选择:低价订阅制,覆盖主流开源编码模型。

选择模型

TUI 里执行 /models 会列出已接入 provider 的全部模型,会话中随时可切换。文档点名过几个在代码生成和工具调用上都表现不错的模型:GPT 5.2、GPT 5.1 Codex、Claude Opus 4.5、Claude Sonnet 4.5、Minimax M2.1、Gemini 3 Pro。

在 opencode.json 里设置默认模型:

{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4-5",
  "small_model": "anthropic/claude-haiku-4-5"
}
  • model——默认模型,格式 provider_id/model_id。Zen 的 GPT 5.1 Codex 写作 opencode/gpt-5.1-codex。
  • small_model——轻量任务用的便宜模型,比如生成会话标题。不设置时 opencode 会尝试 provider 里的便宜模型,没有再回退到主模型。

多处都设了模型时,启动按此顺序解析:

优先级 来源
1 --model / -m 命令行参数
2 配置里的 model
3 上次使用的模型
4 内置优先级

调整 provider

provider 块按 provider 自定义——键是 models.dev 目录里的 provider id(或你的自定义 id):

  • provider.<id>.options.baseURL——自定义端点,适合走代理或网关。
  • provider.<id>.blacklist / .whitelist——在 /models 选择器里隐藏模型。whitelist 先收窄集合,blacklist 再从中剔除,两者可叠加。
  • provider.<id>.options.apiKey——内联 key,{env:VAR} 语法让密钥留在环境变量里;options.headers 可加自定义请求头。

变体与推理强度

很多模型有变体(variant)——同一个模型,不同参数。主流 provider 内置了默认变体:Anthropic 有 high/max 思考预算,OpenAI 有 none 到 xhigh 推理档位,Google 有 low/high。可以覆盖或新增:

{
  "provider": {
    "openai": {
      "models": {
        "gpt-5": {
          "variants": {
            "thinking": { "reasoningEffort": "high" },
            "fast": { "disabled": true }
          }
        }
      }
    }
  }
}

TUI 里用 variant_cycle 快捷键循环切换变体。全局的模型参数放在 provider.<id>.models.<id>.options 下——比如 Anthropic 的 thinking.budgetTokens——agent 配置可以覆盖它。

自定义 provider

任何 OpenAI 兼容端点都能接:

  1. 执行 /connect,拉到底选 Other,输入 provider id,粘贴 API key。
  2. 在 opencode.json 里定义——npm 字段是 AI SDK 包(/v1/chat/completions 用 @ai-sdk/openai-compatible,/v1/responses 用 @ai-sdk/openai):
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "myprovider": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "My Provider",
      "options": {
        "baseURL": "https://api.myprovider.com/v1",
        "apiKey": "{env:MYPROVIDER_API_KEY}"
      },
      "models": {
        "my-model": {
          "name": "My Model",
          "limit": { "context": 200000, "output": 65536 }
        }
      }
    }
  }
}

limit.context/limit.output 告诉 opencode 模型的 token 上限(已知 provider 由 models.dev 自动提供)。再执行 /models,该 provider 以 myprovider/my-model 出现。如果没出现,检查 /connect 的 id 是否与配置键一致、npm 包是否匹配 API 形态、options.baseURL 是否正确。

延伸阅读