Qwen Agent

Qwen-Agent는 Alibaba의 Qwen 모델을 기반으로한 AI 에이전트 프레임워크다. 지시 이행(Instruction Following), 도구 사용(Tool Usage), 계획(Planning), 메모리(Memory) 능력을 활용하여 LLM 애플리케이션을 개발할 수 있도록 설계되었다.

주요 기능

도구 호출 (Tool Calling)

  • 병렬 도구 호출, 다단계(Multi-step) 및 다회차(Multi-turn) 함수 호출 지원
  • 모델이 기본 함수 호출을 지원하지 않더라도 프레임워크 수준에서 파싱 로직 제공

고성능 RAG

  • 하이브리드 RAG와 에이전트 기반 분해 기법
  • 100만 토큰 이상의 방대한 문서 처리 가능

코드 인터프리터

  • 샌드박스 환경(Docker 지원)에서 Python 코드 생성 및 실행
  • 데이터 분석, 복잡한 계산 수행

MCP 지원

  • Model Context Protocol 통합으로 외부 서비스 및 도구와 연동

다양한 모델 지원

  • Qwen 시리즈 (Qwen2.5, QwQ, Qwen-VL)
  • OpenAI 호환 API, vLLM, Ollama 등 로컬 배포 모델

아키텍처

계층형 모듈화 설계

레이어설명
LLM 레이어모델 통신 담당, 추론 및 도구 사용 로직 핵심
도구 레이어웹 검색, 이미지 생성, 계산기 등 개별 기능 단위
에이전트 레이어LLM과 도구, 메모리 간 상호작용 루프 관리
UI 레이어Gradio 기반 웹 데모 기능

코드 구조

qwen_agent/
├── agents/         # 에이전트의 페르소나와 작업 흐름 정의
├── llm/            # DashScope, OpenAI, vLLM 등 모델 인터페이스
├── tools/          # 내장 도구 및 커스텀 도구 기본 클래스
├── memory/         # 대화 맥락 및 장기 기억 관리
├── gui/            # Gradio 기반 인터페이스
└── examples/       # 활용 사례 및 MCP 연동 Cookbook

핵심 컴포넌트

  • Assistant: 범용 에이전트, 다회차 대화와 도구 사용 최적화
  • FnCallAgent: 함수 호출에 특화된 에이전트
  • CodeInterpreter: Python 코드 작성 및 실행
  • BrowserQwen: 웹 서핑 및 정보 요약 에이전트

사용법

설치

pip install -U "qwen-agent[gui,rag,code_interpreter,mcp]"

기본 예제

from qwen_agent.agents import Assistant
from qwen_agent.gui import WebUI
 
agent = Assistant(
    llm={'model': 'qwen-max', 'api_key': 'YOUR_API_KEY'},
    name='MyHelper',
    description='도움이 되는 비서입니다.',
    function_list=['code_interpreter', 'web_search']
)
 
WebUI(agent).run()

관련 링크