跳至主要内容

Qwen Code CLI:示例指南

了解如何设置并使用 Qwen Code CLI 完成具备代理能力的编码任务,包括代码库探索、重构等。
· 12分钟 阅读

使用 AI 探索

阿里巴巴发布了多种尺寸的代理式编码模型 Qwen3-Coder,最强版本为 Qwen3-Coder-480B-A35B-Instruct。与这些模型同时开源的还有 Qwen Code CLI,一款用于代理式编码的命令行工具。

Qwen Code CLI 基于 Gemini CLI 分叉而来,并针对在代理式编码任务中配合 Qwen3-Coder 模型进行了适配。

在这篇博客中,我将逐步讲解如何设置并使用 Qwen Code CLI。我们将用它来探索代码库、进行代码重构等。

我们通过每周五推出的 The Median 免费通讯为读者带来最新的 AI 动态,梳理本周重点新闻。订阅后,每周几分钟即可掌握要点:

什么是 Qwen Code?

Qwen Code 是一个为代理式编码任务设计的命令行界面。它使用为 Qwen3-Coder 优化的定制提示词和函数调用协议。借助 Qwen Code,您可以:

  • 导航并理解复杂的代码库
  • 发现并修复编码问题
  • 生成代码和单元测试
  • 创建文档和流程图

Qwen 3 Coder

来源:QwenLM

现在,让我们来设置 Qwen3-Coder,并用它来探索并修复我最近参与的一个开源项目中的问题。

步骤 1:先决条件

在设置 Qwen Code 之前,请确保已安装 Node.js(版本 20 或更高)。您可以运行以下命令安装 Node.js:

curl -qL https://www.npmjs.com/install.sh | sh

然后,运行以下命令验证安装:

node -v
npm -v

步骤 2:设置 Qwen Code

本步骤将介绍在设备上安装和认证 Qwen Code 的多种方式。

步骤 2.1:通过 npm 安装

安装好 Node.js 后,全局安装 Qwen Code,并检查安装版本:

npm install -g @qwen-code/qwen-code
qwen --version

Installation via npm

上述代码使用 Node.js 的包管理器全局安装 Qwen Code CLI。安装完成后,使用 qwen --version 命令检查并显示已安装的 Qwen CLI 版本,以确认其已正确配置且可用。

让我们运行 Qwen Code:

qwen

Setting up Qwen code

按回车选择默认主题并应用到用户设置。接下来,需要完成身份验证配置。

步骤 2.2:从源码安装(可选)

或者,您也可以直接从其 GitHub 仓库安装 Qwen Code:

git clone https://github.com/QwenLM/qwen-code.git
cd qwen-code
npm install
npm install -g .

此代码使用 git clone 将 Qwen Code CLI 的 GitHub 仓库克隆到本地。随后进入克隆目录并安装仓库 package.json 中定义的所有项目依赖。

注意: -g 表示全局可用,而不仅限于本地项目目录。

步骤 2.3:认证

CLI 需要 Qwen 3 Coder 的 API 密钥用于认证。官方文档建议:如果您在中国大陆,可前往 https://bailian.console.aliyun.com/ 申请 API 密钥;若不在中国大陆,请访问 https://modelstudio.console.alibabacloud.com/ 申请 API 密钥。

但如果您在印度,这些选项不可用。您可以选择使用 OpenRouter,该平台为多种模型提供 API 访问。以下是在其中为 Qwen 3 Coder 设置 API Key 的步骤:

  • 在 https://openrouter.ai/ 注册账号
  • 进入 Models 选项卡并搜索 “Qwen 3 Coder”。若需求少于 128k tokens 可选择免费版,否则选择付费版($0.302/百万输入与输出 tokens)。

Qwen Coder on OpenRouter

  • 向下滚动并点击 Create API Key。填写密钥名称和信用额度(可选),点击 Create。保存该 API 密钥以备后用。

Create a key

  • 接着进入 Credits 选项卡,添加您的银行卡信息。也可通过 Amazon Pay 支付。本次演示我充值了约 $15,已足够使用。

Add credits on openrouter to use with qwen code

步骤 2.4:配置环境

现在可以在 CLI 中使用该 API 密钥了。回到步骤 2.1 中的 CLI,按回车。

Configure environment

然后依次输入上一步的 API Key、基础 URL 和模型名称,如下所示:

