# 让 OpenCode 通过一段 provider 配置跑任意模型

> https://router.one/zh/integrations/opencode 的 Markdown 镜像，供 AI 助手与爬虫使用。Router One 是 OpenAI 兼容的统一 LLM API 网关。
> 最后更新：2026-09-02

OpenCode 是 Anomaly 出品的开源终端编程 agent，自定义模型 provider 直接写进 opencode.json。一段指向 Router One OpenAI 兼容端点的 provider 配置，就能把 GPT、Claude、Gemini、DeepSeek 系列模型放进它的模型选择器，共用一把 Key——网关在大陆可直连，支付宝或银行卡即可充值。agent 会话无人值守时烧 token 很快，每次调用在网关侧都有成本 Trace，给 Key 设 maxSpend 上限就是硬性止损。

## 把 OpenCode 配置到 Router One base URL

在 opencode.json（项目级；全局配置在 ~/.config/opencode/opencode.json）的 provider 下新增一条：npm 填 @ai-sdk/openai-compatible，options.baseURL 指向网关，想进选择器的目录模型在 models 里逐个列出。Key 用 {env:变量名} 语法从环境变量读取，不用明文写进文件。选模型用 provider-id/model-id 的格式——这里就是 router-one/<模型 ID>，在 TUI 的 /models 命令里选，或固定写进顶层的 model 字段：

`opencode.json`

```bash
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "router-one": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Router One",
      "options": {
        "baseURL": "https://api.router.one/v1",
        "apiKey": "{env:ROUTER_ONE_API_KEY}"
      },
      "models": {
        "<model-id-from-/models>": {
          "name": "<label shown in the picker>"
        }
      }
    }
  },
  "model": "router-one/<model-id-from-/models>"
}
```

## OpenCode 该填哪个模型 ID？

从 /models 页复制精确的模型 ID——ID 区分大小写，页面同时列出每个模型的上下文窗口、能力和当前单价。建议为每个工具单独建一个 API Key，并设置 maxSpend 消费上限，这样单个工具跑飞不会影响其他工作负载。

## 在 trace 里验证 OpenCode 的调用

发出第一个请求后，到 Dashboard → Logs 查看它的完整 trace：模型、tokens、花费、延迟和状态码。OpenCode 的每一次调用从此都有账本和轨迹，不再是黑盒。

## 常见问题

### OpenCode 提示模型未知或认证失败，怎么排查？

按顺序查三处：model 字符串里的 provider id 必须和 provider 下的键名一致（router-one/<模型 ID>）；每个模型都要出现在该 provider 的 models 里，ID 与 /models 页完全一致；options.apiKey 必须能解析——用 {env:ROUTER_ONE_API_KEY} 时，启动 opencode 的那个 shell 必须已经导出该变量，变量不存在时会被替换成空字符串，而不是报错。

### Claude 系列能走 Router One 的 Anthropic 兼容端点吗？

可以，属于可选项。上面的 OpenAI 兼容配置已经覆盖 Claude 系列；如果想让这些模型走原生 Messages API，再加一条 provider：npm 填 @ai-sdk/anthropic，options.baseURL 填 https://api.router.one/v1——网关在 /v1/messages 上原生服务 Claude 系列，该包发送的 x-api-key 头里放同一把 Key 即可。两条 provider 用不同的 id，模型列表互不干扰。

### OpenCode 能通过网关用哪些模型？

目录里任何具备对话能力的模型——GPT、Claude、Gemini、Grok、DeepSeek、GLM、MiniMax、豆包等系列。/models 页是模型 ID 与单价的事实来源。

### 中国大陆能直连吗？

能。网关在大陆可直连、无需 VPN，配置与全球环境完全一致。

### 报 401/403/429 怎么排查？

先到 Dashboard → Logs 看请求有没有到达网关以及状态码，再对照错误码速查页逐项检查环境变量、Key 状态和限额。

## 相关页面

- 全部接入指南：https://router.one/zh/integrations
- OpenCode 的 401/403/429 排查：https://router.one/zh/llm-api-error-codes
- Kilo Code 接入：https://router.one/zh/integrations/kilo-code
- Cursor 接入：https://router.one/zh/integrations/cursor
- CLI 配置指南：https://router.one/zh/docs/guides/cli-setup
- 所有编程工具走同一个网关：https://router.one/zh/use-cases/ai-coding-tools
- 网关层负责什么：https://router.one/zh/llm-api-gateway
- OpenAI 兼容 API：https://router.one/zh/openai-compatible-api
- API 文档：https://router.one/zh/docs
- 本页规范地址：https://router.one/zh/integrations/opencode
- 模型与每模型 token 价格：https://router.one/zh/models （markdown：https://router.one/zh/models.md ）
- 定价：https://router.one/zh/pricing
- API 文档（markdown）：https://router.one/zh/docs.md
- 公司事实（markdown）：https://router.one/zh/facts/company.md
