文档

文档

Qwen Code

Qwen Code 将端点保存在一个文件中。只需在 modelProviders 下声明一次 Kunavo,将 selectedType 设为 openai,/model 选择器就能通过同一个密钥在 Claude 和 GPT 之间切换。

Qwen Code 从 ~/.qwen/settings.json 的 modelProviders 读取端点 — 一个包含 baseUrl 和 envKey 的条目即可让 Claude 与 GPT 出现在其 /model 选择器中。

合并到 ~/.qwen/settings.json
{
  "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"
  }
}
Base URL 需要保留 /v1。模型提供商参考文档用一句话明确说明了这一点:将条目指向托管的 OpenAI 兼容网关时,请将 baseUrl 设置为 API 的“/v1 根路径”,而非完整的 /v1/chat/completions 路径,因为“SDK 会自行追加请求路径”。身份验证页面中的每个 OPENAI_BASE_URL 示例也都以相同方式结尾。Base URL 若已包含路由,会导致 404,而不是身份验证错误。
此配置依据下方所示日期的 Qwen Code 自有文档整理。Kunavo 未使用其端点运行过 Qwen Code——没有运行会话、流式轮次或工具往返,本系列中的其他客户端也一样。已发布的配置页面并非兼容性测试。在尝试此配置时,请保留当前可用的路由。
Kunavo 不提供嵌入、文本转语音或语音转文本模型,因此通过 Kunavo 配置的路由只能响应聊天请求。Qwen Code 的 Live Voice 路由则另当别论:文档要求 realtimeOnly 路由的主机必须是 DashScope 端点,因此无论聊天模型指向何处,此功能都应继续使用独立的密钥。
Kunavo 的目录中没有 Qwen 文本模型。这并非以更低成本运行 Qwen 的方法,而是在 Qwen Code 中使用 Claude 和 GPT、共用一笔预付余额的方法。如果你想要的是 Qwen 推理,阿里云 Model Studio 是第一方来源;Qwen Code 自己的文档则在 /auth 列表中列出了 OpenRouter 和 Requesty 等第三方提供商。
还没有密钥?创建 Kunavo 账户,创建一个密钥(以 sk-kn- 开头),并充值 $10 起——调用费用从该余额中扣除,失败的调用不会收费。随后,控制台会打开 Qwen Code 设置页面。

分步操作

  1. 在 /app/keys 创建密钥并复制——它只会显示一次。
  2. 打开 ~/.qwen/settings.json(如果不存在则创建),并将上方四个配置块合并进去。文档建议在用户级文件中声明 modelProviders,“以避免项目设置与用户设置之间的合并冲突”。
  3. 如果可以,请把密钥放在比 env 更妥当的位置。Qwen Code 会从 process.env[envKey] 读取密钥,文档按优先级从高到低列出了密钥来源:shell export、.env 文件,然后是 settings.json 中的 env 块——文档指出这是明文存储。上面的 env 块是能运行的最简配置,并不是最适合长期保存的配置。
  4. 运行 qwen。将 security.auth.selectedType 设为 openai,并确保 model.name 与你声明的某个 id 相符后,就不需要交互式的 /auth 步骤——单文件示例之后的文档对此有明确说明。
  5. 给它一个需要读取并编辑文件的任务,而不是简单问候。Qwen Code 是一个智能体:工具调用和流式传输是首次运行应该验证的功能,也是面对兼容性不完整的端点时最先会出问题的地方。
  6. 在 modelProviders.openai 下添加更多条目,即可通过 /model 在运行时切换模型。这些修改会在正在运行的会话中热重载;providerProtocol 只在启动时读取,修改后需要重启。

已于 2026年9月21日 对照 Qwen Code 身份验证页面,选项 4:API Key(灵活) 检查。第三方设置会发生变化;如果这里的字段名称不再与你看到的内容一致,应以该页面为准,而不是本页。

这是简要版本。完整教程——包括模型选择、真实会话成本和失败模式——见 Qwen Code 定价指南。

调试客户端前先验证

一个请求即可确定故障来自端点、密钥还是配置文件。如果返回 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 的美元,格式为输入 / 输出。

模型 IDKunavo 输入 / 输出它在 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 进行长上下文阅读
计费方式是从预付余额中按 token 扣费,无月费——参见 计费。对于重复上下文——这正是编辑器或聊天客户端发送内容的大部分——提示缓存对账单的影响大于模型选择。

文档明确说明的三个常见误区

这些信息来自上文链接的身份验证页面和模型提供商参考文档。如果只凭猜测而不查阅文档,每一项都可能耗费大量调试时间。

  1. modelProviders 条目的优先级高于 CLI 标志。文档列出的优先级从高到低依次为:在运行会话中通过 /auth 设置的覆盖项、所选模型提供商的 envKey、--openai-api-key 等 CLI 参数、环境变量,最后是设置中的 security.auth.apiKey。大多数人以为标志的优先级最高,但事实并非如此——这就是 --openai-base-url 看起来可能被忽略的原因。
  2. security.auth.apiKey 和 security.auth.baseUrl 已弃用。参考文档对此有明确说明,并建议迁移到 modelProviders。如果较早的教程让你编辑这两个键,那么你修改的是即将淘汰的配置路径。
  3. 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 的修改会在运行中的会话里热重载——也可以移除该条目,以便让标志生效。