OpenCode 支持 75+ LLM 提供商,从商业巨头的旗舰模型到开源的本地模型,几乎覆盖了市面上所有主流的 AI 模型。本文将完整介绍如何选择、配置和优化模型,包括商业 API、本地模型搭建、Go 订阅服务以及 Token 成本管理。
OpenCode 通过 providers 模块统一接入各类 LLM 提供商。以下是最常用的提供商:
| 提供商 | Provider ID | 代表模型 | 特点 |
|--------|-------------|----------|------|
| Anthropic | anthropic | Claude Sonnet 4, Claude Opus 4 | 编程能力最强 |
| OpenAI | openai | GPT-4o, GPT-4.1 | 综合能力均衡 |
| Google | google | Gemini 2.5 Pro | 超大上下文窗口 |
| DeepSeek | deepseek | DeepSeek-V3, DeepSeek-R1 | 性价比极高 |
| xAI | xai | Grok 3 | 推理能力强 |
| Mistral | mistral | Mistral Large 2 | 欧洲开源力量 |
| Cohere | cohere | Command R+ | RAG 场景优势 |
| AI21 | ai21 | Jurassic-2 | 长文本处理 |
| Together AI | together | 多种开源模型 | 开源模型托管 |
| Fireworks | fireworks | 多种开源模型 | 低延迟推理 |
| Groq | groq | Llama 系列 | 极速推理 |
| OpenRouter | openrouter | 聚合平台 | 一站式访问上百模型 |
| Azure OpenAI | azure-openai | GPT 系列 | 企业级微软云 |
| 提供商 | Provider ID | 说明 |
|--------|-------------|------|
| Ollama | ollama | 最简单的一键本地部署 |
| LM Studio | lm-studio | 图形化本地模型管理 |
| vLLM | vllm | 高性能推理引擎 |
| LocalAI | localai | OpenAI 兼容的本地 API |
| llama.cpp | llama.cpp | C++ 高性能推理服务 |
| 提供商 | Provider ID | 适用场景 |
|--------|-------------|----------|
| Vercel AI | vercel-ai | Vercel 平台集成 |
| Cloudflare | cloudflare | Workers AI 边缘推理 |
| Replicate | replicate | 图像/视频生成 |
| HuggingFace | huggingface | 模型托管和推理 |
最简单的配置是只设置一个默认模型:
{
"model": "claude-sonnet-4-20250514",
"provider": {
"id": "anthropic",
"apiKey": "${ANTHROPIC_API_KEY}"
}
}
配置多个模型,可以在对话中随时切换:
{
"model": "claude-sonnet-4-20250514",
"provider": {
"id": "anthropic",
"apiKey": "${ANTHROPIC_API_KEY}"
},
"models": {
"deepseek": {
"provider": "deepseek",
"model": "deepseek-chat",
"options": {
"temperature": 0.3,
"maxOutputTokens": 8192
}
},
"gpt": {
"provider": "openai",
"model": "gpt-4o",
"options": {
"temperature": 0.5
}
},
"gemini": {
"provider": "google",
"model": "gemini-2.5-pro-exp-03-25",
"options": {
"temperature": 0.7,
"maxOutputTokens": 65536
}
},
"local": {
"provider": "ollama",
"model": "qwen2.5-coder:14b",
"options": {
"temperature": 0.1,
"numCtx": 32768
}
}
}
}
# 命令行指定模型 opencode --model deepseek # 在对话中切换 /model deepseek /model gpt
{
"models": {
"my-model": {
"provider": "anthropic",
"model": "claude-sonnet-4-20250514",
"options": {
"temperature": 0.5,
"topP": 0.9,
"topK": 40,
"maxOutputTokens": 8192,
"stopSequences": ["\n```"],
"frequencyPenalty": 0.0,
"presencePenalty": 0.0
}
}
}
}
| 参数 | 范围 | 默认值 | 说明 |
|------|------|--------|------|
| temperature | 0.0 - 2.0 | 0.7 | 越高越有创造性,越低越确定 |
| topP | 0.0 - 1.0 | 1.0 | 核采样,控制随机性 |
| topK | 1 - ∞ | - | 限制 top token 数量 |
| maxOutputTokens | 1 - 模型上限 | 8192 | 最大输出 Token 数 |
| frequencyPenalty | -2.0 - 2.0 | 0.0 | 减少重复词汇 |
| presencePenalty | -2.0 - 2.0 | 0.0 | 鼓励引入新话题 |
{
"models": {
"coding": {
"provider": "anthropic",
"model": "claude-sonnet-4-20250514",
"options": {
"temperature": 0.1,
"maxOutputTokens": 16384
}
},
"brainstorming": {
"provider": "openai",
"model": "gpt-4o",
"options": {
"temperature": 1.0,
"topP": 0.95,
"maxOutputTokens": 32768
}
},
"review": {
"provider": "anthropic",
"model": "claude-opus-4-20250514",
"options": {
"temperature": 0.0,
"maxOutputTokens": 8192
}
}
}
}
# 1. 安装 Ollama curl -fsSL https://ollama.com/install.sh | sh # 2. 拉取编程推荐模型 ollama pull qwen2.5-coder:14b # 14B 参数,性能优秀 ollama pull qwen2.5-coder:7b # 7B 参数,更快 ollama pull deepseek-coder-v2:16b # DeepSeek Coder ollama pull codellama:34b # Meta Code Llama ollama pull llama3.2:latest # Meta Llama 3.2 # 3. 启动 Ollama 服务(已默认启动在 localhost:11434)
配置 OpenCode 使用 Ollama:
{
"model": "qwen2.5-coder:14b",
"provider": {
"id": "ollama",
"baseUrl": "http://localhost:11434/v1"
},
"options": {
"temperature": 0.1,
"numCtx": 32768
}
}
下载 LM Studio
在 LM Studio 中下载模型并启动本地服务器
配置 OpenCode:
{
"model": "local-model",
"provider": {
"id": "openai",
"baseUrl": "http://localhost:1234/v1",
"apiKey": "not-needed"
}
}
LM Studio 提供 OpenAI 兼容的 API,所以 provider.id 用 openai,baseUrl 指向本地。
OpenCode Go 是官方提供的低成本模型订阅服务,让你以固定月费访问多个优质开源模型:
{
"provider": {
"id": "opencode-go",
"apiKey": "${OPENCODE_GO_KEY}"
},
"model": "qwen2.5-coder-32b"
}
Go 订阅的特点:
在 TUI 界面中开启 Token 显示:
{
"tui": {
"display": {
"showTokenCount": true
}
}
}
在终端底部会实时显示本轮会话的 Token 消耗。
{
"session": {
"maxContextTokens": 180000,
"autoSummarize": true,
"summarizeThreshold": 0.75
}
}
maxContextTokens:限制发送给模型的上下文大小autoSummarize:上下文达到阈值时自动总结历史对话summarizeThreshold:触发总结的阈值(0.75 表示 75% 满时触发)1. 任务分级使用不同模型
{
"models": {
"cheap": {
"provider": "deepseek",
"model": "deepseek-chat",
"options": { "temperature": 0.1, "maxOutputTokens": 4096 }
},
"premium": {
"provider": "anthropic",
"model": "claude-sonnet-4-20250514",
"options": { "temperature": 0.1, "maxOutputTokens": 16384 }
}
}
}
简单任务用 DeepSeek(廉价),复杂任务用 Claude(高质量)。
2. Plan 模式用便宜模型
在 Plan 模式下使用低成本模型做代码分析,仅在需要修改代码时切换到高性能模型。
3. 控制工具调用深度
限制 Agent 的并行任务数和工具调用层级:
{
"advanced": {
"maxConcurrency": 2,
"maxToolDepth": 5
}
}
4. 设置上下文排除项
减少不必要的上下文内容:
{
"context": {
"exclude": [
"node_modules",
"dist",
".git",
"vendor",
"*.lock",
"*.min.js",
"*.map"
],
"maxFiles": 30
}
}
Policies 让你可以为不同场景配置不同的模型策略:
{
"policies": {
"default": {
"model": "claude-sonnet-4-20250514"
},
"plan": {
"model": "deepseek-chat"
},
"night": {
"model": "qwen2.5-coder:14b"
}
}
}
如果你的 API 是 OpenAI 兼容的,可以这样接入:
{
"models": {
"custom": {
"provider": "openai",
"baseUrl": "https://your-custom-api.com/v1",
"model": "your-model-name",
"apiKey": "${CUSTOM_API_KEY}"
}
}
}
对于完全自定义的 Provider,可以通过 OpenCode 插件系统实现。
从全球顶尖的 Claude 到本地运行的 Qwen,从按量付费的 API 到固定月费的 Go 订阅——OpenCode 的模型配置系统给了你极大的灵活度。合理的模型策略不仅提升开发体验,还能大幅降低使用成本。
下一篇我们将深入 OpenCode 的自定义命令 (Commands) 系统,学习用快捷指令将重复性操作变为一键触发。