连接 AI 助手

Codex

本机 Codex · 需要 Codex CLI

安装后验证

开启新会话,运行 /mcp 检查文档连接。

请助手搜索并读取一篇本站文档,确认回答附带原文链接。

详细步骤与其他插件安装方式
备选:手动连接 MCP

没有插件入口时使用。已安装插件时,无需重复添加 MCP。

Skip to content

使用 Qwen Code 集成 GenStudio API ​

AI 助手

注意

适用版本

0.x 配置以 Qwen Code 0.27.0 为例。使用 1.0.0-preview.1 时,请参见使用 Qwen Code 1.0 Preview。

Qwen Code 是 Qwen 团队开源的终端 AI 编程助手。它支持在 settings.json 中添加 OpenAI 兼容的模型提供方,可通过 GenStudio 的 Chat Completions 接口使用 Qwen 模型。

Chat Completions 配置以下列三个模型为例,并将 qwen3.8-max 设为默认模型:

  • qwen3.8-max
  • qwen3.6-27b
  • qwen3.6-35b-a3b

注意

以上模型仅为示例。GenStudio 当前可用的模型及其 ID,以 GenStudio 模型广场或 /models 接口的返回结果为准。

获取 API 接入信息 ​

Qwen Code 通过 GenStudio 通用 LLM API 调用模型,配置前需要准备 API Key 和 Base URL。LLM API 按 Token 计费,请关注账户余额。

  • API Key:创建以 sk- 为前缀的 API 密钥。详见 GenStudio API 快速集成。

    注意

    GenStudio 通用 LLM API 服务有 API 频率限制。租户在 GenStudio 的服务等级决定了 API 调用是否计费,以及享受的 API 频率上限。详见 LLM API 计费规则。

  • OpenAI (OpenAI Compatible)

    • Base URL: https://cloud.infini-ai.com/maas/v1

    • Endpoints

      • Create Chat Completion: /chat/completions
      • List Models: /models

查询模型的上下文长度 ​

配置模型时需要填写每个模型的上下文长度。调用模型列表接口,从对应模型条目中读取 context_length(上下文窗口 Token 数):

language-shell
curl --request GET \
  --url 'https://cloud.infini-ai.com/maas/v1/models' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer sk-xxxxxxxxxx'

本文三个模型在 /models 中返回的 context_length 如下。配置时请以当前账号实际返回的模型条目为准。

模型 IDcontext_length
qwen3.8-max1048576
qwen3.6-27b262144
qwen3.6-35b-a3b262144

安装 Qwen Code 0.x ​

Qwen Code 支持 macOS、Linux 和 Windows。使用 npm 安装时需要 Node.js 22 或更高版本:

language-bash
npm install -g @qwen-code/qwen-code@latest

在 macOS 或 Linux 上也可以使用 Homebrew 安装:

language-bash
brew install qwen-code

安装完成后运行以下命令。能输出版本号,表示 qwen 命令已可用:

language-bash
qwen --version

配置 Qwen Code 0.x ​

按本节的方式配置时,API Key 和模型配置分开保存:API Key 放在环境变量或 ~/.qwen/.env 中,模型列表写在 ~/.qwen/settings.json 中,settings.json 只记录 API Key 所在的环境变量名称,不保存 API Key 本身。也可以在 Qwen Code 中用 /auth 向导完成配置,见使用 /auth 向导配置。

保存 API Key ​

在 ~/.qwen/.env 中写入 GenStudio API Key。文件不存在时请手动创建:

language-ini
GENSTUDIO_API_KEY=sk-xxxxxxxxxx

如果只想在当前终端临时使用,也可以导出环境变量。终端中导出的变量优先于 ~/.qwen/.env 中的同名变量:

language-bash
export GENSTUDIO_API_KEY="sk-xxxxxxxxxx"

添加 GenStudio 模型 ​

将以下内容写入 ~/.qwen/settings.json。如果文件已存在,请把 modelProviders、security 和 model 三个字段合并到现有配置中。

