OpenCode 支持 75+ 个 LLM 提供商,从 OpenAI、Anthropic 到本地模型如 Ollama、LM Studio,选择空间极其丰富。但许多开发者将 API key 粘贴进去后就停滞在默认配置,错过了大量能显著提升编程体验的调优手段。
本文将系统性地讲解 OpenCode 的模型配置体系,涵盖提供商连接、默认模型设置、推理参数调优、模型黑白名单、变体管理以及小模型配置等核心话题,帮助你针对不同任务场景选择最合适的模型和参数组合。
OpenCode 使用 /connect 命令来添加提供商的认证凭据。令牌统一存储在 ~/.local/share/opencode/auth.json 中。
在 TUI 中输入 /connect,然后搜索目标提供商。以 DeepSeek 为例:
/connect → 搜索 "DeepSeek" → 输入 API key → /models 查看可用模型
OpenCode 一个被低估的功能是可以复用你已有的 AI 订阅,无需额外付费:
# 以 GitHub Copilot 为例 /connect → 搜索 "GitHub Copilot" → 浏览器打开 github.com/login/device → 输入设备码 → 授权完成
这不仅省去了单独申请 API key 的麻烦,也让已付费的服务物尽其用。
对于注重隐私或希望离线使用的场景,OpenCode 对接本地模型也非常便捷:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama (local)",
"options": {
"baseURL": "http://localhost:11434/v1"
},
"models": {
"qwen3-coder": {
"name": "Qwen3 Coder (local)",
"limit": {
"context": 128000,
"output": 65536
}
}
}
}
}
}
支持 Ollama、llama.cpp、LM Studio、Atomic Chat 等主流本地推理工具。
每次启动 OpenCode 都手动选模型很烦人。通过配置 model 键可以固定默认模型:
{
"$schema": "https://opencode.ai/config.json",
"model": "opencode/gpt-5.1-codex"
}
模型 ID 格式为 provider_id/model_id。对于自定义提供商,provider_id 就是 config 中 provider 下面的键名。
当 OpenCode 启动时,按以下顺序确定使用哪个模型:
--model 或 -m 命令行参数
opencode.json 中配置的 model 字段
上次使用的模型(会话记忆)
内部优先级列表的第一个模型
这意味着你可以用命令行参数临时覆盖默认配置:
# 本次使用 Claude,不改变配置文件 opencode -m anthropic/claude-sonnet-4-5-20250929
不同模型支持不同的运行时参数,OpenCode 允许在配置文件中精确控制。
GPT-5 等推理模型支持控制推理深度:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"openai": {
"models": {
"gpt-5": {
"options": {
"reasoningEffort": "high",
"textVerbosity": "low",
"reasoningSummary": "auto"
}
}
}
}
}
}
reasoningEffort:推理深度,minimal / low / medium / high / xhightextVerbosity:回复长度,low / medium / highreasoningSummary:推理摘要,auto 表示自动生成Claude 系列支持设置思考令牌预算:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"models": {
"claude-sonnet-4-5-20250929": {
"options": {
"thinking": {
"type": "enabled",
"budgetTokens": 16000
}
}
}
}
}
}
}
budgetTokens:越大思考越深,但消耗也越大type: "enabled":开启思考模式自定义模型时可以指定上下文窗口和最大输出长度:
{
"provider": {
"openrouter": {
"models": {
"moonshotai/kimi-k2": {
"limit": {
"context": 131072,
"output": 32768
}
}
}
}
}
}
不做限制的语境容易让计费失控。合理设置 output 上限既控制成本,也让模型更聚焦。
当提供商提供几十甚至上百个模型时,/models 列表会变得冗长。通过黑白名单精简:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"whitelist": [
"claude-opus-4-5-20251101",
"claude-sonnet-4-5-20250929",
"claude-haiku-4-5-20251001"
]
},
"openai": {
"blacklist": [
"gpt-4-turbo",
"gpt-3.5-turbo"
]
}
}
}
whitelist:只保留列表中指定的模型blacklist:从列表中移除指定模型OpenCode 为多家提供商预设了变体。以 Anthropic 为例:
high:高思考预算(默认)max:最大思考预算OpenAI 的变体更丰富:
none —— 无推理minimal —— 最小推理low / medium / high / xhigh —— 梯度递增你可以创建自己的变体来适配不同场景:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"openai": {
"models": {
"gpt-5": {
"variants": {
"thinking": {
"reasoningEffort": "high",
"textVerbosity": "low"
},
"fast": {
"reasoningEffort": "low",
"textVerbosity": "low"
},
"balanced": {
"reasoningEffort": "medium"
}
}
}
}
}
}
}
同一个模型按场景定义不同配置:快速浏览用 fast,深度分析用 thinking。
通过 variant_cycle 快捷键(需在 keybinds 中配置)可以快速在不同变体间切换,不需要重新 /models 选模型。
OpenCode 在执行某些轻量任务(如生成会话标题)时会使用一个小模型,默认使用 Zen 提供的 gpt-5-nano。你可以覆盖这个配置,特别是在使用自托管 GitLab 等需要锁定提供商的场景:
{
"$schema": "https://opencode.ai/config.json",
"small_model": "gitlab/duo-chat-haiku-4-5"
}
这确保即使是后台任务也使用你授权的模型,避免意外调用了外部服务。
下面是一个完整的实战配置,针对不同工作场景应用不同模型和参数:
{
"$schema": "https://opencode.ai/config.json",
"model": "opencode/gpt-5.1-codex",
"small_model": "anthropic/claude-haiku-4-5-20251001",
"provider": {
"opencode": {
"models": {
"gpt-5": {
"variants": {
"deep": {
"reasoningEffort": "high",
"textVerbosity": "low"
},
"quick": {
"reasoningEffort": "low",
"textVerbosity": "low"
}
}
}
}
},
"anthropic": {
"whitelist": [
"claude-opus-4-5-20251101",
"claude-sonnet-4-5-20250929"
],
"models": {
"claude-opus-4-5-20251101": {
"options": {
"thinking": {
"type": "enabled",
"budgetTokens": 32000
}
}
},
"claude-sonnet-4-5-20250929": {
"options": {
"thinking": {
"type": "enabled",
"budgetTokens": 16000
}
}
}
}
}
}
}
这个配置的思路是:
quick 变体不同的 Agent 可以指定不同模型,这在 Plan/Build 模式下尤其有用:
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"build": {
"mode": "primary",
"model": "opencode/gpt-5.1-codex"
},
"plan": {
"mode": "primary",
"model": "anthropic/claude-sonnet-4-5-20250929",
"temperature": 0.1
},
"code-reviewer": {
"description": "审查代码质量和安全性",
"mode": "subagent",
"model": "anthropic/claude-haiku-4-5-20251001",
"temperature": 0.0,
"permission": {
"edit": "deny"
}
}
}
}
Plan 模式用 Sonnet + 低温度保证分析严谨;Build 模式用能力最强的 Codex;审查 Agent 用快速的 Haiku 节省成本——每种 Agent 用最适配的模型。
首先确认 /connect 已成功添加凭据。其次检查是否被 blacklist 过滤掉了。运行 opencode models 可以列出当前所有可用模型及其 ID。
部分本地模型工具调用能力较弱。Ollama 用户建议将 num_ctx 调到 16k-32k。在配置中确保选择工具调用能力强的模型(如 Qwen-Coder、DeepSeek-Coder 系列)。
使用 Helicone 等 LLM 可观测平台集成,或者通过 /cost 命令查看会话的 token 消耗统计。
OpenCode 的模型配置系统给予了开发者极大的灵活性——从选择哪个提供商、到设定推理深度、再到不同 Agent 用不同模型。关键是找到适合自己工作流的配置组合:
先连接:用 /connect 和 /models 建立基础
设默认:固定日常开发的主力模型
调参数:为推理模型开启思考模式和推理层级
建变体:同一个模型适配不同场景
配 Agent:Plan/Build/Review 各用其长
花半小时调好这些配置,之后的每一天都会享受到更精准、更高效、更经济的 AI 编程体验。