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 是官方精选的模型列表,每个模型都经过实测验证——官方也推荐新手从这里开始。
- 执行
/connect,选择OpenCode Zen,打开 opencode.ai/auth。 - 登录、填计费信息、复制 API key。
- 粘贴到提示框,然后执行
/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 兼容端点都能接:
- 执行
/connect,拉到底选 Other,输入 provider id,粘贴 API key。 - 在
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 是否正确。