language-json
{
  "modelProviders": {
    "openai": [
      {
        "id": "qwen3.8-max",
        "name": "GenStudio qwen3.8-max",
        "baseUrl": "https://cloud.infini-ai.com/maas/v1",
        "envKey": "GENSTUDIO_API_KEY",
        "generationConfig": {
          "contextWindowSize": 1048576
        }
      },
      {
        "id": "qwen3.6-27b",
        "name": "GenStudio qwen3.6-27b",
        "baseUrl": "https://cloud.infini-ai.com/maas/v1",
        "envKey": "GENSTUDIO_API_KEY",
        "generationConfig": {
          "contextWindowSize": 262144
        }
      },
      {
        "id": "qwen3.6-35b-a3b",
        "name": "GenStudio qwen3.6-35b-a3b",
        "baseUrl": "https://cloud.infini-ai.com/maas/v1",
        "envKey": "GENSTUDIO_API_KEY",
        "generationConfig": {
          "contextWindowSize": 262144
        }
      }
    ]
  },
  "security": {
    "auth": {
      "selectedType": "openai"
    }
  },
  "model": {
    "name": "qwen3.8-max"
  }
}

字段说明:

  • modelProviders.openai:OpenAI 兼容的模型列表。每一项对应 Qwen Code 中一个可选择的模型。
  • id:发送给 GenStudio API 的模型 ID。
  • name:模型选择列表中显示的名称。
  • baseUrl:GenStudio OpenAI Compatible Base URL。Qwen Code 会在末尾自动拼接 /chat/completions,请不要自行追加。
  • envKey:保存 API Key 的环境变量名称,需与 ~/.qwen/.env 中的变量名一致。
  • generationConfig.contextWindowSize:模型的上下文窗口 Token 数,填写 /models 返回的 context_length。
  • security.auth.selectedType:设为 openai,让 Qwen Code 使用 modelProviders.openai 中的模型。不设置时,以非交互方式运行 qwen 会报错退出。
  • model.name:Qwen Code 默认使用的模型,需与某个模型条目的 id 一致。

注意

项目根目录下的 .qwen/settings.json 优先于 ~/.qwen/settings.json。如果项目配置中也定义了 modelProviders,项目中的模型列表会整体替换 ~/.qwen/settings.json 中的列表,两者不会合并。

使用 /auth 向导配置 ​

不想手动编辑配置文件时,可以在 Qwen Code 中用 /auth 向导完成配置。向导会把 API Key 以明文写入 ~/.qwen/settings.json 的 env 字段;模型名称直接显示为模型 ID,也不写入上下文长度,由 Qwen Code 根据模型名称推断。需要自定义这些内容,或不希望在 settings.json 中保存 API Key 时,请按前文手动配置。

  1. 启动 qwen,输入 /auth。首次启动且没有可用的配置时,Qwen Code 会自动打开连接服务商的对话框。
  2. 选择 Custom Provider。
  3. 协议选择 OpenAI-compatible,API 选择 Chat Completions。
  4. 在 Base URL 中删除默认地址,填写 https://cloud.infini-ai.com/maas/v1。
  5. 在 API Key 中填写以 sk- 开头的 GenStudio 通用 API Key。
  6. 在 Model IDs 中填写 qwen3.8-max, qwen3.6-27b, qwen3.6-35b-a3b。第一个模型会成为默认模型。
  7. 高级配置保持默认,按 Enter 进入确认页,检查生成的配置后按 Enter 保存。

保存后,界面提示配置成功,可以用 /model 切换模型。

警告

使用向导后,~/.qwen/settings.json 中保存了明文 API Key。请勿把该文件提交到代码仓库或分享给他人。

启动 Qwen Code 并验证 ​

进入项目目录后启动 Qwen Code:

language-bash
cd your-project
qwen

启动后发送一条简单请求,确认模型可以正常回复:

