教程opencode

opencode 接入中转站:自定义供应商怎么写,地址为什么要带 /v1

按 opencode 官方的供应商文档整理:用 /connect 存下 key,再在 opencode.json 里加一个自定义供应商,就能让 opencode 走中转站。讲清三种接口格式各用哪个包、地址要带 /v1、key 怎么不写进文件,以及找不到模型、404 等问题怎么查。

发布 · 约 5 分钟读完 · 经人工审核()· 本站的内容怎么来的

本文根据公开分享整理,本站尚未实测。操作前请对照文末的原始来源。

本页目录(8 节)
  1. 开始之前:从中转站拿到三样东西
  2. 第一步:选对接口格式
  3. 第二步:存下 key
  4. 第三步:写配置文件
  5. 第四步:选模型并验证
  6. 三个容易错的地方
  7. 常见问题
  8. 接上之后

opencode 是开源的终端编程助手,可以接多家模型。让它走中转站的办法是在配置文件里加一个自定义供应商,写明地址、用哪种接口格式、有哪些模型。

和 Claude Code、Codex 相比,opencode 有一处正好相反,先记住:它的地址要带 /v1。

如果你还没弄清中转站是什么、有哪些风险,先读中转站是什么和用中转站有什么风险;选站可以看中转站排行榜。

开始之前:从中转站拿到三样东西

需要什么 说明
接口地址 带 /v1 的完整地址,例如 https://你的中转站地址/v1
模型名 中转站的模型页上写的名字,要一字不差
API key 在中转站的控制台创建,多数站只显示一次

还要弄清你要用的模型在中转站上走哪种接口,这决定下一步用哪个包。

1选对接口格式

配置里的 npm 一项指定用哪个 AI SDK 的包,也就是用哪种接口格式和中转站通信。官方文档的说明:

中转站提供的接口 npm 填什么
OpenAI 兼容的 /v1/chat/completions @ai-sdk/openai-compatible
OpenAI 的 /v1/responses @ai-sdk/openai
Anthropic 原生的 /v1/messages @ai-sdk/anthropic

前两行是官方文档“自定义供应商”一节写明的。第三行是酷站AI 的文档用来接 Claude 模型的写法;官方文档里给内置的 Anthropic 供应商改地址时,示例地址是 https://api.anthropic.com/v1,同样带 /v1。

官方的说法是,大多数模型服务都提供 OpenAI 兼容的接口,所以拿不准时先试第一种。

2存下 key

在 opencode 里运行 /connect,一直往下翻到 Other:

  1. 输入一个供应商 id,比如 myrelay。这个 id 后面要写进配置文件,起个好记的。
  2. 输入中转站的 API key。

这一步只是把 key 存起来,存在 ~/.local/share/opencode/auth.json。opencode 会提示你:还需要在 opencode.json 里配置这个供应商。

3写配置文件

官方文档的写法是在项目目录下创建或修改 opencode.json。想对所有项目生效,酷站AI 的文档用的是全局配置文件:Mac 和 Linux 上是 ~/.config/opencode/opencode.json,Windows 上是 %USERPROFILE%\.config\opencode\opencode.json。

下面是接 OpenAI 兼容接口的例子,myrelay 要和上一步输入的 id 一致:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "myrelay": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "My Relay",
      "options": {
        "baseURL": "https://你的中转站地址/v1"
      },
      "models": {
        "模型名": {
          "name": "显示用的名字"
        }
      }
    }
  }
}

文件已经存在时,把 provider 这一段合并进去,不要整个覆盖。

各项的含义:

配置项 作用
npm 用哪个包,见第一步
name 界面上显示的名字
options.baseURL 中转站的接口地址
models 这个供应商有哪些模型。键是中转站的模型名,要用别的模型就照样再加一项
options.apiKey 可选。没有用 /connect 存 key 时在这里给
options.headers 可选。中转站要求额外的请求头时用

不想把 key 写进文件

如果跳过了第二步、要在配置里给 key,不要直接写明文。官方支持从环境变量里读:

"options": {
  "baseURL": "https://你的中转站地址/v1",
  "apiKey": "{env:RELAY_API_KEY}"
}

