OpenCode 的模型配置:选对脑子,事半功倍
用 OpenCode 干活背后跑的是大语言模型。不同的模型擅长的东西不一样速度、成本、能力也各有千秋。OpenCode 本身不生产模型而是通过AI SDK和Models.dev接入了 75 家以上的模型提供商连本地跑的小模型也支持。提供商大门已经开好了大多数主流提供商OpenCode 默认就预装好了。如果之前通过/connect命令添加过某个提供商的凭证那么启动 OpenCode 的时候就能直接用了。具体每个提供商怎么配可以去看官方文档。选模型挑一个顺手的配置好提供商之后在 OpenCode 里敲下面的命令就能看到可选模型列表从中挑选/models推荐的模型现在市面上的模型太多每周都有新的冒出来。不过真正既擅长写代码、又擅长调用工具的模型其实就那么几个。下面列的几个模型在 OpenCode 上表现都不错排名不分先后也不是完整清单而且不一定实时更新GPT 5.2GPT 5.1 CodexClaude Opus 4.5Claude Sonnet 4.5Minimax M2.1Gemini 3 Pro可以考虑从这几个里面挑一个用。设为默认想把上面某个模型设成默认的可以在 OpenCode 配置文件里设置model字段opencode.json{$schema:https://opencode.ai/config.json,model:lmstudio/google/gemma-3n-e4b}这里的完整 ID 格式是提供商ID/模型ID。举个例子如果用 OpenCode Zen那么 GPT 5.1 Codex 的 ID 就是opencode/gpt-5.1-codex。如果自己配置了一个自定义提供商那么提供商ID就是配置里provider那一节的key而模型ID就是provider.models下面的那个key。配置模型的全局选项在配置文件里可以给模型的运行选项做全局设置。例如opencode.jsonc{ $schema: https://opencode.ai/config.json, 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 } } } } } } }上面这个例子给两个内置模型设置了全局参数通过openai提供商访问gpt-5时给它配上了推理力度、文本详细程度等选项。通过anthropic提供商访问claude-sonnet-4-20250514时启用了 thinking 模式并分配了 token 预算。内置的提供商和模型名字可以在 Models.dev 上查到。注意如果某个代理agent自己也配了同样的选项那么代理的配置会覆盖这里的全局设置。变体Variants很多模型支持多种不同配置的“变体”。OpenCode 自带了一些主流提供商的默认变体。内置变体OpenCode 给很多提供商都配了默认变体Anthropichigh— 高思考预算默认max— 最大思考预算OpenAI不同模型稍有差异大致包括none— 无推理minimal— 最小推理力度low— 低推理力度medium— 中等推理力度high— 高推理力度xhigh— 超高推理力度Googlelow— 较低的力度 / token 预算high— 较高的力度 / token 预算这个清单不完整很多其他提供商也有自己的默认变体。自定义变体可以覆盖已有的变体也可以自己加新的opencode.jsonc{ $schema: https://opencode.ai/config.json, provider: { openai: { models: { gpt-5: { variants: { thinking: { reasoningEffort: high, textVerbosity: low }, fast: { disabled: true } } } } } } }快速切换变体用快捷键variant_cycle可以快速在不同变体之间切换。具体用法可以看快捷键文档。扩展内置模型自定义变体还可以在已有内置模型的基础上定义自己的变体。这样做的好处是不用重复创建模型条目就能给同一个模型配不同的设置。{ $schema: https://opencode.ai/config.json, provider: { opencode: { models: { gpt-5: { variants: { high: { reasoningEffort: high, textVerbosity: low, reasoningSummary: auto }, low: { reasoningEffort: low, textVerbosity: low, reasoningSummary: auto } } } } } } }模型的加载顺序每次启动 OpenCode 时它会按下面的优先级顺序来确定用哪个模型命令行参数--model或-m。格式和配置文件里一样提供商ID/模型ID。OpenCode 配置文件里的model字段。例如model:anthropic/claude-sonnet-4-20250514格式同样是提供商/模型。上一次用过的模型如果有记录的话。如果以上都没有就按内部优先级选第一个模型。整个模型配置的体系就是这样——接提供商、选模型、调参数、设变体每一步都可以按自己的需求来。配好了之后OpenCode 干活用哪个“脑子”就心里有数了。