Courses
Alibaba đã ra mắt Qwen3-Coder, một mô hình lập trình agentic với nhiều kích thước, trong đó biến thể mạnh nhất là Qwen3-Coder-480B-A35B-Instruct. Song song với đó, Alibaba cũng mở mã nguồn Qwen Code CLI, một công cụ dòng lệnh dành cho lập trình agentic.
Qwen Code CLI được fork từ Gemini CLI và đã được điều chỉnh riêng cho việc sử dụng với mô hình Qwen3-Coder trong các tác vụ lập trình agentic.
Trong bài viết này, tôi sẽ giải thích từng bước cách thiết lập và sử dụng Qwen Code CLI. Chúng ta sẽ dùng nó để khám phá codebase, thực hiện tái cấu trúc mã và nhiều hơn thế.
Chúng tôi luôn cập nhật cho độc giả những tin tức AI mới nhất qua The Median, bản tin miễn phí vào thứ Sáu tóm lược các câu chuyện đáng chú ý trong tuần. Đăng ký để luôn bắt kịp chỉ trong vài phút mỗi tuần:
Qwen Code là gì?
Qwen Code là một giao diện dòng lệnh được thiết kế để hỗ trợ các tác vụ lập trình agentic. Nó sử dụng các prompt tùy biến và giao thức gọi hàm được tối ưu cho Qwen3-Coder. Với Qwen Code, bạn có thể:
- Điều hướng và hiểu các codebase phức tạp
- Phát hiện và sửa lỗi lập trình
- Tạo mã và bài kiểm thử đơn vị
- Tạo tài liệu và sơ đồ luồng

Nguồn: QwenLM
Bây giờ, hãy thiết lập Qwen3-Coder và dùng nó để khám phá cũng như khắc phục vấn đề cho một dự án mã nguồn mở mà tôi vừa tham gia gần đây.
Bước 1: Điều kiện tiên quyết
Trước khi thiết lập Qwen Code, hãy đảm bảo bạn đã cài Node.js (phiên bản 20 trở lên). Bạn có thể cài Node.js bằng cách chạy:
curl -qL https://www.npmjs.com/install.sh | sh
Sau đó, xác minh cài đặt của bạn bằng cách chạy các lệnh sau:
node -v
npm -v
Bước 2: Thiết lập Qwen Code
Ở bước này, chúng ta sẽ xem các lựa chọn cài đặt và xác thực Qwen Code trên thiết bị.
Bước 2.1: Cài đặt qua npm
Khi đã cài Node.js, hãy thiết lập Qwen Code toàn cục và kiểm tra phiên bản cài đặt:
npm install -g @qwen-code/qwen-code
qwen --version

Đoạn lệnh này cài Qwen Code CLI ở phạm vi toàn hệ thống bằng trình quản lý gói của Node.js. Sau khi cài đặt, lệnh qwen --version sẽ kiểm tra và hiển thị phiên bản Qwen CLI đã cài để xác minh rằng công cụ được thiết lập đúng và sẵn sàng sử dụng.
Hãy chạy Qwen Code:
qwen

Nhấn Enter để chọn chủ đề mặc định và áp dụng vào cài đặt người dùng. Tiếp theo, chúng ta cần thiết lập xác thực.
Bước 2.2: Cài đặt từ mã nguồn (Tùy chọn)
Ngoài ra, bạn có thể cài Qwen Code trực tiếp từ kho GitHub của họ:
git clone https://github.com/QwenLM/qwen-code.git
cd qwen-code
npm install
npm install -g .
Đoạn lệnh này clone kho GitHub của Qwen Code CLI về máy cục bộ bằng lệnh git clone. Sau đó, chúng ta đi vào thư mục vừa clone và cài mọi phụ thuộc của dự án được chỉ định trong package.json của kho.
Lưu ý: -g nghĩa là gói khả dụng trên toàn hệ thống, không chỉ trong thư mục dự án hiện tại.
Bước 2.3: Xác thực
CLI yêu cầu khóa API Qwen 3 Coder để xác thực. Tài liệu chính thức gợi ý bạn có thể đăng ký khóa API tại https://bailian.console.aliyun.com/ (nếu bạn ở Trung Quốc đại lục). Nếu bạn không ở Trung Quốc đại lục, hãy truy cập https://modelstudio.console.alibabacloud.com/ để đăng ký khóa API.
Tuy nhiên, nếu bạn ở Ấn Độ, các lựa chọn này không khả dụng. Thay vào đó, bạn có thể dùng OpenRouter, dịch vụ cung cấp cho người dùng quyền truy cập nhiều khóa API cho nhiều mô hình. Dưới đây là các bước để thiết lập API Key cho Qwen 3 Coder với dịch vụ này:
- Tạo tài khoản tại https://openrouter.ai/
- Đi đến thẻ Models và tìm “Qwen 3 Coder”. Bạn có thể chọn bản miễn phí nếu cần dưới 128k token, nếu không hãy chọn bản trả phí ($0,302/triệu token đầu vào và đầu ra).

