OpenCode
在 OpenCode 中配置灵眸 API 作为 OpenAI / Anthropic 兼容后端,接入 Claude、Codex、GLM 等模型使用。
OpenCode 按照官方文档安装即可,官网有很详细的教程:
配置模型
安装完成后,编辑配置文件 ~/.config/opencode/opencode.json。OpenCode 支持两种协议接入上游服务,选择与你的供应商一致的那种即可。
协议选择
| 协议 | npm | baseURL 写法 | 适用场景 |
|---|---|---|---|
| OpenAI 协议 | @ai-sdk/openai | 以 /v1 结尾,如 https://xxx.com/v1 | GPT、Codex 及大多数 OpenAI 兼容服务 |
| Anthropic 协议 | @ai-sdk/anthropic | 也以 /v1 结尾,如 https://xxx.com/v1 | Claude 原生协议、以及声明使用 Anthropic 协议的国产模型(如 GLM 等) |
baseURL 容易踩的坑
无论 OpenAI 还是 Anthropic 协议,baseURL 都需要写到 /v1 这一级。SDK 只会在其后拼接具体端点(如 /chat/completions 或 /messages),漏掉 /v1 时请求会被静默丢弃 —— 表现为模型不报错但返回空内容。
示例一:OpenAI 协议
最小可用配置(一个供应商下可以同时配置多个模型):
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"openai": {
"options": {
"baseURL": "https://api.lmuai.com/v1"
},
"models": {
"gpt-5.5": { "name": "GPT-5.5" },
"gpt-5.4": { "name": "GPT-5.4" }
}
}
}
}为什么 provider id 用 `openai`?
OpenCode 把 openai 作为内置 provider id 识别,会自动加载 @ai-sdk/openai 并走 /v1/responses 端点(支持推理模型的完整能力)。因此接入 OpenAI 协议的服务时,把 provider id 命名为 openai 并通过 baseURL 指向自己的网关即可,无需手动写 npm 字段。
如果需要细化某个模型的能力声明(上下文长度、推理强度变体等),在对应模型条目里追加字段即可:
"gpt-5.5": {
"name": "GPT-5.5",
"limit": { "context": 1050000, "output": 128000 },
"options": { "store": false },
"variants": { "low": {}, "medium": {}, "high": {}, "xhigh": {} }
}其中 variants 定义了可切换的推理强度,运行时在 OpenCode 中按 Ctrl + T 切换。
示例二:Anthropic 协议(国产模型常见)
部分国产模型(如 GLM)虽然由国内厂商提供,但其接口遵循的是 Anthropic 协议,需要使用 @ai-sdk/anthropic:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"lmuai": {
"npm": "@ai-sdk/anthropic",
"name": "lmuai",
"options": {
"baseURL": "https://api.lmuai.com/v1"
},
"models": {
"glm-5.1": {
"name": "GLM-5.1"
}
}
}
}
}如何判断协议类型?
查看供应商文档中的请求示例:
- 端点是
/v1/chat/completions→ OpenAI 协议 - 端点是
/v1/messages,请求头带anthropic-version→ Anthropic 协议
示例三:Claude 原生模型
如果要接入 Claude 原生模型(如 claude-sonnet-4-6),provider id 必须使用内置的 anthropic,不能自定义名称:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"npm": "@ai-sdk/anthropic",
"options": {
"baseURL": "https://api.lmuai.com/v1"
}
}
}
}验证:
opencode run --model anthropic/claude-sonnet-4-6 "你好"Claude 模型为什么不能用自定义 provider id?
和 openai 一样,anthropic 是 OpenCode 的内置 provider id,OpenCode 在它下面预置了 Claude 全系列模型(claude-sonnet-4-6 等)的定义。
因此 opencode run --model anthropic/claude-sonnet-4-6 "你好" 能跑通;但如果把 provider id 改成自定义名(如 lmuai/claude-sonnet-4-6),OpenCode 找不到该模型定义,会无法测通。
一句话:接 Claude 原生模型用 anthropic,接 GLM 等自定义模型才用自定义 provider id(如 lmuai)。
如果你需要同时使用多种协议、多个供应商,把它们都写在 provider 下即可,互不影响。例如灵眸同时提供 GPT 系列(openai)、Claude 系列(anthropic)和 GLM 系列(lmuai,Anthropic 协议),三个 provider 可共用一个网关。
配置密钥
方式一:使用命令行(推荐)
# 登录或更新某个供应商的 Key
opencode auth login
# 查看当前已配置的所有供应商和 Key 状态
opencode auth list
# 删除指定供应商的 Key
opencode auth logout <供应商名称>方式二:手动编辑配置文件
在 ~/.local/share/opencode/auth.json 中添加对应供应商的 API Key:
{
"供应商名称": {
"type": "api",
"key": "你的API密钥"
}
}注意
auth.json 中的供应商名称必须与 opencode.json 中的供应商名称完全一致。
不要把 apiKey 写在 opencode.json 的 options 里 —— OpenCode 不会读取那里的密钥,必须走 auth.json 或 opencode auth login。
验证配置
配置完成后用一条命令快速验证:
opencode run --model 供应商名称/模型名 "你好"例如 opencode run --model lmuai/glm-5.1 "你好"。能看到正常回复即配置成功。
如果没有任何输出(既不报错也不回复),通常是以下两种问题之一:
- baseURL 缺少
/v1—— 见上文「协议选择」段的提示。 - 密钥未配置在
auth.json—— 检查opencode auth list是否能看到对应供应商。
需要更多调试信息时加上 --print-logs --log-level INFO。
小技巧
在 OpenCode 中按 Ctrl + T 可切换不同的推理强度(variants)。
开通灵眸 API,立即用上 Claude / Codex 等主流 AI 工具
零门槛注册、套餐灵活、国内直连。支持 Claude Code、Codex CLI、Cursor、VS Code 插件、OpenCode、Cherry Studio 等工具接入。
前往注册