API_KEY >Qwen_API_KEY_FROM_OPENROUTER
BASE_URL >https://openrouter.ai/api/v1
MODEL >qwen/qwen3-coder

您也可以选择将这些变量设置为环境变量。打开一个新的终端并逐行运行:

export OPENAI_API_KEY="Qwen_API_KEY_FROM_OPENROUTER"
export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
export OPENAI_MODEL="qwen/qwen3-coder"

如果您使用的是阿里云的 API Key,请按如下方式设置环境变量:

export OPENAI_API_KEY="your_api_key_here"
export OPENAI_BASE_URL="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
export OPENAI_MODEL="qwen3-coder-plus"

设置好环境变量后,按回车即可开始在 CLI 中进行实验。

Final set up for qwen code

步骤 3:体验 Qwen Code CLI

本节将演示我如何使用 Qwen Code CLI 与一个实际托管在 GitHub 上的项目进行交互。只需少量提示词,Qwen 就帮助我理解代码库、优化函数、添加新能力、自动化测试并维护文档。

通过精心设计的提示词,我能够:

  • 分析代码库架构
  • 针对内存效率优化特定函数
  • 自动生成并运行单元测试
  • 通过集成新组件扩展功能
  • 将版本化更新推送至 GitHub
  • 生成模块交互的可视化流程图
  • 以结构化变更日志格式记录所有更改

下面逐一展开。

探索并理解代码库

首先,让我们请 Qwen Code 探索并解释代码库的架构。但在此之前,先从 GitHub 克隆该仓库,并使用以下命令进入项目目录:

git clone https://github.com/AashiDutt/Voxtral_with_vLLM.git
cd Voxtral_with_vLLM

我用来理解克隆仓库的提示词如下:

提示:解释此代码库的架构。

Exploring and understanding the codebase using Qwen Code

Qwen CLI 扫描了 app.py、config.py、requirements.txt 以及一个 Colab 笔记本等文件,并返回了清晰的项目结构拆解及其关键模块的高层概览,免去我逐个打开阅读文件的时间。

代码重构与优化

理解架构后,我使用 Qwen Code CLI 分析了代码库中的潜在改进点。

提示:这个模块的哪些部分可以优化?

Code Refactoring & Optimization

Code Refactoring & Optimization

Code Refactoring & Optimization

Qwen 返回了涵盖多个维度的结构化建议:性能、内存效率、可维护性和用户体验。它不仅指出问题,还提出了可落地的代码修改方案。

遵循这些建议,我得以:

  • 降低内存与 CPU 占用
  • 强化错误处理
  • 改进用户反馈
  • 简化代码结构,便于后续开发

下一步我将展示如何应用其中一项优化(内存使用)并用 Qwen CLI 进行测试。

实施并测试代码优化

确定多处优化点后,我决定采用影响最大的一条建议:改进 transcribe_audio 函数的内存使用。因此,我让 Qwen CLI 针对下面的特定文件进行修改:

提示:将内存使用优化应用到 @app.py 中的 transcribe_audio 函数

Implementing and testing the code optimization

Qwen 仅聚焦于 app.py,使用 @ 语法进行范围限定的编辑。当您希望将更改与代码库其他部分隔离时,这种精确定位非常有用。CLI 重写了该函数,以:

  1. 以流式方式处理音频分片,而不是一次性将其全部加载到内存
  2. 将进度条刷新频率降低为每处理 10 个分片再更新一次
  3. 无需预先计算分片总数

Implementing and testing the code optimization

它还自动更新了 CHANGELOG.md 文件,在新的版本标签下记录了这一改进。

Implementing and testing the code optimization

生成并运行测试

在对 transcribe_audio 函数完成内存优化后,我使用 Qwen Coder CLI 自动生成并验证了新实现的单元测试。

提示:为最近的更改编写一个 pytest 单元测试。

Qwen 首先扫描项目结构,检查是否存在测试目录以及 requirements.txt 中是否包含 pytest。由于两者均缺失,它:

  • 将 pytest>=7.0.0 添加到 requirements.txt
  • 创建新的 tests/ 目录
  • 生成测试模块:tests/test_transcribe_audio.py

Generating and Running Tests

Qwen 运行了测试,并确认四项测试全部通过。为保持清晰的版本历史,Qwen 还在 CHANGELOG.md 的 v0.2.0 版本下追加了新的 “Fixed” 条目。

Generating and Running Tests