- Kéo xuống và nhấp Create API Key. Điền tên khóa và hạn mức tín dụng (tùy chọn), rồi nhấp Create. Lưu khóa API này để dùng sau.

- Tiếp theo, chuyển đến thẻ Credits và thêm thông tin thẻ hoặc ngân hàng của bạn. Bạn cũng có thể thanh toán qua Amazon Pay. Với bản demo này, tôi nạp khoảng $15, như vậy là đủ.

Bước 2.4: Cấu hình môi trường
Giờ đây chúng ta có thể dùng khóa API trong CLI. Quay lại CLI ở bước 2.1 và nhấn Enter.

Sau đó, nhập khóa API từ bước trước, tiếp theo là base URL và tên mô hình như dưới đây:
API_KEY >Qwen_API_KEY_FROM_OPENROUTER
BASE_URL >https://openrouter.ai/api/v1
MODEL >qwen/qwen3-coder
Tùy chọn, bạn cũng có thể thiết lập các biến này dưới dạng biến môi trường. Mở một terminal mới và chạy tuần tự từng dòng sau.
export OPENAI_API_KEY="Qwen_API_KEY_FROM_OPENROUTER"
export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
export OPENAI_MODEL="qwen/qwen3-coder"
Nếu bạn dùng khóa API từ Alibaba Cloud, hãy thiết lập biến môi trường như sau:
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"
Khi đã thiết lập các biến môi trường này, nhấn Enter và bạn có thể bắt đầu thử nghiệm với CLI.
Bước 3: Thử nghiệm Qwen Code CLI
Trong phần này, tôi sẽ hướng dẫn cách tôi dùng Qwen Code CLI để tương tác với một dự án thực tế trên GitHub. Chỉ với vài prompt, Qwen đã giúp tôi hiểu codebase, tối ưu hàm, bổ sung tính năng mới, tự động hóa kiểm thử và duy trì tài liệu.
Nhờ các prompt được soạn thảo cẩn thận, tôi đã có thể:
- Phân tích kiến trúc codebase
- Tối ưu các hàm cụ thể để tiết kiệm bộ nhớ
- Tự động tạo và chạy kiểm thử đơn vị
- Mở rộng chức năng bằng cách tích hợp thành phần mới
- Đẩy các cập nhật theo phiên bản lên GitHub
- Tạo sơ đồ luồng trực quan về tương tác giữa các module
- Ghi lại mọi thay đổi theo định dạng changelog có cấu trúc
Hãy đi sâu vào từng bước.
Khám phá và hiểu codebase
Bắt đầu bằng cách yêu cầu Qwen Code khám phá và giải thích kiến trúc của codebase. Trước tiên, hãy clone kho từ GitHub và đi đến thư mục dự án bằng lệnh sau:
git clone https://github.com/AashiDutt/Voxtral_with_vLLM.git
cd Voxtral_with_vLLM
Đây là prompt tôi dùng để hiểu kho vừa clone:
Prompt: Giải thích kiến trúc của codebase này.

Qwen CLI đã quét các tệp như app.py, config.py, requirements.txt và một notebook Colab. Sau đó, công cụ trả về phần phân tích rõ ràng về cấu trúc dự án cùng tóm tắt cấp cao các module chính, giúp tôi không phải mở và đọc từng tệp thủ công.
Tái cấu trúc và tối ưu mã
Sau khi hiểu kiến trúc, tôi dùng Qwen Code CLI để phân tích các khu vực có thể cải thiện trong codebase.
Prompt: Những phần nào của module này có thể tối ưu?



