编程 Agent
OpenCode
开源终端 AI Agent 接入 VisionCoder:项目级 opencode.json 多模型切换
OpenCode 是开源的终端 AI Agent,支持自定义 provider,可以同时挂载多个模型按需切换。VisionCoder 的 OpenAI 兼容端点直接被 OpenCode 当成 provider 使用 —— 一份 opencode.json,OpenAI / Anthropic / 开源模型随便挑。
- 在 API Key 管理 创建 API Key
- 已装 Node.js 18+
- Windows 用户:推荐在 WSL 里跑 OpenCode,原生 Windows 偶有 IO 问题
安装 OpenCode
Section titled “安装 OpenCode”官方脚本(推荐):
curl -fsSL https://opencode.ai/install | bash或者用 npm:
npm install -g opencode-ai检查:
opencode --version在 WSL 终端里跟 Linux 一样:
curl -fsSL https://opencode.ai/install | bashopencode --versionnpm install -g opencode-aiopencode --versionnpm install -g opencode-aiopencode --version在项目根目录创建 opencode.json
Section titled “在项目根目录创建 opencode.json”OpenCode 不读环境变量,直接读项目根目录的 opencode.json。这意味着每个项目可以配不同的模型组合。
推荐配置(多模型并存)
Section titled “推荐配置(多模型并存)”{ "$schema": "https://opencode.ai/config.json", "provider": { "visioncoder": { "npm": "@ai-sdk/openai-compatible", "name": "VisionCoder", "options": { "baseURL": "https://coder.api.visioncoder.cn/v1", "apiKey": "YOUR_API_KEY" }, "models": { "gpt-5.4": { "name": "GPT-5.4(通用)" }, "gpt-5.5": { "name": "GPT-5.5(最强)" }, "gpt-5.3-codex-spark": { "name": "GPT-5.3 Codex Spark(长会话)" }, "claude-sonnet-5": { "name": "Claude Sonnet 5" }, "claude-opus-5": { "name": "Claude Opus 5" }, "deepseek-v4-pro": { "name": "DeepSeek v4 Pro" }, "qwen3.6-35b-a3b": { "name": "Qwen 3.6" } } } }, "model": "visioncoder/gpt-5.4"}切换默认模型,只改最后一行 model 的值即可:
| 模型 | 适合场景 |
|---|---|
visioncoder/gpt-5.4 |
日常代码任务 |
visioncoder/gpt-5.5 |
复杂推理 / 大重构 |
visioncoder/gpt-5.3-codex-spark |
长会话 / Codex 优化 |
visioncoder/claude-sonnet-5 |
偏好 Claude 风格,性价比高 |
visioncoder/claude-opus-5 |
Claude 最强推理 |
会话中也可以用 /model 命令实时切换。
在项目根目录:
touch opencode.json然后用任意编辑器贴入上面配置。
直接写入(替换 YOUR_API_KEY):
@'{ "$schema": "https://opencode.ai/config.json", "provider": { "visioncoder": { "npm": "@ai-sdk/openai-compatible", "name": "VisionCoder", "options": { "baseURL": "https://coder.api.visioncoder.cn/v1", "apiKey": "YOUR_API_KEY" }, "models": { "gpt-5.4": { "name": "GPT-5.4" }, "gpt-5.5": { "name": "GPT-5.5" }, "claude-sonnet-5": { "name": "Claude Sonnet 5" } } } }, "model": "visioncoder/gpt-5.4"}'@ | Set-Content .\opencode.jsonnotepad opencode.json粘贴上面 JSON 内容、保存。或者用 VS Code 直接新建。
opencode进入后输入 /model,应该看到所有你在 opencode.json 里配的模型列表。选一个开聊。
进阶:把 API Key 放环境变量
Section titled “进阶:把 API Key 放环境变量”不想让 Key 出现在 opencode.json 里?OpenCode 支持读环境变量:
{ "provider": { "visioncoder": { "npm": "@ai-sdk/openai-compatible", "options": { "baseURL": "https://coder.api.visioncoder.cn/v1", "apiKey": "{env:VISIONCODER_API_KEY}" } } }}再 export VISIONCODER_API_KEY="YOUR_API_KEY",配置文件可以放心 commit。
OpenCode 自带的登录流
Section titled “OpenCode 自带的登录流”OpenCode 也支持类 OpenAI 的登录流程:
opencode auth login但 VisionCoder 走的是 opencode.json 里的自定义 provider,不需要也不要用这个命令(会跳到 OpenCode 官方 OAuth)。
启动后只看到 1 个模型,配的其它模型不显示
opencode.json 里 models 字段的 key 名拼错了,或者那个模型 ID 当前不在 VisionCoder 开放列表里。先 curl https://coder.api.visioncoder.cn/v1/models 确认 ID。
切换 Claude 模型后回答异常
OpenCode 通过 @ai-sdk/openai-compatible 调用,走的是 OpenAI Chat Completions 协议(/v1/chat/completions),不是 Anthropic 原生协议。VisionCoder 内部会做转换 —— Claude 模型可用,但少数 Anthropic 独有字段(如 system 数组结构)可能差异。如需 100% 原生体验,用 Claude Code。
401 / 403
apiKey是不是完整的 VisionCoder KeybaseURL必须带/v1后缀opencode.json在不在你启动opencode的目录里
- 协议端点:POST /v1/chat/completions
- 模型列表:GET /v1/models
- OpenCode 官网:opencode.ai
加群 & 客服


