選擇模型
基於 OpenCode 官方 Models 文件,幫助新手理解 provider、model、variant 和預設模型的選擇邊界。
📖 本篇術語速查表
| 英文 / 縮寫 | 中文 | 一句話解釋 |
|---|---|---|
| Models | 模型 | 具體可選的模型。 |
| 任務匹配 | match | 按任務選模型。 |
| 成本 / 質量 | tradeoff | 速度成本質量取捨。 |
不想讀完?把下面這段提示詞丟給 AI 幫你跑完——幫你按任務和成本給 OpenCode 選對模型。
你是 OpenCode 模型選型顧問。
【角色】
OpenCode 模型選型顧問,按最小夠用、安全優先的原則給可落地方案,每條結論都落到能照做的步驟或示例,不停留在空泛建議。
【輸入】
- 我的任務型別:___
- 偏好成本 / 速度 / 質量:___
- 可用的供應商:___
- 是否多工混用:___
- 經驗水平:___
【工作流程】
1. 梳理任務對模型的要求
2. 按取捨給選型
3. 設計多工分工
4. 說明怎麼設定
5. 給驗證
【輸出規範】
▌一、任務要求
▌二、選型
▌三、多工分工
▌四、設定 + 驗證
【硬約束】
- 按任務選模型
- 簡單任務用便宜的
- 選型以官方可用列表為準
- 不要替我臆測情況或編造不存在的功能,資訊不全先問清
- 不確定的設定或介面一律以官方文件為準,禁止照搬過時寫法
- 給的每條結論都要落到具體可照做的步驟或示例,不停留在「建議」「考慮一下」這類沒法直接執行的空泛表述OpenCode 透過 AI SDK(Vercel 維護的 JS/TS 模型呼叫庫,把不同 provider 的 API 差異統一成一套介面)和 Models.dev(社群維護的 LLM 後設資料目錄,OpenCode 從這裡拉模型 ID、引數、上下文長度、價格等公開資訊)支援 75+ LLM provider,也支援本地模型。模型頁真正要解決的不是“哪個模型最新”,而是怎麼確認 provider 已連上、模型 ID 寫對、預設模型合適、variant(變體——同一模型的不同推理強度設定,比如"高思考預算"和"快速"兩套)沒有濫用。
這一篇用 10 分鐘換什麼:你會知道 /models 用來確認什麼、provider_id/model_id 怎麼寫、官方推薦模型清單為什麼不能死記、variant 怎麼切,以及 OpenCode 啟動時按什麼優先順序載入模型。
先給結論:先驗證模型能完成 OpenCode 任務
一個模型適不適合 OpenCode,不只看聊天質量,還要看它能否穩定使用工具。
flowchart LR
Connect["/connect 新增 provider 憑據"] --> Models["/models 檢視可用模型"]
Models --> Pick["選擇 coding 主力模型"]
Pick --> Read["只讀解釋專案結構"]
Read --> Edit["低風險單檔案修改"]
Edit --> Verify["執行測試 / 檢查 diff"]
Verify --> Default["再設為預設模型"]
style Models fill:#dbeafe,stroke:#3b82f6,stroke-width:2px
style Verify fill:#dcfce7,stroke:#22c55e
style Default fill:#fef3c7,stroke:#f59e0b
不要在還沒跑通 provider 和工具呼叫之前,就把某個模型寫成全域預設。
1. Provider 和 model 先分清
Provider 是模型從哪裡來,例如 OpenAI、Anthropic、Google、OpenCode Zen、本地模型、企業閘道器或自定義 provider。
Model 是具體模型。OpenCode 裡的完整模型 ID 通常是:
provider_id/model_id如果你用 OpenCode Zen,官方示例寫法是:
opencode/gpt-5.1-codex如果使用自定義 provider,provider_id 來自設定裡 provider 的 key,model_id 來自該 provider 下的 models key。
2. 用 /models 選擇模型
設定好 provider 以後,在 TUI 輸入:
/models這一步用於確認三件事:
- provider 憑據是否可用。
- 目前 provider 能看到哪些模型。
- 你準備寫進設定的模型 ID 是否真實存在。
如果 /models 看不到模型,先排 /connect、API key、provider 許可權和網路,不要直接改 model ID。
3. 官方推薦模型怎麼讀
官方 Models 頁會列出若干適合 OpenCode 的模型,並明確說明清單不完整,也不一定永遠最新。目前官方頁列出的例子包括:
- GPT 5.2
- GPT 5.1 Codex
- Claude Opus 4.5
- Claude Sonnet 4.5
- Minimax M2.1
- Gemini 3 Pro
這類列表適合當起點,不適合當永久結論。OpenCode 需要的是“程式碼生成 + 工具呼叫”都穩定的模型。一個模型如果只會聊天,但不會穩定讀檔案、改檔案、跑命令,就不適合作為主力 coding 模型。
模型名、價格、上下文和可用性都變化很快。寫設定前用 /models 和 Models.dev 複核,不要從舊教學裡複製模型 ID。
4. 設定預設模型
預設模型寫在 OpenCode config 的 model key:
{
"$schema": "https://opencode.ai/config.json",
"model": "provider_id/model_id"
}預設模型應該是你日常最常用、最穩定、成本可接受的 coding 主力,不是賬號裡最貴的模型。
專案設定只在團隊確實需要同一個預設模型時使用。個人偏好更適合放全域設定;臨時實驗用 /models 或命令列引數覆蓋。
5. 設定模型 options
可以在 provider.models 下給模型設定全域 options,例如 reasoning、verbosity、thinking budget 等。具體欄位取決於 provider 和模型,不是所有模型都支援同一組選項。
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"openai": {
"models": {
"gpt-5": {
"options": {
"reasoningEffort": "high",
"textVerbosity": "low"
}
}
}
}
}
}Agent 級設定可以覆蓋這裡的全域 options。只有當某類 agent 確實需要不同模型行為時,再把 options 下沉到 agent;不要為了“看起來高階”給每個模型都寫一套 options。
6. Variant 怎麼用
Variant 是同一模型的不同設定形態。官方文件列出的內建方向包括:
| Provider | 常見 variant |
|---|---|
| Anthropic | high、max |
| OpenAI | none、minimal、low、medium、high、xhigh |
low、high |
這個表不是完整清單。很多 provider 也有自己的預設 variant。
可以自定義或覆蓋 variant,例如給同一模型準備高推理和快速兩種模式:
{
"provider": {
"openai": {
"models": {
"gpt-5": {
"variants": {
"thinking": {
"reasoningEffort": "high",
"textVerbosity": "low"
},
"fast": {
"disabled": true
}
}
}
}
}
}
}TUI 裡可以透過 variant_cycle keybind 快速切換 variant。
不要把所有任務都開最高 variant。高推理通常更慢、更貴,也不一定更適合小改動。
7. 模型載入優先順序
OpenCode 啟動時按這個順序找模型:
| 優先順序 | 來源 |
|---|---|
| 1 | 命令列 --model / -m |
| 2 | OpenCode config 裡的 model |
| 3 | 上次使用的模型 |
| 4 | OpenCode 內部優先順序選出的第一個模型 |
這能解釋很多“我明明改了設定,為什麼沒生效”的問題。先看命令列引數和目前會話,再看 config。
8. 健康檢查
模型設定健康,至少滿足:
/models能列出可用模型。- 你能說清 provider 和 model ID。
- 預設模型完成過只讀專案理解、低風險修改和一次工具呼叫。
- 高風險任務會切高推理 variant,並人工確認。
- API key 沒有出現在設定、diff、記錄、截圖或教學示例裡。
- 模型異常時能區分憑據、許可權、網路、baseURL、模型能力和工具呼叫問題。
接下來去哪
Provider 設定
先把 provider、credential、baseURL 和本地模型邊界拆清楚。
OpenCode Zen
第一次不知道怎麼選模型時,先看 Zen 的模型 ID、計費和隱私邊界。
模型策略
按任務風險、成本和速度分層,而不是每天追最新模型。
Agents
當不同角色需要不同模型或許可權時,再把模型策略下沉到 agent。
官方資料
- OpenCode Models:https://opencode.ai/docs/models
- OpenCode Providers:https://opencode.ai/docs/providers
- OpenCode Config:https://opencode.ai/docs/config
- Models.dev:https://models.dev