Qwen đưa ra danh sách đề xuất có cấu trúc trên nhiều khía cạnh: hiệu năng, hiệu quả bộ nhớ, khả năng bảo trì và trải nghiệm người dùng. Công cụ không chỉ chỉ ra vấn đề mà còn đề xuất các thay đổi mã có thể hành động.
Làm theo hướng dẫn này, tôi có thể:
- Giảm sử dụng bộ nhớ và CPU
- Tăng cường xử lý lỗi
- Cải thiện phản hồi cho người dùng
- Đơn giản hóa cấu trúc mã cho phát triển về sau
Ở bước tiếp theo, tôi sẽ cho thấy cách tôi áp dụng một tối ưu hóa (bộ nhớ) và kiểm thử nó ngay bằng Qwen CLI.
Triển khai và kiểm thử tối ưu hóa mã
Sau khi xác định nhiều khu vực cần tối ưu, tôi áp dụng đề xuất có tác động lớn: cải thiện sử dụng bộ nhớ trong hàm transcribe_audio. Vì vậy, tôi yêu cầu Qwen CLI nhắm mục tiêu tệp cụ thể như dưới đây:
Prompt: Áp dụng tối ưu hóa sử dụng bộ nhớ cho hàm transcribe_audio trong @app.py
Qwen chỉ tập trung vào app.py bằng cú pháp @ để giới hạn phạm vi chỉnh sửa. Cách nhắm mục tiêu chính xác này hữu ích khi bạn muốn thực hiện thay đổi tách biệt, không ảnh hưởng đến các phần không liên quan của codebase. CLI đã viết lại hàm để:
- Stream và xử lý các đoạn âm thanh theo lô thay vì nạp toàn bộ vào bộ nhớ
- Giảm số lần cập nhật giao diện bằng cách làm mới thanh tiến trình mỗi 10 lô
- Không cần tính trước tổng số lô
Công cụ cũng tự động cập nhật tệp CHANGELOG.md để phản ánh cải tiến này dưới một thẻ phiên bản mới.
Tạo và chạy kiểm thử
Sau khi áp dụng tối ưu hóa sử dụng bộ nhớ cho hàm transcribe_audio, tôi dùng Qwen Coder CLI để tự động tạo và xác thực các bài kiểm thử đơn vị cho phần triển khai mới.
Prompt: Viết kiểm thử đơn vị pytest cho các thay đổi gần đây.
Qwen bắt đầu bằng cách quét cấu trúc dự án để kiểm tra xem có thư mục test không và liệu pytest đã được liệt kê trong requirements.txt chưa. Vì cả hai đều thiếu, công cụ đã:
- Thêm
pytest>=7.0.0vàorequirements.txt - Tạo thư mục mới
tests/ - Tạo module kiểm thử:
tests/test_transcribe_audio.py
Qwen đã chạy kiểm thử và xác nhận cả bốn bài đều vượt qua. Để duy trì lịch sử phiên bản rõ ràng, Qwen cũng bổ sung mục "Fixed" mới vào CHANGELOG.md dưới phiên bản v0.2.0.

Chỉ với một prompt, Qwen CLI đã tự động tạo kiểm thử, xác định các trường hợp biên, hỗ trợ sửa lỗi logic và đảm bảo tính đúng đắn của mã qua xác thực kỹ lưỡng.
Triển khai một thành phần mới
Để mở rộng chức năng của Voxtral Audio Assistant (codebase), tôi đã yêu cầu Qwen Code CLI tích hợp hỗ trợ video YouTube.
Prompt: Mở rộng ví dụ hiện tại để hỗ trợ video YouTube. Khi người dùng cung cấp URL YouTube, hãy trích xuất âm thanh từ video và chuyển nó đến mô hình Voxtral để xử lý. Giữ nguyên các phần còn lại của pipeline và các thành phần.

Mục tiêu là cho phép người dùng nhập URL YouTube bên cạnh việc tải tệp âm thanh. Khi được cung cấp, ứng dụng sẽ tự động trích xuất âm thanh từ video và xử lý tương tự như tải tệp, mà không thay đổi pipeline phía sau cho phiên âm hay H&D.

Qwen đã quét app.py, config.py và requirements.txt để xác định các cập nhật cần thiết. Công cụ nhận ra cần yt-dlp và pydub, cả hai đều đã được liệt kê.


Kết quả là một thành phần giao diện mới được thêm vào, cho phép người dùng nhập URL YouTube. Khi gửi, ứng dụng sẽ trích xuất âm thanh và đưa qua pipeline hiện có để phiên âm. Tuy nhiên, các thay đổi trong app.py vẫn chưa đủ để chạy toàn bộ mã mà không gặp lỗi.
Đẩy thay đổi lên GitHub
Khi tối ưu hóa transcribe_audio hoàn tất và đã kiểm thử, tôi dùng CLI để gắn phiên bản và đẩy thay đổi lên GitHub.
Prompt: Tạo một nhánh mới trên GitHub và commit, push mã cập nhật như phiên bản thứ hai với thông điệp: "v2: Optimized transcribe_audio for memory usage".

