4.1 模型提供商生態

OpenCode 最大的優勢之一就是其廣泛的 LLM 提供商支援。得益於底層的 AI SDK 與 Models.dev 整合,OpenCode 提供了超過 75 個提供商的數百種模型,涵蓋從頂尖商用 API 到本地開源模型的完整光譜。

☁️

雲端 API

Anthropic、OpenAI、Google Gemini、MiniMax、DeepSeek 等頂級商用模型,提供最強的程式碼生成能力。

🖥️

本地運行

透過 Ollama、LM Studio 等工具在本地運行開源模型,資料不外傳,完全離線可用。

🔗

代理服務

GitHub Copilot、Azure OpenAI、Amazon Bedrock 等企業級代理服務,適合團隊與組織使用。

🆓

免費方案

部分提供商提供免費額度或免費模型,適合學習與實驗用途。

4.2 連接提供商

使用 /connect 指令來新增提供商憑證。這個指令會引導你輸入 API Key 並驗證連線:

terminal
> /connect
◈ 選擇提供商:
❯ Anthropic
OpenAI
Google Gemini
GitHub Copilot
MiniMax
DeepSeek
Ollama (本地)
LM Studio (本地)
 
◈ 輸入 Anthropic API Key:
********************
✔ 連線成功!
◈ 可用模型:claude-opus-4, claude-sonnet-4, claude-haiku-3.5
>

你也可以透過 CLI 直接設定提供商憑證:

opencode auth login         # 互動式登入
opencode auth login anthropic  # 指定提供商

# 或透過環境變數(以 Anthropic 為例)
export ANTHROPIC_API_KEY=sk-ant-xxxxx
🔐 安全提醒:API Key 是敏感資訊。OpenCode 會將憑證安全地儲存在系統的金鑰鏈(Keychain)中,不會寫入設定檔。建議優先使用環境變數來傳遞 API Key,避免將金鑰寫入版控。

4.3 模型格式與變體

Provider/Model 格式

OpenCode 使用 provider_id/model_id 的格式來識別模型:

格式範例 提供商 模型
anthropic/claude-sonnet-4 Anthropic Claude Sonnet 4
openai/gpt-5.2 OpenAI GPT 5.2
google/gemini-2.5-pro Google Gemini 2.5 Pro
deepseek/deepseek-chat DeepSeek DeepSeek Chat
minimax/minimax-m2.1 MiniMax MiniMax M2.1

模型變體

每個模型可以有四個效能/成本變體:

變體 品質 速度 成本 適合場景
max ⭐⭐⭐⭐⭐ 較慢 最高 複雜架構設計、重大重構
high ⭐⭐⭐⭐ 中等 中等 一般開發任務、程式碼審查
medium ⭐⭐⭐ 較快 較低 簡單問題、快速原型
low ⭐⭐ 最快 最低 格式化、簡單問答

選取模型時,你可以指定變體層級:

# 選擇 Claude Sonnet 4 的最高品質變體
anthropic/claude-sonnet-4:max

# 選擇 GPT 5.2 的快速變體
openai/gpt-5.2:low
💰 成本最佳化:對於日常開發,使用 medium 或 high 變體通常已經足夠。將 max 保留給需要深度思考的複雜任務(如系統架構設計、大型重構),可以有效控制 API 花費。

4.4 熱門提供商比較

提供商 推薦模型 優勢 適合場景
Anthropic Claude Opus 4.5
Claude Sonnet 4.5
程式碼理解深刻、長上下文、安全性佳 複雜開發任務、架構設計
OpenAI GPT 5.2
GPT 5.1 Codex
程式碼生成能力強、生態成熟 日常開發、程式碼生成
Google Gemini Gemini 3 Pro
Gemini 2.5 Pro
多模態能力、百萬級上下文 大型專案分析、多模態任務
GitHub Copilot Copilot Chat 與 GitHub 生態深度整合 GitHub 為主的開發流程
MiniMax MiniMax M2.1 成本低廉、中文支援佳 中文專案、成本敏感場景
DeepSeek DeepSeek Chat 開源、成本極低、中文優秀 日常開發、預算有限
Ollama Llama 3 / Qwen 2.5 完全本地運行、離線、免費 隱私敏感、離線開發
LM Studio 多種開源模型 圖形化管理、在地執行 本地實驗、模型測試

