本教程将详细介绍如何将阿里云百炼(DashScope)通义千问 Qwen API 接入 OpenAI Codex。通过配置 config.toml,你可以使用 Qwen 模型来驱动 Codex 的自动化编码和分析任务。

核心参数概览

在开始配置前,请确保你已拥有阿里云百炼账号并获取了 API Key。

  • Base URL: https://dashscope.aliyuncs.com/compatible-mode/v1
  • 环境变量名: DASHSCOPE_API_KEY
  • 推荐模型: qwen-plus (或 qwen-max, qwen-turbo)
  • 配置文件路径: ~/.codex/config.toml

第一步:设置环境变量

为了安全起见,API Key 建议通过环境变量注入,而不是直接硬编码在配置文件中。

#### 1. Windows 系统设置

打开 PowerShell,运行以下命令设置永久系统变量:

``powershell

setx DASHSCOPE_API_KEY "你的真实-API-Key"

`

*注意:设置后需要重启终端或 Codex App 才能生效。*

#### 2. 使用 .env 文件(推荐)

如果你使用 Codex Desktop 或 VS Code 扩展,建议将变量写入 Codex 的专用环境配置文件:

  • 文件路径: C:\Users\<你的用户名>\.codex\.env
  • 内容:
  • `bash

    DASHSCOPE_API_KEY="你的真实-API-Key"

    `

第二步:配置 config.toml

编辑你的 ~/.codex/config.toml 文件。如果文件不存在,请在 .codex 目录下新建一个。

将以下内容添加或修改到文件中:

`toml

设置全局默认模型

model = "qwen-plus"

指定使用的提供商 ID,需与下方定义的 [model_providers.xxx] 一致

model_provider = "dashscope"

定义阿里云百炼提供商

[model_providers.dashscope]

name = "Alibaba DashScope"

必须使用兼容 OpenAI 的 V1 地址

base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"

对应刚才设置的环境变量名

env_key = "DASHSCOPE_API_KEY"

关键配置:指定 Codex 以响应流格式交互

wire_api = "responses"

阿里云百炼不需要 OpenAI 的官方登录态

requires_openai_auth = false

`

第三步:关键字段详细说明

  • base_url: 阿里云百炼提供了 OpenAI 兼容接口。请务必保留 /v1 后缀,但不要在末尾添加 /chat/completions
  • wire_api = "responses": 这是接入国产模型最关键的参数。它告诉 Codex 使用通用的 Responses API 协议,从而兼容非 OpenAI 原生的接口。
  • model: 填入百炼控制台中支持的模型标识符。
  • qwen-plus: 性能与速度平衡(推荐)。
  • qwen-max: 推理能力最强,适合复杂架构分析。
  • qwen-turbo: 速度极快,适合简单的代码生成。

第四步:验证配置

配置完成后,请彻底退出并重启 Codex CLI 或 App。运行以下命令验证连接:

`bash

codex "请介绍一下当前工作区的目录结构,并确认你当前使用的模型名称。不要修改任何文件。"

`

如果遇到问题,请检查:

  1. Base URL: 确保没有多写或少写路径(末尾应为 .../v1)。
  2. 2. API Key: 在终端输入 echo $env:DASHSCOPE_API_KEY (Windows) 确认变量是否已正确读取。

    3. 网络: 确认本机可以正常访问 dashscope.aliyuncs.com

    4. 会话可见性: 如果切换 provider 后看不到旧会话,这是正常现象,Codex 会根据不同的 provider 隔离会话元数据。

    进阶:配置多模型 Profile

    如果你希望在不同任务间切换模型,可以在 config.toml 中定义 profiles

    `toml

    [profiles.qwen-max]

    model = "qwen-max"

    model_provider = "dashscope"

    [profiles.qwen-turbo]

    model = "qwen-turbo"

    model_provider = "dashscope"

    `

    使用时通过 --profile 参数切换:

    `bash

    codex --profile qwen-max "请帮我重构这个复杂的算法模块。"

    ``