文档
Qwen Code
Qwen Code 将端点保存在一个文件中。只需在 modelProviders 下声明一次 Kunavo,将 selectedType 设为 openai,/model 选择器就能通过同一个密钥在 Claude 和 GPT 之间切换。
Qwen Code 从 ~/.qwen/settings.json 的 modelProviders 读取端点 — 一个包含 baseUrl 和 envKey 的条目即可让 Claude 与 GPT 出现在其 /model 选择器中。
{
"modelProviders": {
"openai": [
{
"id": "claude-sonnet-5",
"name": "Claude Sonnet 5 (Kunavo)",
"baseUrl": "https://api.kunavo.com/v1",
"description": "Kunavo, OpenAI-compatible",
"envKey": "KUNAVO_API_KEY"
}
]
},
"env": {
"KUNAVO_API_KEY": "sk-kn-..."
},
"security": {
"auth": {
"selectedType": "openai"
}
},
"model": {
"name": "claude-sonnet-5"
}
}/v1。模型提供商参考文档用一句话明确说明了这一点:将条目指向托管的 OpenAI 兼容网关时,请将 baseUrl 设置为 API 的“/v1 根路径”,而非完整的 /v1/chat/completions 路径,因为“SDK 会自行追加请求路径”。身份验证页面中的每个 OPENAI_BASE_URL 示例也都以相同方式结尾。Base URL 若已包含路由,会导致 404,而不是身份验证错误。realtimeOnly 路由的主机必须是 DashScope 端点,因此无论聊天模型指向何处,此功能都应继续使用独立的密钥。/auth 列表中列出了 OpenRouter 和 Requesty 等第三方提供商。sk-kn- 开头),并充值 $10 起——调用费用从该余额中扣除,失败的调用不会收费。随后,控制台会打开 Qwen Code 设置页面。分步操作
- 在
/app/keys创建密钥并复制——它只会显示一次。 - 打开
~/.qwen/settings.json(如果不存在则创建),并将上方四个配置块合并进去。文档建议在用户级文件中声明modelProviders,“以避免项目设置与用户设置之间的合并冲突”。 - 如果可以,请把密钥放在比
env更妥当的位置。Qwen Code 会从process.env[envKey]读取密钥,文档按优先级从高到低列出了密钥来源:shellexport、.env文件,然后是settings.json中的env块——文档指出这是明文存储。上面的env块是能运行的最简配置,并不是最适合长期保存的配置。 - 运行
qwen。将security.auth.selectedType设为openai,并确保model.name与你声明的某个id相符后,就不需要交互式的/auth步骤——单文件示例之后的文档对此有明确说明。 - 给它一个需要读取并编辑文件的任务,而不是简单问候。Qwen Code 是一个智能体:工具调用和流式传输是首次运行应该验证的功能,也是面对兼容性不完整的端点时最先会出问题的地方。
- 在
modelProviders.openai下添加更多条目,即可通过/model在运行时切换模型。这些修改会在正在运行的会话中热重载;providerProtocol只在启动时读取,修改后需要重启。
已于 2026年9月21日 对照 Qwen Code 身份验证页面,选项 4:API Key(灵活) 检查。第三方设置会发生变化;如果这里的字段名称不再与你看到的内容一致,应以该页面为准,而不是本页。
调试客户端前先验证
一个请求即可确定故障来自端点、密钥还是配置文件。如果返回 JSON,则相同的基础 URL 和密钥可以在 Qwen Code 中使用。
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."字段中应填写哪个模型 ID
每个文本模型都可通过模型 ID 访问——实时列表见 GET /v1/models,包含价格的目录见模型页面。费率单位为每 1M token 的美元,格式为输入 / 输出。
| 模型 ID | Kunavo 输入 / 输出 | 它在 Qwen Code 中的位置 |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | 默认工作模型——将其设为 model.name |
claude-opus-5 | $3.50 / $17.50 | 一旦选错就会代价高昂的计划 |
claude-haiku-4-5 | $0.70 / $3.50 | 低成本调用:分流、摘要,以及全天运行的循环 |
gpt-5-6-sol | $2.00 / $12.00 | 来自另一个系列的第二意见,使用相同的密钥和 baseUrl |
gpt-5-6-terra | $0.70 / $4.20 | 通过 openai protocol key 进行长上下文阅读 |
文档明确说明的三个常见误区
这些信息来自上文链接的身份验证页面和模型提供商参考文档。如果只凭猜测而不查阅文档,每一项都可能耗费大量调试时间。
modelProviders条目的优先级高于 CLI 标志。文档列出的优先级从高到低依次为:在运行会话中通过/auth设置的覆盖项、所选模型提供商的envKey、--openai-api-key等 CLI 参数、环境变量,最后是设置中的security.auth.apiKey。大多数人以为标志的优先级最高,但事实并非如此——这就是--openai-base-url看起来可能被忽略的原因。security.auth.apiKey和security.auth.baseUrl已弃用。参考文档对此有明确说明,并建议迁移到modelProviders。如果较早的教程让你编辑这两个键,那么你修改的是即将淘汰的配置路径。wireApi用于选择请求格式,且不会检测格式是否不匹配。省略该项时会使用 Chat Completions,也就是上方配置块所用的格式。设置"wireApi": "responses"则要求端点确实兼容 Responses;文档明确指出,请求失败时不会检测端点,也不会自动回退。Kunavo 同时支持/v1/responses和/v1/chat/completions,但本页尚未测试这两种搭配,因此请从默认设置开始。
如果你来这里是想找免费套餐
许多仍在流传的 Qwen Code 说明都在介绍通过 Qwen OAuth 登录并获得每日免费额度。此选项已取消:文档记载其免费套餐于 2026 年 4 月 15 日停止提供,并指出 Qwen OAuth 已不再是 /auth 对话框中的可选项。文档现在列出三项:阿里云 ModelStudio——其子菜单包含 Coding Plan、Token Plan 和 Standard API Key;第三方提供商;以及 自定义提供商,其描述为连接“本地服务器、代理或不受支持的提供商”。Kunavo 属于第三项。还要注意,ModelStudio 子菜单中的选项并不是同一笔账单的三种付款方式:每种方式都有自己的主机和密钥,在 Token Plan 主机上使用 Coding Plan 密钥将无法工作。
常见问题
如何让 Qwen Code 指向自定义 API 端点?
在 ~/.qwen/settings.json 的 modelProviders 下声明端点。对于任何 OpenAI 兼容主机,请使用 "openai" 作为键,为模型条目填写 id、baseUrl,以及用于指定 API 密钥所在环境变量名称的 envKey;然后将 security.auth.selectedType 设为 "openai",并将 model.name 设为该 id。运行 qwen 后,它会直接使用该配置,无需交互式 /auth 步骤。也可以通过环境变量配置:OPENAI_API_KEY、OPENAI_BASE_URL 和 OPENAI_MODEL;但文档建议使用设置文件,因为该配置不会随 shell 结束而丢失,并且可同时支持多个端点。
Qwen Code 的 baseUrl 末尾需要带 /v1 吗?
需要,适用于 OpenAI 兼容端点。Qwen Code 的模型提供商参考文档指出,baseUrl 应设为 API 的 /v1 根路径,例如 https://gateway.example.com/v1,而不是完整的 /v1/chat/completions 路径,因为 SDK 会自行追加请求路径。对于 Kunavo,该值应为 https://api.kunavo.com/v1。若末尾包含完整路由,通常会返回 404,而不是身份验证失败;这也是最常见的表现。
Qwen Code 的免费套餐还可以使用吗?
不可以。Qwen Code 自己的文档记录,Qwen OAuth 免费套餐已于 2026 年 4 月 15 日停止,且 Qwen OAuth 已不再是 /auth 对话框中的可选项。文档还指出,Qwen OAuth 模型是硬编码的,无法通过 modelProviders 覆盖,因此不能简单地将旧配置路径改指向其他位置。目前仍可使用 Alibaba ModelStudio、内置第三方提供商,或自行配置的自定义端点。
Qwen Code 可以运行 Claude 或 GPT 模型,而不是 Qwen 模型吗?
可以。Qwen Code 的协议表列明,openai 提供商键接受任何 OpenAI 兼容端点;modelProviders 条目中的模型 id 会原样传递到你配置的 baseUrl,因此模型由该端点解析,而不是由客户端解析。因此,只要端点提供相应模型,Claude 或 GPT 的 id 就可以使用。Kunavo 通过其 OpenAI 兼容接口提供 Claude 和 GPT 的 id;本文配置取自供应商文档,并非来自实际测试。
为什么 Qwen Code 忽略了 --openai-base-url?
因为 modelProviders 条目的优先级高于该参数。文档列出的凭据优先级为:在运行会话中通过 /auth 输入的覆盖项优先级最高,其次是所选模型提供商的 baseUrl 和 envKey,再次是 CLI 参数;环境变量和设置的优先级更低。如果已选择某个提供商条目,它的 baseUrl 就会覆盖该标志。你可以编辑该条目——modelProviders 的修改会在运行中的会话里热重载——也可以移除该条目,以便让标志生效。