Qwen đã tự động hóa toàn bộ luồng Git bằng công cụ WebFlow giúp so sánh tệp cục bộ và tệp trên GitHub. CLI có thể thực hiện nhiều tác vụ từ tạo nhánh, commit đến push mà không cần thao tác thủ công.
Qwen đã dùng công cụ WebFetch để:
- Tạo nhánh mới
- Stage và commit thay đổi
- Push commit
- Xác minh cập nhật trên remote
Tất cả chỉ với một prompt. Phiên bản cập nhật (v2-optimization) được tách biệt an toàn và sẵn sàng để review qua pull request. Tích hợp GitHub giúp dễ dàng theo dõi cải tiến, cộng tác cập nhật và duy trì lịch sử phiên bản sạch sẽ.
Đây là giao diện nhánh mới đã cập nhật:

Tạo sơ đồ luồng
Để trực quan hóa cách các module trong Voxtral Audio Assistant tương tác, tôi yêu cầu Qwen Code CLI:
Prompt: Tạo sơ đồ luồng minh họa tương tác giữa các module.

Qwen tạo một sơ đồ Mermaid.js chi tiết hiển thị toàn bộ pipeline, từ tải tệp hoặc đầu vào YouTube, đến xử lý qua mô hình Voxtral, cho tới đầu ra cuối. Công cụ thậm chí còn cố gắng nhúng sơ đồ vào README.md của dự án.
Tạo tài liệu
Sau khi hoàn tất tối ưu hóa mã, tôi nhờ Qwen Code CLI hỗ trợ ghi lại thay đổi theo định dạng chuyên nghiệp, có cấu trúc.
Prompt: Viết bản tóm tắt Markdown về các thay đổi đã thực hiện. Định dạng như một mục changelog dưới "v0.2.0".

Qwen dùng công cụ WriteFile để ghi trực tiếp mục này vào CHANGELOG.md dưới v0.2.0, tuân theo thực hành tốt về đánh số phiên bản ngữ nghĩa. Khi một tác vụ changelog được khởi tạo, Qwen sẽ ghi nhớ và tránh cập nhật trùng lặp, nhờ đó tiết kiệm token và ngăn gọi công cụ lặp lại.
Kết luận
Tóm lại, hướng dẫn này cho thấy Qwen Code CLI có thể được dùng để:
- Hiểu và giải thích kiến trúc codebase
- Áp dụng các tối ưu hóa và cải tiến có mục tiêu
- Tạo và chạy kiểm thử đơn vị với chi phí tối thiểu
- Mở rộng chức năng qua các thành phần mới như tích hợp YouTube
- Tự động hóa kiểm soát phiên bản và quy trình GitHub
- Trực quan hóa luồng dự án và duy trì tài liệu sạch
Qwen Code CLI giúp giảm đáng kể nỗ lực thủ công khi tìm hiểu, gỡ lỗi và mở rộng codebase. Dù dựa nhiều trên Gemini CLI làm nền tảng, Qwen Code bổ sung các cải tiến cho các mô hình Qwen3-Coder, như trình phân tích tốt hơn và hỗ trợ công cụ nâng cao.
Điều khiến tôi ấn tượng nhất là khả năng duy trì ngữ cảnh xuyên suốt các tác vụ. Khi bạn giao cho nó một tác vụ changelog hoặc một tệp cần theo dõi, Qwen sẽ ghi nhớ và tránh lặp lại. Công cụ cũng giới hạn phạm vi thay đổi bằng cú pháp như @file.py, giúp an toàn khi dùng trong các dự án lớn.
Nếu bạn làm việc với các dự án Python phức tạp hoặc duy trì kho mã nguồn mở, công cụ này có thể giúp tiết kiệm hàng giờ cho các tác vụ lặp lại và làm quy trình của bạn thông minh, lặp tiến hơn.
Tôi là Chuyên gia Google Developers trong lĩnh vực ML (Gen AI), Chuyên gia Kaggle 3x và Đại sứ Women Techmakers với hơn 3 năm kinh nghiệm trong ngành công nghệ. Tôi đồng sáng lập một startup công nghệ y tế vào năm 2020 và hiện đang theo học thạc sĩ khoa học máy tính tại Georgia Tech, chuyên sâu về học máy.





