第 4 章

模型與提供商設定

了解 OpenCode 的提供商架構,學會設定與切換各種 AI 模型

摘要

OpenCode 支援超過 75 個 AI 提供商,從 Anthropic、OpenAI 到 Ollama 本地模型都一應俱全。本章帶你深入理解提供商架構、模型載入優先順序、變體設定,以及如何串接 OpenCode Zen / Go、自訂 OpenAI 相容端點與本地模型。

學習目標

提供商架構

OpenCode 採用「提供商(Provider)」抽象層,統一管理所有 AI 模型的連線與金鑰。每個提供商定義了 API 端點、認證方式、模型列表與請求格式。

支援的提供商類型

完整提供商列表可在 opencode provider list 指令中查看,目前已有 75+ 個內建提供商。

OpenCode Zen 與 Go 設定

Zen 是 OpenCode 的官方雲端服務,無需額外設定即可開始使用:

# 啟動時自動使用 Zen(無需金鑰)
opencode

若要使用自訂 API 金鑰或切換模型:

# 設定 Anthropic 金鑰
opencode --provider anthropic --model claude-sonnet-4-20250514

# 設定 OpenAI 金鑰
opencode --provider openai --model gpt-4o

OpenCode Go 用戶端則需要指定自訂端點:

opencode --api-base https://your-go-server.example.com

自訂 Base URL 與 OpenAI 相容提供商

許多第三方服務(如 Together AI、Groq、DeepSeek、Fireworks)都提供 OpenAI 相容 API。透過自訂 Base URL 即可串接:

# 命令列方式
opencode --provider openai \
  --api-base https://api.together.xyz/v1 \
  --model togethercomputer/llama-3.1-70b

opencode.json 中永久設定:

{
  "providers": {
    "custom-together": {
      "baseURL": "https://api.together.xyz/v1",
      "apiKey": "{env:TOGETHER_API_KEY}",
      "models": {
        "llama-3.1-70b": true
      }
    }
  }
}

使用 {env:...} 變數可避免將金鑰寫入設定檔。

模型載入優先順序

當你未指定模型時,OpenCode 會依照以下優先順序決定使用的模型:

  1. CLI flag--model-m 參數(最高優先)
  2. 設定檔opencode.json 中指定的模型
  3. 上次使用 — 工作階段記憶中最後使用的模型
  4. 第一個可用 — 當前提供商中第一個可用的模型(最低優先)

這表示你可以先透過設定檔設定預設模型,再視需要以 CLI flag 臨時覆蓋。

模型變體

模型變體(Variants)讓你能微調同一模型的運作模式。不同提供商支援不同變體:

Anthropic 變體

OpenAI 變體

使用方式:

opencode --model claude-sonnet-4-20250514:max
opencode --model gpt-4o:high

推薦模型列表

根據不同使用場景,以下是經過實測的推薦模型組合:

實戰練習

練習 1:串接 OpenCode Zen

啟動 OpenCode 並使用 Zen 提供商,確認連線正常。

opencode --provider zen

進入 TUI 後輸入 /model 查看可用模型清單。試著切換到不同模型並觀察回應差異。

練習 2:設定本地 Ollama

安裝 Ollama 並拉取一個模型,然後以 OpenCode 連接:

# 安裝並啟動 Ollama(請先自行安裝)
ollama pull llama3.1

# 以 Ollama 提供商啟動 OpenCode
opencode --provider ollama --model llama3.1

試著比對本地模型與雲端模型在相同問題上的回應品質。

練習 3:建立自訂模型變體

opencode.json 中建立自訂變體,為不同任務設定不同的推理強度:

{
  "model-aliases": {
    "code-review": "claude-sonnet-4-20250514:high",
    "quick-fix": "claude-haiku-4-20250514",
    "architecture": "claude-opus-4-20250514:max"
  }
}

然後就可以用 opencode -m code-review 快速切換。