# 在 OpenCode 中使用 BigModel.io

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

网页版: https://bigmodel.io/zh-cn/docs/opencode · 更新于 2026-10-18

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` | [模型目录](https://bigmodel.io/zh-cn/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 模型。选一个发送简短提示词，在[用量](https://bigmodel.io/usage)页确认出现这条请求。

## 常见问题排查

**`/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。** 到[充值页](https://bigmodel.io/purchase)充值。429 `rate_limit_error`（"Too many pending requests"）表示并行请求过多，稍后重试。

## 相关文档

- [Codex、Claude Code、Cursor、Cline 如何配置 Base URL](https://bigmodel.io/zh-cn/blog/configure-base-url-codex-claude-code-cursor)
- [Claude Code](https://bigmodel.io/zh-cn/docs/claude-code) 和 [Codex CLI](https://bigmodel.io/zh-cn/docs/codex-cli)：另外两个终端编程助手。
- [从 OpenRouter 迁移](https://bigmodel.io/zh-cn/docs/migrate-from-openrouter)：配置里用了 `provider/model` 格式时参考。