只需一个提示词,Qwen CLI 就自动生成测试、识别边界情况、帮助修复逻辑缺陷,并通过严格校验确保代码正确性。

实现新组件

为扩展 Voxtral 音频助手(代码库)的功能,我让 Qwen Code CLI 集成对 YouTube 视频的支持。

提示:在现有示例的基础上扩展以支持 YouTube 视频。当用户提供一个 YouTube URL 时,从视频中提取音频并传给 Voxtral 模型进行处理。保持其余流水线与组件不变。

Original UI

目标是允许用户在上传音频文件之外,输入一个 YouTube URL。一旦提供,应用应自动从视频中提取音频,并像常规文件上传一样进行处理,而不修改下游的转写或问答流水线。

Implementing a New Component

Qwen 扫描了 app.py、config.py 和 requirements.txt 以识别所需更新。它识别出需要 yt-dlp 与 pydub,而这两者已在列表中。

New UI

New UI

最终新增了一个 UI 组件,允许用户输入 YouTube URL。提交后,应用会提取音频,并通过现有流水线进行转写。不过,仅对 app.py 所做的更改仍不足以让整个代码无错运行。

将更改推送至 GitHub

在完成并测试 transcribe_audio 的优化后,我使用 CLI 对更改进行版本化,并推送到 GitHub。

提示: 在 GitHub 上创建一个新分支,并将更新的代码作为第二个版本提交并推送,提交信息为:"v2: Optimized transcribe_audio for memory usage"。

Pushing changes to GitHub

Qwen 使用 WebFlow 工具(用于比较本地与 GitHub 托管文件)自动化了完整的 Git 流程。CLI 可一次性完成从创建分支到提交、推送的多项任务,无需手动操作。

Qwen 通过其 WebFetch 工具:

  • 创建新分支
  • 暂存并提交更改
  • 推送提交
  • 验证远程更新

以上全部通过一次提示完成。更新版本(v2-optimization)被安全地隔离,并可通过拉取请求进行评审。该 GitHub 集成让改进跟踪、协作更新与维护清晰的版本历史变得更加容易。

以下是更新后新分支的样子:

updated branch

流程图生成

为可视化 Voxtral 音频助手中不同模块的交互方式,我让 Qwen Code CLI:

提示:创建一张展示模块交互的流程图。

Flowchart Generation

Qwen 生成了详细的 Mermaid.js 流程图,展示从文件上传或 YouTube 输入、经由 Voxtral 模型处理到最终输出的完整流水线。它甚至尝试将该图表嵌入到项目的 README.md 中。

生成文档

在完成代码优化后,我请 Qwen Code CLI 以结构化、专业的格式帮助记录这些更改。

提示: 用 Markdown 总结所做更改。按 “v0.2.0” 下的变更日志条目格式编写。

Generating Documentation

Qwen 使用 WriteFile 工具将条目直接追加到 CHANGELOG.md 的 v0.2.0 下,并遵循语义化版本规范。一旦启动了变更日志任务,Qwen 会记住该任务并避免重复更新,从而节省 tokens 并防止重复调用工具。

总结

总之,本教程展示了如何使用 Qwen Code CLI:

  • 理解并阐释代码库架构
  • 应用有针对性的优化与改进
  • 以最小开销生成并运行单元测试
  • 通过新增组件(如 YouTube 集成)扩展功能
  • 自动化版本控制与 GitHub 流程
  • 可视化项目流程并维护清晰文档

Qwen Code CLI 大幅降低了理解、调试与扩展代码库的人工成本。尽管它在很大程度上以 Gemini CLI 为基础,Qwen Code 仍针对 Qwen3-Coder 模型引入了增强功能,比如改进的解析器与工具支持。

令我印象最深的是它在任务间保持上下文的能力。一旦给它一个变更日志任务或需要监控的文件,Qwen 就会记住并避免重复。同时,它通过 @file.py 等语法限定修改范围,使其在大型项目中也能安全使用。

如果您在处理复杂的 Python 项目或维护开源仓库,这款工具能为您节省大量样板性工作,让工作流更智能、更具迭代性。

Aashi Dutt

作者

Aashi Dutt

我是一名 Google Developers 机器学习(生成式 AI)领域的专家、Kaggle 三项专家,以及 Women Techmakers 大使,拥有 3 年以上的技术从业经验。2020 年我共同创办了一家健康科技初创公司,目前在佐治亚理工学院攻读计算机科学硕士,专攻机器学习。

主题