Qwen Code 도구
Qwen Code는 모델이 로컬 환경과 상호 작용하고, 정보에 접근하고, 작업을 수행할 수 있도록 내장 도구를 제공합니다. 이 도구들은 CLI의 기능을 확장하여 텍스트 생성을 넘어 다양한 작업을 지원할 수 있게 해줍니다.
Qwen Code 도구 개요
Qwen Code에서 도구(tool)는 모델이 실행을 요청할 수 있는 특정 함수 또는 모듈입니다. 예를 들어, 모델에게 “my_document.txt의 내용을 요약해줘”라고 요청하면, 모델은 해당 파일을 읽어야 한다고 판단하고 read_file 도구 실행을 요청합니다.
핵심 컴포넌트(packages/core)는 이러한 도구를 관리하고, 정의(스키마)를 모델에 제시하고, 요청 시 실행한 후 결과를 모델에 반환하여 사용자 응답으로 처리합니다.
이 도구들은 다음과 같은 기능을 제공합니다:
- 로컬 정보 접근: 도구를 통해 모델이 로컬 파일 시스템에 접근하고, 파일 내용을 읽고, 디렉토리를 나열하는 등의 작업을 수행할 수 있습니다.
- 명령 실행:
run_shell_command와 같은 도구를 사용하여 셸 명령을 실행할 수 있습니다(적절한 안전 조치 및 사용자 확인 포함). - 웹 상호 작용: 도구를 사용하여 URL에서 콘텐츠를 가져올 수 있습니다.
- 작업 수행: 도구를 사용하여 파일을 수정하거나, 새 파일을 작성하거나, 시스템에서 다른 작업을 수행할 수 있습니다(역시 일반적으로 안전 장치가 포함됨).
- 응답의 근거 확보: 도구를 사용하여 실시간 또는 특정 로컬 데이터를 가져옴으로써, 응답을 더 정확하고 관련성 있게 만들 수 있으며, 실제 컨텍스트에 기반할 수 있습니다.
Qwen Code 도구 사용 방법
Qwen Code 도구를 사용하려면 CLI에 프롬프트를 제공하면 됩니다. 과정은 다음과 같습니다:
- CLI에 프롬프트를 제공합니다.
- CLI는 프롬프트를 코어로 전송합니다.
- 코어는 프롬프트와 대화 기록과 함께 사용 가능한 도구 목록과 해당 설명/스키마를 구성된 모델 API로 전송합니다.
- 모델이 요청을 분석합니다. 도구가 필요하다고 판단하면, 응답에 특정 도구와 매개변수를 실행해 달라는 요청이 포함됩니다.
- 코어는 이 도구 요청을 받아 유효성을 검사하고(민감한 작업의 경우 일반적으로 사용자 확인 후) 도구를 실행합니다.
- 도구의 출력이 모델로 다시 전송됩니다.
- 모델은 도구의 출력을 사용하여 최종 답변을 작성하고, 이는 코어를 통해 CLI로 다시 전송되어 사용자에게 표시됩니다.
CLI에서 도구가 호출될 때, 그리고 성공 또는 실패했는지를 나타내는 메시지를 일반적으로 볼 수 있습니다.
보안 및 확인
파일 시스템을 수정하거나 명령을 실행할 수 있는 도구(write_file, edit, run_shell_command)를 비롯한 많은 도구는 안전을 고려하여 설계되었습니다. Qwen Code는 일반적으로 다음과 같이 동작합니다:
- 확인 요구: 잠재적으로 민감한 작업을 실행하기 전에 사용자에게 어떤 작업이 수행될지 표시하며 확인을 요청합니다.
- 샌드박스 활용: 모든 도구는 샌드박스에 의해 적용되는 제한을 받습니다(Qwen Code의 샌드박스 참조). 즉, 샌드박스에서 작동할 때 사용하려는 모든 도구(MCP 서버 포함)는 샌드박스 환경 _내부_에서 사용 가능해야 합니다. 예를 들어,
npx를 통해 MCP 서버를 실행하려면npx실행 파일이 샌드박스의 Docker 이미지 내에 설치되어 있거나sandbox-exec환경에서 사용 가능해야 합니다.
도구가 진행되기 전에 확인 프롬프트를 항상 주의 깊게 검토하는 것이 중요합니다.
Qwen Code 도구에 대해 더 알아보기
Qwen Code의 내장 도구는 다음과 같이 분류할 수 있습니다:
- 파일 시스템 도구: 파일 및 디렉토리와 상호 작용(읽기, 쓰기, 나열, 검색 등).
- 셸 도구 (
run_shell_command): 셸 명령 실행. - 모니터 도구 (
monitor): 백그라운드 작업 알림으로 출력을 스트리밍하는 장기간 실행 셸 명령 실행. - 웹 가져오기 도구 (
web_fetch): URL에서 콘텐츠 검색. - Todo Write 도구 (
todo_write): 코딩 세션 중 구조화된 작업 목록 생성 및 관리. - 에이전트 도구 (
agent): 복잡한 작업을 전문 서브에이전트에 위임. - Exit Plan Mode 도구 (
exit_plan_mode): plan mode를 종료하고 구현 진행.
또한 다음 기능이 포함되어 있습니다:
- MCP 서버: MCP 서버는 모델과 로컬 환경 또는 API와 같은 다른 서비스 간의 브리지 역할을 합니다.
- MCP 사용자 가이드: MCP 서버 구성 및 Qwen Code에서 관리
- MCP를 통한 웹 검색: MCP를 통해 웹 검색 서비스(Bailian, Tavily, GLM)에 연결
- 샌드박스: 샌드박스는 모델과 변경 사항을 환경으로부터 격리하여 잠재적 위험을 줄입니다.
Last updated on