---
title: "選擇模型"
description: "基於 OpenCode 官方 Models 文件，幫助新手理解 provider、model、variant 和預設模型的選擇邊界。"
verifiedAt: "2026-05-09"
---

OpenCode 透過 **AI SDK**（Vercel 維護的 JS/TS 模型呼叫庫，把不同 provider 的 API 差異統一成一套介面）和 **Models.dev**（社群維護的 LLM 後設資料目錄，OpenCode 從這裡拉模型 ID、引數、上下文長度、價格等公開資訊）支援 75+ LLM provider，也支援本地模型。模型頁真正要解決的不是“哪個模型最新”，而是怎麼確認 provider 已連上、模型 ID 寫對、預設模型合適、variant（變體——同一模型的不同推理強度配置，比如"高思考預算"和"快速"兩套）沒有濫用。

> [!NOTE]
> **這一篇用 10 分鐘換什麼**：你會知道 `/models` 用來確認什麼、`provider_id/model_id` 怎麼寫、官方推薦模型清單為什麼不能死記、variant 怎麼切，以及 OpenCode 啟動時按什麼優先順序載入模型。

## 先給結論：先驗證模型能完成 OpenCode 任務

一個模型適不適合 OpenCode，不只看聊天質量，還要看它能否穩定使用工具。

```mermaid
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 通常是：

```text
provider_id/model_id
```

如果你用 OpenCode Zen，官方示例寫法是：

```text
opencode/gpt-5.1-codex
```

如果使用自定義 provider，`provider_id` 來自配置裡 `provider` 的 key，`model_id` 來自該 provider 下的 `models` key。

## 2. 用 `/models` 選擇模型

配置好 provider 以後，在 TUI 輸入：

```text
/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 模型。

> [!IMPORTANT]
> 模型名、價格、上下文和可用性都變化很快。寫配置前用 `/models` 和 Models.dev 複核，不要從舊教程裡複製模型 ID。

## 4. 設定預設模型

預設模型寫在 OpenCode config 的 `model` key：

```json title="opencode.json"
{
  "$schema": "https://opencode.ai/config.json",
  "model": "provider_id/model_id"
}
```

默认模型应该是你日常最常用、最稳定、成本可接受的 coding 主力，不是账号里最贵的模型。

项目配置只在团队确实需要同一个默认模型时使用。个人偏好更适合放全局配置；临时实验用 `/models` 或命令行参数覆盖。

## 5. 配置模型 options

可以在 `provider.models` 下给模型设置全局 options，例如 reasoning、verbosity、thinking budget 等。具体字段取决于 provider 和模型，不是所有模型都支持同一组选项。

```jsonc title="opencode.jsonc"
{
  "$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` |
| Google | `low`、`high` |

这个表不是完整清单。很多 provider 也有自己的默认 variant。

可以自定义或覆盖 variant，例如给同一模型准备高推理和快速两种模式：

```jsonc title="opencode.jsonc"
{
  "provider": {
    "openai": {
      "models": {
        "gpt-5": {
          "variants": {
            "thinking": {
              "reasoningEffort": "high",
              "textVerbosity": "low"
            },
            "fast": {
              "disabled": true
            }
          }
        }
      }
    }
  }
}
```

TUI 裡可以透過 `variant_cycle` keybind 快速切換 variant。

> [!WARNING]
> 不要把所有任務都開最高 variant。高推理通常更慢、更貴，也不一定更適合小改動。

## 7. 模型載入優先順序

OpenCode 啟動時按這個順序找模型：

| 優先順序 | 來源 |
| --- | --- |
| 1 | 命令列 `--model` / `-m` |
| 2 | OpenCode config 裡的 `model` |
| 3 | 上次使用的模型 |
| 4 | OpenCode 內部優先順序選出的第一個模型 |

這能解釋很多“我明明改了配置，為什麼沒生效”的問題。先看命令列引數和當前會話，再看 config。

## 8. 健康檢查

模型配置健康，至少滿足：

- `/models` 能列出可用模型。
- 你能說清 provider 和 model ID。
- 預設模型完成過只讀專案理解、低風險修改和一次工具呼叫。
- 高風險任務會切高推理 variant，並人工確認。
- API key 沒有出現在配置、diff、日誌、截圖或教程示例裡。
- 模型異常時能區分憑據、許可權、網路、baseURL、模型能力和工具呼叫問題。

## 接下來去哪

<Cards>
  <Card title="Provider 配置" description="先把 provider、credential、baseURL 和本地模型邊界拆清楚。" href="/zh-Hant/docs/opencode/official/03-models/providers" />
  <Card title="OpenCode Zen" description="第一次不知道怎麼選模型時，先看 Zen 的模型 ID、計費和隱私邊界。" href="/zh-Hant/docs/opencode/official/08-platform/zen" />
  <Card title="模型策略" description="按任務風險、成本和速度分層，而不是每天追最新模型。" href="/zh-Hant/docs/opencode/understanding/06-model-provider-strategy" />
  <Card title="Agents" description="當不同角色需要不同模型或許可權時，再把模型策略下沉到 agent。" href="/zh-Hant/docs/opencode/official/02-agents-skills/agents" />
</Cards>

## 官方資料

- OpenCode Models：[https://opencode.ai/docs/models](https://opencode.ai/docs/models)
- OpenCode Providers：[https://opencode.ai/docs/providers](https://opencode.ai/docs/providers)
- OpenCode Config：[https://opencode.ai/docs/config](https://opencode.ai/docs/config)
- Models.dev：[https://models.dev](https://models.dev)
