在 OpenCode 中使用 BigModel.io

在 opencode.json 中把 BigModel.io 添加为 OpenAI 兼容提供方,baseURL 填 https://bigmodel.io/v1,为 GLM、Kimi、DeepSeek 设置上下文限制,并排查常见报错。

本页目录
  1. 配置 opencode.json
  2. 设置上下文限制
  3. 改用 /connect 保存 Key
  4. 验证配置
  5. 常见问题排查
  6. 相关文档

OpenCode 通过 @ai-sdk/openai-compatible 支持任意 OpenAI 兼容接口。它调用 /v1/chat/completions,所以适用于所有提供文本模型的 BigModel.io 分组,包括仅支持 Chat Completions 的 GLM、DeepSeek 分组。

配置项 值
npm @ai-sdk/openai-compatible
options.baseURL https://bigmodel.io/v1
options.apiKey {env:BIGMODEL_API_KEY}
models 模型目录中的模型 ID
limit.context / limit.output 模型页上的上下文窗口和最大输出

#配置 opencode.json

写入 ~/.config/opencode/opencode.json(所有项目)或项目根目录的 opencode.json:

json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "bigmodel": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "BigModel.io",
      "options": {
        "baseURL": "https://bigmodel.io/v1",
        "apiKey": "{env:BIGMODEL_API_KEY}"
      },
      "models": {
        "glm-5.3": { "name": "GLM-5.3" },
        "glm-5.3-flash": { "name": "GLM-5.3 Flash" },
        "kimi-k3": { "name": "Kimi K3" },
        "deepseek-v4-pro": { "name": "DeepSeek V4 Pro" }
      }
    }
  },
  "model": "bigmodel/glm-5.3",
  "small_model": "bigmodel/glm-5.3-flash"
}

models 下的每个键必须是准确的模型 ID,name 只是 OpenCode 显示的名称。{env:BIGMODEL_API_KEY} 从环境变量读取 Key,配置文件可以放心分享。model 和 small_model 使用 提供方/模型 格式,small_model 负责生成标题等轻量任务。

bash
export BIGMODEL_API_KEY="sk-..."
opencode

#设置上下文限制

OpenCode 不知道自定义模型的上下文窗口。给每个模型加上 limit,让它在合适的时机压缩历史。数值以模型页为准,下面只是占位:

json
"glm-5.3": {
  "name": "GLM-5.3",
  "limit": { "context": 128000, "output": 16000 }
}

#改用 /connect 保存 Key

不想用环境变量的话,在 OpenCode 中运行 /connect,选择 Other,提供方 ID 填 bigmodel,再粘贴 Key。OpenCode 会把它保存在 ~/.local/share/opencode/auth.json。之后从 options 中删掉 apiKey。

#验证配置

在 OpenCode 中运行 /models,应列出配置里的 BigModel.io 模型。选一个发送简短提示词,在用量页确认出现这条请求。

#常见问题排查

/models 里没有 BigModel.io。 JSON 格式错误或位置不对。校验 JSON,并确认项目里的 opencode.json 没有覆盖全局配置。

401 API_KEY_REQUIRED。 启动 OpenCode 的终端里 BIGMODEL_API_KEY 为空,或 /connect 时填写的提供方 ID 与 provider 下的键不一致。

503 api_error:No available accounts: no available accounts supporting model: ...。 models 下的键与分组提供的模型不一致,请从模型页复制 ID。

所有请求都返回 404。 baseURL 缺少 /v1,或多加了 /chat/completions。

长会话失败或被截断。 没有设置 limit.context 或设得过大,改成模型的真实上下文窗口。

工具调用失败或循环。 不同模型处理长任务的能力不同。换个模型试试,第一次先用小任务。

403 INSUFFICIENT_BALANCE 或 429。 到充值页充值。429 rate_limit_error("Too many pending requests")表示并行请求过多,稍后重试。

#相关文档

更新于 · 以 Markdown 查看