language-text
用一句话介绍当前项目的目录结构。

需要切换模型时,在 Qwen Code 中输入以下命令,然后选择 settings.json 中配置的模型:

language-text
/model

也可以不进入交互界面,直接在命令行中发送一次请求,用于在脚本中检查配置。--model 用于临时指定模型,省略时使用 model.name:

language-bash
qwen --model qwen3.6-27b "用一句话介绍当前项目的目录结构。"

验证清单:

  • 交互界面中发送测试消息后能收到正常回复。
  • /model 中能看到 GenStudio qwen3.8-max、GenStudio qwen3.6-27b 和 GenStudio qwen3.6-35b-a3b。
  • 命令行单次请求输出回复后,qwen 以退出码 0 结束。

在对话中引用图片 ​

在输入框中用 @ 引用图片文件,例如截图。Qwen Code 会把图片转换为 Base64 数据,随消息一起发送给模型:

language-text
@screenshot.png 这个报错是什么原因?

qwen3.8-max、qwen3.6-27b 和 qwen3.6-35b-a3b 都支持图片输入。图片格式要求见视觉语言模型与图像理解。

设置思考模式 ​

Qwen Code 通过模型条目的 generationConfig.extra_body 传递 Qwen 原生推理参数。extra_body 中的字段会加到请求体顶层,与 messages 同级。需要设置多个参数时,把它们写在同一个 extra_body 中。

开启或关闭 Qwen3.6 的思考 ​

qwen3.6-27b 和 qwen3.6-35b-a3b 支持 Qwen 原生参数 enable_thinking。不设置该参数时,是否输出思考内容由服务端的默认值决定。需要固定思考行为时,在对应模型条目中设置 enable_thinking。以下示例为 qwen3.6-35b-a3b 开启思考:

language-json
{
  "id": "qwen3.6-35b-a3b",
  "name": "GenStudio qwen3.6-35b-a3b",
  "baseUrl": "https://cloud.infini-ai.com/maas/v1",
  "envKey": "GENSTUDIO_API_KEY",
  "generationConfig": {
    "contextWindowSize": 262144,
    "extra_body": {
      "enable_thinking": true
    }
  }
}

如果希望 qwen3.6-27b 直接输出回答、不输出思考内容,在该模型条目中设置 "enable_thinking": false。参数的取值和响应字段详见使用 Qwen 文本模型的 enable_thinking。

qwen3.8-max 设置 "enable_thinking": false 后仍会返回思考内容,因此本文不为它配置该参数。

保留之前轮次的推理内容 ​

Qwen Code 会把模型返回的推理内容随历史消息一起发送给 GenStudio。同一轮任务中,工具调用之间的推理内容,本文的三个模型都会读取,不需要额外配置。之前轮次对话中的推理内容是否被读取,由 preserve_thinking 决定:

  • qwen3.8-max 默认读取。
  • qwen3.6-27b 和 qwen3.6-35b-a3b 默认不读取。

需要让 qwen3.6-27b 或 qwen3.6-35b-a3b 在后续轮次中参考之前的推理内容时,在对应模型条目中设置 "preserve_thinking": true。以下示例为 qwen3.6-27b 开启该参数:

language-json
{
  "id": "qwen3.6-27b",
  "name": "GenStudio qwen3.6-27b",
  "baseUrl": "https://cloud.infini-ai.com/maas/v1",
  "envKey": "GENSTUDIO_API_KEY",
  "generationConfig": {
    "contextWindowSize": 262144,
    "extra_body": {
      "preserve_thinking": true
    }
  }
}

被读取的历史推理内容计入输入 Token。对话轮次越多,每次请求的输入 Token 越多。参数说明详见在多轮对话中保留推理内容。

限制每次思考的长度 ​

