Post

(폐쇄망 LLM 7-6) Qwen-Code 설치

폐쇄망/내부망에서 Qwen-Code CLI 코딩 에이전트를 설치하는 방법. Node.js 패키지를 오프라인으로 설치하고 vLLM 서버와 연동하여 에이전틱 코딩 환경을 구축합니다.

(폐쇄망 LLM 7-6) Qwen-Code 설치

이전 글: Mistral-Vibe 설치

이 글은 망분리 환경 AI 배포 시리즈의 마지막 글입니다.

이번 글의 목표

Mistral-Vibe를 설치했습니다. 이번에는 Alibaba가 공개한 Qwen-Code를 설치해봅시다.

Qwen-Code도 클라이언트 도구입니다. Mistral-Vibe와 마찬가지로 각 사용자의 PC에 설치합니다. 서버에 설치하는 게 아닙니다.


Qwen-Code란?

Qwen-Code는 Alibaba가 Qwen 모델과 함께 공개한 CLI 코딩 에이전트입니다. Claude Code나 Mistral-Vibe와 비슷한 컨셉이고, Node.js 기반이라 npm으로 설치합니다. Qwen 계열 모델들과 호환성이 좋고, tool calling을 지원합니다.


1. vLLM 서버 설정

Qwen 모델로 tool calling을 사용하려면 vLLM 실행 시 --tool-call-parser 옵션이 필요합니다. 개인 컴퓨터(RTX 4060Ti)라서 작은 모델 Qwen3-4B-Instruct-2507-FP8로 테스트했습니다:

1
2
3
4
5
vllm serve /models/Qwen3-4B-Instruct-2507-FP8 \
    --tool-call-parser qwen3_xml \
    --enable-auto-tool-choice \
    --served-model-name qwen3-4b \
    # ... 기타 옵션들

핵심 옵션:

  • --tool-call-parser qwen3_xml: Qwen3 모델의 tool calling 형식을 파싱
  • --enable-auto-tool-choice: 자동 tool 선택 활성화
  • --served-model-name: 클라이언트에서 참조할 모델 이름

2. 인터넷망에서 패키지 준비

인터넷이 되는 PC에서 작업 디렉토리를 만들고 패키지를 다운로드합니다:

1
2
3
4
mkdir C:\airgap-packages\qwen-code
cd C:\airgap-packages\qwen-code
npm init -y
npm install @qwen-code/qwen-code@latest

-g 없이 로컬 설치해야 node_modules 폴더에 모든 의존성이 다운로드됩니다. qwen-code 폴더를 압축해서 망간 자료 전송 시스템으로 폐쇄망에 옮깁니다.


3. 업무망에서 설치

압축 해제 후 npm link로 글로벌 등록합니다:

1
2
cd C:\airgap-packages\qwen-code
npm link

이제 qwen 명령어를 사용할 수 있습니다.


4. 설정 파일 생성

%USERPROFILE%\.qwen\.env 파일을 생성합니다. Windows 기준으로 C:\Users\{사용자명}\.qwen\.env입니다:

OPENAI_API_KEY=not-needed
OPENAI_BASE_URL=http://{vLLM서버IP}:8080/v1
OPENAI_MODEL=qwen3-4b
  • OPENAI_API_KEY: vLLM은 인증이 필요 없으므로 아무 값이나 넣어도 됩니다
  • OPENAI_BASE_URL: vLLM 서버 주소 (포트까지 포함)
  • OPENAI_MODEL: vLLM에서 --served-model-name으로 지정한 모델 이름

5. 실행 확인

프로젝트 디렉토리에서 qwen을 실행합니다:

1
qwen

Qwen-Code 실행 화면 화면 위쪽은 vLLM 로그 창으로 Prefill/Decode 속도가 표시됩니다.

vLLM 서버와 연결되면 성공입니다.


시리즈를 마치며

첫 번째 글에서 설정한 목표를 달성했습니다.

서버

  1. Docker 설치
  2. vllm/vllm-openai:nightly 이미지 설치
  3. open-webui 이미지 설치
  4. LLM 모델 다운로드
  5. 임베딩 모델 다운로드
  6. vLLM으로 LLM 모델 서빙
  7. Open-WebUI를 임베딩 모델과 함께 구동

클라이언트

  • 웹 채팅: Open-WebUI에 접속하면 끝
  • 에이전틱 코딩: 모델에 따라 선택
    • Mistral 계열 → Mistral-Vibe
    • Qwen 계열 → Qwen-Code
    • 기타 → Claude Code + claude-code-router

시리즈 목차

전체 목차는 AI 활용에서 확인하실 수 있습니다.

This post is licensed under CC BY 4.0 by the author.