OpenCode
OpenCode 教程 — 开源终端 AI 编程智能体,兼容 75+ 供应商。通过交互式菜单或配置文件接入 EasyRouter,支持 OpenAI 兼容 API。
项目介绍
OpenCode 是一款开源的终端 AI 编程智能体,支持 TUI / CLI 双模式运行,兼容 75+ 种 AI 服务提供商。通过内置的 @ai-sdk/anthropic 和 @ai-sdk/openai-compatible 适配器,可无缝接入 EasyRouter 提供的 Anthropic 协议模型与 OpenAI 兼容模型。
📦 接入前准备
准备信息
- 已安装 OpenCode
- 一个可用的 EasyRouter 地址(必须以
/v1结尾) - 一个可用的 EasyRouter API Key(在控制台生成)
- 想使用的模型名称(如
claude-sonnet-4-6、claude-haiku-4-5、deepseek-v4-pro、gpt-5.5等,需与 EasyRouter 控制台中的模型 ID 完全一致)
🚀 方式一:交互式配置(推荐新手)
在 OpenCode TUI 中直接通过菜单添加 EasyRouter:
- 启动 OpenCode TUI 界面
- 输入
/connect命令 - 在供应商列表中选择 「Other」(自定义端点)
- 根据提示填写:
- Base URL:
https://easyrouter.io/v1 - API Key:你的 EasyRouter API Key
- Base URL:
- 保存后,输入
/models切换到新添加的模型即可
🔧 方式二:配置文件(推荐长期使用)
适合希望锁定多个模型、跨项目复用的场景。
1. 编辑 OpenCode 配置
配置文件位置:
- 全局:
~/.config/opencode/opencode.json - 项目级(优先级更高):项目根目录
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"easyrouter-anthropic": {
"npm": "@ai-sdk/anthropic",
"name": "EasyRouter (Anthropic)",
"options": {
"baseURL": "https://easyrouter.io/v1",
"apiKey": "sk-123"
},
"models": {
"claude-sonnet-4-6": {
"name": "Claude Sonnet 4.6",
"limit": { "context": 200000, "output": 8192 }
},
"haiku": {
"id": "claude-haiku-4-5",
"name": "Claude Haiku 4.5 (fast)",
"limit": { "context": 200000, "output": 8192 }
}
}
},
"easyrouter": {
"npm": "@ai-sdk/openai-compatible",
"name": "EasyRouter",
"options": {
"baseURL": "https://easyrouter.io/v1",
"apiKey": "sk-123"
},
"models": {
"deepseek-v4-flash": {
"name": "DeepSeek V4 Flash",
"limit": { "context": 131072, "output": 16384 }
},
"deepseek-v4-pro": {
"name": "DeepSeek V4 Pro",
"limit": { "context": 131072, "output": 16384 }
},
"gpt-5.5": {
"name": "GPT-5.5",
"limit": { "context": 128000, "output": 32768 }
},
"gpt-5.4": {
"name": "GPT-5.4",
"limit": { "context": 128000, "output": 32768 }
},
"gpt-5.4-mini": {
"name": "GPT-5.4 Mini",
"limit": { "context": 128000, "output": 16384 }
}
}
}
},
"model": "easyrouter-anthropic/claude-sonnet-4-6",
"autoshare": false
}关键字段说明
- 示例中声明了两个 provider:
easyrouter-anthropic:npm必须填@ai-sdk/anthropic,用于接入 Claude 等 Anthropic 协议模型easyrouter:npm必须填@ai-sdk/openai-compatible,用于接入 DeepSeek、GPT 等 OpenAI 兼容模型
- 两个 provider 的
baseURL均为https://easyrouter.io/v1 apiKey字段直接写在配置文件中,请替换为你自己的 EasyRouter API Key(示例中的sk-123仅为占位)models中的模型 ID 必须与 EasyRouter 控制台实际暴露的模型名称 完全一致;若希望自定义简写,可使用id字段指向真实模型(如示例中的haiku→claude-haiku-4-5)- 顶层
model字段指定默认模型,格式为<provider>/<model> - 项目级
opencode.json优先级高于全局配置
2. 配置 API Key
上方示例已在 opencode.json 中直接通过 options.apiKey 内嵌 API Key,将 sk-123 替换为你自己的 Key 即可,无需额外步骤。
可选:使用 auth.json 管理密钥
如果不希望将 API Key 写入 opencode.json,可以从配置中移除 apiKey 字段,改为编辑 ~/.local/share/opencode/auth.json:
{
"easyrouter-anthropic": {
"type": "api",
"key": "sk-your-easyrouter-key"
},
"easyrouter": {
"type": "api",
"key": "sk-your-easyrouter-key"
}
}或通过命令行登录:
opencode auth login按提示分别为 easyrouter-anthropic 和 easyrouter 输入 API Key 即可。
✅ 第三步:验证接入
启动 OpenCode 后输入 /models,查看是否出现 easyrouter-anthropic/claude-sonnet-4-6、easyrouter/deepseek-v4-pro 等模型。选择目标模型后发送一条测试消息,收到正常响应即配置成功。
❓ 常见问题
| 问题 | 解决方案 |
|---|---|
/models 看不到 EasyRouter 下的模型 | 检查配置文件中 provider.easyrouter-anthropic.models 或 provider.easyrouter.models 是否有内容 |
| 提示模型不存在 | 确认模型 ID 与 EasyRouter 控制台完全一致 |
| API Key 无效 | 检查 opencode.json 中的 apiKey 或 auth.json 是否正确;也可重跑 opencode auth login |
| Claude 模型调用报协议错误 | 确认使用的是 easyrouter-anthropic provider(@ai-sdk/anthropic),而非 easyrouter(@ai-sdk/openai-compatible) |
| 配置修改后没生效 | 重新启动 OpenCode,项目级配置优先级高于全局 |