Qwen Code 0.27.0 在每次请求中发送 max_tokens: 64000。通过 GenStudio 调用本文的三个模型时,max_tokens 只限制回答长度,不限制思考内容,单次思考可能达到上万 Token。需要控制耗时和 Token 用量时,在模型条目的 extra_body 中设置 thinking_budget。以下示例将 qwen3.8-max 的单次思考限制在 16384 Token 以内:

language-json
{
  "id": "qwen3.8-max",
  "name": "GenStudio qwen3.8-max",
  "baseUrl": "https://cloud.infini-ai.com/maas/v1",
  "envKey": "GENSTUDIO_API_KEY",
  "generationConfig": {
    "contextWindowSize": 1048576,
    "extra_body": {
      "thinking_budget": 16384
    }
  }
}

为 qwen3.6-27b 或 qwen3.6-35b-a3b 设置时,在同一个 extra_body 中同时设置 "enable_thinking": true。

思考达到预算后,模型停止思考并开始回答。预算过小会降低回答质量,请按任务复杂度调整。qwen3.8-max 设置 thinking_budget 时,不要同时设置 reasoning_effort,否则请求返回 400。参数说明详见控制思考和回答的长度。

查看 Token 用量 ​

在 Qwen Code 中输入以下命令,可以查看当前会话的输入和输出 Token 数、请求耗时和生成速度:

language-text
/stats

Qwen Code 的每个请求都会带上系统提示和工具定义,因此即使只问一个简单问题,单次请求的输入通常也有一万多个 Token。用量中还包含建议问题、自动记忆等功能调用模型产生的 Token,见配置建议问题、自动记忆和自动模式。

配置建议问题、自动记忆和自动模式 ​

除了回复对话中的消息,Qwen Code 0.27.0 默认还会通过以下功能调用模型。这些请求使用当前选择的模型,同样按 Token 计费,可以按需开启或关闭:

功能作用调用模型的时机配置项(默认值)
建议问题在输入框中给出下一步可能输入的内容,按 Tab 键采用完成任务后ui.enableFollowupSuggestions(true)
自动记忆从对话中提取需要长期保留的信息,供之后的会话使用每轮对话后,在后台进行memory.enableManagedAutoMemory(true)
自动模式判断工具调用是否安全,安全的操作自动批准,有风险的操作被阻止执行 shell 命令等操作前tools.approvalMode(auto)

建议问题的请求携带完整的对话上下文,输入 Token 数与一次普通对话请求相当。

修改时,把对应字段合并到 ~/.qwen/settings.json 中,保存后重新启动 Qwen Code。以下是各配置项的默认值:

language-json
{
  "ui": {
    "enableFollowupSuggestions": true
  },
  "memory": {
    "enableManagedAutoMemory": true
  },
  "tools": {
    "approvalMode": "auto"
  }
}

自动模式是 Qwen Code 的工具审批模式之一。也可以在 Qwen Code 中按 Shift+Tab,或使用 /approval-mode 命令切换审批模式。

设置 fastModel 后,建议问题改由该模型生成,Qwen Code 还会用该模型生成会话标题和工具调用摘要。fastModel 填写 modelProviders 中某个模型条目的 id,例如:

language-json
{
  "fastModel": "qwen3.6-35b-a3b"
}

排查 Qwen Code 0.x 常见问题 ​

按 Qwen Code 输出的报错信息查找对应的处理方法。

提示 No auth type is selected ​

检查 ~/.qwen/settings.json 中是否将 security.auth.selectedType 设为 openai。以非交互方式运行 qwen 时,Qwen Code 依赖该字段选择认证方式。

提示缺少 API Key ​

报错信息要求设置 GENSTUDIO_API_KEY 时,Qwen Code 已找到模型条目,但没有读到 API Key:

  • 确认 ~/.qwen/.env 或当前终端中设置了 GENSTUDIO_API_KEY。
  • 确认模型条目中 envKey 的值与环境变量名称完全一致。

