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

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.
권장 솔루션
도구 인수에서 |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
👀 See Also

Opus 4.7, 프롬프트의 40%를 망가뜨렸다; 해결책은 CLAUDE.md와 스킬의 구조화였다
Opus 4.7이 출시된 후 6개 설정에서 약 40%의 프롬프트 성능이 저하되자, AI 책임자가 임시 프롬프트를 구조화된 Skill 파일, 계층적 CLAUDE.md, 그리고 별도의 메모리 파일로 대체하여 토큰 사용량을 22% 줄이고 반복 횟수를 3-4회에서 1-2회로 줄였습니다.

안드로이드 스마트폰에서 Master OpenClaw 마스터하기: 종합 튜토리얼
Android 스마트폰에서 OpenClaw의 잠재력을 활용하는 방법이 궁금하신가요? 이 튜토리얼은 활기찬 OpenClaw 커뮤니티의 필수 팁과 요령을 포함하여 시작하는 방법에 대한 단계별 안내를 제공합니다.

API 비용을 피하기 위해 Ollama로 로컬에서 OpenClaw 실행하기
레딧 사용자가 API 기반 OpenClaw에서 Ollama를 사용해 로컬로 전환한 경험을 공유하며, API 비용을 제거하면서도 워크플로우를 유지하는 방법을 소개합니다. 그들은 단계별 설치 비디오 가이드를 제작했습니다.

OpenClaw + Ollama 로컬 모델 타임아웃 디버깅: 침묵하는 실패를 해결하는 다섯 가지 방법
개발자가 OpenClaw 에이전트가 Gemma 4 26B와 같은 로컬 Ollama 모델에서 자동 타임아웃되는 5가지 근본 원인을 파악했습니다. 여기에는 블로킹 슬러그 생성기, 38K 문자 시스템 프롬프트, 숨겨진 타임아웃 등이 포함됩니다. 해결 방법은 훅 비활성화, 설정 수정, Ollama 설정 조정을 포함합니다.