Skip to content

OpenCode 接入

难度 ⌨️ 进阶(JSON 配置文件) | 接口格式 OpenAI 兼容 | base_url https://byesu.com/v1

接入信息 · 填这几样
接口地址https://byesu.com/v1
API 密钥sk-xxxxxxxx去控制台创建 →
推荐模型claude-opus-4-8
接口格式 OpenAI 兼容 · 模型名以 控制台 实际为准

OpenCode 是 GitHub 上 star 数最高的开源 AI 编程 agent 之一——以终端为主(也有桌面版和 IDE 插件),设计上刻意不绑定任何一家模型厂商。这个理念和半页酥天然合拍:在 opencode.json 里把半页酥声明为自定义 provider,一个令牌就能把 Claude Opus 4.8、Claude Sonnet 5、GPT-5.6、Grok 4.5 全部装进 OpenCode 的模型选择器——国内直连、免翻墙、不降智,按量计费、无订阅。

开始之前

先到 控制台 → 令牌 创建一个覆盖你要用的模型的分组令牌(见 选择分组)。下文的 sk-xxxx 换成你自己的。

准备工作

① 装好 OpenCode —— 任选一种官方方式:

bash
curl -fsSL https://opencode.ai/install | bash
bash
npm install -g opencode-ai
bash
brew install anomalyco/tap/opencode

装好后验证:

bash
opencode --version

② 一个半页酥令牌 —— 在控制台创建,分组要覆盖你打算用的模型(后面提到的「无可用渠道」报错就跟它有关)。

第 1 步:把半页酥添加为自定义 Provider

OpenCode 从两个位置读取 opencode.json

  • 全局~/.config/opencode/opencode.json —— 对所有项目生效,推荐把 provider 配置放这里。
  • 项目:项目根目录下的 opencode.json —— 在该项目内覆盖全局配置。

在任一文件里写入(或补上)以下内容:

json
{
  "$schema": "https://opencode.ai/config.json",
  "model": "byesu/claude-opus-4-8",
  "small_model": "byesu/claude-sonnet-5",
  "provider": {
    "byesu": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "byesu",
      "options": {
        "baseURL": "https://byesu.com/v1",
        "apiKey": "sk-你的令牌"
      },
      "models": {
        "claude-opus-4-8": { "name": "Claude Opus 4.8" },
        "claude-sonnet-5": { "name": "Claude Sonnet 5" },
        "gpt-5.6-terra": { "name": "GPT-5.6 Terra" },
        "grok-4.5": { "name": "Grok 4.5" }
      }
    }
  }
}

各部分的含义:

字段说明
provider.byesu这里起的键名就是 provider ID —— 之后所有模型都写成 byesu/<模型ID>
npmOpenCode 为这个 provider 加载的 AI SDK 适配器。半页酥端点走 /v1/chat/completions,所以填 @ai-sdk/openai-compatible
options.baseURLhttps://byesu.com/v1 —— 以 /v1 结尾,不要再拼 /chat/completions
options.apiKey你的 sk- 令牌;OpenCode 会自动以 Bearer 头发送
models每个键都是控制台里原样列出的模型 IDname 只是选择器里的显示名
model / small_model默认模型 + 轻量辅助模型(生成会话标题、摘要等)—— 都用 provider_id/model_id 形式

最容易踩的三个坑

  1. npm 必须是 @ai-sdk/openai-compatible@ai-sdk/openai 面向 OpenAI 的 /v1/responses 接口,和这个端点对不上。
  2. models 下的键必须和控制台模型名完全一致(是 claude-opus-4-8,不是 claude-opus-4.8)。
  3. 配置里其它任何地方引用模型都要带 provider 前缀:byesu/claude-opus-4-8,绝不能只写裸模型名。

每个模型条目还可以选配一个 limit 对象({ "context": ..., "output": ... }),让 OpenCode 的上下文用量表更准。不配也一切正常。