报错信息要求设置 OPENAI_API_KEY 时,当前使用的模型 ID 不在生效的模型列表中:

  • 确认 --model 参数或 model.name 的值与某个模型条目的 id 完全一致。
  • 检查项目目录下的 .qwen/settings.json 是否定义了 modelProviders,原因见添加 GenStudio 模型末尾的说明。

使用 Qwen Code 1.0 Preview ​

安装并迁移配置 ​

Qwen Code 1.0 Preview 提供 macOS、Linux 和 Windows 原生安装包。在 macOS 或 Linux 上运行以下命令。Windows 安装步骤见 Qwen Code 1.0 Preview 官方指南。

language-bash
curl -fsSL https://qwen-code.oss-accelerate.aliyuncs.com/install.sh | bash

打开新终端,运行 qwen --version 确认版本。如果仍显示 0.x,在 macOS 或 Linux 上可运行 command -v qwen 确认命令来源。确认 Preview 已安装后,可通过原包管理器卸载旧版。

从 0.x 升级时,先备份 ~/.qwen/settings.json。Preview 从 providers 读取自定义服务商。请按下节重新配置原来位于 modelProviders.openai 中的 GenStudio 模型。

配置 GenStudio 模型 ​

将以下配置合并到 ~/.qwen/settings.json,并将 sk-xxxxxxxxxx 替换成 GenStudio 通用 API Key。providers.genstudio 定义服务商及其模型,model.name 以 <服务商 ID>/<模型 ID> 的格式指定默认模型。contextWindow 取自 /models 返回的 context_length。

language-json
{
  "providers": {
    "genstudio": {
      "displayName": "GenStudio",
      "protocol": "openai",
      "baseUrl": "https://cloud.infini-ai.com/maas/v1",
      "apiKey": "sk-xxxxxxxxxx",
      "models": [
        {
          "model": "qwen3.8-max",
          "displayName": "GenStudio qwen3.8-max",
          "contextWindow": 1048576,
          "capabilities": {
            "vision": true,
            "thinking": { "modes": ["enabled"], "supportsEffort": false }
          }
        },
        {
          "model": "qwen3.6-27b",
          "displayName": "GenStudio qwen3.6-27b",
          "contextWindow": 262144,
          "capabilities": {
            "vision": true,
            "thinking": { "modes": ["enabled"], "supportsEffort": false }
          }
        },
        {
          "model": "qwen3.6-35b-a3b",
          "displayName": "GenStudio qwen3.6-35b-a3b",
          "contextWindow": 262144,
          "capabilities": {
            "vision": true,
            "thinking": { "modes": ["enabled"], "supportsEffort": false }
          }
        }
      ]
    }
  },
  "security": {
    "auth": { "selectedType": "openai" }
  },
  "model": {
    "name": "genstudio/qwen3.8-max",
    "preferences": {
      "genstudio/qwen3.8-max": { "maxTokens": 32000 }
    }
  }
}

protocol: "openai" 使用 Chat Completions。baseUrl 填写到 /v1 即可,Qwen Code 会追加 /chat/completions。为 qwen3.8-max 显式设置 model.preferences 中的 maxTokens,可以避免请求返回 HTTP 400 和 Range of max_tokens 报错。

警告

请在 apiKey 中直接填写密钥。该文件会保存明文 API Key,请仅允许当前用户读取,避免提交到仓库或分享。在 macOS 或 Linux 上可运行 chmod 600 ~/.qwen/settings.json。

验证模型调用 ​

保存配置后,在项目目录中运行以下命令。--list-models 应列出三个 genstudio/ 模型。第二条命令应输出模型的回答,并以退出码 0 结束。

language-bash
qwen --list-models
qwen --model genstudio/qwen3.6-27b -p "用一句话介绍当前项目的目录结构。"

若出现 Unknown model 或列表中缺少 GenStudio 模型,请检查 providers.genstudio 的 API Key、模型 ID,以及 --model 的服务商 ID 前缀。若请求返回 HTTP 401,请确认 apiKey 中填写的是有效的 GenStudio 通用 API Key。

