Qwen 3.5 도구 호출 에이전트 사용 개선: 서버 상태 및 클라이언트 측 해결 방법

✍️ OpenClawRadar📅 게시일: April 15, 2026🔗 Source
Qwen 3.5 도구 호출 에이전트 사용 개선: 서버 상태 및 클라이언트 측 해결 방법
Ad

Qwen 3.5 에이전트 환경에서의 도구 호출 버그

코딩 에이전트나 함수 호출 루프와 같은 에이전트 환경에서 Qwen 3.5 모델을 실행할 때, 네 가지 특정 버그로 인해 도구 호출이 완전히 실패할 수 있습니다.

네 가지 핵심 버그

  • XML 도구 호출이 일반 텍스트로 유출됨: Qwen 3.5는 도구 호출을 XML 형식(예: <function=bash><parameter=command>ls</parameter></function>)으로 출력합니다. 서버가 이를 파싱하지 못할 때—특히 텍스트가 XML 앞에 있거나 사고 기능이 활성화된 경우—도구 호출이 finish_reason: stop과 함께 원시 텍스트로 도착하여 에이전트가 실행하지 못합니다.
  • <think> 태그가 텍스트로 유출되어 컨텍스트를 오염시킴: llama.cpp는 enable_thinking: false 설정과 관계없이 내부적으로 thinking=1을 강제 적용하여, 태그가 여러 턴에 걸쳐 누적되고 다중 턴 세션을 파괴합니다.
  • 잘못된 finish_reason: 서버가 도구 호출이 존재할 때 "stop"을 전송하여 에이전트가 이를 최종 응답으로 처리하게 합니다.
  • 비표준 finish_reason: 일부 서버는 "eos_token", "", 또는 null을 반환하여, 대부분의 프레임워크가 도구 호출 존재 여부를 확인하기 전에 알 수 없는 값으로 인해 충돌합니다.

서버 상태 (2026년 4월)

원본은 주요 추론 서버에 대한 상세 상태 표를 제공합니다:

  • LM Studio 0.4.9: XML 파싱을 위한 최고의 로컬 옵션(v0.4.7에서 수정됨), 사고 유출 처리 개선, 일반적으로 정확한 finish_reason.
  • vLLM 0.19.0: --tool-call-parser qwen3_coder 플래그와 함께 작동, 스트리밍 버그 존재, 사고 유출 수정됨, 일반적으로 정확한 finish_reason.
  • Ollama 0.20.2: 닫히지 않은 </think> 버그 수정 이후 개선됨, XML 파싱에서 여전히 불안정, 때때로 잘못된 finish_reason.
  • llama.cpp b8664: 파서가 존재하지만 사고 기능이 활성화된 경우 실패, 사고 유출 고장, 파서 실패 시 잘못된 finish_reason.
Ad

권장 솔루션

도구 인수에서 |items 필터 실패와 같은 알려진 문제가 있는 기본 Qwen 3.5 Jinja 템플릿 대신 Unsloth GGUFs를 사용하세요. Unsloth는 21개의 템플릿 수정 사항을 포함합니다.

서버가 놓친 부분을 포착하는 세 가지 작은 함수로 클라이언트 측 안전망을 추가하세요. 원본은 첫 번째 함수를 제공합니다:

import re, json, uuid

1. 텍스트 콘텐츠에서 Qwen XML 도구 호출 파싱

def parse_qwen_xml_tools(text): results = [] for m in re.finditer(r'<function=([\w.-]+)>([\s\S]?)</function>', text): args = {} for p in re.finditer(r'<parameter=([\w.-]+)>([\s\S]?)</parameter>', m.group(2)): k, v = p.group(1).strip(), p.group(2).strip() try: v = json.loads(v) except: pass args[k] = v

이 함수는 서버가 XML을 제대로 파싱하지 못할 때 텍스트 콘텐츠에서 도구 호출을 추출하여, 에이전트 워크플로우를 위한 대체 메커니즘을 제공합니다.

📖 전체 원본 읽기: r/LocalLLaMA

Ad

👀 See Also

자체 호스팅 오픈클로 도커에서 '지원되지 않는 탐색' 및 브라우저 플러그인 오류 수정
Guides

자체 호스팅 오픈클로 도커에서 '지원되지 않는 탐색' 및 브라우저 플러그인 오류 수정

Hostinger와 같은 VPS에서 Docker로 OpenClaw를 자체 호스팅할 때 발생하는 EACCES 권한 오류, Playwright 누락, Chromium 바이너리 문제를 단계별로 해결하는 방법입니다.

OpenClawRadar
AWS에서 Claude Code로 월 0.01달러에 서버리스 AI 에이전트 플랫폼 구축하기
Guides

AWS에서 Claude Code로 월 0.01달러에 서버리스 AI 에이전트 플랫폼 구축하기

한 개발자가 Claude Code를 사용하여 약 29시간 동안 작업하여 월 약 $0.01에 AWS 서버리스 플랫폼에서 실행되는 완전한 AI 에이전트를 구축했습니다. 이 과정에서 NAT Gateway($32/월) 및 ALB($18/월)와 같은 고가의 구성 요소를 제거했습니다. 이 프로젝트에는 233개의 단위 테스트, 35개의 E2E 테스트가 포함되어 있으며, 단일 cdk deploy 명령으로 배포됩니다.

OpenClawRadar
🦀
Guides

AI 에이전트로 OpenClaw 업그레이드 자동화: 현장 검증된 플레이북

한 개발자가 Hermes AI 에이전트를 훈련시켜 OpenClaw 업그레이드를 처리하는 방법을 공유합니다. 몇 시간이 걸리던 힘든 마이그레이션을 '플레이북 실행, 알려진 문제 두 개 해결'로 단축했습니다.

OpenClawRadar
클로드 코워크를 위한 커스텀 스킬 제작: 모범 사례와 형식
Guides

클로드 코워크를 위한 커스텀 스킬 제작: 모범 사례와 형식

Claude Co-Work의 새로운 기능과 최근 스킬 업데이트를 통해 개발자들은 플랫폼 내 워크플로우를 향상시키기 위한 맞춤형 스킬 제작을 탐색하기 시작했습니다. 한 사용자는 Claude Co-Work를 효과적으로 활용하기 위한 여정을 공유하며, 새로운 스킬을 작업 환경에 통합하는 데 필요한 올바른 파일 형식과 배포 전략을 이해하는 것의 중요성을 강조했습니다.

OpenClawRadar