第 2 步(可选):不把 Key 明文写进文件

避免在 opencode.json 里放明文密钥,有两种干净做法:

环境变量插值。 OpenCode 会展开配置里的 {env:VAR} 占位符:

json
"options": {
  "baseURL": "https://byesu.com/v1",
  "apiKey": "{env:BYESU_API_KEY}"
}
bash
# 写进 ~/.zshrc 或 ~/.bashrc,重开终端生效
export BYESU_API_KEY="sk-你的令牌"

/connect 命令。 启动 opencode,输入 /connect,选择 Other,provider ID 填 byesu,再粘贴你的 Key。OpenCode 会把凭据存进自己的密钥库,配置文件里的 apiKey 就可以整个删掉。

WARNING

/connect 里填的 provider ID 必须和 opencode.jsonprovider 下的键名一致(这里是 byesu),否则存好的凭据永远不会被读取。

第 3 步:跑起来验证

进任意项目目录,启动:

bash
opencode

输入 /models —— 四个半页酥模型应该出现在选择器里。选一个,让它做点小事(比如「列出当前目录的文件」),能正常回答就接通了 ✅

切换模型、Plan 与 Build

会话中随时可用 /models 切换模型。按 TabBuild agent(完整工具权限)和 Plan agent(分析模式,改文件前先询问)之间切换,每个 agent 都能钉住自己的半页酥模型:

json
{
  "agent": {
    "plan": { "model": "byesu/claude-sonnet-5" }
  }
}

常见搭配:Build 默认用 Opus 4.8,Plan agent 和 small_model 交给 Sonnet 5。

卡住了?

  • 401 / 令牌无效 → Key 填错,或 /connect 的 provider ID 和配置里的 provider 键名不一致(详情
  • 无可用渠道 → 令牌所在分组不覆盖你选的模型;去对应分组新建令牌(选择分组详情
  • 模型不存在models 下某个键和控制台模型名不完全一致,或引用时漏了 byesu/ 前缀(详情
  • 余额不足 → 去控制台充值,支持支付宝、微信、USDT(详情
  • 其它见 常见错误 & 解决

常见问题

如何在 OpenCode 中添加自定义的 OpenAI 兼容 provider?

opencode.jsonprovider 键下声明:npm@ai-sdk/openai-compatibleoptions.baseURLhttps://byesu.com/v1options.apiKey 填你的 sk- 令牌,并在 models 下列出模型 ID。之后所有模型都以 byesu/<模型ID> 的形式引用。

OpenCode 自定义 provider 的 npm 字段应该填哪个包?

@ai-sdk/openai-compatible —— 它是走 /v1/chat/completions 的服务商适配器,半页酥的 OpenAI 兼容端点正是这种。@ai-sdk/openai 面向 OpenAI 的 /v1/responses 接口,对不上。

如何避免把 API Key 明文写进 opencode.json?

两种办法:用环境变量插值("apiKey": "{env:BYESU_API_KEY}",再在 shell 配置文件里 export),或在 OpenCode 里运行 /connect,用与配置键名一致的 provider ID 保存密钥。

OpenCode 报「无可用渠道」(no available channel)怎么办?

令牌所在分组不覆盖你选的模型。去半页酥控制台在对应分组下新建令牌(见 选择分组),换上新 Key 重试。

OpenCode 的 Plan 和 Build 两个 agent 能用不同模型吗?

可以。会话中按 Tab 在 Build 与 Plan 之间切换,每个 agent 都能在 opencode.json 里单独指定 model —— 例如把 agent.plan.model 设为 byesu/claude-sonnet-5,Build 继续用 byesu/claude-opus-4-8

通过半页酥使用 OpenCode 怎么计费?

按 token 用量计费,在官方牌价上按透明倍率结算,无订阅费。控制台每个模型旁都实时显示实际计费价,支持支付宝、微信与 USDT 充值。

遇到问题?联系客服或加交流群。