跳到主要内容

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.baseURLAPI 端点,透传给 SDK
options.apiKeyAPI 密钥,透传给 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/openaiOpenAI 官方协议端点(含兼容 OpenAI 格式的中转/代理)
@ai-sdk/openai-compatibleOpenAI 兼容端点(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.6model-proxy-openai/glm-5asxs/gpt-5.5 等条目。 同一个端点可以拆成多个 provider id(如上面的 model-proxymodel-proxy-openai),用于区分 SDK 协议或 key。

按 Agent 路由模型

装了 OhMyOpenagent 插件 后,可以在 ~/.config/opencode/oh-my-openagent.json 中为每个子 Agent 和任务分类指定不同模型(如编排用 glm-5、执行类任务用 gpt-5.6)。

相关文档