OpenCode 模型配置
OpenCode 支持自定义模型提供商(Provider),可以同时接入本地代理、云端中转和官方 API,并按 Agent 粒度路由不同模型。
配置文件位置
| 级别 | 路径 | 说明 |
|---|---|---|
| 全局 | ~/.config/opencode/opencode.json | 对所有项目生效 |
| 项目 | <项目根>/.opencode/opencode.json | 仅当前项目生效,与全局配置合并 |
模型引用格式
所有涉及模型的地方(默认模型、Agent 配置等)统一使用 provider/model 格式:
model-proxy/gpt-5.6 # provider id + 模型 id
model-proxy/gpt-5.6[high] # 带 variant 时可指定推理强度
设置默认模型
在 opencode.json 顶层指定:
{
"model": "model-proxy/gpt-5.6"
}
会话中使用 /models 命令可以查看和切换当前模型(含 variants)。
自定义 Provider
结构说明
{
"provider": {
"<provider-id>": {
"npm": "<ai-sdk 包名>",
"options": {
"baseURL": "<API 地址>",
"apiKey": "<密钥>"
},
"models": {
"<model-id>": {
"name": "<显示名>",
"limit": { "context": 270000, "output": 128000 },
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"high": { "reasoningEffort": "high" }
}
}
}
}
}
}
字段说明
| 字段 | 说明 |
|---|---|
npm | 底层 AI SDK 包,决定请求协议。见下方「SDK 选择」 |
options.baseURL | API 端点,透传给 SDK |
options.apiKey | API 密钥,透传给 SDK |
options.setCacheKey | 可选,开启 prompt cache key(部分代理支持) |
models.<id>.name | 模型显示名称 |
limit.context | 上下文窗口 token 上限,影响上下文裁剪策略 |
limit.output | 单次输出 token 上限 |
modalities | 输入/输出模态(text / image),声明后才能传图 |
variants | 同一模型的推理强度变体,reasoningEffort 取值 low / medium / high / xhigh |
SDK 选择
| npm 包 | 适用场景 |
|---|---|
@ai-sdk/openai | OpenAI 官方协议端点(含兼容 OpenAI 格式的中转/代理) |
@ai-sdk/openai-compatible | OpenAI 兼容端点(GLM、DeepSeek、Ollama 等国产/自建服务) |
完整示例:本地代理 + 云端中转共存
一个本地模型代理(多个 provider 指向同一 localhost 端点、不同 key),加两个云端中转:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"model-proxy": {
"npm": "@ai-sdk/openai",
"options": {
"apiKey": "YOUR_MODEL_PROXY_KEY",
"baseURL": "http://127.0.0.1:YOUR_PORT/v1",
"setCacheKey": true
},
"models": {
"gpt-5.6": {
"name": "gpt-5.6",
"limit": { "context": 270000, "output": 128000 },
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"low": { "reasoningEffort": "low" },
"medium": { "reasoningEffort": "medium" },
"high": { "reasoningEffort": "high" },
"xhigh": { "reasoningEffort": "xhigh" }
}
}
}
},
"model-proxy-openai": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"apiKey": "YOUR_MODEL_PROXY_KEY",
"baseURL": "http://127.0.0.1:YOUR_PORT/v1",
"setCacheKey": true
},
"models": {
"glm-5": {
"name": "glm-5",
"limit": { "context": 200000, "output": 128000 }
}
}
},
"asxs": {
"npm": "@ai-sdk/openai",
"options": {
"baseURL": "https://api.asxs.top/v1",
"apiKey": "sk-YOUR_API_KEY"
},
"models": {
"gpt-5.5": {
"name": "gpt-5.5",
"limit": { "context": 270000, "output": 128000 },
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"variants": {
"xhigh": { "reasoningEffort": "xhigh" }
}
}
}
}
}
}
配置完成后
/models中即可看到model-proxy/gpt-5.6、model-proxy-openai/glm-5、asxs/gpt-5.5等条目。 同一个端点可以拆成多个 provider id(如上面的model-proxy与model-proxy-openai),用于区分 SDK 协议或 key。
按 Agent 路由模型
装了 OhMyOpenagent 插件 后,可以在 ~/.config/opencode/oh-my-openagent.json 中为每个子 Agent 和任务分类指定不同模型(如编排用 glm-5、执行类任务用 gpt-5.6)。