然后在 shell 里设置 RELAY_API_KEY。项目目录下的 opencode.json 通常会被提交进仓库,明文的 key 写在里面等于公开。

告诉 opencode 模型的上限

内置的供应商会自动拿到每个模型的上下文长度,自定义供应商没有。可以在模型下面补上,opencode 才知道上下文还剩多少:

"模型名": {
  "name": "显示用的名字",
  "limit": {
    "context": 200000,
    "output": 65536
  }
}

具体数字以中转站或模型官方的说明为准,上面的是官方文档示例里的值。

4选模型并验证

保存后重新启动 opencode,运行 /models,你的供应商和模型会出现在列表里,选中它,发一句话。能正常回答就是接通了。

也可以在配置文件的顶层直接指定默认用哪个模型,写法是“供应商 id/模型名”:

"model": "myrelay/模型名"

三个容易错的地方

这一节来自酷站AI 的接入文档,是它针对自己的服务写的,但前两条的道理对别的中转站也成立。

地址漏了 /v1。 会返回 404。这一点和 Claude Code 相反:Claude Code 自己会加 /v1,opencode 不会。

直接改内置的 Anthropic 供应商。 内置供应商带着一张自己的模型表,中转站的模型名如果不在表里,opencode 会在本机直接报 Model not found,请求根本没有发出去。稳妥的做法是像上面那样新建一个供应商。

没有指定 small_model。 opencode 会用一个小模型给会话起标题。不指定的话,它可能选到中转站没有的模型,标题生成失败。这不影响对话,但会留下报错。在顶层加一行就行:

"small_model": "myrelay/模型名"

常见问题

现象 检查什么
/models 里看不到你的供应商 配置文件里的 id 和 /connect 时输入的是否一致;JSON 的括号和引号有没有写对;改完有没有重启
404 地址有没有带 /v1;npm 选的接口格式中转站是否支持
Model not found,而且中转站的日志里没有这次请求 请求没发出去。模型名没有写进这个供应商的 models 里,或者用的是内置供应商
401 或提示 key 无效 key 填错、被删或停用;中转站按渠道发 key 的话,这把 key 的渠道是否包含这个模型
每次对话都多一条失败的请求 多半是生成标题的小模型不存在,按上一节设置 small_model

接上之后

来源

通过 API 中转站使用这些模型?到 Veridrop 免费检测中转站给你的是不是它声称的模型,或者看看中转站排行榜前 100 名。

相关文章

  • DeepSeek Harness(dsh)接入中转站:添加自定义模型 API,协议和地址怎么填教程 · DeepSeek Harness · 约 9 分钟

    按 DeepSeek Harness 官方文档整理:在“设置 → 模型”里添加模型提供商,切换到“自定义模型 API”,填 Provider ID、中转站地址、协议和 key,再加上模型。讲清三种协议怎么选、密钥存在哪里、中转站拒绝请求时改哪两个兼容开关,以及常见报错怎么查。

  • Chatbox 接入中转站:添加自定义的模型提供方,电脑和手机都能用教程 · Chatbox · 约 5 分钟

    按 Chatbox 官方文档整理:在设置的“模型提供方”里点添加,选 API 类型,填中转站的 key 和主机地址,加上模型后点“检查”。讲清 API 主机和路径怎么分、模型能力怎么勾、一键导入配置要注意什么,以及检查失败时各个错误码的含义。

  • Cherry Studio 接入中转站:添加自定义服务商,地址填到哪一级教程 · Cherry Studio · 约 5 分钟

    按 Cherry Studio 官方文档整理:在“模型服务”里添加自定义服务商,填中转站的 key 和地址,获取模型列表后打开启用开关。讲清地址为什么通常只填根地址、什么时候在末尾加

  • 沉浸式翻译接入中转站:自定义接口地址要写完整路径教程 · 沉浸式翻译 · 约 5 分钟

    按沉浸式翻译官方文档整理:在翻译服务里填中转站的 key、模型名和自定义接口地址,就能用中转站的模型翻译网页。和多数工具不同,这里的地址要写到 /v1/chat/completions 为止。讲清两种填法、出现 429 时怎么调请求数,以及翻译这种用法要留意的费用和隐私。