也可以运行 qwen 进入交互界面。如果出现文件夹信任提示,在确认项目来源后选择 Trust folder。输入 /model 切换模型,输入 /usage 打开会话用量面板。实际 Token 用量和费用以 GenStudio 的用量统计为准。示例中的 capabilities.vision: true 启用图片输入,可在对话中用 @ 引用本地图片。

设置思考模式 ​

在 model.preferences 中按 <服务商 ID>/<模型 ID> 为每个模型设置 reasoning。把以下设置合并到对应模型的现有偏好中,并重启 Qwen Code。

目标对应模型偏好中的配置
关闭 Qwen3.6 的思考将 reasoning.thinking 设为 {"type":"disabled"}
为一次思考设置 Token 预算将 reasoning.thinking 设为 {"type":"enabled","budgetTokens":256},并按任务复杂度调整 budgetTokens
让 Qwen3.6 参考之前轮次的推理内容将 reasoning.preserve 设为 true

通过 Responses 接口使用模型 ​

以下以 deepseek-v4.1-flash-1017 为例配置智算云 GenStudio 通用 LLM API 的 Responses 接口。开始前,先通过 /models 确认当前账号可用此模型。

将下面的 genstudio-responses 条目合并到 ~/.qwen/settings.json 的 providers 中。把 apiKey 替换为 GenStudio 通用 API Key,并按配置 GenStudio 模型中的说明保护该文件。baseUrl 填写到 /v1,Qwen Code 会自动追加 /responses。

language-json
{
  "providers": {
    "genstudio-responses": {
      "displayName": "GenStudio Responses",
      "protocol": "openai-responses",
      "baseUrl": "https://cloud.infini-ai.com/maas/v1",
      "apiKey": "sk-xxxxxxxxxx",
      "models": [
        {
          "model": "deepseek-v4.1-flash-1017",
          "displayName": "GenStudio DeepSeek V4.1 Flash",
          "contextWindow": 1048576
        }
      ]
    }
  }
}

如果只配置 Responses,将 security.auth.selectedType 设为 openai-responses,并将 model.name 设为 genstudio-responses/deepseek-v4.1-flash-1017。已配置前文的 Chat Completions 时,可以使用 --model 临时切换。

注意

使用 GPT 系列模型

通过 /models 查询当前账号可用的模型 ID 和 context_length,并确认目标模型可通过 Responses 调用。将模型条目中的 model 及命令中 genstudio-responses/ 后的模型 ID 替换为目标 ID,并更新 displayName 和 contextWindow。如需设为默认模型,将 model.name 设为 genstudio-responses/<模型 ID>。在 model.preferences 中配置该模型的偏好时,也使用这个完整 ID 作为键名。

如需用 --reasoning-effort 选择档位,在该模型的 capabilities.thinking 中将 modes 设为 ["enabled"],将 supportsEffort 设为 true,并在 supportedEffortLevels 中列出该模型在 Responses 接口支持的档位。

在 macOS 或 Linux 上运行以下命令。Qwen Code 应调用读取工具,并返回 cat 显示的内容。

language-bash
cd "$(mktemp -d)"
printf 'GENSTUDIO-RESPONSES-%s\n' "$(date +%s)" > responses-check.txt
cat responses-check.txt
qwen --model genstudio-responses/deepseek-v4.1-flash-1017 --tools Read \
  -p '用读取工具读取 responses-check.txt,仅回复文件中的一行内容。'

命令退出后,在同一目录运行 qwen --list-sessions,复制刚才的会话 ID。删除测试文件后,将下面的 SESSION_ID 替换为该 ID,再执行恢复命令。模型应从会话历史中返回相同内容。

language-bash
rm responses-check.txt
qwen --resume 'SESSION_ID' --model genstudio-responses/deepseek-v4.1-flash-1017 --tools '' \
  -p '仅回复上一轮从文件读取的那一行内容。'

相关文档 ​