4.5 設定預設模型

在 opencode.json 中設定預設模型,讓每次啟動時自動使用:

{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4:high",
  "models": {
    "fallback": "openai/gpt-5.2:medium",
    "fast": "anthropic/claude-haiku-3.5",
    "cheap": "deepseek/deepseek-chat"
  }
}

你還可以定義多個模型角色:

  • fallback — 當主要模型不可用時的自動備援
  • fast — 適合快速任務的輕量模型
  • cheap — 成本優先的經濟模型

在 TUI 中可以隨時切換模型:

terminal
> /models
◈ 當前模型:anthropic/claude-sonnet-4
 
◈ 按 ↑ ↓ 瀏覽,Enter 選擇:
anthropic/claude-opus-4
❯ anthropic/claude-sonnet-4
anthropic/claude-haiku-3.5
openai/gpt-5.2
openai/gpt-5.1-codex
google/gemini-2.5-pro
 
◈ 或輸入 /model <provider/model> 直接切換
> /model openai/gpt-5.2
✔ 已切換至 openai/gpt-5.2
>

4.6 選擇模型的最佳實務

依任務類型選擇

  • 系統設計與架構 — Claude Opus 4.5、GPT 5.2(需要深度推理的任務)
  • 日常程式碼開發 — Claude Sonnet 4.5、GPT 5.1 Codex(速度與品質的平衡)
  • 程式碼審查 — Claude Sonnet 4.5、Gemini 2.5 Pro(長上下文優勢)
  • 簡單指令與格式化 — Claude Haiku 3.5、DeepSeek Chat(低成本、快速回應)
  • 中文專案 — MiniMax M2.1、DeepSeek Chat(中文語料訓練充足)
  • 離線開發 — Ollama + Llama 3、Qwen 2.5(完全本地、無需網路)

多模型策略

一個常見的有效策略是同時設定多個模型,根據任務動態切換:

{
  "model": "anthropic/claude-sonnet-4:high",
  "models": {
    "architecture": "anthropic/claude-opus-4:max",
    "daily": "anthropic/claude-sonnet-4:high",
    "review": "google/gemini-2.5-pro",
    "quick": "anthropic/claude-haiku-3.5:medium",
    "cheap": "deepseek/deepseek-chat"
  }
}
🎯 實戰建議:如果你是初次使用,建議從 Claude Sonnet 4 或 GPT 5.1 Codex 開始——它們在程式碼生成品質與回應速度之間取得了最佳平衡。隨著你對 OpenCode 越來越熟悉,再逐步嘗試不同的模型組合。

章節測驗

測試你對本章內容的理解程度:

在 OpenCode 中,哪個指令用來新增 LLM 提供商的 API 憑證?

常見問題

我可以在同一個工作階段中使用多個模型嗎? ▼

可以。你可以在 TUI 中隨時使用 /models 或 /model <provider/model> 切換模型,切換後接下來的對話會使用新模型回應。你也可以在 opencode.json 中設定多個模型角色(如 fast、cheap),並在需要時快速切換。請注意,切換模型不會清除當前的對話歷史。

不同模型變體(max / high / medium / low)的實際差異是什麼? ▼

變體控制的是模型回應的「思考深度」。以 max 為例,模型會花更多 Token 進行內部推理,產出更詳細、更經過深思熟慮的回應;low 則會以最精簡的方式回應,速度最快但品質最低。這在程式碼任務中的體現是:max 會考慮更多邊界情況與設計模式,low 則傾向給出最直接的解答。

如何知道目前連接了哪些提供商? ▼

在 TUI 中執行 /models 會顯示所有可用的模型,已連接的提供商會顯示在列表中。你也可以在終端機執行 opencode config show 查看完整的設定狀態,其中包括已設定的模型與提供商資訊。如果某個提供商的 API Key 無效或已過期,執行 /connect 可以重新設定。